Loading drivers/pci/host/pcie-rockchip.c +47 −35 Original line number Diff line number Diff line Loading @@ -933,6 +933,51 @@ static int rockchip_pcie_get_phys(struct rockchip_pcie *rockchip) return 0; } static int rockchip_pcie_setup_irq(struct rockchip_pcie *rockchip) { int irq, err; struct device *dev = rockchip->dev; struct platform_device *pdev = to_platform_device(dev); irq = platform_get_irq_byname(pdev, "sys"); if (irq < 0) { dev_err(dev, "missing sys IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler, IRQF_SHARED, "pcie-sys", rockchip); if (err) { dev_err(dev, "failed to request PCIe subsystem IRQ\n"); return err; } irq = platform_get_irq_byname(pdev, "legacy"); if (irq < 0) { dev_err(dev, "missing legacy IRQ resource\n"); return -EINVAL; } irq_set_chained_handler_and_data(irq, rockchip_pcie_legacy_int_handler, rockchip); irq = platform_get_irq_byname(pdev, "client"); if (irq < 0) { dev_err(dev, "missing client IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler, IRQF_SHARED, "pcie-client", rockchip); if (err) { dev_err(dev, "failed to request PCIe client IRQ\n"); return err; } return 0; } /** * rockchip_pcie_parse_dt - Parse Device Tree * @rockchip: PCIe port information Loading @@ -945,7 +990,6 @@ static int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip) struct platform_device *pdev = to_platform_device(dev); struct device_node *node = dev->of_node; struct resource *regs; int irq; int err; regs = platform_get_resource_byname(pdev, Loading Loading @@ -1059,41 +1103,9 @@ static int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip) return PTR_ERR(rockchip->clk_pcie_pm); } irq = platform_get_irq_byname(pdev, "sys"); if (irq < 0) { dev_err(dev, "missing sys IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler, IRQF_SHARED, "pcie-sys", rockchip); if (err) { dev_err(dev, "failed to request PCIe subsystem IRQ\n"); return err; } irq = platform_get_irq_byname(pdev, "legacy"); if (irq < 0) { dev_err(dev, "missing legacy IRQ resource\n"); return -EINVAL; } irq_set_chained_handler_and_data(irq, rockchip_pcie_legacy_int_handler, rockchip); irq = platform_get_irq_byname(pdev, "client"); if (irq < 0) { dev_err(dev, "missing client IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler, IRQF_SHARED, "pcie-client", rockchip); if (err) { dev_err(dev, "failed to request PCIe client IRQ\n"); err = rockchip_pcie_setup_irq(rockchip); if (err) return err; } rockchip->vpcie12v = devm_regulator_get_optional(dev, "vpcie12v"); if (IS_ERR(rockchip->vpcie12v)) { Loading Loading
drivers/pci/host/pcie-rockchip.c +47 −35 Original line number Diff line number Diff line Loading @@ -933,6 +933,51 @@ static int rockchip_pcie_get_phys(struct rockchip_pcie *rockchip) return 0; } static int rockchip_pcie_setup_irq(struct rockchip_pcie *rockchip) { int irq, err; struct device *dev = rockchip->dev; struct platform_device *pdev = to_platform_device(dev); irq = platform_get_irq_byname(pdev, "sys"); if (irq < 0) { dev_err(dev, "missing sys IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler, IRQF_SHARED, "pcie-sys", rockchip); if (err) { dev_err(dev, "failed to request PCIe subsystem IRQ\n"); return err; } irq = platform_get_irq_byname(pdev, "legacy"); if (irq < 0) { dev_err(dev, "missing legacy IRQ resource\n"); return -EINVAL; } irq_set_chained_handler_and_data(irq, rockchip_pcie_legacy_int_handler, rockchip); irq = platform_get_irq_byname(pdev, "client"); if (irq < 0) { dev_err(dev, "missing client IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler, IRQF_SHARED, "pcie-client", rockchip); if (err) { dev_err(dev, "failed to request PCIe client IRQ\n"); return err; } return 0; } /** * rockchip_pcie_parse_dt - Parse Device Tree * @rockchip: PCIe port information Loading @@ -945,7 +990,6 @@ static int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip) struct platform_device *pdev = to_platform_device(dev); struct device_node *node = dev->of_node; struct resource *regs; int irq; int err; regs = platform_get_resource_byname(pdev, Loading Loading @@ -1059,41 +1103,9 @@ static int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip) return PTR_ERR(rockchip->clk_pcie_pm); } irq = platform_get_irq_byname(pdev, "sys"); if (irq < 0) { dev_err(dev, "missing sys IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler, IRQF_SHARED, "pcie-sys", rockchip); if (err) { dev_err(dev, "failed to request PCIe subsystem IRQ\n"); return err; } irq = platform_get_irq_byname(pdev, "legacy"); if (irq < 0) { dev_err(dev, "missing legacy IRQ resource\n"); return -EINVAL; } irq_set_chained_handler_and_data(irq, rockchip_pcie_legacy_int_handler, rockchip); irq = platform_get_irq_byname(pdev, "client"); if (irq < 0) { dev_err(dev, "missing client IRQ resource\n"); return -EINVAL; } err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler, IRQF_SHARED, "pcie-client", rockchip); if (err) { dev_err(dev, "failed to request PCIe client IRQ\n"); err = rockchip_pcie_setup_irq(rockchip); if (err) return err; } rockchip->vpcie12v = devm_regulator_get_optional(dev, "vpcie12v"); if (IS_ERR(rockchip->vpcie12v)) { Loading