Message ID | 20190425063815.25334-1-vigneshr@ti.com |
---|---|
State | Accepted |
Commit | 5487772517817a7e3b501062f3962b56fad34075 |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] dma: ti: k3-udma: Do not touch RT registers before channel configuration | expand |
On 25.04.19 09:38, Vignesh Raghavendra wrote: > From: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Upcoming sysfw (2019.03) will not open the channelized firewalls during > init, it only going to do so in response to the channel configuration > message. > > Remove the channel state checks done before the channel configuration and > move it after the configuration for warning purposes. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> > --- > drivers/dma/ti/k3-udma.c | 33 +++++++++------------------------ > 1 file changed, 9 insertions(+), 24 deletions(-) Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
On 25/04/19 11:49 PM, Grygorii Strashko wrote: > > > On 25.04.19 09:38, Vignesh Raghavendra wrote: >> From: Peter Ujfalusi <peter.ujfalusi@ti.com> >> >> Upcoming sysfw (2019.03) will not open the channelized firewalls during >> init, it only going to do so in response to the channel configuration >> message. >> >> Remove the channel state checks done before the channel configuration and >> move it after the configuration for warning purposes. >> >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> >> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> >> --- >> drivers/dma/ti/k3-udma.c | 33 +++++++++------------------------ >> 1 file changed, 9 insertions(+), 24 deletions(-) > > Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> Tom, This is needed for cpsw to work am65. Please pull this patch. Thanks, Keerthy >
On Thu, Apr 25, 2019 at 12:08:15PM +0530, Vignesh Raghavendra wrote: > From: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Upcoming sysfw (2019.03) will not open the channelized firewalls during > init, it only going to do so in response to the channel configuration > message. > > Remove the channel state checks done before the channel configuration and > move it after the configuration for warning purposes. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> > Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> Applied to u-boot/master, thanks!
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index f78a01aa8f8c..f896e2958755 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -575,14 +575,6 @@ static int udma_get_tchan(struct udma_chan *uc) pr_debug("chan%d: got tchan%d\n", uc->id, uc->tchan->id); - if (udma_is_chan_running(uc)) { - dev_warn(ud->dev, "chan%d: tchan%d is running!\n", uc->id, - uc->tchan->id); - udma_stop(uc); - if (udma_is_chan_running(uc)) - dev_err(ud->dev, "chan%d: won't stop!\n", uc->id); - } - return 0; } @@ -602,14 +594,6 @@ static int udma_get_rchan(struct udma_chan *uc) pr_debug("chan%d: got rchan%d\n", uc->id, uc->rchan->id); - if (udma_is_chan_running(uc)) { - dev_warn(ud->dev, "chan%d: rchan%d is running!\n", uc->id, - uc->rchan->id); - udma_stop(uc); - if (udma_is_chan_running(uc)) - dev_err(ud->dev, "chan%d: won't stop!\n", uc->id); - } - return 0; } @@ -652,14 +636,6 @@ static int udma_get_chan_pair(struct udma_chan *uc) pr_debug("chan%d: got t/rchan%d pair\n", uc->id, chan_id); - if (udma_is_chan_running(uc)) { - dev_warn(ud->dev, "chan%d: t/rchan%d pair is running!\n", - uc->id, chan_id); - udma_stop(uc); - if (udma_is_chan_running(uc)) - dev_err(ud->dev, "chan%d: won't stop!\n", uc->id); - } - return 0; } @@ -1071,6 +1047,15 @@ static int udma_alloc_chan_resources(struct udma_chan *uc) } } + if (udma_is_chan_running(uc)) { + dev_warn(ud->dev, "chan%d: is running!\n", uc->id); + udma_stop(uc); + if (udma_is_chan_running(uc)) { + dev_err(ud->dev, "chan%d: won't stop!\n", uc->id); + goto err_free_res; + } + } + /* PSI-L pairing */ ret = udma_navss_psil_pair(ud, uc->src_thread, uc->dst_thread); if (ret) {