Re: how to specify dma_mask and coherent_dma_mask in hwmod
On Wed, Jul 04, 2012 at 11:47:35AM +, N, Mugunthan V wrote: > > -Original Message- > > From: Russell King - ARM Linux [mailto:li...@arm.linux.org.uk] > > Sent: Wednesday, July 04, 2012 3:12 PM > > To: N, Mugunthan V > > Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org > > Subject: Re: how to specify dma_mask and coherent_dma_mask in hwmod > > > > On Thu, Jun 07, 2012 at 04:22:17PM +, N, Mugunthan V wrote: > > > While converting platform device registry to Hwmod for CPSW Ethernet > > > driver which is present in AM335X (OMAP2+), I am not finding a way > > > to specify dma_mask and coherent_dma_mask. > > > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? > > > > Just remember that we're moving stuff to DMA engine, and that means > > the sDMA device has DMA masks, but none of the peripherals which make > > use of sDMA should have DMA masks set. > > > > The reason for this is because the device responsible for accessing > > memory is sDMA, not the peripheral device, and therefore any memory > > properties for DMA should come from the sDMA device, not the peripheral > > device. > > I agree that properties of DMA should come from sDMA device. In my case > (CPSW Ethernet) has a peripheral DMA (davinci_cpdma) which takes care of > transferring packet from memory to Ethernet IP and vice versa. Right, so you have two devices here. You have the Ethernet device, and you have the cpdma device. The cpdma device is the device actually performing the memory accesses on behalf of the Ethernet device. > For allocating DMA memory space for davinci_cpdma, dma_alloc_coherent is > used which requires dma_masks to be specified for the device. So, memory which you allocate for DMA purposes should use the struct device associated with the cpdma device, not the struct device associated with the Ethernet device. That becomes possible when DMA implementations are converted to use the DMA engine API, and with proper channel virtualization, device drivers can retain their virtual channel handle (and therefore access to the DMA engine struct device) indefinitely. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
> -Original Message- > From: Russell King - ARM Linux [mailto:li...@arm.linux.org.uk] > Sent: Wednesday, July 04, 2012 3:12 PM > To: N, Mugunthan V > Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org > Subject: Re: how to specify dma_mask and coherent_dma_mask in hwmod > > On Thu, Jun 07, 2012 at 04:22:17PM +, N, Mugunthan V wrote: > > While converting platform device registry to Hwmod for CPSW Ethernet > > driver which is present in AM335X (OMAP2+), I am not finding a way > > to specify dma_mask and coherent_dma_mask. > > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? > > Just remember that we're moving stuff to DMA engine, and that means > the sDMA device has DMA masks, but none of the peripherals which make > use of sDMA should have DMA masks set. > > The reason for this is because the device responsible for accessing > memory is sDMA, not the peripheral device, and therefore any memory > properties for DMA should come from the sDMA device, not the peripheral > device. I agree that properties of DMA should come from sDMA device. In my case (CPSW Ethernet) has a peripheral DMA (davinci_cpdma) which takes care of transferring packet from memory to Ethernet IP and vice versa. For allocating DMA memory space for davinci_cpdma, dma_alloc_coherent is used which requires dma_masks to be specified for the device. To pass the dma_masks to the device following ways can be followed. 1. Extend omap_device_build arguments to hold dma_mask and coherent_dma_mask which will affect all other devices which uses omap_device_build api. 2. Hardcode the dma_mask and coherent_dma_mask in omap_device_build with 0x which can harm other devices 3. Specify the dma_mask and coherent_dma_mask after creating the device as done in musb device. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/a rm/mach-omap2/usb-musb.c;h=c4a576856661014ea3bec9acc70f80e32d62c33b;hb=HEAD Regards, Mugunthan V N -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: how to specify dma_mask and coherent_dma_mask in hwmod
On Thu, Jun 07, 2012 at 04:22:17PM +, N, Mugunthan V wrote: > While converting platform device registry to Hwmod for CPSW Ethernet > driver which is present in AM335X (OMAP2+), I am not finding a way > to specify dma_mask and coherent_dma_mask. > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? Just remember that we're moving stuff to DMA engine, and that means the sDMA device has DMA masks, but none of the peripherals which make use of sDMA should have DMA masks set. The reason for this is because the device responsible for accessing memory is sDMA, not the peripheral device, and therefore any memory properties for DMA should come from the sDMA device, not the peripheral device. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
On Mon, 2 Jul 2012, N, Mugunthan V wrote: > Extending omap_device_build() to accommodate dma masks will endup with lot > of code changes in other modules Why? - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
Hi Paul, > -Original Message- > From: Bedia, Vaibhav > Sent: Friday, June 29, 2012 4:54 PM > To: Paul Walmsley > Cc: N, Mugunthan V; linux-omap@vger.kernel.org; linux-arm- > ker...@lists.infradead.org; Cousson, Benoit; Hilman, Kevin > Subject: RE: how to specify dma_mask and coherent_dma_mask in hwmod > > Hi Paul, > > On Thu, Jun 28, 2012 at 22:02:46, Paul Walmsley wrote: > > On Thu, 28 Jun 2012, Bedia, Vaibhav wrote: > > > > > On Thu, Jun 28, 2012 at 21:22:54, Paul Walmsley wrote: > > > [...] > > > > > > > > dma_mask and coherent_dma_mask can be specified during > > > > device creation. See usb_musb_init() in arch/arm/mach-omap2/usb- > musb.c > > > > for an example. > > > > > > > > > > Thanks for pointing this out. Should omap_device_build() start > handling this > > > or would that be an overkill? > > > > If both dma_mask and coherent_dma_mask are always 0x on all > OMAPs > > and we can set that safely even for devices that don't use it, then yeah > > it sounds like we should set it. > > > > Care to send a patch? > > > > I just grepped for the any other user of this under mach-omap2 and plat- > omap > and there are a few other places where it's getting used. All of them are > setting it to 0x and same is the case with the CPSW driver. > > I don't know much about the dma stuff so I am bit reluctant in setting > this > unconditionally. I looked at setting the mask based on a flag during > omap_device_build() but an additional flag in the API will cause all the > users > to be changed. We could perhaps extend the omap_hwmod structure for > passing on > this information. Or for CPSW we could stick with approach that's been > adopted > in usb_musb_init(). Which approach sounds better to you? > > Regards, > Vaibhav B. Extending omap_device_build() to accommodate dma masks will endup with lot of code changes in other modules, so will follow the same from usb_musd_init(). Regards, Mugunthan V N. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
Hi Paul, On Thu, Jun 28, 2012 at 22:02:46, Paul Walmsley wrote: > On Thu, 28 Jun 2012, Bedia, Vaibhav wrote: > > > On Thu, Jun 28, 2012 at 21:22:54, Paul Walmsley wrote: > > [...] > > > > > > dma_mask and coherent_dma_mask can be specified during > > > device creation. See usb_musb_init() in arch/arm/mach-omap2/usb-musb.c > > > for an example. > > > > > > > Thanks for pointing this out. Should omap_device_build() start handling this > > or would that be an overkill? > > If both dma_mask and coherent_dma_mask are always 0x on all OMAPs > and we can set that safely even for devices that don't use it, then yeah > it sounds like we should set it. > > Care to send a patch? > I just grepped for the any other user of this under mach-omap2 and plat-omap and there are a few other places where it's getting used. All of them are setting it to 0x and same is the case with the CPSW driver. I don't know much about the dma stuff so I am bit reluctant in setting this unconditionally. I looked at setting the mask based on a flag during omap_device_build() but an additional flag in the API will cause all the users to be changed. We could perhaps extend the omap_hwmod structure for passing on this information. Or for CPSW we could stick with approach that's been adopted in usb_musb_init(). Which approach sounds better to you? Regards, Vaibhav B. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
On Thu, Jun 28, 2012 at 22:02:46, Paul Walmsley wrote: > On Thu, 28 Jun 2012, Bedia, Vaibhav wrote: > > > On Thu, Jun 28, 2012 at 21:22:54, Paul Walmsley wrote: > > [...] > > > > > > dma_mask and coherent_dma_mask can be specified during > > > device creation. See usb_musb_init() in arch/arm/mach-omap2/usb-musb.c > > > for an example. > > > > > > > Thanks for pointing this out. Should omap_device_build() start handling this > > or would that be an overkill? > > If both dma_mask and coherent_dma_mask are always 0x on all OMAPs > and we can set that safely even for devices that don't use it, then yeah > it sounds like we should set it. > I guess that's the case here also. > Care to send a patch? > Sure. Let me check with Mugunthan once. Regards, Vaibhav B. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
On Thu, 28 Jun 2012, Bedia, Vaibhav wrote: > On Thu, Jun 28, 2012 at 21:22:54, Paul Walmsley wrote: > [...] > > > > dma_mask and coherent_dma_mask can be specified during > > device creation. See usb_musb_init() in arch/arm/mach-omap2/usb-musb.c > > for an example. > > > > Thanks for pointing this out. Should omap_device_build() start handling this > or would that be an overkill? If both dma_mask and coherent_dma_mask are always 0x on all OMAPs and we can set that safely even for devices that don't use it, then yeah it sounds like we should set it. Care to send a patch? - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
Hi Paul, On Thu, Jun 28, 2012 at 21:22:54, Paul Walmsley wrote: [...] > > dma_mask and coherent_dma_mask can be specified during > device creation. See usb_musb_init() in arch/arm/mach-omap2/usb-musb.c > for an example. > Thanks for pointing this out. Should omap_device_build() start handling this or would that be an overkill? Regards, Vaibhav B. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: how to specify dma_mask and coherent_dma_mask in hwmod
Hi, On Wed, Jun 27, 2012 at 11:11 AM, N, Mugunthan V wrote: >> -Original Message- >> From: N, Mugunthan V >> Sent: Thursday, June 07, 2012 9:52 PM >> To: 'linux-omap@vger.kernel.org' >> Cc: 'linux-arm-ker...@lists.infradead.org' >> Subject: how to specify dma_mask and coherent_dma_mask in hwmod >> >> Hi >> >> While converting platform device registry to Hwmod for CPSW Ethernet >> driver which is present in AM335X (OMAP2+), I am not finding a way to >> specify >> dma_mask and coherent_dma_mask. >> Is there a way to specify dma_mask and coherent_dma_mask in hwmod? > > Ping, any one has comment on this? > Nope. You can specify dma_mask after creating the device as done in http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/mach-omap2/usb-musb.c;h=c4a576856661014ea3bec9acc70f80e32d62c33b;hb=HEAD Regards Kishon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
Hi On Thu, 28 Jun 2012, Bedia, Vaibhav wrote: > On Wed, Jun 27, 2012 at 11:11:32, N, Mugunthan V wrote: > > > -Original Message- > > > From: N, Mugunthan V > > > Sent: Thursday, June 07, 2012 9:52 PM > > > To: 'linux-omap@vger.kernel.org' > > > Cc: 'linux-arm-ker...@lists.infradead.org' > > > Subject: how to specify dma_mask and coherent_dma_mask in hwmod > > > > > > While converting platform device registry to Hwmod for CPSW Ethernet > > > driver which is present in AM335X (OMAP2+), I am not finding a way to > > > specify > > > dma_mask and coherent_dma_mask. > > > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? > > > > Ping, any one has comment on this? > > Right now there's no way of doing this in hwmod. But is omap_hwmod > the right place for this? It would help if you could describe why > the hwmod conversion is causing trouble for you. dma_mask and coherent_dma_mask can be specified during device creation. See usb_musb_init() in arch/arm/mach-omap2/usb-musb.c for an example. I take it that you're just planning to set both of those to 0x? - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
+Paul, Benoit and Kevin On Wed, Jun 27, 2012 at 11:11:32, N, Mugunthan V wrote: > > -Original Message- > > From: N, Mugunthan V > > Sent: Thursday, June 07, 2012 9:52 PM > > To: 'linux-omap@vger.kernel.org' > > Cc: 'linux-arm-ker...@lists.infradead.org' > > Subject: how to specify dma_mask and coherent_dma_mask in hwmod > > > > Hi > > > > While converting platform device registry to Hwmod for CPSW Ethernet > > driver which is present in AM335X (OMAP2+), I am not finding a way to > > specify > > dma_mask and coherent_dma_mask. > > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? > > Ping, any one has comment on this? Right now there's no way of doing this in hwmod. But is omap_hwmod the right place for this? It would help if you could describe why the hwmod conversion is causing trouble for you. Regards, Vaibhav B. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: how to specify dma_mask and coherent_dma_mask in hwmod
> -Original Message- > From: N, Mugunthan V > Sent: Thursday, June 07, 2012 9:52 PM > To: 'linux-omap@vger.kernel.org' > Cc: 'linux-arm-ker...@lists.infradead.org' > Subject: how to specify dma_mask and coherent_dma_mask in hwmod > > Hi > > While converting platform device registry to Hwmod for CPSW Ethernet > driver which is present in AM335X (OMAP2+), I am not finding a way to > specify > dma_mask and coherent_dma_mask. > Is there a way to specify dma_mask and coherent_dma_mask in hwmod? Ping, any one has comment on this? > > --- > Regards, > Mugunthan V N. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html