On 14-05-08 20:50, Bjorn Helgaas wrote:
On Wednesday 14 May 2008 12:41:56 pm Rene Herman wrote:
You're in a maze of struct device *s, all alike... I was passing the pnp_card->dev instead of the initialized pnp_dev->dev.
And, not doing so brings out a difference between ISAPnP and legacy ISA again insofar that legacy ISA does not consist of cards with multiple devices. We just have the single struct device * for the ISA device.
This therefore would be the easiest solution (and works fine) but seems a bit of a hack. Bjorn, do you have an opinion? If I abstract things out a bit more I might be able to do this nicer. One might on the other hand argue that the dma_mask is going to be constant for all card devices so might as well just use the card dev.
I agree, it seems a bit of a hack to use a DMA mask from the card instead of from the device, since the driver should be programming the device to do the DMA.
But I know very little about pnp_card in general, so don't attach too much weight to my opinion.
Okay, I'll sit on this for a bit. Right now we're using a global device even but this is exactly about cleaning that up so couldn't convince myself. Will see what happens when I try to make it nice...
Rene.