usb: musb: only set test mode once
The MUSB test mode register can only be set once, otherwise the result is undefined. This prevents the debugfs testmode entry to set the register more than once which causes test failure. Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Родитель
d72348fb5c
Коммит
205845ef70
|
@ -191,9 +191,16 @@ static ssize_t musb_test_mode_write(struct file *file,
|
||||||
{
|
{
|
||||||
struct seq_file *s = file->private_data;
|
struct seq_file *s = file->private_data;
|
||||||
struct musb *musb = s->private;
|
struct musb *musb = s->private;
|
||||||
u8 test = 0;
|
u8 test;
|
||||||
char buf[18];
|
char buf[18];
|
||||||
|
|
||||||
|
test = musb_readb(musb->mregs, MUSB_TESTMODE);
|
||||||
|
if (test) {
|
||||||
|
dev_err(musb->controller, "Error: test mode is already set. "
|
||||||
|
"Please do USB Bus Reset to start a new test.\n");
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
memset(buf, 0x00, sizeof(buf));
|
memset(buf, 0x00, sizeof(buf));
|
||||||
|
|
||||||
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
|
if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче