* [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
@ 2013-11-29 2:07 Chris Ruehl
2013-11-29 3:27 ` Peter Chen
2013-11-29 10:50 ` Michael Grzeschik
0 siblings, 2 replies; 5+ messages in thread
From: Chris Ruehl @ 2013-11-29 2:07 UTC (permalink / raw)
To: alexander.shishkin, gregkh; +Cc: linux-usb, linux-kernel, Chris Ruehl
* init the sts flag to 0 (missed)
* set the sts flag only if not 0
Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
---
drivers/usb/chipidea/core.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 5075407..1a6010e 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -245,6 +245,8 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
{
u32 portsc, lpm, sts;
+ sts = 0;
+
switch (ci->platdata->phy_mode) {
case USBPHY_INTERFACE_MODE_UTMI:
portsc = PORTSC_PTS(PTS_UTMI);
@@ -273,10 +275,12 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
if (ci->hw_bank.lpm) {
hw_write(ci, OP_DEVLC, DEVLC_PTS(7) | DEVLC_PTW, lpm);
- hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
+ if (sts)
+ hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
} else {
hw_write(ci, OP_PORTSC, PORTSC_PTS(7) | PORTSC_PTW, portsc);
- hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
+ if ( sts )
+ hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
}
}
--
1.7.10.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
2013-11-29 2:07 [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag Chris Ruehl
@ 2013-11-29 3:27 ` Peter Chen
2013-11-29 4:40 ` Chris Ruehl
2013-11-29 10:50 ` Michael Grzeschik
1 sibling, 1 reply; 5+ messages in thread
From: Peter Chen @ 2013-11-29 3:27 UTC (permalink / raw)
To: Chris Ruehl, alexander.shishkin, gregkh; +Cc: linux-usb, linux-kernel
>
> * init the sts flag to 0 (missed)
> * set the sts flag only if not 0
>
does PORTSC_STS bit as 1 or 0 affect your case?
If not, please remove hw_write(ci, OP_DEVLC, DEVLC_STS, sts),
since it is useless at current code logic.
Peter
> Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> ---
> drivers/usb/chipidea/core.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 5075407..1a6010e 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -245,6 +245,8 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
> {
> u32 portsc, lpm, sts;
>
> + sts = 0;
> +
> switch (ci->platdata->phy_mode) {
> case USBPHY_INTERFACE_MODE_UTMI:
> portsc = PORTSC_PTS(PTS_UTMI);
> @@ -273,10 +275,12 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
>
> if (ci->hw_bank.lpm) {
> hw_write(ci, OP_DEVLC, DEVLC_PTS(7) | DEVLC_PTW, lpm);
> - hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
> + if (sts)
> + hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
> } else {
> hw_write(ci, OP_PORTSC, PORTSC_PTS(7) | PORTSC_PTW, portsc);
> - hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> + if ( sts )
> + hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> }
> }
>
> --
> 1.7.10.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
2013-11-29 3:27 ` Peter Chen
@ 2013-11-29 4:40 ` Chris Ruehl
2013-11-29 4:47 ` Peter Chen
0 siblings, 1 reply; 5+ messages in thread
From: Chris Ruehl @ 2013-11-29 4:40 UTC (permalink / raw)
To: Peter Chen; +Cc: alexander.shishkin, gregkh, linux-usb, linux-kernel
On Friday, November 29, 2013 11:27 AM, Peter Chen wrote:
>
>> * init the sts flag to 0 (missed)
>> * set the sts flag only if not 0
>>
> does PORTSC_STS bit as 1 or 0 affect your case?
> If not, please remove hw_write(ci, OP_DEVLC, DEVLC_STS, sts),
> since it is useless at current code logic.
>
> Peter
Peter,
in the switch statement sts is set to 1 therefore I think its used.
case USBPHY_INTERFACE_MODE_SERIAL:
portsc = PORTSC_PTS(PTS_SERIAL);
lpm = DEVLC_PTS(PTS_SERIAL);
sts = 1;
break;
Regards
Chris
>
>> Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
>> ---
>> drivers/usb/chipidea/core.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
>> index 5075407..1a6010e 100644
>> --- a/drivers/usb/chipidea/core.c
>> +++ b/drivers/usb/chipidea/core.c
>> @@ -245,6 +245,8 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
>> {
>> u32 portsc, lpm, sts;
>>
>> + sts = 0;
>> +
>> switch (ci->platdata->phy_mode) {
>> case USBPHY_INTERFACE_MODE_UTMI:
>> portsc = PORTSC_PTS(PTS_UTMI);
>> @@ -273,10 +275,12 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
>>
>> if (ci->hw_bank.lpm) {
>> hw_write(ci, OP_DEVLC, DEVLC_PTS(7) | DEVLC_PTW, lpm);
>> - hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
>> + if (sts)
>> + hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
>> } else {
>> hw_write(ci, OP_PORTSC, PORTSC_PTS(7) | PORTSC_PTW, portsc);
>> - hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
>> + if ( sts )
>> + hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
>> }
>> }
>>
>> --
>> 1.7.10.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
2013-11-29 4:40 ` Chris Ruehl
@ 2013-11-29 4:47 ` Peter Chen
0 siblings, 0 replies; 5+ messages in thread
From: Peter Chen @ 2013-11-29 4:47 UTC (permalink / raw)
To: Chris Ruehl; +Cc: alexander.shishkin, gregkh, linux-usb, linux-kernel
>
> On Friday, November 29, 2013 11:27 AM, Peter Chen wrote:
> >
> >> * init the sts flag to 0 (missed)
> >> * set the sts flag only if not 0
> >>
> > does PORTSC_STS bit as 1 or 0 affect your case?
> > If not, please remove hw_write(ci, OP_DEVLC, DEVLC_STS, sts),
> > since it is useless at current code logic.
> >
> > Peter
>
> Peter,
>
> in the switch statement sts is set to 1 therefore I think its used.
>
> case USBPHY_INTERFACE_MODE_SERIAL:
> portsc = PORTSC_PTS(PTS_SERIAL);
> lpm = DEVLC_PTS(PTS_SERIAL);
> sts = 1;
> break;
>
> Regards
> Chris
>
>
Yes, you are right. It is just not showed at the patch.
Would you move the sts = 0 to sts declaration, it can reduce the code line.
u32 portsc, lpm, sts = 0;
> >
> >> Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> >> ---
> >> drivers/usb/chipidea/core.c | 8 ++++++--
> >> 1 file changed, 6 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> >> index 5075407..1a6010e 100644
> >> --- a/drivers/usb/chipidea/core.c
> >> +++ b/drivers/usb/chipidea/core.c
> >> @@ -245,6 +245,8 @@ static void hw_phymode_configure(struct ci_hdrc
> *ci)
> >> {
> >> u32 portsc, lpm, sts;
> >>
> >> + sts = 0;
> >> +
> >> switch (ci->platdata->phy_mode) {
> >> case USBPHY_INTERFACE_MODE_UTMI:
> >> portsc = PORTSC_PTS(PTS_UTMI);
> >> @@ -273,10 +275,12 @@ static void hw_phymode_configure(struct ci_hdrc
> *ci)
> >>
> >> if (ci->hw_bank.lpm) {
> >> hw_write(ci, OP_DEVLC, DEVLC_PTS(7) | DEVLC_PTW, lpm);
> >> - hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
> >> + if (sts)
> >> + hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
> >> } else {
> >> hw_write(ci, OP_PORTSC, PORTSC_PTS(7) | PORTSC_PTW, portsc);
> >> - hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> >> + if ( sts )
> >> + hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> >> }
> >> }
> >>
> >> --
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
2013-11-29 2:07 [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag Chris Ruehl
2013-11-29 3:27 ` Peter Chen
@ 2013-11-29 10:50 ` Michael Grzeschik
1 sibling, 0 replies; 5+ messages in thread
From: Michael Grzeschik @ 2013-11-29 10:50 UTC (permalink / raw)
To: Chris Ruehl; +Cc: alexander.shishkin, gregkh, linux-usb, linux-kernel
On Fri, Nov 29, 2013 at 10:07:49AM +0800, Chris Ruehl wrote:
> * init the sts flag to 0 (missed)
> * set the sts flag only if not 0
>
> Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> ---
> drivers/usb/chipidea/core.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 5075407..1a6010e 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -245,6 +245,8 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
> {
> u32 portsc, lpm, sts;
>
> + sts = 0;
> +
This makes sense, but should be moved up to the
variable declartion:
- u32 portsc, lpm, sts;
+ u32 portsc, lpm, sts = 0;
> switch (ci->platdata->phy_mode) {
> case USBPHY_INTERFACE_MODE_UTMI:
> portsc = PORTSC_PTS(PTS_UTMI);
> @@ -273,10 +275,12 @@ static void hw_phymode_configure(struct ci_hdrc *ci)
>
> if (ci->hw_bank.lpm) {
> hw_write(ci, OP_DEVLC, DEVLC_PTS(7) | DEVLC_PTW, lpm);
> - hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
> + if (sts)
> + hw_write(ci, OP_DEVLC, DEVLC_STS, sts);
What is wrong with explicit setting DEVLC_STS to 0 if we
know that we don't use serial phy mode?
> } else {
> hw_write(ci, OP_PORTSC, PORTSC_PTS(7) | PORTSC_PTW, portsc);
> - hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> + if ( sts )
> + hw_write(ci, OP_PORTSC, PORTSC_STS, sts);
> }
> }
ditto
Regards,
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-11-29 10:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-29 2:07 [PATCH 2/3] usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag Chris Ruehl
2013-11-29 3:27 ` Peter Chen
2013-11-29 4:40 ` Chris Ruehl
2013-11-29 4:47 ` Peter Chen
2013-11-29 10:50 ` Michael Grzeschik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®