diff mbox series

usb: dwc2: suppress confusing warnings on BCM2835

Message ID 1550600574-3674-1-git-send-email-stefan.wahren@i2se.com (mailing list archive)
State New, archived
Headers show
Series usb: dwc2: suppress confusing warnings on BCM2835 | expand

Commit Message

Stefan Wahren Feb. 19, 2019, 6:22 p.m. UTC
According to the BCM2835 datasheet the used Synopsys IP isn't a LPM-capable
core. So disable these features and suppress these confusing warnings:

dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm=1
dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm_clock_gating=1
dwc2 3f980000.usb: dwc2_check_params: Invalid parameter besl=1
dwc2 3f980000.usb: dwc2_check_params: Invalid parameter hird_threshold_en=1

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 drivers/usb/dwc2/params.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Minas Harutyunyan Feb. 21, 2019, 7:34 a.m. UTC | #1
Hi Stefan,

On 2/19/2019 10:23 PM, Stefan Wahren wrote:
> According to the BCM2835 datasheet the used Synopsys IP isn't a LPM-capable
> core. So disable these features and suppress these confusing warnings:
> 
> dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm=1
> dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm_clock_gating=1
> dwc2 3f980000.usb: dwc2_check_params: Invalid parameter besl=1
> dwc2 3f980000.usb: dwc2_check_params: Invalid parameter hird_threshold_en=1
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>   drivers/usb/dwc2/params.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
> index 24ff5f2..a158abb 100644
> --- a/drivers/usb/dwc2/params.c
> +++ b/drivers/usb/dwc2/params.c
> @@ -47,6 +47,10 @@ static void dwc2_set_bcm_params(struct dwc2_hsotg *hsotg)
>   	p->max_transfer_size = 65535;
>   	p->max_packet_count = 511;
>   	p->ahbcfg = 0x10;
> +	p->lpm = false;
> +	p->lpm_clock_gating = false;
> +	p->besl = false;
> +	p->hird_threshold_en = false;
>   }
>   
>   static void dwc2_set_his_params(struct dwc2_hsotg *hsotg)
> 

What about to apply below patch:


diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index c1912627a032..6b86aa42f003 100644
--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -303,11 +303,17 @@ static void dwc2_set_default_params(struct 
dwc2_hsotg *hsotg)
         p->reload_ctl = (hw->snpsid >= DWC2_CORE_REV_2_92a);
         p->uframe_sched = true;
         p->external_id_pin_ctl = false;
-       p->lpm = true;
-       p->lpm_clock_gating = true;
-       p->besl = true;
-       p->hird_threshold_en = true;
-       p->hird_threshold = 4;
+       p->lpm = hw->lpm_mode;
+       if (p->lpm) {
+               p->lpm_clock_gating = true;
+               p->besl = true;
+               p->hird_threshold_en = true;
+               p->hird_threshold = 4;
+       } else {
+               p->lpm_clock_gating = false;
+               p->besl = false;
+               p->hird_threshold_en = false;
+       }
         p->ipg_isoc_en = false;
         p->service_interval = false;
         p->max_packet_count = hw->max_packet_count;



Thanks,
Minas
Stefan Wahren March 1, 2019, 7:39 p.m. UTC | #2
Hi Minas,

sorry for the delay, i was too busy with other issues.

> Minas Harutyunyan <minas.harutyunyan@synopsys.com> hat am 21. Februar 2019 um 08:34 geschrieben:
> 
> 
> Hi Stefan,
> 
> On 2/19/2019 10:23 PM, Stefan Wahren wrote:
> > According to the BCM2835 datasheet the used Synopsys IP isn't a LPM-capable
> > core. So disable these features and suppress these confusing warnings:
> > 
> > dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm=1
> > dwc2 3f980000.usb: dwc2_check_params: Invalid parameter lpm_clock_gating=1
> > dwc2 3f980000.usb: dwc2_check_params: Invalid parameter besl=1
> > dwc2 3f980000.usb: dwc2_check_params: Invalid parameter hird_threshold_en=1
> > 
> > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> > ---
> >   drivers/usb/dwc2/params.c | 4 ++++
> >   1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
> > index 24ff5f2..a158abb 100644
> > --- a/drivers/usb/dwc2/params.c
> > +++ b/drivers/usb/dwc2/params.c
> > @@ -47,6 +47,10 @@ static void dwc2_set_bcm_params(struct dwc2_hsotg *hsotg)
> >   	p->max_transfer_size = 65535;
> >   	p->max_packet_count = 511;
> >   	p->ahbcfg = 0x10;
> > +	p->lpm = false;
> > +	p->lpm_clock_gating = false;
> > +	p->besl = false;
> > +	p->hird_threshold_en = false;
> >   }
> >   
> >   static void dwc2_set_his_params(struct dwc2_hsotg *hsotg)
> > 
> 
> What about to apply below patch:

yes, this is a more general solution.

Tested-by: Stefan Wahren <stefan.wahren@i2se.com>

> 
> 
> diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
> index c1912627a032..6b86aa42f003 100644
> --- a/drivers/usb/dwc2/params.c
> +++ b/drivers/usb/dwc2/params.c
> @@ -303,11 +303,17 @@ static void dwc2_set_default_params(struct 
> dwc2_hsotg *hsotg)
>          p->reload_ctl = (hw->snpsid >= DWC2_CORE_REV_2_92a);
>          p->uframe_sched = true;
>          p->external_id_pin_ctl = false;
> -       p->lpm = true;
> -       p->lpm_clock_gating = true;
> -       p->besl = true;
> -       p->hird_threshold_en = true;
> -       p->hird_threshold = 4;
> +       p->lpm = hw->lpm_mode;
> +       if (p->lpm) {
> +               p->lpm_clock_gating = true;
> +               p->besl = true;
> +               p->hird_threshold_en = true;
> +               p->hird_threshold = 4;
> +       } else {
> +               p->lpm_clock_gating = false;
> +               p->besl = false;
> +               p->hird_threshold_en = false;
> +       }
>          p->ipg_isoc_en = false;
>          p->service_interval = false;
>          p->max_packet_count = hw->max_packet_count;
> 
> 
> 
> Thanks,
> Minas
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox series

Patch

diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index 24ff5f2..a158abb 100644
--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -47,6 +47,10 @@  static void dwc2_set_bcm_params(struct dwc2_hsotg *hsotg)
 	p->max_transfer_size = 65535;
 	p->max_packet_count = 511;
 	p->ahbcfg = 0x10;
+	p->lpm = false;
+	p->lpm_clock_gating = false;
+	p->besl = false;
+	p->hird_threshold_en = false;
 }
 
 static void dwc2_set_his_params(struct dwc2_hsotg *hsotg)