[GIT PULL] USB-serial fixes for v4.4-rc8

2015-12-31 Thread Johan Hovold
[ Resend with Subject added... ]

Hi Greg,

Here's a device id for 4.4-rc8 unless you prefer to wait until 4.5-rc1.

Thanks,
Johan


The following changes since commit 74bf8efb5fa6e958d2d7c7917b8bb672085ec0c6:

  Linux 4.4-rc7 (2015-12-27 18:17:37 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git 
tags/usb-serial-4.4-rc8

for you to fetch changes up to f7d7f59ab124748156ea551edf789994f05da342:

  USB: cp210x: add ID for ELV Marble Sound Board 1 (2015-12-28 19:07:35 +0100)


USB-serial fixes for v4.4-rc8

Here's another device id for cp210x.

Signed-off-by: Johan Hovold 


Oliver Freyermuth (1):
  USB: cp210x: add ID for ELV Marble Sound Board 1

 drivers/usb/serial/cp210x.c | 1 +
 1 file changed, 1 insertion(+)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[no subject]

2015-12-31 Thread Johan Hovold
The following changes since commit 74bf8efb5fa6e958d2d7c7917b8bb672085ec0c6:

  Linux 4.4-rc7 (2015-12-27 18:17:37 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git 
tags/usb-serial-4.4-rc8

for you to fetch changes up to f7d7f59ab124748156ea551edf789994f05da342:

  USB: cp210x: add ID for ELV Marble Sound Board 1 (2015-12-28 19:07:35 +0100)


USB-serial fixes for v4.4-rc8

Here's another device id for cp210x.

Signed-off-by: Johan Hovold 


Oliver Freyermuth (1):
  USB: cp210x: add ID for ELV Marble Sound Board 1

 drivers/usb/serial/cp210x.c | 1 +
 1 file changed, 1 insertion(+)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: rndis/cdc_ether usb device causing Oops in 4.4rc1+ with NULL dereference

2015-12-31 Thread Oliver Neukum
On Thu, 2015-12-31 at 07:22 +0300, Vasily Galkin wrote:
> rm *rc1*dmesgAfter switching from 4.3 to 4.4rc-s plugging device ID 1076:8002 
> GCT Semiconductor, Inc. LU150 LTE Modem [Yota LU150] causes kernel Oops.
> 
> The Oops is always reproducible when this device is plugged or system is 
> booted with it.
> Oops reproduced with debian's 4.4.rc6 and vanilla 4.4rcs 
> (http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4-rc1+cod1-wily/, tryied 
> without nvidia blob)
> After the oops system is semioperable - for example lsusb and rebooting hangs.
> 
> With debian's 4.3.0 and vanilla 4.3.3 
> (http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3.3-wily/) all works neraly 
> fine - device never causes Oops but rarely silently doesn't work showing that 
> cdc_ether driver is in use instead of typical rndis_host.
> 
> Here is the most interesting parts of Oops, full in attahced dmesg

Please try reverting 823bd3433424aa959499e6fd8f2da842430a8d42
and provide lsusb -v of your device.

Regards
Oliver



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] USB-serial updates for v4.5-rc1

2015-12-31 Thread Johan Hovold
Hi Greg,

Here are the usb-serial updates for 4.5-rc1.

These patches have all been in linux-next for a while except for the new
mxu11x0 driver (that has passed the 0-day testing).

Thanks,
Johan


The following changes since commit 8005c49d9aea74d382f474ce11afbbc7d7130bec:

  Linux 4.4-rc1 (2015-11-15 17:00:27 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git 
tags/usb-serial-4.5-rc1

for you to fetch changes up to 6ff9d2761b8655991f48f113f7edaefea5c92905:

  USB: mxu11x0: drop redundant function name from error messages (2015-12-29 
13:43:14 +0100)


USB-serial updates for v4.5-rc1

These updates add support for Moxa UPort 1100-series devices through a
new mxu11x0 driver.

The cp210x driver gains proper support for cp2108 devices by working
around a couple of firmware bugs, and generic wait-until-sent support
(e.g. for tcdrain) is also added.

Included are also some general clean ups.

Signed-off-by: Johan Hovold 


Geyslan G. Bem (2):
  USB: io_edgeport: remove redundant conditions
  USB: mos7840: remove redundant condition

Johan Hovold (6):
  USB: mxu11x0: fix memory leak in port-probe error path
  USB: mxu11x0: fix memory leak on firmware download
  USB: mxu11x0: fix modem-control handling on B0-transitions
  USB: mxu11x0: rename usb-serial driver
  USB: mxu11x0: fix debug-message typos
  USB: mxu11x0: drop redundant function name from error messages

Konstantin Shkolnyy (4):
  USB: cp210x: flush device queues at close
  USB: cp210x: relocate private data from USB interface to port
  USB: cp210x: work around cp2108 GET_LINE_CTL bug
  USB: cp210x: add tx_empty()

Mathieu OTHACEHE (1):
  USB: serial: add Moxa UPORT 11x0 driver

 drivers/usb/serial/Kconfig   |  16 +
 drivers/usb/serial/Makefile  |   1 +
 drivers/usb/serial/cp210x.c  | 186 +++-
 drivers/usb/serial/io_edgeport.c |  35 +-
 drivers/usb/serial/mos7840.c |   2 +-
 drivers/usb/serial/mxu11x0.c | 986 +++
 6 files changed, 1180 insertions(+), 46 deletions(-)
 create mode 100644 drivers/usb/serial/mxu11x0.c
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio bug: setting two custom baud rates in a row fails

2015-12-31 Thread Edwin Olson
Hi,

When setting custom baud rates with the ftdi_sio module using "method
#3" (setting the custom_divisor via TIOCSSERIAL), subsequent changes
to *another custom baud rate* do not  take effect.  For example, if I
change from baud rate 460800 (a "standard" rate) to 50 (a custom
rate), it works fine. If I then go directly to 1M baud, I stay at
50 baud. If I go from 460800->50->38400->1M, I reach 1M
correctly as well. Summary: it seems that transitioning from a
standard to a custom baud rate works; transitioning from one custom
baud rate to another does not (you stay in the old custom baud).

Here is a syslog showing the failure. The lines marked "setting baud"
are from my application so that we can see where each baud-setting
operation begins. Each operation includes a call to TIOCGSERIAL

[271243.499635] setting baud 460800
[271243.499701] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 460800
[271243.499704] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
460800 (divisor 0x4006) on chip FT232RL
[271243.503172] ftdi_sio ttyUSB0: ftdi_set_termios Turning off
hardware flow control
[271243.507837] ftdi_sio ttyUSB0: write_latency_timer: setting latency timer = 1
[271243.512342] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 460800
[271243.512345] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
460800 (divisor 0x4006) on chip FT232RL
[271243.580422] setting baud 50
[271243.580470] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 38400
[271243.580473] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
38400 (divisor 0xC04E) on chip FT232RL
[271243.583731] ftdi_sio ttyUSB0: ftdi_set_termios Turning off
hardware flow control
[271243.588774] ftdi_sio ttyUSB0: write_latency_timer: setting latency timer = 1
[271243.593480] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 38400
[271243.593484] ftdi_sio ttyUSB0: get_ftdi_divisor - custom divisor 48
sets baud rate to 50  ( NOTE)
[271243.593486] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
50 (divisor 0x6) on chip FT232RL
[271243.661457] setting baud 100
[271243.661500] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 38400
[271243.661502] ftdi_sio ttyUSB0: get_ftdi_divisor - custom divisor 48
sets baud rate to 50
[271243.661504] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
50 (divisor 0x6) on chip FT232RL
[271243.664801] ftdi_sio ttyUSB0: ftdi_set_termios Turning off
hardware flow control
[271243.669317] ftdi_sio ttyUSB0: write_latency_timer: setting latency timer = 1
[271243.673929] ftdi_sio ttyUSB0: get_ftdi_divisor - tty_get_baud_rate
reports speed 50  ( NOTE, no corresponding line)
[271243.673932] ftdi_sio ttyUSB0: get_ftdi_divisor - Baud rate set to
50 (divisor 0x6) on chip FT232RL
[271243.744304] ftdi_sio ttyUSB0: ftdi_get_modem_status - 0xf160

I think the problem is ultimately that two separate syscalls are
required to change a custom baud rate: set the baud rate to 38400,
then set the custom divisor. If one has a custom baud rate already
set, and then you set the baud rate to B38400, the driver immediately
recomputes the baud rate (using the "old" custom divisor). In other
words, it looks like you're trying to set a "new" custom baud rate,
but using the old custom divider. When the application then tries to
set the custom divider, the ftdi_sio driver sees that the baud rate
isn't 38400 and so ignores it. This logic is near line 1271:

1271 if (baud == 38400 &&
1272 ((priv->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST) &&
1273  (priv->custom_divisor)) {
1274 baud = priv->baud_base / priv->custom_divisor;
1275 dev_dbg(dev, "%s - custom divisor %d sets baud
rate to %d\n",
1276 __func__, priv->custom_divisor, baud);

I think that a reasonable solution is to remove the condition that baud==38400.

A tested work-around from user space is to first clear the
custom_divisor, then set 38400 baud, then reset the custom divisor.

I apologize that I'm not able to send a patch at this time.

Best,

-Ed

--
Edwin Olson
Assoc. Professor, Computer Science & Engineering
University of Michigan
http://april.eecs.umich.edu
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] staging: android: sync.c: Changed the ways nullptrs were being checked

2015-12-31 Thread Chase Metzger
Removed all checkpatch.pl CHECKs that suggested to check NULL by
!obj instead of obj == NULL.

Signed-off-by: Chase Metzger 
---
 drivers/staging/android/sync.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index f83e00c..5413f28 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -43,7 +43,7 @@ struct sync_timeline *sync_timeline_create(const struct 
sync_timeline_ops *ops,
return NULL;
 
obj = kzalloc(size, GFP_KERNEL);
-   if (obj == NULL)
+   if (!obj)
return NULL;
 
kref_init(>kref);
@@ -130,7 +130,7 @@ struct sync_pt *sync_pt_create(struct sync_timeline *obj, 
int size)
return NULL;
 
pt = kzalloc(size, GFP_KERNEL);
-   if (pt == NULL)
+   if (!pt)
return NULL;
 
spin_lock_irqsave(>child_list_lock, flags);
@@ -155,7 +155,7 @@ static struct sync_fence *sync_fence_alloc(int size, const 
char *name)
struct sync_fence *fence;
 
fence = kzalloc(size, GFP_KERNEL);
-   if (fence == NULL)
+   if (!fence)
return NULL;
 
fence->file = anon_inode_getfile("sync_fence", _fence_fops,
@@ -193,7 +193,7 @@ struct sync_fence *sync_fence_create(const char *name, 
struct sync_pt *pt)
struct sync_fence *fence;
 
fence = sync_fence_alloc(offsetof(struct sync_fence, cbs[1]), name);
-   if (fence == NULL)
+   if (!fence)
return NULL;
 
fence->num_fences = 1;
@@ -215,7 +215,7 @@ struct sync_fence *sync_fence_fdget(int fd)
 {
struct file *file = fget(fd);
 
-   if (file == NULL)
+   if (!file)
return NULL;
 
if (file->f_op != _fence_fops)
@@ -262,7 +262,7 @@ struct sync_fence *sync_fence_merge(const char *name,
unsigned long size = offsetof(struct sync_fence, cbs[num_fences]);
 
fence = sync_fence_alloc(size, name);
-   if (fence == NULL)
+   if (!fence)
return NULL;
 
atomic_set(>status, num_fences);
@@ -583,14 +583,14 @@ static long sync_fence_ioctl_merge(struct sync_fence 
*fence, unsigned long arg)
}
 
fence2 = sync_fence_fdget(data.fd2);
-   if (fence2 == NULL) {
+   if (!fence2) {
err = -ENOENT;
goto err_put_fd;
}
 
data.name[sizeof(data.name) - 1] = '\0';
fence3 = sync_fence_merge(data.name, fence, fence2);
-   if (fence3 == NULL) {
+   if (!fence3) {
err = -ENOMEM;
goto err_put_fence2;
}
@@ -666,7 +666,7 @@ static long sync_fence_ioctl_fence_info(struct sync_fence 
*fence,
size = 4096;
 
data = kzalloc(size, GFP_KERNEL);
-   if (data == NULL)
+   if (!data)
return -ENOMEM;
 
strlcpy(data->name, fence->name, sizeof(data->name));
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


musb module names in 4.4.0-rc7

2015-12-31 Thread Andreas Färber
Hi Felipe,

Using the openSUSE kernel config [1] I've noticed the following modules
get built for recent RCs:

/lib/modules/4.4.0-rc7-1.g276c9f4-lpae/kernel/drivers/usb/musb> ls
am35x.ko  musb_am335x.ko  musb_dsps.ko  musb_hdrc.ko  omap2430.ko  sunxi.ko

In my case I was testing on a sun9i based Optimus Board and needed to
specify "sunxi" as driver for dracut to add to my initrd for USB root.
Shouldn't that rather be "musb_sunxi" for module name uniqueness?

Same issue with am35x and omap2430 above, I guess.

Cheers and Happy New Year,
Andreas

[1] http://kernel.opensuse.org/cgit/kernel-source/tree/config/armv7hl

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] usb: core: devio.c: Removed unnecessary space

2015-12-31 Thread Chase Metzger
Removed an unnecessary space between a function name and arguments.

Signed-off-by: Chase Metzger 
---
 drivers/usb/core/devio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 38ae877c..0bcd45e 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -1910,7 +1910,7 @@ static int proc_releaseinterface(struct usb_dev_state 
*ps, void __user *arg)
ret = releaseintf(ps, ifnum);
if (ret < 0)
return ret;
-   destroy_async_on_interface (ps, ifnum);
+   destroy_async_on_interface(ps, ifnum);
return 0;
 }
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html