From e9e0c0ecf2cd988e3ccdaf7b48b6a503c6c56cb7 Mon Sep 17 00:00:00 2001 From: Raghavendra Rao Ananta Date: Tue, 25 Aug 2020 11:16:21 -0700 Subject: [PATCH] soc: qcom: eud: Update the state of extcon too during probe If EUD is enabled by the bootloader, currently the kernel driver only enables the interrupts. However, the USB/extcon will still see that the cable is disconnected as the EUD driver doesn't set an initial state. Hence, explicitly set the state of the USB as 'true' (connected) if the driver's probe realises that EUD is already enabled by the bootloader. Change-Id: I27c7fde4667c72698fa3da042361829a692792cc Signed-off-by: Raghavendra Rao Ananta --- drivers/soc/qcom/eud.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/soc/qcom/eud.c b/drivers/soc/qcom/eud.c index f793266fe754..565bd2dde5e3 100644 --- a/drivers/soc/qcom/eud.c +++ b/drivers/soc/qcom/eud.c @@ -717,6 +717,22 @@ static int msm_eud_probe(struct platform_device *pdev) /* Proceed enable other EUD elements if bootloader has enabled it */ if (msm_eud_hw_is_enabled(pdev)) { msm_eud_enable_irqs(chip); + + /* + * Set the default cable state to usb connect and charger + * enable + */ + ret = extcon_set_state_sync(chip->extcon, EXTCON_USB, true); + if (ret) + dev_warn(&pdev->dev, "Failed to set EXTCON_USB (%d)\n", + ret); + + ret = extcon_set_state_sync(chip->extcon, + EXTCON_CHG_USB_SDP, true); + if (ret) + dev_warn(&pdev->dev, + "Failed to set EXTCON_CHG_USB_SDP (%d)\n", ret); + enable = EUD_ENABLE_CMD; }