lkml.org 
[lkml]   [2019]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 5/5] PCI: dwc: Save root bus for driver remove
    Date
    Currently dwc host doesn't support the remove, but nothing prevent us
    from supporting it. Save the root bus for clean up work in driver
    remove code path.

    After this patch, the dwc host users could implement its remove as:

    static int foo_pcie_remove(struct platform_device *pdev)
    {
    ...
    pci_stop_root_bus(pp->root_bus);
    pci_remove_root_bus(pp->root_bus);
    dw_pcie_free_msi(pp);
    ...
    }

    Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
    ---
    drivers/pci/controller/dwc/pcie-designware-host.c | 1 +
    drivers/pci/controller/dwc/pcie-designware.h | 1 +
    2 files changed, 2 insertions(+)

    diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
    index 4831c12fee93..ca45a4471ca0 100644
    --- a/drivers/pci/controller/dwc/pcie-designware-host.c
    +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
    @@ -496,6 +496,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
    goto err_free_msi;

    bus = bridge->bus;
    + pp->root_bus = bus;

    if (pp->ops->scan_bus)
    pp->ops->scan_bus(pp);
    diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
    index 3be7ca9f1fc3..cd92ded606c6 100644
    --- a/drivers/pci/controller/dwc/pcie-designware.h
    +++ b/drivers/pci/controller/dwc/pcie-designware.h
    @@ -182,6 +182,7 @@ struct pcie_port {
    struct page *msi_page;
    u32 num_vectors;
    u32 irq_mask[MAX_MSI_CTRLS];
    + struct pci_bus *root_bus;
    raw_spinlock_t lock;
    DECLARE_BITMAP(msi_irq_in_use, MAX_MSI_IRQS);
    };
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-03-01 06:07    [W:8.028 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site