From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 03BAE14900B for ; Thu, 22 Feb 2024 18:01:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624868; cv=none; b=p5GC0WK9KplOKb4wiyrcdiU8sArO7h+SfasbAJWbFPtMQOqvwhJf5lHyQugtw4wsicfUllQJGD671DuaWsmYOrZ3A1xWKHhg3Y6ryClmw5m/e5k6zVcB3RS+oYV5XEw5XDqiAKhcC/8lEiyklDrPabcf+cRlc5jPijLsW2dO31E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624868; c=relaxed/simple; bh=0wPvoAeCpIhFyI99ib8KnWgxwHnATtwrLoUCe3nCOHw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UfxHeaThJRVINgW1xkSAXrpy5HGBwWWk8TgO+eK44K6zgJqFYuoIPb9URCB+IAbqkmFkqo9HZaqN3VvSuMvh/6prslwwy0O2NREq4NoAg7CZvV1EjnZyD6Y3pxYRN8X/CLbTe50GRPm+0jEzOearzV5xf0pRcbwUisGkLjcU484= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=MhbNbS9t; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="MhbNbS9t" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MGtKnl005491; Thu, 22 Feb 2024 18:00:59 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=2oOJN+KlMCgqc/dt8oiHJLksH27lD5aUFyLRA+1xMcM=; b=Mh bNbS9toyDwwh1UePpvj9aZMVub8XlWBYpTS8zOfxdXjBZOTDz19HJEnEzWuxP0cs CqSJpsjAC0t+O0U08rtEailohsYld/Qz+szedisQHqOZwEWS+dwmolUqwE4y3736 tkchv4nzEHVuRzq9F5bnzy8JuMXoOIHU1yCcU+TPsb/Li5p6uNtKkxTNXZf7fQBt UbVvcrCXPm2wWy3fU+Y4iNZStQ857Usq5bz0wCcEb/9oZE4oQxIVJjon63cINzMp nxykiMZxL298sYY1S2E0W0RgvtoHXAgsrQKls+lVVD70x2Gox7Eh4lOy6KhBamOA rDXtA+WMEtqQoUgMMLKw== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3wea7crau6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:00:59 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI0xYx016064 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:00:59 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:00:56 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 1/8] firmware_loader: Refactor request firmware lower level functions Date: Thu, 22 Feb 2024 23:30:26 +0530 Message-ID: <20240222180033.23775-2-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: OXfnhS_-R6U3g2-8LxHC28-ExGFin0qa X-Proofpoint-GUID: OXfnhS_-R6U3g2-8LxHC28-ExGFin0qa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 mlxscore=0 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Refactor low level api's to do code reuse. Signed-off-by: Mukesh Ojha --- drivers/base/firmware_loader/main.c | 88 +++++++++++------------------ 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index da8ca01d011c..645d658facae 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -739,7 +739,7 @@ int assign_fw(struct firmware *fw, struct device *devic= e) * or a negative error code */ static int -_request_firmware_prepare(struct firmware **firmware_p, const char *name, +__request_firmware_prepare(struct firmware **firmware_p, const char *name, struct device *device, void *dbuf, size_t size, size_t offset, u32 opt_flags) { @@ -851,9 +851,9 @@ static void fw_log_firmware_info(const struct firmware = *fw, const char *name, =20 /* called from request_firmware() and request_firmware_work_func() */ static int -_request_firmware(const struct firmware **firmware_p, const char *name, - struct device *device, void *buf, size_t size, - size_t offset, u32 opt_flags) +__request_firmware(const struct firmware **firmware_p, const char *name, + struct device *device, void *buf, size_t size, + size_t offset, u32 opt_flags) { struct firmware *fw =3D NULL; struct cred *kern_cred =3D NULL; @@ -869,7 +869,7 @@ _request_firmware(const struct firmware **firmware_p, c= onst char *name, goto out; } =20 - ret =3D _request_firmware_prepare(&fw, name, device, buf, size, + ret =3D __request_firmware_prepare(&fw, name, device, buf, size, offset, opt_flags); if (ret <=3D 0) /* error or already assigned */ goto out; @@ -932,6 +932,19 @@ _request_firmware(const struct firmware **firmware_p, = const char *name, return ret; } =20 +static int +_request_firmware(const struct firmware **firmware_p, const char *name, + struct device *device, void *buf, size_t size, + size_t offset, u32 opt_flags) +{ + int ret; + + /* Need to pin this module until return */ + __module_get(THIS_MODULE); + ret =3D __request_firmware(firmware_p, name, device, NULL, 0, 0, opt_flag= s); + module_put(THIS_MODULE); + return ret; +} /** * request_firmware() - send firmware request and wait for it * @firmware_p: pointer to firmware image @@ -956,14 +969,8 @@ int request_firmware(const struct firmware **firmware_p, const char *name, struct device *device) { - int ret; - - /* Need to pin this module until return */ - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware_p, name, device, NULL, 0, 0, - FW_OPT_UEVENT); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware_p, name, device, NULL, 0, 0, + FW_OPT_UEVENT); } EXPORT_SYMBOL(request_firmware); =20 @@ -983,14 +990,8 @@ EXPORT_SYMBOL(request_firmware); int firmware_request_nowarn(const struct firmware **firmware, const char *= name, struct device *device) { - int ret; - - /* Need to pin this module until return */ - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_NO_WARN); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware, name, device, NULL, 0, 0, + FW_OPT_UEVENT | FW_OPT_NO_WARN); } EXPORT_SYMBOL_GPL(firmware_request_nowarn); =20 @@ -1008,14 +1009,9 @@ EXPORT_SYMBOL_GPL(firmware_request_nowarn); int request_firmware_direct(const struct firmware **firmware_p, const char *name, struct device *device) { - int ret; - - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware_p, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_NO_WARN | - FW_OPT_NOFALLBACK_SYSFS); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware_p, name, device, NULL, 0, 0, + FW_OPT_UEVENT | FW_OPT_NO_WARN | + FW_OPT_NOFALLBACK_SYSFS); } EXPORT_SYMBOL_GPL(request_firmware_direct); =20 @@ -1032,14 +1028,8 @@ EXPORT_SYMBOL_GPL(request_firmware_direct); int firmware_request_platform(const struct firmware **firmware, const char *name, struct device *device) { - int ret; - - /* Need to pin this module until return */ - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_FALLBACK_PLATFORM); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware, name, device, NULL, 0, 0, + FW_OPT_UEVENT | FW_OPT_FALLBACK_PLATFORM); } EXPORT_SYMBOL_GPL(firmware_request_platform); =20 @@ -1086,16 +1076,11 @@ int request_firmware_into_buf(const struct firmware **firmware_p, const char *= name, struct device *device, void *buf, size_t size) { - int ret; - if (fw_cache_is_setup(device, name)) return -EOPNOTSUPP; =20 - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware_p, name, device, buf, size, 0, - FW_OPT_UEVENT | FW_OPT_NOCACHE); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware_p, name, device, buf, size, 0, + FW_OPT_UEVENT | FW_OPT_NOCACHE); } EXPORT_SYMBOL(request_firmware_into_buf); =20 @@ -1116,17 +1101,12 @@ request_partial_firmware_into_buf(const struct firm= ware **firmware_p, const char *name, struct device *device, void *buf, size_t size, size_t offset) { - int ret; - if (fw_cache_is_setup(device, name)) return -EOPNOTSUPP; =20 - __module_get(THIS_MODULE); - ret =3D _request_firmware(firmware_p, name, device, buf, size, offset, - FW_OPT_UEVENT | FW_OPT_NOCACHE | - FW_OPT_PARTIAL); - module_put(THIS_MODULE); - return ret; + return _request_firmware(firmware_p, name, device, buf, size, offset, + FW_OPT_UEVENT | FW_OPT_NOCACHE | + FW_OPT_PARTIAL); } EXPORT_SYMBOL(request_partial_firmware_into_buf); =20 @@ -1162,8 +1142,8 @@ static void request_firmware_work_func(struct work_st= ruct *work) =20 fw_work =3D container_of(work, struct firmware_work, work); =20 - _request_firmware(&fw, fw_work->name, fw_work->device, NULL, 0, 0, - fw_work->opt_flags); + __request_firmware(&fw, fw_work->name, fw_work->device, NULL, 0, 0, + fw_work->opt_flags); fw_work->cont(fw, fw_work->context); put_device(fw_work->device); /* taken in request_firmware_nowait() */ =20 --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 E8B3B1586F8 for ; Thu, 22 Feb 2024 18:01:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624882; cv=none; b=izYc3XUDbOUS2/s7WmCyv7C/x9bw0FYGuWEv86tYmsjU10GD23zW5dotPDwGuytlv6OQ4S9tAbI0wYeC53mmmR0vrPn0fi1cck6uwnpaeCOTmrYMPZWLBI5EhgOWeZeNP76kJCrQVsp62cBwMK0+kijMdj4Pau7XH2yh+fdqBTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624882; c=relaxed/simple; bh=th9s6yw/+ZCI+/RwbKrTbxk+HzgJy20Rh4Mafx057bk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NhVy2TLRQTIGgn3hRx2IaMnBq/yNq4QfImVYm9zYoFlHeWDcOzHsnaV4uXylds7PL9M4iePyyk9Rdg3IbEW8AIGsNWjNDHaEOscIqVBOQ9asLcROqRskvFoa3U1wmFkfp0lJrs4xT6p79T3cm8jAk0LIKx066FxSxZ8hANCzRrs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=jiNxN660; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="jiNxN660" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MEp3Bg028257; Thu, 22 Feb 2024 18:01:06 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=yzfPZ40K2EM64idCJvQoRhRLo+OrI7ETQVCz/2ZJqpE=; b=ji NxN660k3g7wv7cPg3MnD2GI2PkMjx+GFExSHagUYGougOTytTZE1hv5F47abDzhv 680I06OTRXwHK6AahYiau5bp6GBzFi1qi7d1wUUAgCQIBTJ47ySuCjzoRUG4/FL/ T0346yAM8ZxSst78FeKcAgdVSTvky4r045QGjhwGNK33e3O2yCwnJdT8tw9Z9bzm 9Ev/gXI2JgPKhnYXiDf9mLFyRibY+uHG4ys7kCu8YzcWeOmq3b7Dp/BeIJWHpMXs lVS4KqZn9LkkLyovMSB1jh0WGSPLqfn4fV6e9C+dQ1GORREbIG0eM/BxCBEXw99Q nMZVEnRyYanjYKZp1feQ== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3wdvwwagr7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:05 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI111a006299 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:01 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:00:59 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 2/8] treewide: rename firmware_request_nowarn() Date: Thu, 22 Feb 2024 23:30:27 +0530 Message-ID: <20240222180033.23775-3-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Pdgh1tnGUlPnY_xse7YC_5nrFtnY64_X X-Proofpoint-GUID: Pdgh1tnGUlPnY_xse7YC_5nrFtnY64_X X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 mlxscore=0 spamscore=0 impostorscore=0 mlxlogscore=999 clxscore=1015 phishscore=0 adultscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Rename firmware_request_nowarn() to align with other request_firmware family functions. Signed-off-by: Mukesh Ojha --- Documentation/driver-api/firmware/request_firmware.rst | 4 ++-- drivers/accel/ivpu/ivpu_fw.c | 2 +- drivers/base/firmware_loader/main.c | 6 +++--- drivers/bluetooth/btbcm.c | 2 +- drivers/bluetooth/btintel.c | 4 ++-- drivers/bluetooth/hci_bcm4377.c | 4 ++-- drivers/crypto/ccp/sev-dev.c | 6 +++--- drivers/crypto/inside-secure/safexcel.c | 4 ++-- drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/firmware.c | 2 +- drivers/input/touchscreen/silead.c | 2 +- drivers/media/tuners/si2157.c | 2 +- drivers/memory/brcmstb_dpfe.c | 2 +- drivers/net/ethernet/intel/ice/ice_main.c | 2 +- drivers/net/wireless/ath/ath10k/core.c | 2 +- drivers/net/wireless/ath/ath10k/testmode.c | 2 +- drivers/net/wireless/ath/ath11k/core.c | 2 +- drivers/net/wireless/ath/ath12k/core.c | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 2 +- drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +- drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c | 2 +- drivers/net/wireless/realtek/rtw89/fw.c | 2 +- drivers/net/wireless/silabs/wfx/fwio.c | 2 +- drivers/usb/host/xhci-pci-renesas.c | 2 +- include/linux/firmware.h | 4 ++-- sound/pci/hda/cs35l41_hda.c | 2 +- sound/pci/hda/cs35l56_hda.c | 2 +- sound/soc/codecs/wm_adsp.c | 2 +- sound/soc/sof/fw-file-profile.c | 4 ++-- 31 files changed, 41 insertions(+), 41 deletions(-) diff --git a/Documentation/driver-api/firmware/request_firmware.rst b/Docum= entation/driver-api/firmware/request_firmware.rst index 0d6ea0329995..0201334bc308 100644 --- a/Documentation/driver-api/firmware/request_firmware.rst +++ b/Documentation/driver-api/firmware/request_firmware.rst @@ -20,10 +20,10 @@ request_firmware .. kernel-doc:: drivers/base/firmware_loader/main.c :functions: request_firmware =20 -firmware_request_nowarn +request_firmware_nowarn ----------------------- .. kernel-doc:: drivers/base/firmware_loader/main.c - :functions: firmware_request_nowarn + :functions: request_firmware_nowarn =20 firmware_request_platform ------------------------- diff --git a/drivers/accel/ivpu/ivpu_fw.c b/drivers/accel/ivpu/ivpu_fw.c index 6576232f3e67..11c27fe860f2 100644 --- a/drivers/accel/ivpu/ivpu_fw.c +++ b/drivers/accel/ivpu/ivpu_fw.c @@ -76,7 +76,7 @@ static int ivpu_fw_request(struct ivpu_device *vdev) if (fw_names[i].gen !=3D ivpu_hw_gen(vdev)) continue; =20 - ret =3D firmware_request_nowarn(&vdev->fw->file, fw_names[i].name, vdev-= >drm.dev); + ret =3D request_firmware_nowarn(&vdev->fw->file, fw_names[i].name, vdev-= >drm.dev); if (!ret) { vdev->fw->name =3D fw_names[i].name; return 0; diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 645d658facae..cb681f4069b8 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -975,7 +975,7 @@ request_firmware(const struct firmware **firmware_p, co= nst char *name, EXPORT_SYMBOL(request_firmware); =20 /** - * firmware_request_nowarn() - request for an optional fw module + * request_firmware_nowarn() - request for an optional fw module * @firmware: pointer to firmware image * @name: name of firmware file * @device: device for which firmware is being loaded @@ -987,13 +987,13 @@ EXPORT_SYMBOL(request_firmware); * therefore up to the driver to check for the return value of this call a= nd to * decide when to inform the users of errors. **/ -int firmware_request_nowarn(const struct firmware **firmware, const char *= name, +int request_firmware_nowarn(const struct firmware **firmware, const char *= name, struct device *device) { return _request_firmware(firmware, name, device, NULL, 0, 0, FW_OPT_UEVENT | FW_OPT_NO_WARN); } -EXPORT_SYMBOL_GPL(firmware_request_nowarn); +EXPORT_SYMBOL_GPL(request_firmware_nowarn); =20 /** * request_firmware_direct() - load firmware directly without usermode hel= per diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c index 0a5445ac5e1b..94ebf6113c44 100644 --- a/drivers/bluetooth/btbcm.c +++ b/drivers/bluetooth/btbcm.c @@ -672,7 +672,7 @@ int btbcm_initialize(struct hci_dev *hdev, bool *fw_loa= d_done, bool use_autobaud fw_name_count++; =20 for (i =3D 0; i < fw_name_count; i++) { - err =3D firmware_request_nowarn(&fw, fw_name[i], &hdev->dev); + err =3D request_firmware_nowarn(&fw, fw_name[i], &hdev->dev); if (err =3D=3D 0) { bt_dev_info(hdev, "%s '%s' Patch", hw_name ? hw_name : "BCM", fw_name[i]); diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c index cdc5c08824a0..6ec90754a76f 100644 --- a/drivers/bluetooth/btintel.c +++ b/drivers/bluetooth/btintel.c @@ -2057,7 +2057,7 @@ static int btintel_download_fw(struct hci_dev *hdev, return -EINVAL; } =20 - err =3D firmware_request_nowarn(&fw, fwname, &hdev->dev); + err =3D request_firmware_nowarn(&fw, fwname, &hdev->dev); if (err < 0) { if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) { /* Firmware has already been loaded */ @@ -2246,7 +2246,7 @@ static int btintel_prepare_fw_download_tlv(struct hci= _dev *hdev, } =20 btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); - err =3D firmware_request_nowarn(&fw, fwname, &hdev->dev); + err =3D request_firmware_nowarn(&fw, fwname, &hdev->dev); if (err < 0) { if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) { /* Firmware has already been loaded */ diff --git a/drivers/bluetooth/hci_bcm4377.c b/drivers/bluetooth/hci_bcm437= 7.c index 9a7243d5db71..fd06707a6709 100644 --- a/drivers/bluetooth/hci_bcm4377.c +++ b/drivers/bluetooth/hci_bcm4377.c @@ -1207,10 +1207,10 @@ static const struct firmware *bcm4377_request_blob(= struct bcm4377_data *bcm4377, dev_dbg(&bcm4377->pdev->dev, "Trying to load firmware: '%s' or '%s'\n", name0, name1); =20 - ret =3D firmware_request_nowarn(&fw, name0, &bcm4377->pdev->dev); + ret =3D request_firmware_nowarn(&fw, name0, &bcm4377->pdev->dev); if (!ret) return fw; - ret =3D firmware_request_nowarn(&fw, name1, &bcm4377->pdev->dev); + ret =3D request_firmware_nowarn(&fw, name1, &bcm4377->pdev->dev); if (!ret) return fw; =20 diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c index e4d3f45242f6..a2ded1f9d940 100644 --- a/drivers/crypto/ccp/sev-dev.c +++ b/drivers/crypto/ccp/sev-dev.c @@ -761,9 +761,9 @@ static int sev_get_firmware(struct device *dev, * * Fall-back to using generic name: sev.fw */ - if ((firmware_request_nowarn(firmware, fw_name_specific, dev) >=3D 0) || - (firmware_request_nowarn(firmware, fw_name_subset, dev) >=3D 0) || - (firmware_request_nowarn(firmware, SEV_FW_FILE, dev) >=3D 0)) + if ((request_firmware_nowarn(firmware, fw_name_specific, dev) >=3D 0) || + (request_firmware_nowarn(firmware, fw_name_subset, dev) >=3D 0) || + (request_firmware_nowarn(firmware, SEV_FW_FILE, dev) >=3D 0)) return 0; =20 return -ENOENT; diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/insid= e-secure/safexcel.c index f5c1912aa564..791a7ff25371 100644 --- a/drivers/crypto/inside-secure/safexcel.c +++ b/drivers/crypto/inside-secure/safexcel.c @@ -429,7 +429,7 @@ static int eip197_load_firmwares(struct safexcel_crypto= _priv *priv) retry_fw: for (i =3D 0; i < FW_NB; i++) { snprintf(fw_path, 37, "inside-secure/%s/%s", dir, fw_name[i]); - ret =3D firmware_request_nowarn(&fw[i], fw_path, priv->dev); + ret =3D request_firmware_nowarn(&fw[i], fw_path, priv->dev); if (ret) { if (minifw || priv->data->version !=3D EIP197B_MRVL) goto release_fw; @@ -437,7 +437,7 @@ static int eip197_load_firmwares(struct safexcel_crypto= _priv *priv) /* Fallback to the old firmware location for the * EIP197b. */ - ret =3D firmware_request_nowarn(&fw[i], fw_name[i], + ret =3D request_firmware_nowarn(&fw[i], fw_name[i], priv->dev); if (ret) goto release_fw; diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i91= 5/gt/uc/intel_uc_fw.c index 362639162ed6..205cf027870f 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c @@ -785,7 +785,7 @@ static int try_firmware_load(struct intel_uc_fw *uc_fw,= const struct firmware ** struct device *dev =3D gt->i915->drm.dev; int err; =20 - err =3D firmware_request_nowarn(fw, uc_fw->file_selected.path, dev); + err =3D request_firmware_nowarn(fw, uc_fw->file_selected.path, dev); =20 if (err) return err; diff --git a/drivers/gpu/drm/nouveau/nvkm/core/firmware.c b/drivers/gpu/drm= /nouveau/nvkm/core/firmware.c index adc60b25f8e6..febfabb17405 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/firmware.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/firmware.c @@ -91,7 +91,7 @@ nvkm_firmware_get(const struct nvkm_subdev *subdev, const= char *fwname, int ver, else snprintf(f, sizeof(f), "nvidia/%s/%s.bin", cname, fwname); =20 - if (!firmware_request_nowarn(fw, f, device->dev)) { + if (!request_firmware_nowarn(fw, f, device->dev)) { nvkm_debug(subdev, "firmware \"%s\" loaded - %zu byte(s)\n", f, (*fw)->size); return 0; diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen= /silead.c index 62f562ad5026..52477e450b02 100644 --- a/drivers/input/touchscreen/silead.c +++ b/drivers/input/touchscreen/silead.c @@ -426,7 +426,7 @@ static int silead_ts_load_fw(struct i2c_client *client) * succeeds we apply an (optional) set of alternative min/max values from= the * "silead,efi-fw-min-max" property. */ - error =3D firmware_request_nowarn(&fw, data->fw_name, dev); + error =3D request_firmware_nowarn(&fw, data->fw_name, dev); if (error) { error =3D firmware_request_platform(&fw, data->fw_name, dev); if (error) { diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c index def06c262ea2..64fbb24c0758 100644 --- a/drivers/media/tuners/si2157.c +++ b/drivers/media/tuners/si2157.c @@ -98,7 +98,7 @@ static int si2157_load_firmware(struct dvb_frontend *fe, struct si2157_cmd cmd; =20 /* request the firmware, this will block and timeout */ - ret =3D firmware_request_nowarn(&fw, fw_name, &client->dev); + ret =3D request_firmware_nowarn(&fw, fw_name, &client->dev); if (ret) return ret; =20 diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c index 5028467b2dc9..a6e6412416d8 100644 --- a/drivers/memory/brcmstb_dpfe.c +++ b/drivers/memory/brcmstb_dpfe.c @@ -648,7 +648,7 @@ static int brcmstb_dpfe_download_firmware(struct brcmst= b_dpfe_priv *priv) if (!priv->dpfe_api->fw_name) return -ENODEV; =20 - ret =3D firmware_request_nowarn(&fw, priv->dpfe_api->fw_name, dev); + ret =3D request_firmware_nowarn(&fw, priv->dpfe_api->fw_name, dev); /* * Defer the firmware download if the firmware file couldn't be found. * The root file system may not be available yet. diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethern= et/intel/ice/ice_main.c index dd4a9bc0dfdc..46d9e0f1bbf4 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -4428,7 +4428,7 @@ static void ice_request_fw(struct ice_pf *pf) * and warning messages for other errors. */ if (opt_fw_filename) { - err =3D firmware_request_nowarn(&firmware, opt_fw_filename, dev); + err =3D request_firmware_nowarn(&firmware, opt_fw_filename, dev); if (err) { kfree(opt_fw_filename); goto dflt_pkg_load; diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/= ath/ath10k/core.c index 0032f8aa892f..dc57a4319ae7 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -943,7 +943,7 @@ static const struct firmware *ath10k_fetch_fw_file(stru= ct ath10k *ar, dir =3D "."; =20 snprintf(filename, sizeof(filename), "%s/%s", dir, file); - ret =3D firmware_request_nowarn(&fw, filename, ar->dev); + ret =3D request_firmware_nowarn(&fw, filename, ar->dev); ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n", filename, ret); =20 diff --git a/drivers/net/wireless/ath/ath10k/testmode.c b/drivers/net/wirel= ess/ath/ath10k/testmode.c index 7a9b9bbcdbfc..b9f976786a7c 100644 --- a/drivers/net/wireless/ath/ath10k/testmode.c +++ b/drivers/net/wireless/ath/ath10k/testmode.c @@ -146,7 +146,7 @@ static int ath10k_tm_fetch_utf_firmware_api_1(struct at= h10k *ar, ar->hw_params.fw.dir, ATH10K_FW_UTF_FILE); =20 /* load utf firmware image */ - ret =3D firmware_request_nowarn(&fw_file->firmware, filename, ar->dev); + ret =3D request_firmware_nowarn(&fw_file->firmware, filename, ar->dev); ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode fw request '%s': %d\n", filename, ret); =20 diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/= ath/ath11k/core.c index 0c6ecbb9a066..9d800a8415d4 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -1084,7 +1084,7 @@ const struct firmware *ath11k_core_firmware_request(s= truct ath11k_base *ab, =20 ath11k_core_create_firmware_path(ab, file, path, sizeof(path)); =20 - ret =3D firmware_request_nowarn(&fw, path, ab->dev); + ret =3D request_firmware_nowarn(&fw, path, ab->dev); if (ret) return ERR_PTR(ret); =20 diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/= ath/ath12k/core.c index 6c01b282fcd3..d160791019c8 100644 --- a/drivers/net/wireless/ath/ath12k/core.c +++ b/drivers/net/wireless/ath/ath12k/core.c @@ -137,7 +137,7 @@ const struct firmware *ath12k_core_firmware_request(str= uct ath12k_base *ab, =20 ath12k_core_create_firmware_path(ab, file, path, sizeof(path)); =20 - ret =3D firmware_request_nowarn(&fw, path, ab->dev); + ret =3D request_firmware_nowarn(&fw, path, ab->dev); if (ret) return ERR_PTR(ret); =20 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/= drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c index 83f8ed7d00f9..b0451d97b8e2 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c @@ -659,7 +659,7 @@ static int brcmf_fw_request_firmware(const struct firmw= are **fw, if (!alt_path) goto fallback; =20 - ret =3D firmware_request_nowarn(fw, alt_path, fwctx->dev); + ret =3D request_firmware_nowarn(fw, alt_path, fwctx->dev); kfree(alt_path); if (ret =3D=3D 0) return ret; diff --git a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c b/drivers/net/wir= eless/intel/iwlwifi/fw/pnvm.c index 650e4bde9c17..8b3676e87e07 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c @@ -231,7 +231,7 @@ static int iwl_pnvm_get_from_fs(struct iwl_trans *trans= , u8 **data, size_t *len) =20 iwl_pnvm_get_fs_name(trans, pnvm_name, sizeof(pnvm_name)); =20 - ret =3D firmware_request_nowarn(&pnvm, pnvm_name, trans->dev); + ret =3D request_firmware_nowarn(&pnvm, pnvm_name, trans->dev); if (ret) { IWL_DEBUG_FW(trans, "PNVM file %s not found %d\n", pnvm_name, ret); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net= /wireless/intel/iwlwifi/iwl-dbg-tlv.c index 3b14f6476743..dc139849454f 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c @@ -503,7 +503,7 @@ void iwl_dbg_tlv_load_bin(struct device *dev, struct iw= l_trans *trans) trans->trans_cfg->device_family <=3D IWL_DEVICE_FAMILY_8000) return; =20 - res =3D firmware_request_nowarn(&fw, yoyo_bin, dev); + res =3D request_firmware_nowarn(&fw, yoyo_bin, dev); IWL_DEBUG_FW(trans, "%s %s\n", res ? "didn't load" : "loaded", yoyo_bin); =20 if (res) diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7615/mcu.c index ae34d019e588..eceaee233993 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c @@ -1224,7 +1224,7 @@ static int mt7615_load_patch(struct mt7615_dev *dev, = u32 addr, const char *name) const struct firmware *fw =3D NULL; int len, ret, sem; =20 - ret =3D firmware_request_nowarn(&fw, name, dev->mt76.dev); + ret =3D request_firmware_nowarn(&fw, name, dev->mt76.dev); if (ret) return ret; =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c b/drivers/= net/wireless/mediatek/mt76/mt76x0/usb_mcu.c index 6dc1f51f5658..3e1b0db7fd10 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c @@ -72,7 +72,7 @@ static int mt76x0_get_firmware(struct mt76x02_dev *dev, /* try to load mt7610e fw if available * otherwise fall back to mt7610u one */ - err =3D firmware_request_nowarn(fw, MT7610E_FIRMWARE, dev->mt76.dev); + err =3D request_firmware_nowarn(fw, MT7610E_FIRMWARE, dev->mt76.dev); if (err) { dev_info(dev->mt76.dev, "%s not found, switching to %s", MT7610E_FIRMWARE, MT7610U_FIRMWARE); diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless= /realtek/rtw89/fw.c index 09684cea9731..d3b103419862 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c @@ -1206,7 +1206,7 @@ static int rtw89_load_firmware_req(struct rtw89_dev *= rtwdev, } =20 if (nowarn) - ret =3D firmware_request_nowarn(&req->firmware, fw_name, rtwdev->dev); + ret =3D request_firmware_nowarn(&req->firmware, fw_name, rtwdev->dev); else ret =3D request_firmware(&req->firmware, fw_name, rtwdev->dev); =20 diff --git a/drivers/net/wireless/silabs/wfx/fwio.c b/drivers/net/wireless/= silabs/wfx/fwio.c index 52c7f560b062..3cdc8548a619 100644 --- a/drivers/net/wireless/silabs/wfx/fwio.c +++ b/drivers/net/wireless/silabs/wfx/fwio.c @@ -105,7 +105,7 @@ static int get_firmware(struct wfx_dev *wdev, u32 keyse= t_chip, =20 snprintf(filename, sizeof(filename), "%s_%02X.sec", wdev->pdata.file_fw, keyset_chip); - ret =3D firmware_request_nowarn(fw, filename, wdev->dev); + ret =3D request_firmware_nowarn(fw, filename, wdev->dev); if (ret) { dev_info(wdev->dev, "can't load %s, falling back to %s.sec\n", filename, wdev->pdata.file_fw); diff --git a/drivers/usb/host/xhci-pci-renesas.c b/drivers/usb/host/xhci-pc= i-renesas.c index 93f8b355bc70..1335e92b76fa 100644 --- a/drivers/usb/host/xhci-pci-renesas.c +++ b/drivers/usb/host/xhci-pci-renesas.c @@ -603,7 +603,7 @@ int renesas_xhci_check_request_fw(struct pci_dev *pdev, return has_rom ? 0 : err; =20 pci_dev_get(pdev); - err =3D firmware_request_nowarn(&fw, fw_name, &pdev->dev); + err =3D request_firmware_nowarn(&fw, fw_name, &pdev->dev); pci_dev_put(pdev); if (err) { if (has_rom) { diff --git a/include/linux/firmware.h b/include/linux/firmware.h index 0311858b46ce..5523c9fdc92d 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h @@ -97,7 +97,7 @@ static inline bool firmware_request_builtin(struct firmwa= re *fw, #if IS_REACHABLE(CONFIG_FW_LOADER) int request_firmware(const struct firmware **fw, const char *name, struct device *device); -int firmware_request_nowarn(const struct firmware **fw, const char *name, +int request_firmware_nowarn(const struct firmware **fw, const char *name, struct device *device); int firmware_request_platform(const struct firmware **fw, const char *name, struct device *device); @@ -122,7 +122,7 @@ static inline int request_firmware(const struct firmwar= e **fw, return -EINVAL; } =20 -static inline int firmware_request_nowarn(const struct firmware **fw, +static inline int request_firmware_nowarn(const struct firmware **fw, const char *name, struct device *device) { diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c index d3fa6e136744..a93dcae244ac 100644 --- a/sound/pci/hda/cs35l41_hda.c +++ b/sound/pci/hda/cs35l41_hda.c @@ -164,7 +164,7 @@ static int cs35l41_request_firmware_file(struct cs35l41= _hda *cs35l41, s++; } =20 - ret =3D firmware_request_nowarn(firmware, *filename, cs35l41->dev); + ret =3D request_firmware_nowarn(firmware, *filename, cs35l41->dev); if (ret !=3D 0) { dev_dbg(cs35l41->dev, "Failed to request '%s'\n", *filename); kfree(*filename); diff --git a/sound/pci/hda/cs35l56_hda.c b/sound/pci/hda/cs35l56_hda.c index b61e1de8c4bf..0390fd6b6eaa 100644 --- a/sound/pci/hda/cs35l56_hda.c +++ b/sound/pci/hda/cs35l56_hda.c @@ -422,7 +422,7 @@ static int cs35l56_hda_request_firmware_file(struct cs3= 5l56_hda *cs35l56, s++; } =20 - ret =3D firmware_request_nowarn(firmware, *filename, cs35l56->base.dev); + ret =3D request_firmware_nowarn(firmware, *filename, cs35l56->base.dev); if (ret) { dev_dbg(cs35l56->base.dev, "Failed to request '%s'\n", *filename); kfree(*filename); diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index c01e31175015..072e3e3606e7 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -772,7 +772,7 @@ static int wm_adsp_request_firmware_file(struct wm_adsp= *dsp, s++; } =20 - ret =3D firmware_request_nowarn(firmware, *filename, cs_dsp->dev); + ret =3D request_firmware_nowarn(firmware, *filename, cs_dsp->dev); if (ret !=3D 0) { adsp_dbg(dsp, "Failed to request '%s'\n", *filename); kfree(*filename); diff --git a/sound/soc/sof/fw-file-profile.c b/sound/soc/sof/fw-file-profil= e.c index 138a1ca2c4a8..819fc846d498 100644 --- a/sound/soc/sof/fw-file-profile.c +++ b/sound/soc/sof/fw-file-profile.c @@ -26,7 +26,7 @@ static int sof_test_firmware_file(struct device *dev, if (!fw_filename) return -ENOMEM; =20 - ret =3D firmware_request_nowarn(&fw, fw_filename, dev); + ret =3D request_firmware_nowarn(&fw, fw_filename, dev); if (ret < 0) { dev_dbg(dev, "Failed to open firmware file: %s\n", fw_filename); kfree(fw_filename); @@ -78,7 +78,7 @@ static int sof_test_topology_file(struct device *dev, if (!tplg_filename) return -ENOMEM; =20 - ret =3D firmware_request_nowarn(&fw, tplg_filename, dev); + ret =3D request_firmware_nowarn(&fw, tplg_filename, dev); if (!ret) release_firmware(fw); else --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 B7446157E98 for ; Thu, 22 Feb 2024 18:01:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624872; cv=none; b=OwPdgo5CCChlkAuTlR8bs/jzwWANl9mlPiqaWlldpMxp6jaaJqdvt+iMpcsZlgnaga63dIjZ/i5BYAcbItKsZW/AeL+EmncZqbLM7xZvsFHWeXnKEdxGoDX0t4xV4FXwXf2J6qjIe9Ls9U1Zwu6s6gdvEGcfEHRdA/MVRSWQjtI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624872; c=relaxed/simple; bh=8vH1zgXiW6sFqWPP7Xe4NUQ+aG1DbdgrOh7Lo67Sva4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VCK4NYMhj4tB7T+UZTFDFUSJiZdUAaI/b5vjoFs0i9Co1Zx00MwKNNAu+t3LtEVvARnULwvW3ItYxeVhs54Dj+oUFnYNevn2lGjjirxksv2C27m4cz3NB78vJwOi15aFavqCSbetVCBIzba7CfPt7oUiIN5XGhwcfSLQvM8SGGk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=U9Fm7GXD; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="U9Fm7GXD" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MGqhWC002357; Thu, 22 Feb 2024 18:01: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=SK5JcaC6C9sqBLvgnnhZB613+0SPAB8k6+ie79n5RP8=; b=U9 Fm7GXDXLSEHQXItDlMQ8s3Nd1CvtEVyxQdovXXYWxGzU2zkCdfPK+joy1gOfIT9P 0XWhKd6rq4vLCHV/GaXSbzPygiNBI474bgDaH1T2pmv9IF3PBLWHz0y+QSrhz/8U YD39lSm6V6xm6nlwd756M0cIsbZ5G+qZUZh6t3ZIuonwhNFUEObsPItFA6KGxCXB u/Va6H5QCGvDR8rw9Ea/Dc/RN8ohLFDo0ih1nuNnBo8MxFg5zVPmLtaaWxK7dpE1 QxvhjpJ7FWqQbUqQ3XXkfmZHtahwcLVuLEVtqmmHH7yV91Hf9wv0k0B9dueoEikh VGKdDVvJ7Ysxuap91qqA== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3we24ahtcm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:04 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI14Mq016160 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:04 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:01 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 3/8] treewide: rename firmware_request_platform() Date: Thu, 22 Feb 2024 23:30:28 +0530 Message-ID: <20240222180033.23775-4-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: jQ2WPnQlOa2sprbdRA3R_OWL-liq_1oI X-Proofpoint-ORIG-GUID: jQ2WPnQlOa2sprbdRA3R_OWL-liq_1oI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 adultscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Rename firmware_request_platform() to request_firmware_platform() to be more concrete and align with the name of other request firmware family functions. Signed-off-by: Mukesh Ojha --- Documentation/driver-api/firmware/fallback-mechanisms.rst | 4 ++-- Documentation/driver-api/firmware/lookup-order.rst | 2 +- Documentation/driver-api/firmware/request_firmware.rst | 4 ++-- drivers/base/firmware_loader/main.c | 6 +++--- drivers/input/touchscreen/chipone_icn8505.c | 2 +- drivers/input/touchscreen/silead.c | 2 +- include/linux/firmware.h | 4 ++-- lib/test_firmware.c | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Documentation/driver-api/firmware/fallback-mechanisms.rst b/Do= cumentation/driver-api/firmware/fallback-mechanisms.rst index 5f04c3bcdf0c..f888fceb65ba 100644 --- a/Documentation/driver-api/firmware/fallback-mechanisms.rst +++ b/Documentation/driver-api/firmware/fallback-mechanisms.rst @@ -212,7 +212,7 @@ of firmware for some of the system's integrated periphe= ral devices and the peripheral's Linux device-driver needs to access this firmware. =20 Device drivers which need such firmware can use the -firmware_request_platform() function for this, note that this is a +request_firmware_platform() function for this, note that this is a separate fallback mechanism from the other fallback mechanisms and this does not use the sysfs interface. =20 @@ -245,7 +245,7 @@ To register this array with the efi-embedded-fw code, a= driver needs to: =20 4. Add "select EFI_EMBEDDED_FIRMWARE if EFI_STUB" to its Kconfig entry. =20 -The firmware_request_platform() function will always first try to load fir= mware +The request_firmware_platform() function will always first try to load fir= mware with the specified name directly from the disk, so the EFI embedded-fw can always be overridden by placing a file under /lib/firmware. =20 diff --git a/Documentation/driver-api/firmware/lookup-order.rst b/Documenta= tion/driver-api/firmware/lookup-order.rst index 6064672a782e..c72bc8efb734 100644 --- a/Documentation/driver-api/firmware/lookup-order.rst +++ b/Documentation/driver-api/firmware/lookup-order.rst @@ -13,7 +13,7 @@ a driver issues a firmware API call. * The ''Direct filesystem lookup'' is performed next, if found we return it immediately * The ''Platform firmware fallback'' is performed next, but only when - firmware_request_platform() is used, if found we return it immediately + request_firmware_platform() is used, if found we return it immediately * If no firmware has been found and the fallback mechanism was enabled the sysfs interface is created. After this either a kobject uevent is issued or the custom firmware loading is relied upon for firmware diff --git a/Documentation/driver-api/firmware/request_firmware.rst b/Docum= entation/driver-api/firmware/request_firmware.rst index 0201334bc308..3d6df9922c4b 100644 --- a/Documentation/driver-api/firmware/request_firmware.rst +++ b/Documentation/driver-api/firmware/request_firmware.rst @@ -25,10 +25,10 @@ request_firmware_nowarn .. kernel-doc:: drivers/base/firmware_loader/main.c :functions: request_firmware_nowarn =20 -firmware_request_platform +request_firmware_platform ------------------------- .. kernel-doc:: drivers/base/firmware_loader/main.c - :functions: firmware_request_platform + :functions: request_firmware_platform =20 request_firmware_direct ----------------------- diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index cb681f4069b8..9411ad7968cb 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -1016,7 +1016,7 @@ int request_firmware_direct(const struct firmware **f= irmware_p, EXPORT_SYMBOL_GPL(request_firmware_direct); =20 /** - * firmware_request_platform() - request firmware with platform-fw fallback + * request_firmware_platform() - request firmware with platform-fw fallback * @firmware: pointer to firmware image * @name: name of firmware file * @device: device for which firmware is being loaded @@ -1025,13 +1025,13 @@ EXPORT_SYMBOL_GPL(request_firmware_direct); * direct filesystem lookup fails, it will fallback to looking for a copy = of the * requested firmware embedded in the platform's main (e.g. UEFI) firmware. **/ -int firmware_request_platform(const struct firmware **firmware, +int request_firmware_platform(const struct firmware **firmware, const char *name, struct device *device) { return _request_firmware(firmware, name, device, NULL, 0, 0, FW_OPT_UEVENT | FW_OPT_FALLBACK_PLATFORM); } -EXPORT_SYMBOL_GPL(firmware_request_platform); +EXPORT_SYMBOL_GPL(request_firmware_platform); =20 /** * firmware_request_cache() - cache firmware for suspend so resume can use= it diff --git a/drivers/input/touchscreen/chipone_icn8505.c b/drivers/input/to= uchscreen/chipone_icn8505.c index b56954830b33..be1d7530a968 100644 --- a/drivers/input/touchscreen/chipone_icn8505.c +++ b/drivers/input/touchscreen/chipone_icn8505.c @@ -288,7 +288,7 @@ static int icn8505_upload_fw(struct icn8505_data *icn85= 05) * we may need it at resume. Having loaded it once will make the * firmware class code cache it at suspend/resume. */ - error =3D firmware_request_platform(&fw, icn8505->firmware_name, dev); + error =3D request_firmware_platform(&fw, icn8505->firmware_name, dev); if (error) { dev_err(dev, "Firmware request error %d\n", error); return error; diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen= /silead.c index 52477e450b02..e3fb27eeca40 100644 --- a/drivers/input/touchscreen/silead.c +++ b/drivers/input/touchscreen/silead.c @@ -428,7 +428,7 @@ static int silead_ts_load_fw(struct i2c_client *client) */ error =3D request_firmware_nowarn(&fw, data->fw_name, dev); if (error) { - error =3D firmware_request_platform(&fw, data->fw_name, dev); + error =3D request_firmware_platform(&fw, data->fw_name, dev); if (error) { dev_err(dev, "Firmware request error %d\n", error); return error; diff --git a/include/linux/firmware.h b/include/linux/firmware.h index 5523c9fdc92d..93e6a37352a8 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h @@ -99,7 +99,7 @@ int request_firmware(const struct firmware **fw, const ch= ar *name, struct device *device); int request_firmware_nowarn(const struct firmware **fw, const char *name, struct device *device); -int firmware_request_platform(const struct firmware **fw, const char *name, +int request_firmware_platform(const struct firmware **fw, const char *name, struct device *device); int request_firmware_nowait( struct module *module, bool uevent, @@ -129,7 +129,7 @@ static inline int request_firmware_nowarn(const struct = firmware **fw, return -EINVAL; } =20 -static inline int firmware_request_platform(const struct firmware **fw, +static inline int request_firmware_platform(const struct firmware **fw, const char *name, struct device *device) { diff --git a/lib/test_firmware.c b/lib/test_firmware.c index 9cfdcd6d21db..4aeb25bea3b4 100644 --- a/lib/test_firmware.c +++ b/lib/test_firmware.c @@ -730,7 +730,7 @@ static ssize_t trigger_request_platform_store(struct de= vice *dev, efi_embedded_fw_checked =3D true; =20 pr_info("loading '%s'\n", name); - rc =3D firmware_request_platform(&firmware, name, dev); + rc =3D request_firmware_platform(&firmware, name, dev); if (rc) { pr_info("load of '%s' failed: %d\n", name, rc); goto out; --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 99BE915699F for ; Thu, 22 Feb 2024 18:01:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624881; cv=none; b=D1+up2bo/b48ONUHaPXlAayZ+YOvWW60USTrprlxeU/xqX9ZhED0isCCGoerdm02MclZLw1wp6MUkduh2NFIM04LWRp9RIal1c6sbP2FZCIt0AFr5UGmNs5F54wYnm1A2csNJbhod5PfEy7CFyRL3HHpYFK2/jEP1yURBeG5D6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624881; c=relaxed/simple; bh=tWz7VggF4b2XyWeoLaTQ70tO6hfLqVKhQ5mFiKg0R0A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=n1FxyoUv9Qqk/giOVyGgsjO/skXCL1waO2apP/D8vvSURKnjYFG0UqZCy9C0RE3ZpsQllAej+3ULW3YBKLsSVK5M9Pnc9YFRjv4g2bz0Jp41kRy8UqsVkQTsOsW0fV36oNUX8iXCw6y2SMpHvWOsUo5JX6pi/f/07LPXAXpANwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=DdPPT6rQ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="DdPPT6rQ" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MHXhD6011436; Thu, 22 Feb 2024 18:01:07 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=AtZhpSI2s26BHZKaBElwa3rCsZnLo5N2e3yHac2KK3I=; b=Dd PPT6rQEk8O/PMg2nUdC53V4lwDEJ73tFNmVRuYrNeO8fs2qt8Vhawi1Zy8IIQsyU C4JUHOZGVxdWplg3cZqJOyntqKL9AbQ90czBdCPHBsujxKdjsqW6h6wbnmXm2qiZ eZm3d2z/y0uVf71NYdLMa4JkcLOmkFvZ9cSzDdG5GF6jdlyvB7ZqmWYmIIrAuoxZ 9K+q+vdDlnkzkyHRlAJXK5eY4Gb6mH3P7kZy3G05dSe0LqNyyKg1ZoQr/RJCnS29 1hmGMDt4m4566DOUm9gCNy6nRoqIT5YunNLhJxC4EzukOY3welLDj1JIOz6+P9xf erRZf6hwzu4wzfZ8HNGQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3weasbr3yq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:07 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI16xD028646 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:06 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:04 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 4/8] treewide: rename firmware_request_cache() Date: Thu, 22 Feb 2024 23:30:29 +0530 Message-ID: <20240222180033.23775-5-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: 1m5y1QFg32QDE8WrknFCBBlS7oYg97Zf X-Proofpoint-GUID: 1m5y1QFg32QDE8WrknFCBBlS7oYg97Zf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 adultscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Rename firmware_request_cache() to request_firmware_cache() to be more concrete and align with the name of other request firmware family functions. Signed-off-by: Mukesh Ojha --- Documentation/driver-api/firmware/request_firmware.rst | 6 +++--- drivers/base/firmware_loader/main.c | 6 +++--- drivers/net/wireless/mediatek/mt7601u/mcu.c | 2 +- include/linux/firmware.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/driver-api/firmware/request_firmware.rst b/Docum= entation/driver-api/firmware/request_firmware.rst index 3d6df9922c4b..6c5b91705bb3 100644 --- a/Documentation/driver-api/firmware/request_firmware.rst +++ b/Documentation/driver-api/firmware/request_firmware.rst @@ -60,13 +60,13 @@ Special optimizations on reboot Some devices have an optimization in place to enable the firmware to be retained during system reboot. When such optimizations are used the driver author must ensure the firmware is still available on resume from suspend, -this can be done with firmware_request_cache() instead of requesting for t= he +this can be done with request_firmware_cache() instead of requesting for t= he firmware to be loaded. =20 -firmware_request_cache() +request_firmware_cache() ------------------------ .. kernel-doc:: drivers/base/firmware_loader/main.c - :functions: firmware_request_cache + :functions: request_firmware_cache =20 request firmware API expected driver use =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 9411ad7968cb..2823dcd7153a 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -1034,7 +1034,7 @@ int request_firmware_platform(const struct firmware *= *firmware, EXPORT_SYMBOL_GPL(request_firmware_platform); =20 /** - * firmware_request_cache() - cache firmware for suspend so resume can use= it + * request_firmware_cache() - cache firmware for suspend so resume can use= it * @name: name of firmware file * @device: device for which firmware should be cached for * @@ -1045,7 +1045,7 @@ EXPORT_SYMBOL_GPL(request_firmware_platform); * situations. This helper is not compatible with drivers which use * request_firmware_into_buf() or request_firmware_nowait() with no uevent= set. **/ -int firmware_request_cache(struct device *device, const char *name) +int request_firmware_cache(struct device *device, const char *name) { int ret; =20 @@ -1055,7 +1055,7 @@ int firmware_request_cache(struct device *device, con= st char *name) =20 return ret; } -EXPORT_SYMBOL_GPL(firmware_request_cache); +EXPORT_SYMBOL_GPL(request_firmware_cache); =20 /** * request_firmware_into_buf() - load firmware into a previously allocated= buffer diff --git a/drivers/net/wireless/mediatek/mt7601u/mcu.c b/drivers/net/wire= less/mediatek/mt7601u/mcu.c index 1b5cc271a9e1..cee36dc1e9eb 100644 --- a/drivers/net/wireless/mediatek/mt7601u/mcu.c +++ b/drivers/net/wireless/mediatek/mt7601u/mcu.c @@ -414,7 +414,7 @@ static int mt7601u_load_firmware(struct mt7601u_dev *de= v) MT_USB_DMA_CFG_TX_BULK_EN)); =20 if (firmware_running(dev)) - return firmware_request_cache(dev->dev, MT7601U_FIRMWARE); + return request_firmware_cache(dev->dev, MT7601U_FIRMWARE); =20 ret =3D request_firmware(&fw, MT7601U_FIRMWARE, dev->dev); if (ret) diff --git a/include/linux/firmware.h b/include/linux/firmware.h index 93e6a37352a8..4449837ea0c6 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h @@ -196,6 +196,6 @@ static inline void firmware_upload_unregister(struct fw= _upload *fw_upload) =20 #endif =20 -int firmware_request_cache(struct device *device, const char *name); +int request_firmware_cache(struct device *device, const char *name); =20 #endif --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 6DD351586F8 for ; Thu, 22 Feb 2024 18:01:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624875; cv=none; b=R/aoUVNcAgn4bsJiUUXYta3n9WL/x5X671+6yZo7XLldPO4iD3Dr8SofMXPqE+RWClkNen7yVuJBlUKGzYw8CLs3gykdu8kPGyEKvzFpFVYUwVwbWXKoSkRpAjkQeby9ezkMuvv3DzUZWAFgpCchJcjQHaNuFTxfL1UCjX+fMiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624875; c=relaxed/simple; bh=RgR9aBJw9y7V9Rf10WSajNb4HmsteDZ5lf2W6UUWe6I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VAHfefd2VsfgaaMWZ/3PqbzmcitOudwHHKMoo5X8jdEdPIpzgLIXlyHYm7IWK/bkKoe59ZLYhjyDUMrXn7d3RZVdLtPZ19HjWjD225nFZCqq+Xn9URagXEtWYxu4kTKpw7rQB54fRjuOkDnayTCz91COH5UPjihWruiYUtCyXZ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=FkHtVP94; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="FkHtVP94" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MGqhWD002357; Thu, 22 Feb 2024 18:01:09 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=Grhe6JChjsoQRJF11IInuLGjhs+R22cmVJZpCJeZ6/M=; b=Fk HtVP94SgT5IYN3aIHGR5l2H8Lr6fsZKluQAXSk/WWipG0QN4UDhyGUjkFiBsk51L hOn+n7cIs3st5kY2SpOf48lsknBM6V+lYl6xqdF6yPvA5qERFU4kGzFU/OtPmgHn CHBnyQe0Kz/Yk/7fsjYOcFa7Jg3RyjQfztBkbchDoz0WT1zFBUuXxmF96JbNPh9O v86GdO/+SvbAJ0lXpO/33/oOPzQdZsAl/pqf/l79Hm18YuuIkhl3anQPav4jxR86 mkzl0N+fHzOsNtWeSQi7oeXMvCCC9ruKHucHq0Vjn3CPU/cXwwxnIANl+mAdVHSY +C1SfORPV9ri08x9DL9Q== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3we24ahtd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:09 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI18RZ016274 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:08 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:06 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 5/8] firmware: Convert minor inline function to macro Date: Thu, 22 Feb 2024 23:30:30 +0530 Message-ID: <20240222180033.23775-6-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: mC9sC17vTul9WfDi_jq4kCkCmo1CQDnX X-Proofpoint-ORIG-GUID: mC9sC17vTul9WfDi_jq4kCkCmo1CQDnX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 adultscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Convert to_fw_priv() inline function to macro. No functional change. Signed-off-by: Mukesh Ojha --- drivers/base/firmware_loader/main.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 2823dcd7153a..642b4d5c4375 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -80,13 +80,9 @@ struct fw_name_devm { const char *name; }; =20 -static inline struct fw_priv *to_fw_priv(struct kref *ref) -{ - return container_of(ref, struct fw_priv, ref); -} - #define FW_LOADER_NO_CACHE 0 #define FW_LOADER_START_CACHE 1 +#define to_fw_priv(d) container_of(d, struct fw_priv, d) =20 /* fw_lock could be moved to 'struct fw_sysfs' but since it is just * guarding for corner cases a global lock should be OK */ --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 55472159575 for ; Thu, 22 Feb 2024 18:01:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624891; cv=none; b=InCteLDt9a+7+ctJC+/qxzSUSfCF6ltNlS7fpWBfCbLSzl78xzT8ZyjCUjCi5Wjdu+Sgvmd/DYBLigGts2WfB5sqGw6pjW9Ey7VSk9TLbw/jUK30UrEoyeL6TKO0Q1tIEStP4o4H/oQonQffoXKyQ508V0CP9y39ZV1ORLm4YHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624891; c=relaxed/simple; bh=uvISUepi0faJHLxOL9G1jzdyJKkcXe6Hs87hT6kr5QU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KvNhcZVxx34E67GeeXjQKAdT13Fylo3FLg27UF4Lu9B9f+Ls6sKi1hTlDuZLK/j0a/u9aoPdCrtcWJaWHVfWsWvCnv4dtxh5bKWfWSC2rX14ZD2odZgYCpd1PHLTnpGyyLY9arJoDiU/HDjIMgxfdKzURxemPhUNsAIeKOkVdlc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=RaFjSATJ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="RaFjSATJ" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41M7gxmO022032; Thu, 22 Feb 2024 18:01:12 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=jFZj2zAHCd4tUDzFb5d8oO8E2+tJ2x95gkUNT647hRs=; b=Ra FjSATJTkQbdUWWGNDQtjSR4aZ1qBr7x8IoJiTpD5DUZ2CODx+Ibb17QFA0AWfbro ntr1BVrZVleD2/hcnGfnXuLS6RjWYrsHwqwpeyJn5eThynzweUEkCBcfocXCcANZ V5LhnWDjbUTn5Z1ehH0ba2SVdOW0UwFVjULTYdYSwFrYxiH1mf7WJuXQX3unF5Zf rbFFUZ3LB/hP4lLHblZVDBSKfS3xbQKo3LEvyKpYY45VT7ak+LDHnyE1bIzjOfZA X2CQfj2UoV+pVX742uWdiMRXQnUqcg84iFCLwdNiSK6HUrq5dTzaEtcwe2OlyFxI LkNRQrEbGlcNjEbhGHKg== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3we24ahtdf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:11 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI1BuL010421 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:11 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:09 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 6/8] firmware: Move module template to the bottom Date: Thu, 22 Feb 2024 23:30:31 +0530 Message-ID: <20240222180033.23775-7-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 7ZhYFu_GvPzoLp6U3--ZmILes4t5kBZA X-Proofpoint-ORIG-GUID: 7ZhYFu_GvPzoLp6U3--ZmILes4t5kBZA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 adultscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Normally, module template should be kept at the bottom of the file. Let's do the same for firmware module as well. Signed-off-by: Mukesh Ojha --- drivers/base/firmware_loader/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 642b4d5c4375..1d752965d311 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -44,10 +44,6 @@ #include "firmware.h" #include "fallback.h" =20 -MODULE_AUTHOR("Manuel Estrada Sainz"); -MODULE_DESCRIPTION("Multi purpose firmware loading support"); -MODULE_LICENSE("GPL"); - struct firmware_cache { /* firmware_buf instance will be added into the below list */ spinlock_t lock; @@ -1633,3 +1629,7 @@ static void __exit firmware_class_exit(void) =20 fs_initcall(firmware_class_init); module_exit(firmware_class_exit); + +MODULE_AUTHOR("Manuel Estrada Sainz"); +MODULE_DESCRIPTION("Multi purpose firmware loading support"); +MODULE_LICENSE("GPL"); --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 426A415958B for ; Thu, 22 Feb 2024 18:01:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624895; cv=none; b=Oxnvmq8ouDrOQBw9+SV/Q1NOCfZ5Tmng5cT5/bMCW6jyjWqv+x9/JJ5rE7Ylpryu28Tyw8hKsT/TuclcZ2M6OtuLzggq3Jew9Nz4jOyybnXF7ZJ9TfFXt5ukSLcswNWUSkJUHp2p2LYStDuqmM4h3uqLgnvxIypd7SMHJrZRwrA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624895; c=relaxed/simple; bh=Hf2vdIK5wvMBM9HYCFSZ0pmzvQMdYEUhBS/WYoYYuCA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sc73alTuH6eQcfwXa4nwd9KQa7iKtkcjpu9Yf/unDxPrDwDkxXCGdIfqLAB+F9rQz9fbGyx1UlbVbLNYE/WauAgq+co1yUNzVBaZ9naKbOdCFFRPrgnhqoZVeQoG2lRjIPZC93MMf2OfpZdaUsi7veXCfdGA8vi1yKk/D6cUzng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=NRaWZI8I; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="NRaWZI8I" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MHXbYI011313; Thu, 22 Feb 2024 18:01:14 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=WWWmcwY3ouhT7+iupdFQYEQWZmvj5RtlPOV01FUCTXg=; b=NR aWZI8ICRBjNsixcpcOAp9jVnrNq4b0M/KE+9TVCvECCy1L8sN7s7sY0JgZLJvTFn QJ2UKh4S1mKcCgAdZCXLB2a0EIXeX2Y5lP9KiKyVC1W2uFUzmw94hEiurauLqm+9 2BaQAzKl5jn3vJK/p7XiZYKYtm0hePfchx8iw2IrLXYfsskB6Cue7IliJxWJ7o84 3I9L1jlBl1Hk8wc2wwBTZAOX4CCtT3qkoSj0syc+Bu3fehAr5M79J+XfA5MIEeDm afHrrBTRnWs34y3cRqLj9pg6geSFkbv8YAXELP+l2r/yfn1UHqdgLQVzYRc0RJt+ JAAi7vNlzQsNBz1ZXNBg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3weasbr40n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:14 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI1DtV028732 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:13 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:11 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 7/8] firmware: remove prototype of fw_cache_piggyback_on_request() Date: Thu, 22 Feb 2024 23:30:32 +0530 Message-ID: <20240222180033.23775-8-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: EvuIi56fq_i4yrGRxryZPC4ZPXQalN8N X-Proofpoint-GUID: EvuIi56fq_i4yrGRxryZPC4ZPXQalN8N X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 adultscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" We should always try to avoid using prototype of a static function like fw_cache_piggyback_on_request() firmware main file. Move the relevant code in such a way that avoid the prototype usage. Signed-off-by: Mukesh Ojha --- drivers/base/firmware_loader/main.c | 109 ++++++++++++++-------------- 1 file changed, 54 insertions(+), 55 deletions(-) diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 1d752965d311..91a45767a3a7 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -100,8 +100,6 @@ static inline int fw_state_wait(struct fw_priv *fw_priv) return __fw_state_wait_common(fw_priv, MAX_SCHEDULE_TIMEOUT); } =20 -static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv); - static struct fw_priv *__allocate_fw_priv(const char *fw_name, struct firmware_cache *fwc, void *dbuf, @@ -672,7 +670,61 @@ static int fw_add_devm_name(struct device *dev, const = char *name) =20 return 0; } + +static struct fw_cache_entry *alloc_fw_cache_entry(const char *name) +{ + struct fw_cache_entry *fce; + + fce =3D kzalloc(sizeof(*fce), GFP_ATOMIC); + if (!fce) + goto exit; + + fce->name =3D kstrdup_const(name, GFP_ATOMIC); + if (!fce->name) { + kfree(fce); + fce =3D NULL; + goto exit; + } +exit: + return fce; +} + +static int __fw_entry_found(const char *name) +{ + struct firmware_cache *fwc =3D &fw_cache; + struct fw_cache_entry *fce; + + list_for_each_entry(fce, &fwc->fw_names, list) { + if (!strcmp(fce->name, name)) + return 1; + } + return 0; +} + +static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv) +{ + const char *name =3D fw_priv->fw_name; + struct firmware_cache *fwc =3D fw_priv->fwc; + struct fw_cache_entry *fce; + + spin_lock(&fwc->name_lock); + if (__fw_entry_found(name)) + goto found; + + fce =3D alloc_fw_cache_entry(name); + if (fce) { + list_add(&fce->list, &fwc->fw_names); + kref_get(&fw_priv->ref); + pr_debug("%s: fw: %s\n", __func__, name); + } +found: + spin_unlock(&fwc->name_lock); +} + #else +static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv) +{ +} static bool fw_cache_is_setup(struct device *dev, const char *name) { return false; @@ -1285,56 +1337,6 @@ static int uncache_firmware(const char *fw_name) return -EINVAL; } =20 -static struct fw_cache_entry *alloc_fw_cache_entry(const char *name) -{ - struct fw_cache_entry *fce; - - fce =3D kzalloc(sizeof(*fce), GFP_ATOMIC); - if (!fce) - goto exit; - - fce->name =3D kstrdup_const(name, GFP_ATOMIC); - if (!fce->name) { - kfree(fce); - fce =3D NULL; - goto exit; - } -exit: - return fce; -} - -static int __fw_entry_found(const char *name) -{ - struct firmware_cache *fwc =3D &fw_cache; - struct fw_cache_entry *fce; - - list_for_each_entry(fce, &fwc->fw_names, list) { - if (!strcmp(fce->name, name)) - return 1; - } - return 0; -} - -static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv) -{ - const char *name =3D fw_priv->fw_name; - struct firmware_cache *fwc =3D fw_priv->fwc; - struct fw_cache_entry *fce; - - spin_lock(&fwc->name_lock); - if (__fw_entry_found(name)) - goto found; - - fce =3D alloc_fw_cache_entry(name); - if (fce) { - list_add(&fce->list, &fwc->fw_names); - kref_get(&fw_priv->ref); - pr_debug("%s: fw: %s\n", __func__, name); - } -found: - spin_unlock(&fwc->name_lock); -} - static void free_fw_cache_entry(struct fw_cache_entry *fce) { kfree_const(fce->name); @@ -1563,9 +1565,6 @@ static inline void unregister_fw_pm_ops(void) unregister_pm_notifier(&fw_cache.pm_notify); } #else -static void fw_cache_piggyback_on_request(struct fw_priv *fw_priv) -{ -} static inline int register_fw_pm_ops(void) { return 0; --=20 2.43.0.254.ga26002b62827 From nobody Mon Feb 9 14:35:26 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 143F0157E90 for ; Thu, 22 Feb 2024 18:01:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624889; cv=none; b=iR9s+Aks1gSRaKLxszXa7cDfc/1q4Ib2RxV9TN7v8WLkLdzAsgrHjZbLO+ynD+XGbiE2yQztrEWS7oRVtm07gjoVW4+F4LkaLdg7Ou9/4V+kM43YSO+7r5LoLebxG4MOuz/DMvzjqF71z0DYd+Zm0uWLVewLCFPbCx5UML77ie4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708624889; c=relaxed/simple; bh=9K3pWAiB/DqkeRoMCn7/BciTB9vx1+qzhkv3Yo6Rxl0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ew6IoaB1F284qrldlSIBzhUgNBMibWdAQKpHtGyy+noK34MBO2bM2wy5c6ftcoG+ePRfcTmOUroMn4s+JZKpGeHFS804IIylMVWSxWcK1Q1mF3d3bLtUuZeSwhLsCzgVmALBmfEQn8Vc00XA8oGmTXR6Jqsw4EpLrUYxfmz+mxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=kdpw3quG; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="kdpw3quG" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41MAF2so015686; Thu, 22 Feb 2024 18:01:17 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=pj2BPbAZcucSWeeG7pNO1PQzpY9Trgm52RJu+sDer8I=; b=kd pw3quGIAKDjPiieFrzFzrCPDmjwc3YGxrpM/d3iC2YYE8Wl4nLCsX8zfHw7ev2AC kQUIc1NiMMJkJKe0IPPxtuZnSFDERlXq85LXC6MzweAt/RUEN92ZYS+QY/MV9Ppf H+tiN3XREoh2Ljcy9BQpSvi/2gbfrUksk4YzoEAnG5AaIe7KfkIsDqVZnRgHld0V YKuiOjVp9a8V5FznPD1uFz5ZPslS4dKYG8uIOXXmKFbw8YahTl5+Y4fMboqi6biV N60fkxjBBqotG9b7eo07KwUFY3AuOl5RmjrFjOka8x6PpzdvoXttez+G7/KIW4je j01mn4pjKNUqDrfQlbKA== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3we2bx9rey-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:16 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41MI1GcG016346 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Feb 2024 18:01:16 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 22 Feb 2024 10:01:14 -0800 From: Mukesh Ojha To: , , , CC: , Mukesh Ojha Subject: [PATCH vRFC 8/8] firmware: FW_OPT_UEVENT for all request_firmware family functions Date: Thu, 22 Feb 2024 23:30:33 +0530 Message-ID: <20240222180033.23775-9-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.43.0.254.ga26002b62827 In-Reply-To: <20240222180033.23775-1-quic_mojha@quicinc.com> References: <20240222180033.23775-1-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: z9afkXeJj85ww57MpsoRPCzbkAAiUiHa X-Proofpoint-GUID: z9afkXeJj85ww57MpsoRPCzbkAAiUiHa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-22_13,2024-02-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 priorityscore=1501 mlxscore=0 adultscore=0 phishscore=0 clxscore=1015 malwarescore=0 spamscore=0 mlxlogscore=917 lowpriorityscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402220140 Content-Type: text/plain; charset="utf-8" Currently, FW_OPT_UEVENT is used in almost every request_firmware family function apart from request_firmware_nowait(), however, request_firmware_nowait() uses much lower level api which does not assume FW_OPT_UEVENT to be a default flag. Apply FW_OPT_UEVENT as default flag. Signed-off-by: Mukesh Ojha --- drivers/base/firmware_loader/main.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 91a45767a3a7..4650fef9b713 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -985,7 +985,8 @@ _request_firmware(const struct firmware **firmware_p, c= onst char *name, =20 /* Need to pin this module until return */ __module_get(THIS_MODULE); - ret =3D __request_firmware(firmware_p, name, device, NULL, 0, 0, opt_flag= s); + ret =3D __request_firmware(firmware_p, name, device, NULL, 0, 0, + FW_OPT_UEVENT | opt_flags); module_put(THIS_MODULE); return ret; } @@ -1013,8 +1014,7 @@ int request_firmware(const struct firmware **firmware_p, const char *name, struct device *device) { - return _request_firmware(firmware_p, name, device, NULL, 0, 0, - FW_OPT_UEVENT); + return _request_firmware(firmware_p, name, device, NULL, 0, 0, 0); } EXPORT_SYMBOL(request_firmware); =20 @@ -1034,8 +1034,7 @@ EXPORT_SYMBOL(request_firmware); int request_firmware_nowarn(const struct firmware **firmware, const char *= name, struct device *device) { - return _request_firmware(firmware, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_NO_WARN); + return _request_firmware(firmware, name, device, NULL, 0, 0, FW_OPT_NO_WA= RN); } EXPORT_SYMBOL_GPL(request_firmware_nowarn); =20 @@ -1054,8 +1053,7 @@ int request_firmware_direct(const struct firmware **f= irmware_p, const char *name, struct device *device) { return _request_firmware(firmware_p, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_NO_WARN | - FW_OPT_NOFALLBACK_SYSFS); + FW_OPT_NO_WARN | FW_OPT_NOFALLBACK_SYSFS); } EXPORT_SYMBOL_GPL(request_firmware_direct); =20 @@ -1073,7 +1071,7 @@ int request_firmware_platform(const struct firmware *= *firmware, const char *name, struct device *device) { return _request_firmware(firmware, name, device, NULL, 0, 0, - FW_OPT_UEVENT | FW_OPT_FALLBACK_PLATFORM); + FW_OPT_FALLBACK_PLATFORM); } EXPORT_SYMBOL_GPL(request_firmware_platform); =20 @@ -1124,7 +1122,7 @@ request_firmware_into_buf(const struct firmware **fir= mware_p, const char *name, return -EOPNOTSUPP; =20 return _request_firmware(firmware_p, name, device, buf, size, 0, - FW_OPT_UEVENT | FW_OPT_NOCACHE); + FW_OPT_NOCACHE); } EXPORT_SYMBOL(request_firmware_into_buf); =20 @@ -1149,8 +1147,7 @@ request_partial_firmware_into_buf(const struct firmwa= re **firmware_p, return -EOPNOTSUPP; =20 return _request_firmware(firmware_p, name, device, buf, size, offset, - FW_OPT_UEVENT | FW_OPT_NOCACHE | - FW_OPT_PARTIAL); + FW_OPT_NOCACHE | FW_OPT_PARTIAL); } EXPORT_SYMBOL(request_partial_firmware_into_buf); =20 --=20 2.43.0.254.ga26002b62827