Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-05 Thread Tony Lindgren
* Bin Liu  [160504 14:10]:
> Hi,
> 
> On Wed, May 04, 2016 at 11:56:15PM +0300, Sergei Shtylyov wrote:
> > Hello.
> > 
> > On 05/04/2016 11:46 PM, Bin Liu wrote:
> > 
> > Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for 
> > musb_host.c")
> > looks incomplete: the DMA engine checks are  done outside the 
> > Mentor/UX500
> > handler  but inside the CPPI/TUSB handler. Move the checks out of the 
> > CPPI/
> > TUSB handler into its caller, musb_tx_dma_program().
> > 
> > Signed-off-by: Sergei Shtylyov 
> > 
> > ---
> >   drivers/usb/musb/musb_host.c |7 +++
> >   1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > Index: usb/drivers/usb/musb/musb_host.c
> > ===
> > --- usb.orig/drivers/usb/musb/musb_host.c
> > +++ usb/drivers/usb/musb/musb_host.c
> > @@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
> >   {
> > struct dma_channel *channel = hw_ep->tx_channel;
> > 
> > -   if (!is_cppi_enabled(hw_ep->musb) && 
> > !tusb_dma_omap(hw_ep->musb))
> > -   return -ENODEV;
> > -
> > channel->actual_len = 0;
> > >>
> > >>>Since this function has only two lines now, does it make sense to get rid
> > >>>of it completely?
> > >>
> > >>That would be the reverse to what Tony's patches did. I think gcc
> > >>will inline this function anyway.
> > >
> > >I believe the intention of Tony's patch is to get rid of #ifdefs. Any
> > 
> >Right. But while doing that, he tried to avoid the code motion.
> > 
> > >further patch could do whatever is right to improve the code. I
> > >personally don't rely on compiler's optimization. I don't have strong
> > >opinion here, you make the call.
> > 
> >I'll leave the things as they are then.
> > 
> > >>>Regards,
> > >>>-Bin.
> > >>>
> > 
> > /*
> > @@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
> > if (musb_dma_inventra(hw_ep->musb) || 
> >  musb_dma_ux500(hw_ep->musb))
> > res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
> >  offset, &length, 
> >  &mode);
> > -   else
> > +   else if (is_cppi_enabled(hw_ep->musb) || 
> > tusb_dma_omap(hw_ep->musb))
> > res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, 
> >  urb,
> >  offset, &length, 
> >  &mode);
> > +   else
> > +   return false;
> > >>
> > >>Well, using ret = -EINVAL; would have been more appropriate, I'd
> > 
> >s/ret/res/.
> > 
> > >>respin if you won't mind?
> > >
> > >I don't mind respin at all. But the function return type is bool, so
> > >flase is better, right?
> > 
> >It'll just bail out on the *if* below:
> 
> Ok, I now understand what you meant. I was thinking about the final
> code of your two patches together.
> 
> No, please don't respin, I like your current version better.

Yeah looks fine to me. I intentionally tried to avoid any kind of code
changes to not break the driver while adding the multiarch support..

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-04 Thread Bin Liu
Hi,

On Wed, May 04, 2016 at 11:56:15PM +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 05/04/2016 11:46 PM, Bin Liu wrote:
> 
> Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for 
> musb_host.c")
> looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
> handler  but inside the CPPI/TUSB handler. Move the checks out of the 
> CPPI/
> TUSB handler into its caller, musb_tx_dma_program().
> 
> Signed-off-by: Sergei Shtylyov 
> 
> ---
>   drivers/usb/musb/musb_host.c |7 +++
>   1 file changed, 3 insertions(+), 4 deletions(-)
> 
> Index: usb/drivers/usb/musb/musb_host.c
> ===
> --- usb.orig/drivers/usb/musb/musb_host.c
> +++ usb/drivers/usb/musb/musb_host.c
> @@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
>   {
>   struct dma_channel *channel = hw_ep->tx_channel;
> 
> - if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
> - return -ENODEV;
> -
>   channel->actual_len = 0;
> >>
> >>>Since this function has only two lines now, does it make sense to get rid
> >>>of it completely?
> >>
> >>That would be the reverse to what Tony's patches did. I think gcc
> >>will inline this function anyway.
> >
> >I believe the intention of Tony's patch is to get rid of #ifdefs. Any
> 
>Right. But while doing that, he tried to avoid the code motion.
> 
> >further patch could do whatever is right to improve the code. I
> >personally don't rely on compiler's optimization. I don't have strong
> >opinion here, you make the call.
> 
>I'll leave the things as they are then.
> 
> >>>Regards,
> >>>-Bin.
> >>>
> 
>   /*
> @@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
>   if (musb_dma_inventra(hw_ep->musb) || 
>  musb_dma_ux500(hw_ep->musb))
>   res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
>    offset, &length, 
>  &mode);
> - else
> + else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
>   res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, 
>  urb,
>    offset, &length, 
>  &mode);
> + else
> + return false;
> >>
> >>Well, using ret = -EINVAL; would have been more appropriate, I'd
> 
>s/ret/res/.
> 
> >>respin if you won't mind?
> >
> >I don't mind respin at all. But the function return type is bool, so
> >flase is better, right?
> 
>It'll just bail out on the *if* below:

Ok, I now understand what you meant. I was thinking about the final
code of your two patches together.

No, please don't respin, I like your current version better.

> 
>   if (res)
>   return false;
> 
> >>
> >>MBR, Seregi
> 
> >Regards,
> >-Bin.
> 
> MBR, Sergei

Regards,
-Bin.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-04 Thread Sergei Shtylyov

Hello.

On 05/04/2016 11:46 PM, Bin Liu wrote:


Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
TUSB handler into its caller, musb_tx_dma_program().

Signed-off-by: Sergei Shtylyov 

---
  drivers/usb/musb/musb_host.c |7 +++
  1 file changed, 3 insertions(+), 4 deletions(-)

Index: usb/drivers/usb/musb/musb_host.c
===
--- usb.orig/drivers/usb/musb/musb_host.c
+++ usb/drivers/usb/musb/musb_host.c
@@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
  {
struct dma_channel *channel = hw_ep->tx_channel;

-   if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
-   return -ENODEV;
-
channel->actual_len = 0;



Since this function has only two lines now, does it make sense to get rid
of it completely?


That would be the reverse to what Tony's patches did. I think gcc
will inline this function anyway.


I believe the intention of Tony's patch is to get rid of #ifdefs. Any


   Right. But while doing that, he tried to avoid the code motion.


further patch could do whatever is right to improve the code. I
personally don't rely on compiler's optimization. I don't have strong
opinion here, you make the call.


   I'll leave the things as they are then.


Regards,
-Bin.



/*
@@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
 offset, &length, &mode);
-   else
+   else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
 offset, &length, &mode);
+   else
+   return false;


Well, using ret = -EINVAL; would have been more appropriate, I'd


   s/ret/res/.


respin if you won't mind?


I don't mind respin at all. But the function return type is bool, so
flase is better, right?


   It'll just bail out on the *if* below:


if (res)
return false;



MBR, Seregi



Regards,
-Bin.


MBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-04 Thread Bin Liu
Hi,

On Wed, May 04, 2016 at 11:06:58PM +0300, Sergei Shtylyov wrote:
> On 05/04/2016 11:01 PM, Bin Liu wrote:
> 
> >>Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
> >>looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
> >>handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
> >>TUSB handler into its caller, musb_tx_dma_program().
> >>
> >>Signed-off-by: Sergei Shtylyov 
> >>
> >>---
> >>  drivers/usb/musb/musb_host.c |7 +++
> >>  1 file changed, 3 insertions(+), 4 deletions(-)
> >>
> >>Index: usb/drivers/usb/musb/musb_host.c
> >>===
> >>--- usb.orig/drivers/usb/musb/musb_host.c
> >>+++ usb/drivers/usb/musb/musb_host.c
> >>@@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
> >>  {
> >>struct dma_channel *channel = hw_ep->tx_channel;
> >>
> >>-   if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
> >>-   return -ENODEV;
> >>-
> >>channel->actual_len = 0;
> 
> >Since this function has only two lines now, does it make sense to get rid
> >of it completely?
> 
>That would be the reverse to what Tony's patches did. I think gcc
> will inline this function anyway.

I believe the intention of Tony's patch is to get rid of #ifdefs. Any
further patch could do whatever is right to improve the code. I
personally don't rely on compiler's optimization. I don't have strong
opinion here, you make the call.

> 
> >Regards,
> >-Bin.
> >
> >>
> >>/*
> >>@@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
> >>if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
> >>res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
> >> offset, &length, &mode);
> >>-   else
> >>+   else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
> >>res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
> >> offset, &length, &mode);
> >>+   else
> >>+   return false;
> 
>Well, using ret = -EINVAL; would have been more appropriate, I'd
> respin if you won't mind?

I don't mind respin at all. But the function return type is bool, so
flase is better, right?

> 
> >>if (res)
> >>return false;
> >>
> 
> MBR, Seregi

Regards,
-Bin.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-04 Thread Sergei Shtylyov

On 05/04/2016 11:01 PM, Bin Liu wrote:


Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
TUSB handler into its caller, musb_tx_dma_program().

Signed-off-by: Sergei Shtylyov 

---
  drivers/usb/musb/musb_host.c |7 +++
  1 file changed, 3 insertions(+), 4 deletions(-)

Index: usb/drivers/usb/musb/musb_host.c
===
--- usb.orig/drivers/usb/musb/musb_host.c
+++ usb/drivers/usb/musb/musb_host.c
@@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
  {
struct dma_channel *channel = hw_ep->tx_channel;

-   if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
-   return -ENODEV;
-
channel->actual_len = 0;



Since this function has only two lines now, does it make sense to get rid
of it completely?


   That would be the reverse to what Tony's patches did. I think gcc will 
inline this function anyway.



Regards,
-Bin.



/*
@@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
 offset, &length, &mode);
-   else
+   else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
 offset, &length, &mode);
+   else
+   return false;


   Well, using ret = -EINVAL; would have been more appropriate, I'd respin if 
you won't mind?



if (res)
return false;



MBR, Seregi

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-04 Thread Bin Liu
Hi,

On Wed, May 04, 2016 at 01:51:58AM +0300, Sergei Shtylyov wrote:
> Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
> looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
> handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
> TUSB handler into its caller, musb_tx_dma_program().
> 
> Signed-off-by: Sergei Shtylyov 
> 
> ---
>  drivers/usb/musb/musb_host.c |7 +++
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> Index: usb/drivers/usb/musb/musb_host.c
> ===
> --- usb.orig/drivers/usb/musb/musb_host.c
> +++ usb/drivers/usb/musb/musb_host.c
> @@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
>  {
>   struct dma_channel *channel = hw_ep->tx_channel;
>  
> - if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
> - return -ENODEV;
> -
>   channel->actual_len = 0;

Since this function has only two lines now, does it make sense to get rid
of it completely?

Regards,
-Bin.

>  
>   /*
> @@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
>   if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
>   res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
>offset, &length, &mode);
> - else
> + else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
>   res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
>offset, &length, &mode);
> + else
> + return false;
>   if (res)
>   return false;
>  
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/2] musb_host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its caller

2016-05-03 Thread Sergei Shtylyov
Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
TUSB handler into its caller, musb_tx_dma_program().

Signed-off-by: Sergei Shtylyov 

---
 drivers/usb/musb/musb_host.c |7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

Index: usb/drivers/usb/musb/musb_host.c
===
--- usb.orig/drivers/usb/musb/musb_host.c
+++ usb/drivers/usb/musb/musb_host.c
@@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus
 {
struct dma_channel *channel = hw_ep->tx_channel;
 
-   if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
-   return -ENODEV;
-
channel->actual_len = 0;
 
/*
@@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d
if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
 offset, &length, &mode);
-   else
+   else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
 offset, &length, &mode);
+   else
+   return false;
if (res)
return false;
 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html