Message ID | 1359723116-18173-5-git-send-email-padma.v@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 01 February 2013, Padmavathi Venna wrote: > This patch modify the filter function to filter the required channel > based on new filter params. > > Signed-off-by: Padmavathi Venna <padma.v@samsung.com> The result of this looks good, but I fear that changing the filter function like this wil break all drivers that currently use the plat-samsung/dma-ops.c code. For migration purposes, I think the best way is to change samsung_dmadev_request() to match the new filter_param format. After that is done, you can migrate all the drivers using samsung_dma_get_ops over to the new dma_request_slave_channel interface without breaking anything when only part of the series is applied. Arnd
Hi Arnd, On Fri, Feb 1, 2013 at 8:53 PM, Arnd Bergmann <arnd@arndb.de> wrote: > On Friday 01 February 2013, Padmavathi Venna wrote: >> This patch modify the filter function to filter the required channel >> based on new filter params. >> >> Signed-off-by: Padmavathi Venna <padma.v@samsung.com> > > The result of this looks good, but I fear that changing the filter function > like this wil break all drivers that currently use the plat-samsung/dma-ops.c > code. For migration purposes, I think the best way is to change > samsung_dmadev_request() to match the new filter_param format. > > After that is done, you can migrate all the drivers using samsung_dma_get_ops > over to the new dma_request_slave_channel interface without breaking > anything when only part of the series is applied. > > Arnd Please check the below link where I made the dma request compatible to both DT and non-DT http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=e7ba5f1d0f6292e1b99c63cc4bb74c70232e9065 http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=b5be04d35dbb2e00ab27a97bfd26e17019e857ef Please let me know if any changes required. Thanks for the suggestions. Padma
On Saturday 02 February 2013 08:00:54 Padma Venkat wrote: > > The result of this looks good, but I fear that changing the filter function > > like this wil break all drivers that currently use the plat-samsung/dma-ops.c > > code. For migration purposes, I think the best way is to change > > samsung_dmadev_request() to match the new filter_param format. > > > > After that is done, you can migrate all the drivers using samsung_dma_get_ops > > over to the new dma_request_slave_channel interface without breaking > > anything when only part of the series is applied. > > > > Arnd > > Please check the below link where I made the dma request compatible to > both DT and non-DT > > http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=e7ba5f1d0f6292e1b99c63cc4bb74c70232e9065 > http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=b5be04d35dbb2e00ab27a97bfd26e17019e857ef > > Please let me know if any changes required. > Those two changes by themselves still look ok, I think but you still break the non-DT case in this 4/4 patch by changing the pl330_filter function in an incompatible way. You will still have to either change the filter_param argument in the samsung_dmadev_request() function, or provide separate filter functions, one to be used by samsung_dmadev_request and one for the pl330_xlate function. In the long run, I think it would be better to move the slave drivers away from the samsung_dma wrappers and use dma_request_slave_channel directly, but that is an independent discussion. Arnd
On Sat, Feb 2, 2013 at 8:39 PM, Arnd Bergmann <arnd@arndb.de> wrote: > On Saturday 02 February 2013 08:00:54 Padma Venkat wrote: > >> > The result of this looks good, but I fear that changing the filter function >> > like this wil break all drivers that currently use the plat-samsung/dma-ops.c >> > code. For migration purposes, I think the best way is to change >> > samsung_dmadev_request() to match the new filter_param format. >> > >> > After that is done, you can migrate all the drivers using samsung_dma_get_ops >> > over to the new dma_request_slave_channel interface without breaking >> > anything when only part of the series is applied. >> > >> > Arnd >> >> Please check the below link where I made the dma request compatible to >> both DT and non-DT >> >> http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=e7ba5f1d0f6292e1b99c63cc4bb74c70232e9065 >> http://git.kernel.org/?p=linux/kernel/git/broonie/sound.git;a=commit;h=b5be04d35dbb2e00ab27a97bfd26e17019e857ef >> >> Please let me know if any changes required. >> > > Those two changes by themselves still look ok, I think but you > still break the non-DT case in this 4/4 patch by changing the > pl330_filter function in an incompatible way. You will still > have to either change the filter_param argument in the > samsung_dmadev_request() function, or provide separate filter > functions, one to be used by samsung_dmadev_request and > one for the pl330_xlate function. I missed out to delete this part. Thanks for your point. I will send another patch. > > In the long run, I think it would be better to move the slave > drivers away from the samsung_dma wrappers and use > dma_request_slave_channel directly, but that is an independent > discussion. > > Arnd Regards Padma
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index ddf4dd0..14d84a4 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2392,15 +2392,12 @@ bool pl330_filter(struct dma_chan *chan, void *param) #ifdef CONFIG_OF if (chan->device->dev->of_node) { - const __be32 *prop_value; - phandle phandle; - struct device_node *node; - - prop_value = ((struct property *)param)->value; - phandle = be32_to_cpup(prop_value++); - node = of_find_node_by_phandle(phandle); - return ((chan->private == node) && - (chan->chan_id == be32_to_cpup(prop_value))); + struct dma_pl330_filter_args *fargs = param; + + if (chan->device != &fargs->pdmac->ddma) + return false; + + return (chan->chan_id == fargs->chan_id); } #endif
This patch modify the filter function to filter the required channel based on new filter params. Signed-off-by: Padmavathi Venna <padma.v@samsung.com> --- drivers/dma/pl330.c | 15 ++++++--------- 1 files changed, 6 insertions(+), 9 deletions(-)