Re: Cypress CDC ACM serial port not working correctly with autosuspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Am Donnerstag, dem 23.03.2023 um 10:51 +0100 schrieb Oliver Neukum:
> On 18.03.23 13:09, Michael Laß wrote:
> >    --> no more communication
> 
> Just to be clear, the device is generating data, isn't it?
> So you would have expected data from a suspended device?

Yes, the remote device is programmed to print "Hello World" every three
seconds. Nothing should have stopped it from doing that.

> According to your earlier report, the device does support
> remote wakeup:
> 
> Bus 006 Device 010: ID 04b4:0008 Cypress Semiconductor Corp. CDC ACM
> serial port
> Device Descriptor:
>    bLength                18
>    bDescriptorType         1
>    bcdUSB               2.00
>    bDeviceClass            2 Communications
>    bDeviceSubClass         0
>    bDeviceProtocol         0
>    bMaxPacketSize0         8
>    idVendor           0x04b4 Cypress Semiconductor Corp.
>    idProduct          0x0008 CDC ACM serial port
>    bcdDevice            0.00
>    iManufacturer           1 2012 Cypress Semiconductor
>    iProduct                2 Cypress-USB2UART-Ver1.0G
>    iSerial                 4 827211C2091B
>    bNumConfigurations      1
>    Configuration Descriptor:
>      bLength                 9
>      bDescriptorType         2
>      wTotalLength       0x0043
>      bNumInterfaces          2
>      bConfigurationValue     1
>      iConfiguration          3 USB-UART Configuration
>      bmAttributes         0xa0
>        (Bus Powered)
>        Remote Wakeup
> 
> As far as I can tell, your device is simply broken and does not
> trigger
> a remote wakeup when it should. It will need a kernel quirk.

That's my impression as well. I had a look at the available USB device
quirks. Would USB_QUIRK_RESET_RESUME be the correct one in this case? 
Booting with "usbcore.quirks=04b4:0008:b" fixes the issue because
autosuspend is disabled when this quirk is set. The description of that
quirk ("device can't resume correctly so reset it instead") does
however not really match the issue at hand and suggests that the device
would still be put to sleep but reset on every wakeup. Is there a
better fitting quirk available?

Best regards,
Michael




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux