diff mbox

usb: host: xhci-plat: Make enum xhci_plat_type start at a non zero value

Message ID 1458917188-28452-1-git-send-email-peter.griffin@linaro.org
State Accepted
Commit f9a85f6e61c695daeb427dfc6c1d5a279654207b
Headers show

Commit Message

Peter Griffin March 25, 2016, 2:46 p.m. UTC
Otherwise generic-xhci and xhci-platform which have no data get wrongly
detected as XHCI_PLAT_TYPE_MARVELL_ARMADA by xhci_plat_type_is().

This fixes a regression in v4.5 for STiH407 family SoC's which use the
synopsis dwc3 IP, whereby the disable_clk error path gets taken due to
wrongly being detected as XHCI_PLAT_TYPE_MARVELL_ARMADA and the hcd never
gets added.

I suspect this will also fix other dwc3 DT platforms such as Exynos,
although I've only tested on STih410 SoC.

Fixes: 4efb2f694114 ("usb: host: xhci-plat: add struct xhci_plat_priv")
Cc: stable@vger.kernel.org
Cc: gregory.clement@free-electrons.com
Cc: yoshihiro.shimoda.uh@renesas.com
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>

---
 drivers/usb/host/xhci-plat.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
1.9.1

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

Comments

Lee Jones March 29, 2016, 9:04 a.m. UTC | #1
On Sat, 26 Mar 2016, Felipe Balbi wrote:
> Peter Griffin <peter.griffin@linaro.org> writes:

> > On Fri, 25 Mar 2016, Felipe Balbi wrote:

> >> Gregory CLEMENT <gregory.clement@free-electrons.com> writes:

> >> >> Peter Griffin <peter.griffin@linaro.org> writes:

> >> >>> Otherwise generic-xhci and xhci-platform which have no data get wrongly

> >> >>> detected as XHCI_PLAT_TYPE_MARVELL_ARMADA by xhci_plat_type_is().

> >> >>>

> >> >>> This fixes a regression in v4.5 for STiH407 family SoC's which use the

> >> >>> synopsis dwc3 IP, whereby the disable_clk error path gets taken due to

> >> >>> wrongly being detected as XHCI_PLAT_TYPE_MARVELL_ARMADA and the hcd never

> >> >>> gets added.

> >> >>>

> >> >>> I suspect this will also fix other dwc3 DT platforms such as Exynos,

> >> >>> although I've only tested on STih410 SoC.

> >> >>>

> >> >>> Fixes: 4efb2f694114 ("usb: host: xhci-plat: add struct xhci_plat_priv")

> >> >>> Cc: stable@vger.kernel.org

> >> >>> Cc: gregory.clement@free-electrons.com

> >> >>> Cc: yoshihiro.shimoda.uh@renesas.com

> >> >>> Signed-off-by: Peter Griffin <peter.griffin@linaro.org>

> >> >>> ---

> >> >>>  drivers/usb/host/xhci-plat.h | 2 +-

> >> >>>  1 file changed, 1 insertion(+), 1 deletion(-)

> >> >>>

> >> >>> diff --git a/drivers/usb/host/xhci-plat.h b/drivers/usb/host/xhci-plat.h

> >> >>> index 5a2e2e3..529c3c4 100644

> >> >>> --- a/drivers/usb/host/xhci-plat.h

> >> >>> +++ b/drivers/usb/host/xhci-plat.h

> >> >>> @@ -14,7 +14,7 @@

> >> >>>  #include "xhci.h"	/* for hcd_to_xhci() */

> >> >>>  

> >> >>>  enum xhci_plat_type {

> >> >>> -	XHCI_PLAT_TYPE_MARVELL_ARMADA,

> >> >>> +	XHCI_PLAT_TYPE_MARVELL_ARMADA = 1,

> >> >>>  	XHCI_PLAT_TYPE_RENESAS_RCAR_GEN2,

> >> >>>  	XHCI_PLAT_TYPE_RENESAS_RCAR_GEN3,

> >> >>

> >> >> aren't these platforms using device tree ? Why aren't these just

> >> >> different compatible strings ?

> >> >

> >> > According to 4efb2f69411456d35051e9047c15157c9a5ba217 "usb: host:

> >> > xhci-plat: add struct xhci_plat_priv" :

> >> >

> >> > This patch adds struct xhci_plat_priv to simplify the code to match

> >> > platform specific variables. For now, this patch adds a member "type" in

> >> > the structure

> >> 

> >> that's fine but the answer doesn't exactly match my question ;-)

> >> 

> >> My point is that this enum shouldn't be necessary at all. We have

> >> compatible flags to make these checks instead. How about below ?

> >> (untested, uncompiled, yada yada yada). Note that we DON'T need this

> >> xhci_plat_type trickery, just need to be a little bit smarter about how

> >> we use driver_data:

> >

> > Your solution certainly looks more elegant.

> 

> cool thanks. Now that I think about this more carefully, we might wanna

> take $subject anyway for the -rc and get my version applied for v4.7

> merge window. What do you think ?


+1 for a simple/quick fix.

Acked-by: Lee Jones <lee.jones@linaro.org>


-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Peter Griffin April 11, 2016, 3:44 p.m. UTC | #2
Hi Mathias,

On Fri, 25 Mar 2016, Peter Griffin wrote:

> Otherwise generic-xhci and xhci-platform which have no data get wrongly

> detected as XHCI_PLAT_TYPE_MARVELL_ARMADA by xhci_plat_type_is().

> 

> This fixes a regression in v4.5 for STiH407 family SoC's which use the

> synopsis dwc3 IP, whereby the disable_clk error path gets taken due to

> wrongly being detected as XHCI_PLAT_TYPE_MARVELL_ARMADA and the hcd never

> gets added.

> 

> I suspect this will also fix other dwc3 DT platforms such as Exynos,

> although I've only tested on STih410 SoC.

> 

> Fixes: 4efb2f694114 ("usb: host: xhci-plat: add struct xhci_plat_priv")


Can you take this 1 charcter fix for the next -rc?

It fixes a regression introduced in commit 4efb2f694114 for usb3 for some
DT platforms.

Then Felipes series which re-works this code will hopefully be merged in the
next merge window.

regards,

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

Patch

diff --git a/drivers/usb/host/xhci-plat.h b/drivers/usb/host/xhci-plat.h
index 5a2e2e3..529c3c4 100644
--- a/drivers/usb/host/xhci-plat.h
+++ b/drivers/usb/host/xhci-plat.h
@@ -14,7 +14,7 @@ 
 #include "xhci.h"	/* for hcd_to_xhci() */
 
 enum xhci_plat_type {
-	XHCI_PLAT_TYPE_MARVELL_ARMADA,
+	XHCI_PLAT_TYPE_MARVELL_ARMADA = 1,
 	XHCI_PLAT_TYPE_RENESAS_RCAR_GEN2,
 	XHCI_PLAT_TYPE_RENESAS_RCAR_GEN3,
 };