• Ming Lei's avatar
    USB: ch341 serial: fix port number changed after resume · 1ded7ea4
    Ming Lei authored
    This patch fixes the following bug:
    	.plug ch341 usb serial port into a hub port;
    	.ch341 driver bound to the device and /dev/ttyUSB0 comes
    	.open /dev/ttyUSB0 by minicom and we can use the serial successfully
    	.suspend the ch341 usb serial device(such as: echo suspend > power/level)
    	.resume the ch341 usb serial device (such as: echo on > power/level)
    	.new port /dev/ttyUSB1 comes ,and the original /dev/ttyUSB0 still exists,
    but is no longer usable by minicom
    
    The patch adds suspend and resume callback to ch341 usb driver to prevent it
    from unbinding during suspend. The /dev/ttyUSB0 is not released until being
    closed, so /dev/ttyUSB1 comes after resume, and the original /dev/ttyUSB0 is
    no longer usable by minicom. It is really a mess for a minicom user.
    
    This patch also adds the reset_resume callback to make it usable after resuming
    from STR or hibernation, for generally STR or hibernation will make the vbus
    of root-hub lost.
    
    Finally enable the driver's supports_autosuspend, for the device is in working
    order with it.
    Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    1ded7ea4
ch341.c 14.9 KB