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 |
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
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 --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)
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(+)