Patch "power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce" has been added to the 5.10-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     power-supply-cpcap-charger-add-usleep-to-cpcap-charg.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0b120603449fb6c9d99d8892bb81718d40739e73
Author: Carl Philipp Klemm <philipp@xxxxxxxx>
Date:   Sun Jan 17 22:48:53 2021 +0100

    power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce
    
    [ Upstream commit 751faedf06e895a17e985a88ef5b6364ffd797ed ]
    
    Adds 80000 us sleep when the usb cable is plugged in to hopefully avoid
    bouncing contacts.
    
    Upon pluging in the usb cable vbus will bounce for some time, causing cpcap to
    dissconnect charging due to detecting an undervoltage condition. This is a
    scope of vbus on xt894 while quickly inserting the usb cable with firm force,
    probed at the far side of the usb socket and vbus loaded with approx 1k:
    http://uvos.xyz/maserati/usbplug.jpg.
    
    As can clearly be seen, vbus is all over the place for the first 15 ms or so
    with a small blip at ~40 ms this causes the cpcap to trip up and disable
    charging again.
    
    The delay helps cpcap_usb_detect avoid the worst of this. It is, however, still
    not ideal as strong vibrations can cause the issue to reapear any time during
    charging. I have however not been able to cause the device to stop charging due
    to this in practice as it is hard to vibrate the device such that the vbus pins
    start bouncing again but cpcap_usb_detect is not called again due to a detected
    disconnect/reconnect event.
    
    Signed-off-by: Carl Philipp Klemm <philipp@xxxxxxxx>
    Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/power/supply/cpcap-charger.c b/drivers/power/supply/cpcap-charger.c
index 22fff01425d6..891e1eb8e39d 100644
--- a/drivers/power/supply/cpcap-charger.c
+++ b/drivers/power/supply/cpcap-charger.c
@@ -633,6 +633,9 @@ static void cpcap_usb_detect(struct work_struct *work)
 		return;
 	}
 
+	/* Delay for 80ms to avoid vbus bouncing when usb cable is plugged in */
+	usleep_range(80000, 120000);
+
 	/* Throttle chrgcurr2 interrupt for charger done and retry */
 	switch (ddata->state) {
 	case CPCAP_CHARGER_CHARGING:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux