From nobody Fri May  9 22:31:39 2025
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id B67FF24C082
	for <linux-kernel@vger.kernel.org>; Thu,  3 Apr 2025 11:08:17 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
 arc=none smtp.client-ip=205.220.180.131
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1743678499; cv=none;
 b=HVm4o90En2ks5ygElqw0WgLpzFHI8di+uHlmUKJ3C1qhkJcuh0SVJ/ywBn60UhMgo9r/vdGYBtIApztrPQAlEhP1wVOaKXKj0Upm23GJciwQvZxFlZDp6e60aiSrMJXbUEE2yhFuMNKtwpylb0PU2GKtqJHghrtwXYNRCWMp4cU=
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1743678499; c=relaxed/simple;
	bh=CKNZ75iDINw6MC6IL4iuJlsbLi60jIt9XSgEtpjGV8A=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version;
 b=V4pjiL7k9JQmoTq7HB5hUe1mQQ9DbKk/zGJ9B4KWlXGUKpxYcXigP3MtzKMBjvxOrVlWDQvSipCOzRrCDXs/t5PJVVCx4MbJhgmcNHrv3wxRMeRrmk0B//LB6zEh/CA1AOO54IvldkGUyk4OQdetgV5+CZWWejvzK7LJW6rqInw=
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
 dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;
 spf=pass smtp.mailfrom=oss.qualcomm.com;
 dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com
 header.b=H11qWvkP; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org;
 dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
 spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com
 header.b="H11qWvkP"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id
 533A4MAW016513
	for <linux-kernel@vger.kernel.org>; Thu, 3 Apr 2025 11:08:16 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=qcppdkim1; bh=mOjHDkSlrc5
	FA5+7P3anTxnDru4TLkY0T08z6RqNU0s=; b=H11qWvkPdqr1UeKyjB97NXNslSb
	cQsMK0YhwzY50PgFnTkwsz6FaJ+DWpZAAe5K2T3V1qFQQXQe2kVEZyMz8kel0chi
	HMx2IkxYjTITmC8ezBlQGGX5DYO0kEooDDBk2KY6VFhWrGQjK3CjjYDYhkw80emf
	/GfDIL3US75LWBleMPAVI81R/Ma808Mt7cXi6neEzljAd0k5K97PKwODbxP3zKbl
	HKjinxJ7IRlFBA244904pSVL9j1RV7u0CI0gy4meYL3uIFTLBbShIlgHziTNxgrW
	zcgliOEJ9q8/dND9uv6rbIHiU9Nf7oms/OFuQDMc/vN1II+WZMd1qOMNRvQ==
Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com
 [209.85.216.69])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45sr8q0652-1
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Thu, 03 Apr 2025 11:08:16 +0000 (GMT)
Received: by mail-pj1-f69.google.com with SMTP id
 98e67ed59e1d1-3055f2e1486so1324029a91.0
        for <linux-kernel@vger.kernel.org>;
 Thu, 03 Apr 2025 04:08:16 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743678495; x=1744283295;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mOjHDkSlrc5FA5+7P3anTxnDru4TLkY0T08z6RqNU0s=;
        b=vBaCNTli9FskD5jOqzBFO62Dj5bIVqKwv0GGo25TNMpPJ2tPGWVtRXrVHYo6TMEzqu
         t4Xrf81cdw68v1Q1lYA4t9LVWXZ6upSc8PZ3KqUoeAqdtyi6XClL0vluta8ilDRJku36
         1bssr4IyoSxc6fhKEeyL8OnLDA7UVCbNm+16jnbkGuZTq8HHMw44VfwKkJRfBhQU0d6N
         eoYb/PeG7wEubbWrd9lpHhIVl73GzCMfTNpRlIFOWp+frcySA2a+3BZnNO/CXZcOSLvB
         QgJlrVkl0ctFIXDr5AJFQTvFyXRKwXxJOKcGydiXhf1J50lEtdKVZAme1/Tky+5f/yau
         9VYQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCWYUuWsWvmQZEhHekb6trSk3TJb5K0piH1i82B76kFzNVtpDH2jRNqM22Ny4BZpzeTYeHMjEWR0MA2YGjM=@vger.kernel.org
X-Gm-Message-State: AOJu0YzYnOqxUcxDNNcgimP5RdszJPRfzE4j/KRlnJro2Xxhzr6G8gCH
	LUcm5dnKWNkv9aa6m/MWmmzjHAF1umLdG+s0KSkaDsv2hXxVJaDuB/sTnqDUbtK6/nrewCgpaMb
	W92RNP0XUWsrvJHpZr3Caalf0OjpNLkPCdNrEfGFJTC8YF7XbMSv0vELDNxlnhm4=
X-Gm-Gg: ASbGnctMXDXWN9hn+pq66o/8Qkqb1hZPUiTiCo7Bm6SVpaKcWCYiIdOLdWlUvmBoPIi
	rkYbdjbac2m9ydRz/V5elfj5qwptkgFZa7lC8jB6Hm/+xq2lq6grTwJUJuD3YX44Fh6ULmCkWUJ
	SvAxm4FtbS/oaI3ag4TgWKKhfI4XsM9HGII36y1hso7hMXeTpUa6q47gmfspjPd0MoxIBBh9gvn
	uIaErN4cSSJYDpNJ/R+Jy0JDD+ql2E4yILEHNHNsymAyjp5EE3RJ6k4efwxjuuDKtIkasi++jhF
	eKqnRMlOMTT0QUn9YsYsiG3s2PckhIjbqQDuYRsIlTE8
X-Received: by 2002:a17:90b:37cd:b0:2ee:ad18:b309 with SMTP id
 98e67ed59e1d1-3057caef387mr2934390a91.3.1743678495119;
        Thu, 03 Apr 2025 04:08:15 -0700 (PDT)
X-Google-Smtp-Source: 
 AGHT+IH8E/a1HuHsWYlyy2BuINk+4cWAPJuv7nvd6fNKuMTc43NmiB3NEnFpb/KfTZyr05CXxmsrIA==
X-Received: by 2002:a17:90b:37cd:b0:2ee:ad18:b309 with SMTP id
 98e67ed59e1d1-3057caef387mr2934358a91.3.1743678494736;
        Thu, 03 Apr 2025 04:08:14 -0700 (PDT)
Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19])
        by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-30588a3c3a8sm1185414a91.28.2025.04.03.04.08.12
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Thu, 03 Apr 2025 04:08:14 -0700 (PDT)
From: Prashanth K <prashanth.k@oss.qualcomm.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
        Kees Bakker <kees@ijzerbout.nl>,
        William McVicker <willmcvicker@google.com>,
        Marek Szyprowski <m.szyprowski@samsung.com>
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
        Prashanth K <prashanth.k@oss.qualcomm.com>, stable@kernel.org
Subject: [PATCH v1 1/3] usb: gadget: f_ecm: Add get_status callback
Date: Thu,  3 Apr 2025 16:38:03 +0530
Message-Id: <20250403110805.865311-2-prashanth.k@oss.qualcomm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250403110805.865311-1-prashanth.k@oss.qualcomm.com>
References: <20250403110805.865311-1-prashanth.k@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-GUID: AJxmQ2K3wfWTW8_k6046SWnXWzJ4bs4r
X-Authority-Analysis: v=2.4 cv=Iu4ecK/g c=1 sm=1 tr=0 ts=67ee6c20 cx=c_pps
 a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17
 a=XR8D0OoHHMoA:10 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=wSQy6ELrUcAAhET18-sA:9
 a=rl5im9kqc5Lf4LNbBjHf:22
X-Proofpoint-ORIG-GUID: AJxmQ2K3wfWTW8_k6046SWnXWzJ4bs4r
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-03_04,2025-04-02_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 impostorscore=0
 adultscore=0 priorityscore=1501 suspectscore=0 mlxscore=0 malwarescore=0
 bulkscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 mlxlogscore=999
 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2502280000
 definitions=main-2504030043
Content-Type: text/plain; charset="utf-8"

When host sends GET_STATUS to ECM interface, handle the request
from the function driver. Since the interface is wakeup capable,
set the corresponding bit, and set RW bit if the function is
already armed for wakeup by the host.

Cc: stable@kernel.org
Fixes: 481c225c4802 ("usb: gadget: Handle function suspend feature selector=
")
Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
---
 drivers/usb/gadget/function/f_ecm.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/usb/gadget/function/f_ecm.c b/drivers/usb/gadget/funct=
ion/f_ecm.c
index 80841de845b0..027226325039 100644
--- a/drivers/usb/gadget/function/f_ecm.c
+++ b/drivers/usb/gadget/function/f_ecm.c
@@ -892,6 +892,12 @@ static void ecm_resume(struct usb_function *f)
 	gether_resume(&ecm->port);
 }
=20
+static int ecm_get_status(struct usb_function *f)
+{
+	return (f->func_wakeup_armed ? USB_INTRF_STAT_FUNC_RW : 0) |
+		USB_INTRF_STAT_FUNC_RW_CAP;
+}
+
 static void ecm_free(struct usb_function *f)
 {
 	struct f_ecm *ecm;
@@ -960,6 +966,7 @@ static struct usb_function *ecm_alloc(struct usb_functi=
on_instance *fi)
 	ecm->port.func.disable =3D ecm_disable;
 	ecm->port.func.free_func =3D ecm_free;
 	ecm->port.func.suspend =3D ecm_suspend;
+	ecm->port.func.get_status =3D ecm_get_status;
 	ecm->port.func.resume =3D ecm_resume;
=20
 	return &ecm->port.func;
--=20
2.25.1