Received: by 2002:ac8:156:0:b0:3e0:cd10:60c8 with SMTP id f22csp1804534qtg; Wed, 22 Mar 2023 02:34:24 -0700 (PDT) X-Google-Smtp-Source: AK7set9ftZNPrRgcmmqGsDvnfRRpHNawa2fiSh7edXx8MpLWZ1dhuG2QYtnUqHRequEuTA9SbKyj X-Received: by 2002:a05:6a20:4920:b0:db:4c00:7918 with SMTP id ft32-20020a056a20492000b000db4c007918mr1772269pzb.0.1679477664609; Wed, 22 Mar 2023 02:34:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679477664; cv=none; d=google.com; s=arc-20160816; b=DSYIZS+dhD8tesK3+hxYmroSFpU4a/Mw6vZnc18B9Ed5+cJmSyW9DM+ZEegL61riMJ D3Zfj+E0fFLDenboMFNF5PSJValkZBNmzTEOdFQeOdP6osKSam1yUlCKwil+CECSRbrx wwck2v+ys4KHUC5Bu7kPv9gDUpMv2Xvt+QOvQ2UmxijP/YQGvhm6GvUiv0YVn8HuIZWK E8D2/cfIGcMIFs3m0ATaexe2tFWS7o5+8qVuufcX5hLmEkhH3t52GptBGo5j2/t/ltms iUiYBj7k0CRHQRpPb9X8RP0buki0n0fTbeI3dtW40KphdtYJwHu9VcT0iSF04IgbU5WX NRqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=b6Y8GpOFIOLcRUarmY2l6YOUGSjiAhKgwNmUxmeC3do=; b=IgHa7brQaGflBFb1u32WaSKbeQTXTyKtB8wdgYHzErA8ZRyv7i8VDchZDzCvHzyVS5 t05ZBIsnX8NmMAdDLCBufCQKiHOG+IqOiJq0YK9OULM7kCaJcm+qZNKo1tRzQvHXeSmc N57zZkgQEPO2j1el2g2TIYQoYBGYsGHa15asl9GI+bXyLNAsDHbv0ob8JKEduiyBSPXH pHrFmhBUzswPKzm5wQXJwqkvw5J+DlltQkLYURZ/njnF7rURY9cX/lvaCMS/hVT2N7Nd E37XNGWpwTnxV/ZPSYYlhBQVZ+yWJ3LM+P8JB91YfFO+PC3XPerONxFnxKLDsWz0mrim dTkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=e2MhXttm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t126-20020a635f84000000b0050be565b856si15692190pgb.685.2023.03.22.02.34.13; Wed, 22 Mar 2023 02:34:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=e2MhXttm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230356AbjCVJ22 (ORCPT + 99 others); Wed, 22 Mar 2023 05:28:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230300AbjCVJ2R (ORCPT ); Wed, 22 Mar 2023 05:28:17 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 105E559ED; Wed, 22 Mar 2023 02:28:16 -0700 (PDT) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32M5nX5c001661; Wed, 22 Mar 2023 09:28:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=b6Y8GpOFIOLcRUarmY2l6YOUGSjiAhKgwNmUxmeC3do=; b=e2MhXttmX6q9Zi/0p/3tZP4P6KV7xemurzbt4frihcgLT37aRX/w3woux/x/P1rNEBjH U/mDh5xi2TEPh0iHkk0mm5VcUgtLxSgPwZAkRH7gQ3dsFLyRljV14sfcGo9Cx1kocXe4 bUdR6SHgSSg354BHhNhTd8Fs4wBly9a+SSq5yjChYK+9V7WfIXIl7h/8iRlE50tB7hHH WHx3lnkpyPwwPm6w2XRLnu17PFiomOcCewvg7CtQCQpgPe0EtbEWCH6noDybfHPoBNOa VS/fmKIUKLgbTMVPDsJFth0BW9MEjihoOeiqaMvZfrcZXMK5XhOyVKWjoyfE4bDi57px Mw== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pfbx030en-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Mar 2023 09:28:05 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32M9S4GC024262 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Mar 2023 09:28:04 GMT Received: from hu-kriskura-hyd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 22 Mar 2023 02:27:59 -0700 From: Krishna Kurapati To: Thinh Nguyen , Greg Kroah-Hartman , Alan Stern , "Rafael J . Wysocki" , Geert Uytterhoeven , Sebastian Reichel , Colin Ian King , Jiantao Zhang CC: , , , , , , Krishna Kurapati Subject: [RFC 2/2] usb: gadget: udc: Handle gadget_connect failure during bind operation Date: Wed, 22 Mar 2023 14:57:40 +0530 Message-ID: <20230322092740.28491-3-quic_kriskura@quicinc.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230322092740.28491-1-quic_kriskura@quicinc.com> References: <20230322092740.28491-1-quic_kriskura@quicinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: G8Ut7eFHfpCQLUoxhGpmeGGJQDfvjeo6 X-Proofpoint-ORIG-GUID: G8Ut7eFHfpCQLUoxhGpmeGGJQDfvjeo6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-22_06,2023-03-21_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 phishscore=0 lowpriorityscore=0 mlxlogscore=957 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303220069 X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the event, gadget_connect call (which invokes pullup) fails, propagate the error to udc bind operation which inturn sends the error to configfs. The userspace can then retry enumeartion if it chooses to. Signed-off-by: Krishna Kurapati --- drivers/usb/gadget/udc/core.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c index 23b0629a8774..26bfed5c3a45 100644 --- a/drivers/usb/gadget/udc/core.c +++ b/drivers/usb/gadget/udc/core.c @@ -1051,12 +1051,16 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); /* ------------------------------------------------------------------------- */ -static void usb_udc_connect_control(struct usb_udc *udc) +static int usb_udc_connect_control(struct usb_udc *udc) { + int ret; + if (udc->vbus) - usb_gadget_connect(udc->gadget); + ret = usb_gadget_connect(udc->gadget); else - usb_gadget_disconnect(udc->gadget); + ret = usb_gadget_disconnect(udc->gadget); + + return ret; } /** @@ -1500,11 +1504,16 @@ static int gadget_bind_driver(struct device *dev) if (ret) goto err_start; usb_gadget_enable_async_callbacks(udc); - usb_udc_connect_control(udc); + ret = usb_udc_connect_control(udc); + if (ret) + goto err_connect_control; kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; + err_connect_control: + usb_gadget_udc_stop(udc); + err_start: driver->unbind(udc->gadget); -- 2.40.0