[PATCH v2] staging: comedi: resolve section mismatch in s626
gregkh at linuxfoundation.org
Tue Apr 10 11:24:38 PDT 2012
On Mon, Apr 02, 2012 at 11:48:54AM +0100, Ian Abbott wrote:
> On 2012-03-19 23:26, Greg KH wrote:
> >On Mon, Mar 19, 2012 at 03:46:49PM -0700, Gerard Snitselaar wrote:
> >>On Mon, Mar 19, 2012 at 09:43:25AM -0700, Gerard Snitselaar wrote:
> >>>On Mon, Mar 19, 2012 at 09:31:03AM -0700, Greg KH wrote:
> >>>>Ick, why is this loop even needed? We are only here if the pci device
> >>>>is present in the system so this shouldn't be needed at all, right?
> >>>>Or is this a bit more complex than I am making it out to be?
> >>>>greg k-h
> >>>Most likely not. I will take a look at some of the other drivers in
> >>>comedi and see how the attach code looks there. I believe the code
> >>>section in hpdi_attach() was written by the same person. Unfortunately
> >>>I don't have a device to actually play around and see what changes are
> >>I looked at this a bit more. It looks like they lose visibility to the
> >>pci_dev structure.
> >> comedi_pci_auto_config() pci_dev
> >> comedi_auto_config() pci_dev->dev
> >> comedi_device_attach() ??
> >> driv->attach() ??<= iterate through pci devices.
> >>Most of the examples I have looked at so far use for_each_pci_dev() to
> >>find the device, and s626 shortcuts it a bit by directly making calls
> >>to pci_get_subsys() with specific ids. They all verify they have the
> >>right device by checking the bus and slot that are grabbed from the
> >>pci_dev in comedi_pci_auto_config() and passed down.
> >Ugh, surely there's a way to keep the pci dev through the
> >comedi_device_attach() call, right?
> comedi_device_attach() is also called for the COMEDI_DEVCONFIG ioctl
> for "manually" configuring a comedi device, and that has no idea
> about struct pci_dev, etc.
> I recently posted a series of patches that allows lower-level comedi
> drivers to supply separate hooks for auto-configuring PCI devices or
> USB devices without abusing the old "manual configuration" code
> paths, see <http://driverdev.linuxdriverproject.org/pipermail/devel/2012-March/025331.html>.
> The old loop that searches the PCI bus is still needed for the
> "manual configuration" code path.
So, now that I've applied your patches, this patch isn't needed anymore,
right? Or should it be reworked to use the new interfaces?
More information about the devel