From 458d45cbf0fd1bcf95113166769753ea35deed24 Mon Sep 17 00:00:00 2001 From: Rakesh Babu Bodla Date: Wed, 3 Feb 2016 16:07:53 +0530 Subject: [PATCH 1/1] usb: gadget: tegra: update vbus status properly vbus status needs to be set to true, even if charger is connected. Bug 200105851 Change-Id: I02a32e9372f526c16b4448cf8ded67ef8fd8c7b2 Signed-off-by: Rakesh Babu Bodla Reviewed-on: http://git-master/r/1002306 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Shreshtha Sahu Reviewed-by: Winnie Hsu --- drivers/usb/gadget/tegra_udc.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/tegra_udc.c b/drivers/usb/gadget/tegra_udc.c index 0902a925575..7063ebaabd0 100644 --- a/drivers/usb/gadget/tegra_udc.c +++ b/drivers/usb/gadget/tegra_udc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2015, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2012-2016, NVIDIA CORPORATION. All rights reserved. * * Description: * High-speed USB device controller driver. @@ -167,10 +167,28 @@ static inline bool vbus_enabled(struct tegra_udc *udc) * of VBUS status.*/ status = (udc_readl(udc, VBUS_SENSOR_REG_OFFSET) & USB_SYS_VBUS_ASESSION); - } else if (!udc->support_pmu_vbus) { + } else if (udc->support_pmu_vbus) { + if (udc->vbus_extcon_dev && + extcon_get_cable_state(udc->vbus_extcon_dev, "USB")) + return true; + + if (udc->aca_nv_extcon_cable && + extcon_get_cable_state_(udc->aca_nv_extcon_dev, + udc->aca_nv_extcon_cable->cable_index)) + return true; + + if (udc->aca_rid_b_ecable && + extcon_get_cable_state_(udc->aca_rid_b_ecable->edev, + udc->aca_rid_b_ecable->cable_index)) + return true; + + if (udc->aca_rid_c_ecable && + extcon_get_cable_state_(udc->aca_rid_c_ecable->edev, + udc->aca_rid_c_ecable->cable_index)) + return true; + } else status = (udc_readl(udc, VBUS_WAKEUP_REG_OFFSET) & USB_SYS_VBUS_STATUS); - } return status; } -- 2.39.2