RE: [PATCH 01/30] staging: comedi: add pci_dev pointer to comedi_device

H Hartley Sweeten
2012-07-17T02:26:18Z

On Monday, July 16, 2012 7:01 PM, Greg KH wrote:
> On Mon, Jul 16, 2012 at 08:55:47PM -0500, H Hartley Sweeten wrote:
>> On Monday, July 16, 2012 6:52 PM, Greg KH wrote:
>>> No, the field above this, hw_dev, should be used instead here, as that's
>>> what it is there for, right?
>>
>> The hw_dev pointer is currently only used for something dealing with dma.
>> I have not dug into it yet to see what exactly it's used for. The comment
>> says:
>>
>> /* hw_dev is passed to dma_alloc_coherent when allocating async buffers
>> * for subdevices that have async_dma_dir set to something other than
>> * DMA_NONE */
>
> Which is exactly what the pci device should be used for, it knows this
> information :)
>
>>> Care to rework this series with that change instead?
>>
>> It could probably be used with some sort of container_of but I'm not sure.
>
> Yes it can.
>
> To set the field:
>
> hw_dev = &pci_dev->dev;
>
> to get it back:
> pci_dev = container_of(hw_dev, struct pci_device, struct device);
>
> I think. That's off the top of my head, please try it out first.
>
> And use a macro for the container_of stuff, that makes it easier to
> understand.

Greg,

I'm posting a patch to the adl_pci6208 driver right now. It compiles fine
but could you look it over and see if it looks right.

Thanks,
Hartley