Message ID | 20250113-rockchip-no-wait-v1-1-25417f37b92f@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | PCI: dw-rockchip: Skip waiting for link up | expand |
On Mon, Jan 13, 2025 at 11:59:34AM +0100, Niklas Cassel wrote: > The Root Complex specific device tree binding for pcie-dw-rockchip has the > 'sys' interrupt marked as required. > > The driver requests the 'sys' IRQ unconditionally, and errors out if not > provided. > > Thus, we can unconditionally set use_linkup_irq before calling > dw_pcie_host_init(). > > This will skip the wait for link up (since the bus will be enumerated once > the link up IRQ is triggered), which reduces the bootup time. > > Signed-off-by: Niklas Cassel <cassel@kernel.org> Thanks! I was just reviewing the addition of your dll_link_up IRQ handler, and was about to ask whether you wanted to set use_linkup_irq to avoid the wait, but here's the patch already :) I think I'll sort out the branches so the dll_link_up IRQ handler, this patch, and the corresponding qcom change go on the same branch as Krishna's patch to skip waiting if pp->use_linkup_irq. > --- > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > index 1170e1107508bd793b610949b0afe98516c177a4..62034affb95fbb965aad3cebc613a83e31c90aee 100644 > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > @@ -435,6 +435,7 @@ static int rockchip_pcie_configure_rc(struct rockchip_pcie *rockchip) > > pp = &rockchip->pci.pp; > pp->ops = &rockchip_pcie_host_ops; > + pp->use_linkup_irq = true; > > return dw_pcie_host_init(pp); > } > > --- > base-commit: 2adda4102931b152f35d054055497631ed97fe73 > change-id: 20250113-rockchip-no-wait-403ffbc42313 > > Best regards, > -- > Niklas Cassel <cassel@kernel.org> >
On Mon, Jan 13, 2025 at 11:59:34AM +0100, Niklas Cassel wrote: > The Root Complex specific device tree binding for pcie-dw-rockchip has the > 'sys' interrupt marked as required. > > The driver requests the 'sys' IRQ unconditionally, and errors out if not > provided. > > Thus, we can unconditionally set use_linkup_irq before calling > dw_pcie_host_init(). > > This will skip the wait for link up (since the bus will be enumerated once > the link up IRQ is triggered), which reduces the bootup time. > > Signed-off-by: Niklas Cassel <cassel@kernel.org> Applied to pci/controller/dwc for v6.14, thanks! > --- > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > index 1170e1107508bd793b610949b0afe98516c177a4..62034affb95fbb965aad3cebc613a83e31c90aee 100644 > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > @@ -435,6 +435,7 @@ static int rockchip_pcie_configure_rc(struct rockchip_pcie *rockchip) > > pp = &rockchip->pci.pp; > pp->ops = &rockchip_pcie_host_ops; > + pp->use_linkup_irq = true; > > return dw_pcie_host_init(pp); > } > > --- > base-commit: 2adda4102931b152f35d054055497631ed97fe73 > change-id: 20250113-rockchip-no-wait-403ffbc42313 > > Best regards, > -- > Niklas Cassel <cassel@kernel.org> >
On 13 January 2025 20:27:20 CET, Bjorn Helgaas <helgaas@kernel.org> wrote: >On Mon, Jan 13, 2025 at 11:59:34AM +0100, Niklas Cassel wrote: >> The Root Complex specific device tree binding for pcie-dw-rockchip has the >> 'sys' interrupt marked as required. >> >> The driver requests the 'sys' IRQ unconditionally, and errors out if not >> provided. >> >> Thus, we can unconditionally set use_linkup_irq before calling >> dw_pcie_host_init(). >> >> This will skip the wait for link up (since the bus will be enumerated once >> the link up IRQ is triggered), which reduces the bootup time. >> >> Signed-off-by: Niklas Cassel <cassel@kernel.org> > >Thanks! I was just reviewing the addition of your dll_link_up IRQ >handler, and was about to ask whether you wanted to set use_linkup_irq >to avoid the wait, but here's the patch already :) :) > >I think I'll sort out the branches so the dll_link_up IRQ handler, >this patch, and the corresponding qcom change go on the same branch as >Krishna's patch to skip waiting if pp->use_linkup_irq. That sounds like a good idea. Thank you! Kind regards, Niklas > >> --- >> drivers/pci/controller/dwc/pcie-dw-rockchip.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c >> index 1170e1107508bd793b610949b0afe98516c177a4..62034affb95fbb965aad3cebc613a83e31c90aee 100644 >> --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c >> +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c >> @@ -435,6 +435,7 @@ static int rockchip_pcie_configure_rc(struct rockchip_pcie *rockchip) >> >> pp = &rockchip->pci.pp; >> pp->ops = &rockchip_pcie_host_ops; >> + pp->use_linkup_irq = true; >> >> return dw_pcie_host_init(pp); >> } >> >> --- >> base-commit: 2adda4102931b152f35d054055497631ed97fe73 >> change-id: 20250113-rockchip-no-wait-403ffbc42313 >> >> Best regards, >> -- >> Niklas Cassel <cassel@kernel.org> >>
diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c index 1170e1107508bd793b610949b0afe98516c177a4..62034affb95fbb965aad3cebc613a83e31c90aee 100644 --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c @@ -435,6 +435,7 @@ static int rockchip_pcie_configure_rc(struct rockchip_pcie *rockchip) pp = &rockchip->pci.pp; pp->ops = &rockchip_pcie_host_ops; + pp->use_linkup_irq = true; return dw_pcie_host_init(pp); }
The Root Complex specific device tree binding for pcie-dw-rockchip has the 'sys' interrupt marked as required. The driver requests the 'sys' IRQ unconditionally, and errors out if not provided. Thus, we can unconditionally set use_linkup_irq before calling dw_pcie_host_init(). This will skip the wait for link up (since the bus will be enumerated once the link up IRQ is triggered), which reduces the bootup time. Signed-off-by: Niklas Cassel <cassel@kernel.org> --- drivers/pci/controller/dwc/pcie-dw-rockchip.c | 1 + 1 file changed, 1 insertion(+) --- base-commit: 2adda4102931b152f35d054055497631ed97fe73 change-id: 20250113-rockchip-no-wait-403ffbc42313 Best regards,