[linux-sunxi] Re: [PATCH] usb: musb-new: Extend Allwinner quirk to newer SoCs

2021-04-27 Thread Jagan Teki
On Tue, Apr 27, 2021 at 1:41 PM Andre Przywara  wrote:
>
> On Tue, 27 Apr 2021 02:37:20 +0200
> Marek Vasut  wrote:
>
> Hi,
>
> > On 4/27/21 2:03 AM, Andre Przywara wrote:
> > > As the comment in musb_regs.h describes, Allwinner saves the
> > > MUSB_CONFIGDATA register, which always return 0 on those SoCs.
> > >
> > > This is also true for the H6 and H616, so extend the quirk to those
> > > controllers as well.
> > >
> > > This fixes USB peripheral mode on H6 and H616 boards.
> > >
> > > Signed-off-by: Andre Przywara 
> > > ---
> > >   drivers/usb/musb-new/musb_regs.h | 3 ++-
> > >   1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/usb/musb-new/musb_regs.h 
> > > b/drivers/usb/musb-new/musb_regs.h
> > > index c4d7203b851..bee1b715a95 100644
> > > --- a/drivers/usb/musb-new/musb_regs.h
> > > +++ b/drivers/usb/musb-new/musb_regs.h
> > > @@ -432,7 +432,8 @@ static inline u8 musb_read_ulpi_buscontrol(void 
> > > __iomem *mbase)
> > >   static inline u8 musb_read_configdata(void __iomem *mbase)
> > >   {
> > >   #if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T || \
> > > -   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I
> > > +   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I || \
> > > +   defined CONFIG_SUN50I_GEN_H6
> >
> > Isn't there some better solution then ever-growing list of macros to
> > check, like e.g. a single CONFIG_MACH_SUNXI ?
>
> I was wondering the same, but I think this does not apply to the older
> SoCs (we use ARCH_SUNXI in the two functions above and below, so I
> guess the differentiation here is deliberate). I will test this later.
>
> So we could probably use the quirk also for the older, working(?) SoCs,
> but I am not sure we should do that. CONFIG_SUN50I_GEN_H6 is already a
> symbol covering multiple SoCs, so ideally we won't need to add many
> more.
> I can have a look if we have other checks like that in the code, then
> maybe define a collective symbol for newer SoCs?

The better approach is to support config_read via musb_platform_ops.
If so, we can identify the offsets to endpoint registers using SoC
musb reg space and return the relevant 16-bit config value.

Jagan.

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/CAMty3ZB0twvNAu40D-2Sn5Z_6WYYNBB8c%3Dt-kmHfV-djM%3DWcKw%40mail.gmail.com.


[linux-sunxi] Re: [PATCH] usb: musb-new: Extend Allwinner quirk to newer SoCs

2021-04-27 Thread Marek Vasut

On 4/27/21 10:10 AM, Andre Przywara wrote:

On Tue, 27 Apr 2021 02:37:20 +0200
Marek Vasut  wrote:

Hi,


On 4/27/21 2:03 AM, Andre Przywara wrote:

As the comment in musb_regs.h describes, Allwinner saves the
MUSB_CONFIGDATA register, which always return 0 on those SoCs.

This is also true for the H6 and H616, so extend the quirk to those
controllers as well.

This fixes USB peripheral mode on H6 and H616 boards.

Signed-off-by: Andre Przywara 
---
   drivers/usb/musb-new/musb_regs.h | 3 ++-
   1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/musb-new/musb_regs.h b/drivers/usb/musb-new/musb_regs.h
index c4d7203b851..bee1b715a95 100644
--- a/drivers/usb/musb-new/musb_regs.h
+++ b/drivers/usb/musb-new/musb_regs.h
@@ -432,7 +432,8 @@ static inline u8 musb_read_ulpi_buscontrol(void __iomem 
*mbase)
   static inline u8 musb_read_configdata(void __iomem *mbase)
   {
   #if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T || \
-   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I
+   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I || \
+   defined CONFIG_SUN50I_GEN_H6


Isn't there some better solution then ever-growing list of macros to
check, like e.g. a single CONFIG_MACH_SUNXI ?


I was wondering the same, but I think this does not apply to the older
SoCs (we use ARCH_SUNXI in the two functions above and below, so I
guess the differentiation here is deliberate). I will test this later.

So we could probably use the quirk also for the older, working(?) SoCs,
but I am not sure we should do that. CONFIG_SUN50I_GEN_H6 is already a
symbol covering multiple SoCs, so ideally we won't need to add many
more.
I can have a look if we have other checks like that in the code, then
maybe define a collective symbol for newer SoCs?


Yes please

--
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/12519198-1e9e-c16c-f612-9539aee58972%40denx.de.


[linux-sunxi] Re: [PATCH] usb: musb-new: Extend Allwinner quirk to newer SoCs

2021-04-27 Thread Andre Przywara
On Tue, 27 Apr 2021 02:37:20 +0200
Marek Vasut  wrote:

Hi,

> On 4/27/21 2:03 AM, Andre Przywara wrote:
> > As the comment in musb_regs.h describes, Allwinner saves the
> > MUSB_CONFIGDATA register, which always return 0 on those SoCs.
> > 
> > This is also true for the H6 and H616, so extend the quirk to those
> > controllers as well.
> > 
> > This fixes USB peripheral mode on H6 and H616 boards.
> > 
> > Signed-off-by: Andre Przywara 
> > ---
> >   drivers/usb/musb-new/musb_regs.h | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/musb-new/musb_regs.h 
> > b/drivers/usb/musb-new/musb_regs.h
> > index c4d7203b851..bee1b715a95 100644
> > --- a/drivers/usb/musb-new/musb_regs.h
> > +++ b/drivers/usb/musb-new/musb_regs.h
> > @@ -432,7 +432,8 @@ static inline u8 musb_read_ulpi_buscontrol(void __iomem 
> > *mbase)
> >   static inline u8 musb_read_configdata(void __iomem *mbase)
> >   {
> >   #if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T || \
> > -   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I
> > +   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I || \
> > +   defined CONFIG_SUN50I_GEN_H6  
> 
> Isn't there some better solution then ever-growing list of macros to 
> check, like e.g. a single CONFIG_MACH_SUNXI ?

I was wondering the same, but I think this does not apply to the older
SoCs (we use ARCH_SUNXI in the two functions above and below, so I
guess the differentiation here is deliberate). I will test this later.

So we could probably use the quirk also for the older, working(?) SoCs,
but I am not sure we should do that. CONFIG_SUN50I_GEN_H6 is already a
symbol covering multiple SoCs, so ideally we won't need to add many
more.
I can have a look if we have other checks like that in the code, then
maybe define a collective symbol for newer SoCs?

Cheers,
Andre

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20210427091032.045d079d%40slackpad.fritz.box.


[linux-sunxi] Re: [PATCH] usb: musb-new: Extend Allwinner quirk to newer SoCs

2021-04-26 Thread Marek Vasut

On 4/27/21 2:03 AM, Andre Przywara wrote:

As the comment in musb_regs.h describes, Allwinner saves the
MUSB_CONFIGDATA register, which always return 0 on those SoCs.

This is also true for the H6 and H616, so extend the quirk to those
controllers as well.

This fixes USB peripheral mode on H6 and H616 boards.

Signed-off-by: Andre Przywara 
---
  drivers/usb/musb-new/musb_regs.h | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/musb-new/musb_regs.h b/drivers/usb/musb-new/musb_regs.h
index c4d7203b851..bee1b715a95 100644
--- a/drivers/usb/musb-new/musb_regs.h
+++ b/drivers/usb/musb-new/musb_regs.h
@@ -432,7 +432,8 @@ static inline u8 musb_read_ulpi_buscontrol(void __iomem 
*mbase)
  static inline u8 musb_read_configdata(void __iomem *mbase)
  {
  #if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T || \
-   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I
+   defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I || \
+   defined CONFIG_SUN50I_GEN_H6


Isn't there some better solution then ever-growing list of macros to 
check, like e.g. a single CONFIG_MACH_SUNXI ?


--
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/fece3df8-b2d5-ab42-13b6-94d4f04bfc4a%40denx.de.