Messages in this thread | | | Date | Wed, 22 Jun 2011 12:53:20 -0500 | From | Scott Wood <> | Subject | Re: [PATCH 3/3] powerpc: Dont require a dma_ops struct to set dma mask |
| |
On Wed, 22 Jun 2011 07:02:56 -0500 Kumar Gala <galak@kernel.crashing.org> wrote:
> The only reason to require a dma_ops struct is to see if it has > implemented set_dma_mask. If not we can fall back to setting the mask > directly. > > This resolves an issue with how to sequence the setting of a DMA mask > for platform devices. Before we had an issue in that we have no way of > setting the DMA mask before the various low level bus notifiers get > called that might check it (swiotlb). > > So now we can do: > > pdev = platform_device_alloc("foobar", 0); > dma_set_mask(&pdev->dev, DMA_BIT_MASK(37)); > platform_device_register(pdev);
Despite what Documentation/driver-model/platform.txt says, it looks like platform_device_add() is what you want after platform_device_alloc(). Otherwise device_initialize() gets called twice, as would a call to the archdata hook if one is added to platform_device_register().
-Scott
| |