Re: [PATCH 2/2] PCI: meson: Add missing remove callback
Shuvam Pandey <[email protected]>
| Newsgroups | org.infradead.lists.linux-amlogic,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <CANAAWH+qT8T4_OBwu0WxU6o0FTT7xqwpLTOFrWiV1dZbXHk+fw@mail.gmail.com> |
Hi Bjorn, > What's the user-visible effect of this? Does it avoid an oops? > Reduce power usage? I don't have hardware with this controller, so I have not observed an oops from this. The concrete effect is that driver unbind/module unload gets the matching teardown for the successful probe path: the DesignWare host bridge is unregistered with dw_pcie_host_deinit(), and the PHY is powered off with meson_pcie_power_off() before devres releases the driver's resources. So yes, it should reduce power usage after unbind. The host bridge teardown is also the matching cleanup for dw_pcie_host_init(), but I don't have hardware evidence of an oops on unbind. > Of the 34 instances of .probe() in drivers/pci/controller/dwc/, on 12 > implement .remove(), so if this fixes a problem, I'm wondering whether > other drivers have the same problem. Yes, that may deserve a broader driver-by-driver audit. I only checked Meson for this patch. Some DWC drivers implement .remove(), and several others set .suppress_bind_attrs, which affects the manual sysfs bind/unbind path. Before this patch, the Meson driver had neither, while meson_pcie_probe() calls meson_pcie_power_on() and registers the host bridge with dw_pcie_host_init(). Thanks, Shuvam _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic