From patchwork Wed Mar 22 09:27:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Kurapati X-Patchwork-Id: 73309 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp2244383wrt; Wed, 22 Mar 2023 02:33:09 -0700 (PDT) X-Google-Smtp-Source: AK7set9w5XN6GfrljaJV0rylNQj1uCQyTqBntSudzNks2H/0l5k7dET9t6zM8MoKyGcEgb0taMWw X-Received: by 2002:a50:ff0e:0:b0:4fb:5089:6e01 with SMTP id a14-20020a50ff0e000000b004fb50896e01mr6326779edu.6.1679477588929; Wed, 22 Mar 2023 02:33:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679477588; cv=none; d=google.com; s=arc-20160816; b=WdepQt5lY093vsOM5NEumF4+5JlQa9liYmvoqTBY1/pCX54j9hMy2Dw2sE7E4JucMZ McmLPqUf/3curXtrQ9WUF+teWHJ6El5ffiWIBz1ZJUke6EwQ88bxz6vZbxalpUgprtui CJC48i+9dR5TblvOo9WzJTAupJzZjGEq3ryi4u9j8EWt60s8uZgT4E0XZBWp8A19CyDI XwHoZMvhcf6ZQG2JFvaQ5wPERemT9CowLP2tgDo0ZEn9t0xgRmLBIIVgvnvKDUQzXbBH IwtWorlIbT+f/9soo+FndA/uMEaADP9HkfCyIjJJh4vEO8RpU9pPPbTKZSZBDovO9sAv Qhaw== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l5-20020a056402344500b004acda6e2e65si13162263edc.43.2023.03.22.02.32.46; Wed, 22 Mar 2023 02:33:08 -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 S230393AbjCVJ22 (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 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761059892282241581?= X-GMAIL-MSGID: =?utf-8?q?1761059892282241581?= 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);