Signed-off-by: Pali Rohár <[email protected]>
---
drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 16 deletions(-)
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 9b22d94..62c13a2 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
test = musb_readb(musb->mregs, MUSB_TESTMODE);
- if (test & MUSB_TEST_FORCE_HOST)
+ if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
+ seq_printf(s, "force host full-speed\n");
+
+ else if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
+ seq_printf(s, "force host high-speed\n");
+
+ else if (test & MUSB_TEST_FORCE_HOST)
seq_printf(s, "force host\n");
- if (test & MUSB_TEST_FIFO_ACCESS)
+ else if (test & MUSB_TEST_FIFO_ACCESS)
seq_printf(s, "fifo access\n");
- if (test & MUSB_TEST_FORCE_FS)
+ else if (test & MUSB_TEST_FORCE_FS)
seq_printf(s, "force full-speed\n");
- if (test & MUSB_TEST_FORCE_HS)
+ else if (test & MUSB_TEST_FORCE_HS)
seq_printf(s, "force high-speed\n");
- if (test & MUSB_TEST_PACKET)
+ else if (test & MUSB_TEST_PACKET)
seq_printf(s, "test packet\n");
- if (test & MUSB_TEST_K)
+ else if (test & MUSB_TEST_K)
seq_printf(s, "test K\n");
- if (test & MUSB_TEST_J)
+ else if (test & MUSB_TEST_J)
seq_printf(s, "test J\n");
- if (test & MUSB_TEST_SE0_NAK)
+ else if (test & MUSB_TEST_SE0_NAK)
seq_printf(s, "test SE0 NAK\n");
return 0;
@@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
return -EFAULT;
- if (strstarts(buf, "force host"))
+ if (strstarts(buf, "force host full-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
+
+ else if (strstarts(buf, "force host high-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
+
+ else if (strstarts(buf, "force host"))
test = MUSB_TEST_FORCE_HOST;
- if (strstarts(buf, "fifo access"))
+ else if (strstarts(buf, "fifo access"))
test = MUSB_TEST_FIFO_ACCESS;
- if (strstarts(buf, "force full-speed"))
+ else if (strstarts(buf, "force full-speed"))
test = MUSB_TEST_FORCE_FS;
- if (strstarts(buf, "force high-speed"))
+ else if (strstarts(buf, "force high-speed"))
test = MUSB_TEST_FORCE_HS;
- if (strstarts(buf, "test packet")) {
+ else if (strstarts(buf, "test packet")) {
test = MUSB_TEST_PACKET;
musb_load_testpacket(musb);
}
- if (strstarts(buf, "test K"))
+ else if (strstarts(buf, "test K"))
test = MUSB_TEST_K;
- if (strstarts(buf, "test J"))
+ else if (strstarts(buf, "test J"))
test = MUSB_TEST_J;
- if (strstarts(buf, "test SE0 NAK"))
+ else if (strstarts(buf, "test SE0 NAK"))
test = MUSB_TEST_SE0_NAK;
musb_writeb(musb->mregs, MUSB_TESTMODE, test);
--
1.7.9.5
* Pali Rohár <[email protected]> [161214 06:48]:
We need this because .... and this allows debugging problems related to
...?
Regards,
Tony
On Wednesday 14 December 2016 16:34:31 Tony Lindgren wrote:
> * Pali Rohár <[email protected]> [161214 06:48]:
>
> We need this because .... and this allows debugging problems related
> to ...?
Hi! We have already discussion about it, search for older email with
Message-Id: <201601231357.32629@pali>
After that in June, Bin wanted from me to resend patch with changed
subject... but after that I forgot. Now I resent it.
--
Pali Rohár
[email protected]
* Pali Rohár <[email protected]> [161214 07:40]:
> On Wednesday 14 December 2016 16:34:31 Tony Lindgren wrote:
> > * Pali Rohár <[email protected]> [161214 06:48]:
> >
> > We need this because .... and this allows debugging problems related
> > to ...?
>
> Hi! We have already discussion about it, search for older email with
> Message-Id: <201601231357.32629@pali>
>
> After that in June, Bin wanted from me to resend patch with changed
> subject... but after that I forgot. Now I resent it.
What I meant is that the patch description is missing :)
Tony
On Wed, Dec 14, 2016 at 03:47:57PM +0100, Pali Roh?r wrote:
> Signed-off-by: Pali Roh?r <[email protected]>
> ---
> drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 16 deletions(-)
I don't accept patches without any changelog information, nor would I
ever expect any other maintainer to do so. Please read
Documentation/SubmittingPatches for how to write a good changelog
message.
thanks,
greg k-h
Based on the musb ug, force_host bit is allowed to be set along with
force_hs or force_fs bit.
It could help to implement forced host mode via testmode on Nokia N900.
Signed-off-by: Pali Rohár <[email protected]>
---
drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 16 deletions(-)
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 9b22d94..62c13a2 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
test = musb_readb(musb->mregs, MUSB_TESTMODE);
- if (test & MUSB_TEST_FORCE_HOST)
+ if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
+ seq_printf(s, "force host full-speed\n");
+
+ else if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
+ seq_printf(s, "force host high-speed\n");
+
+ else if (test & MUSB_TEST_FORCE_HOST)
seq_printf(s, "force host\n");
- if (test & MUSB_TEST_FIFO_ACCESS)
+ else if (test & MUSB_TEST_FIFO_ACCESS)
seq_printf(s, "fifo access\n");
- if (test & MUSB_TEST_FORCE_FS)
+ else if (test & MUSB_TEST_FORCE_FS)
seq_printf(s, "force full-speed\n");
- if (test & MUSB_TEST_FORCE_HS)
+ else if (test & MUSB_TEST_FORCE_HS)
seq_printf(s, "force high-speed\n");
- if (test & MUSB_TEST_PACKET)
+ else if (test & MUSB_TEST_PACKET)
seq_printf(s, "test packet\n");
- if (test & MUSB_TEST_K)
+ else if (test & MUSB_TEST_K)
seq_printf(s, "test K\n");
- if (test & MUSB_TEST_J)
+ else if (test & MUSB_TEST_J)
seq_printf(s, "test J\n");
- if (test & MUSB_TEST_SE0_NAK)
+ else if (test & MUSB_TEST_SE0_NAK)
seq_printf(s, "test SE0 NAK\n");
return 0;
@@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
return -EFAULT;
- if (strstarts(buf, "force host"))
+ if (strstarts(buf, "force host full-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
+
+ else if (strstarts(buf, "force host high-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
+
+ else if (strstarts(buf, "force host"))
test = MUSB_TEST_FORCE_HOST;
- if (strstarts(buf, "fifo access"))
+ else if (strstarts(buf, "fifo access"))
test = MUSB_TEST_FIFO_ACCESS;
- if (strstarts(buf, "force full-speed"))
+ else if (strstarts(buf, "force full-speed"))
test = MUSB_TEST_FORCE_FS;
- if (strstarts(buf, "force high-speed"))
+ else if (strstarts(buf, "force high-speed"))
test = MUSB_TEST_FORCE_HS;
- if (strstarts(buf, "test packet")) {
+ else if (strstarts(buf, "test packet")) {
test = MUSB_TEST_PACKET;
musb_load_testpacket(musb);
}
- if (strstarts(buf, "test K"))
+ else if (strstarts(buf, "test K"))
test = MUSB_TEST_K;
- if (strstarts(buf, "test J"))
+ else if (strstarts(buf, "test J"))
test = MUSB_TEST_J;
- if (strstarts(buf, "test SE0 NAK"))
+ else if (strstarts(buf, "test SE0 NAK"))
test = MUSB_TEST_SE0_NAK;
musb_writeb(musb->mregs, MUSB_TESTMODE, test);
--
1.7.9.5
On Wed, Dec 14, 2016 at 08:23:45PM +0100, Pali Roh?r wrote:
> Based on the musb ug, force_host bit is allowed to be set along with
> force_hs or force_fs bit.
>
> It could help to implement forced host mode via testmode on Nokia N900.
>
> Signed-off-by: Pali Roh?r <[email protected]>
> ---
> drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
> index 9b22d94..62c13a2 100644
> --- a/drivers/usb/musb/musb_debugfs.c
> +++ b/drivers/usb/musb/musb_debugfs.c
> @@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
>
> test = musb_readb(musb->mregs, MUSB_TESTMODE);
>
> - if (test & MUSB_TEST_FORCE_HOST)
> + if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS) ==
MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS)
or even simpler:
if (test == MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS)
since multiple tests at the same time are not allowed.
> + seq_printf(s, "force host full-speed\n");
> +
> + else if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
else if (test == MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS)
Regards,
-Bin.
Based on the musb ug, force_host bit is allowed to be set along with
force_hs or force_fs bit.
It could help to implement forced host mode via testmode on Nokia N900.
Signed-off-by: Pali Rohár <[email protected]>
---
Changes in v2:
* Use == instead of & for comparison of testmode
---
drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 16 deletions(-)
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 9b22d94..5308cea 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
test = musb_readb(musb->mregs, MUSB_TESTMODE);
- if (test & MUSB_TEST_FORCE_HOST)
+ if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
+ seq_printf(s, "force host full-speed\n");
+
+ else if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
+ seq_printf(s, "force host high-speed\n");
+
+ else if (test == MUSB_TEST_FORCE_HOST)
seq_printf(s, "force host\n");
- if (test & MUSB_TEST_FIFO_ACCESS)
+ else if (test == MUSB_TEST_FIFO_ACCESS)
seq_printf(s, "fifo access\n");
- if (test & MUSB_TEST_FORCE_FS)
+ else if (test == MUSB_TEST_FORCE_FS)
seq_printf(s, "force full-speed\n");
- if (test & MUSB_TEST_FORCE_HS)
+ else if (test == MUSB_TEST_FORCE_HS)
seq_printf(s, "force high-speed\n");
- if (test & MUSB_TEST_PACKET)
+ else if (test == MUSB_TEST_PACKET)
seq_printf(s, "test packet\n");
- if (test & MUSB_TEST_K)
+ else if (test == MUSB_TEST_K)
seq_printf(s, "test K\n");
- if (test & MUSB_TEST_J)
+ else if (test == MUSB_TEST_J)
seq_printf(s, "test J\n");
- if (test & MUSB_TEST_SE0_NAK)
+ else if (test == MUSB_TEST_SE0_NAK)
seq_printf(s, "test SE0 NAK\n");
return 0;
@@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
return -EFAULT;
- if (strstarts(buf, "force host"))
+ if (strstarts(buf, "force host full-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
+
+ else if (strstarts(buf, "force host high-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
+
+ else if (strstarts(buf, "force host"))
test = MUSB_TEST_FORCE_HOST;
- if (strstarts(buf, "fifo access"))
+ else if (strstarts(buf, "fifo access"))
test = MUSB_TEST_FIFO_ACCESS;
- if (strstarts(buf, "force full-speed"))
+ else if (strstarts(buf, "force full-speed"))
test = MUSB_TEST_FORCE_FS;
- if (strstarts(buf, "force high-speed"))
+ else if (strstarts(buf, "force high-speed"))
test = MUSB_TEST_FORCE_HS;
- if (strstarts(buf, "test packet")) {
+ else if (strstarts(buf, "test packet")) {
test = MUSB_TEST_PACKET;
musb_load_testpacket(musb);
}
- if (strstarts(buf, "test K"))
+ else if (strstarts(buf, "test K"))
test = MUSB_TEST_K;
- if (strstarts(buf, "test J"))
+ else if (strstarts(buf, "test J"))
test = MUSB_TEST_J;
- if (strstarts(buf, "test SE0 NAK"))
+ else if (strstarts(buf, "test SE0 NAK"))
test = MUSB_TEST_SE0_NAK;
musb_writeb(musb->mregs, MUSB_TESTMODE, test);
--
1.7.9.5
On Sun, Dec 18, 2016 at 12:54:40AM +0100, Pali Roh?r wrote:
> Based on the musb ug, force_host bit is allowed to be set along with
> force_hs or force_fs bit.
>
> It could help to implement forced host mode via testmode on Nokia N900.
>
> Signed-off-by: Pali Roh?r <[email protected]>
> ---
> Changes in v2:
> * Use == instead of & for comparison of testmode
> ---
> drivers/usb/musb/musb_debugfs.c | 44 +++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
> index 9b22d94..5308cea 100644
> --- a/drivers/usb/musb/musb_debugfs.c
> +++ b/drivers/usb/musb/musb_debugfs.c
> @@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
>
> test = musb_readb(musb->mregs, MUSB_TESTMODE);
>
> - if (test & MUSB_TEST_FORCE_HOST)
> + if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
> + seq_printf(s, "force host full-speed\n");
> +
> + else if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
> + seq_printf(s, "force host high-speed\n");
> +
> + else if (test == MUSB_TEST_FORCE_HOST)
> seq_printf(s, "force host\n");
>
> - if (test & MUSB_TEST_FIFO_ACCESS)
> + else if (test == MUSB_TEST_FIFO_ACCESS)
> seq_printf(s, "fifo access\n");
>
> - if (test & MUSB_TEST_FORCE_FS)
> + else if (test == MUSB_TEST_FORCE_FS)
> seq_printf(s, "force full-speed\n");
>
> - if (test & MUSB_TEST_FORCE_HS)
> + else if (test == MUSB_TEST_FORCE_HS)
> seq_printf(s, "force high-speed\n");
>
> - if (test & MUSB_TEST_PACKET)
> + else if (test == MUSB_TEST_PACKET)
> seq_printf(s, "test packet\n");
>
> - if (test & MUSB_TEST_K)
> + else if (test == MUSB_TEST_K)
> seq_printf(s, "test K\n");
>
> - if (test & MUSB_TEST_J)
> + else if (test == MUSB_TEST_J)
> seq_printf(s, "test J\n");
>
> - if (test & MUSB_TEST_SE0_NAK)
> + else if (test == MUSB_TEST_SE0_NAK)
> seq_printf(s, "test SE0 NAK\n");
>
> return 0;
> @@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
> if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
> return -EFAULT;
>
> - if (strstarts(buf, "force host"))
> + if (strstarts(buf, "force host full-speed"))
buf is only 18 bytes long, the string is not fully compared.
You might have to increase buf[] to 24 bytes.
Regards,
-Bin.
Based on the musb ug, force_host bit is allowed to be set along with
force_hs or force_fs bit.
It could help to implement forced host mode via testmode on Nokia N900.
Signed-off-by: Pali Rohár <[email protected]>
---
Changes in v2:
* Use == instead of & for comparison of testmode
Changes in v3:
* Increase buf[] to 24 bytes
---
drivers/usb/musb/musb_debugfs.c | 46 ++++++++++++++++++++++++---------------
1 file changed, 29 insertions(+), 17 deletions(-)
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 9b22d94..4d6c505 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
test = musb_readb(musb->mregs, MUSB_TESTMODE);
- if (test & MUSB_TEST_FORCE_HOST)
+ if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
+ seq_printf(s, "force host full-speed\n");
+
+ else if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
+ seq_printf(s, "force host high-speed\n");
+
+ else if (test == MUSB_TEST_FORCE_HOST)
seq_printf(s, "force host\n");
- if (test & MUSB_TEST_FIFO_ACCESS)
+ else if (test == MUSB_TEST_FIFO_ACCESS)
seq_printf(s, "fifo access\n");
- if (test & MUSB_TEST_FORCE_FS)
+ else if (test == MUSB_TEST_FORCE_FS)
seq_printf(s, "force full-speed\n");
- if (test & MUSB_TEST_FORCE_HS)
+ else if (test == MUSB_TEST_FORCE_HS)
seq_printf(s, "force high-speed\n");
- if (test & MUSB_TEST_PACKET)
+ else if (test == MUSB_TEST_PACKET)
seq_printf(s, "test packet\n");
- if (test & MUSB_TEST_K)
+ else if (test == MUSB_TEST_K)
seq_printf(s, "test K\n");
- if (test & MUSB_TEST_J)
+ else if (test == MUSB_TEST_J)
seq_printf(s, "test J\n");
- if (test & MUSB_TEST_SE0_NAK)
+ else if (test == MUSB_TEST_SE0_NAK)
seq_printf(s, "test SE0 NAK\n");
return 0;
@@ -192,7 +198,7 @@ static ssize_t musb_test_mode_write(struct file *file,
struct seq_file *s = file->private_data;
struct musb *musb = s->private;
u8 test;
- char buf[18];
+ char buf[24];
test = musb_readb(musb->mregs, MUSB_TESTMODE);
if (test) {
@@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
return -EFAULT;
- if (strstarts(buf, "force host"))
+ if (strstarts(buf, "force host full-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
+
+ else if (strstarts(buf, "force host high-speed"))
+ test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
+
+ else if (strstarts(buf, "force host"))
test = MUSB_TEST_FORCE_HOST;
- if (strstarts(buf, "fifo access"))
+ else if (strstarts(buf, "fifo access"))
test = MUSB_TEST_FIFO_ACCESS;
- if (strstarts(buf, "force full-speed"))
+ else if (strstarts(buf, "force full-speed"))
test = MUSB_TEST_FORCE_FS;
- if (strstarts(buf, "force high-speed"))
+ else if (strstarts(buf, "force high-speed"))
test = MUSB_TEST_FORCE_HS;
- if (strstarts(buf, "test packet")) {
+ else if (strstarts(buf, "test packet")) {
test = MUSB_TEST_PACKET;
musb_load_testpacket(musb);
}
- if (strstarts(buf, "test K"))
+ else if (strstarts(buf, "test K"))
test = MUSB_TEST_K;
- if (strstarts(buf, "test J"))
+ else if (strstarts(buf, "test J"))
test = MUSB_TEST_J;
- if (strstarts(buf, "test SE0 NAK"))
+ else if (strstarts(buf, "test SE0 NAK"))
test = MUSB_TEST_SE0_NAK;
musb_writeb(musb->mregs, MUSB_TESTMODE, test);
--
1.7.9.5
On Mon, Dec 19, 2016 at 04:23:47PM +0100, Pali Roh?r wrote:
> Based on the musb ug, force_host bit is allowed to be set along with
> force_hs or force_fs bit.
>
> It could help to implement forced host mode via testmode on Nokia N900.
>
> Signed-off-by: Pali Roh?r <[email protected]>
Applied. Thanks.
-Bin.
> ---
> Changes in v2:
> * Use == instead of & for comparison of testmode
> Changes in v3:
> * Increase buf[] to 24 bytes
> ---
> drivers/usb/musb/musb_debugfs.c | 46 ++++++++++++++++++++++++---------------
> 1 file changed, 29 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
> index 9b22d94..4d6c505 100644
> --- a/drivers/usb/musb/musb_debugfs.c
> +++ b/drivers/usb/musb/musb_debugfs.c
> @@ -147,28 +147,34 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
>
> test = musb_readb(musb->mregs, MUSB_TESTMODE);
>
> - if (test & MUSB_TEST_FORCE_HOST)
> + if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
> + seq_printf(s, "force host full-speed\n");
> +
> + else if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
> + seq_printf(s, "force host high-speed\n");
> +
> + else if (test == MUSB_TEST_FORCE_HOST)
> seq_printf(s, "force host\n");
>
> - if (test & MUSB_TEST_FIFO_ACCESS)
> + else if (test == MUSB_TEST_FIFO_ACCESS)
> seq_printf(s, "fifo access\n");
>
> - if (test & MUSB_TEST_FORCE_FS)
> + else if (test == MUSB_TEST_FORCE_FS)
> seq_printf(s, "force full-speed\n");
>
> - if (test & MUSB_TEST_FORCE_HS)
> + else if (test == MUSB_TEST_FORCE_HS)
> seq_printf(s, "force high-speed\n");
>
> - if (test & MUSB_TEST_PACKET)
> + else if (test == MUSB_TEST_PACKET)
> seq_printf(s, "test packet\n");
>
> - if (test & MUSB_TEST_K)
> + else if (test == MUSB_TEST_K)
> seq_printf(s, "test K\n");
>
> - if (test & MUSB_TEST_J)
> + else if (test == MUSB_TEST_J)
> seq_printf(s, "test J\n");
>
> - if (test & MUSB_TEST_SE0_NAK)
> + else if (test == MUSB_TEST_SE0_NAK)
> seq_printf(s, "test SE0 NAK\n");
>
> return 0;
> @@ -192,7 +198,7 @@ static ssize_t musb_test_mode_write(struct file *file,
> struct seq_file *s = file->private_data;
> struct musb *musb = s->private;
> u8 test;
> - char buf[18];
> + char buf[24];
>
> test = musb_readb(musb->mregs, MUSB_TESTMODE);
> if (test) {
> @@ -206,30 +212,36 @@ static ssize_t musb_test_mode_write(struct file *file,
> if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
> return -EFAULT;
>
> - if (strstarts(buf, "force host"))
> + if (strstarts(buf, "force host full-speed"))
> + test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
> +
> + else if (strstarts(buf, "force host high-speed"))
> + test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
> +
> + else if (strstarts(buf, "force host"))
> test = MUSB_TEST_FORCE_HOST;
>
> - if (strstarts(buf, "fifo access"))
> + else if (strstarts(buf, "fifo access"))
> test = MUSB_TEST_FIFO_ACCESS;
>
> - if (strstarts(buf, "force full-speed"))
> + else if (strstarts(buf, "force full-speed"))
> test = MUSB_TEST_FORCE_FS;
>
> - if (strstarts(buf, "force high-speed"))
> + else if (strstarts(buf, "force high-speed"))
> test = MUSB_TEST_FORCE_HS;
>
> - if (strstarts(buf, "test packet")) {
> + else if (strstarts(buf, "test packet")) {
> test = MUSB_TEST_PACKET;
> musb_load_testpacket(musb);
> }
>
> - if (strstarts(buf, "test K"))
> + else if (strstarts(buf, "test K"))
> test = MUSB_TEST_K;
>
> - if (strstarts(buf, "test J"))
> + else if (strstarts(buf, "test J"))
> test = MUSB_TEST_J;
>
> - if (strstarts(buf, "test SE0 NAK"))
> + else if (strstarts(buf, "test SE0 NAK"))
> test = MUSB_TEST_SE0_NAK;
>
> musb_writeb(musb->mregs, MUSB_TESTMODE, test);
> --
> 1.7.9.5
>