From nobody Mon Sep 28 04:51:25 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 ECF8436BCED for ; Wed, 26 Aug 2026 10:27:46 +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=1787740070; cv=none; b=U76Up7F4Ib1RxJhlWumF1xX3rjRf+EMSSD7MrhEImL0pOhOKO80qAi7WoCvUpsxgl7xg6MQ7qK+bHYamJmOEPxbl1p4SmWLFzVcqJsh700OtvAH4efe6RB9hzO3COm+M0ZQn83TrUhxe7b/v4/hyLnesJH/DrMwfoYqvG7xjsfs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787740070; c=relaxed/simple; bh=vSYj1Ys/owwCN8sFbLJ/5CPpCU7lY6/j6/iPP19TXz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SmGvSXeLUAlfuwjyqNndTFoQPvlVAY/dj1PuAmCRDSGdOQeCKzxlVpeI6zS5n3Cvf3Ws48wZdHkavCErXQ/IyJl/exj9rxD3uGnUCFaeoMxOJkCmPyNZk+zX3MvgaI0B8lCMVv3pKFzmlIlWybSmdj8h9tA8hYV9+wBDEbWO0nk= 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=osi5enMX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LUcc67O8; arc=none smtp.client-ip=205.220.168.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="osi5enMX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LUcc67O8" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67QAGTFO1658496 for ; Wed, 26 Aug 2026 10:27:44 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=pEM9jPOOZuj CwjK6sG3Tm845ZU4s2wO25Iym0LKZjIU=; b=osi5enMX4P/i451oYkNBNO3R8ad PXigVu4raCKysQ9kxZ/Idb8DXn95IdRrcUnu5vtWcdmC5bBv0Zp4SuF6OViExIvN GthIo/uiTK8/3IqP7K0lZf7hwaO5GaVoHTV2HREUOh2vYcr8c9dTV6aVaRTOscjY aBYzKQxixMntjDhbtfja1Cs+LZcoqzzn92r1TQqgTLVuPBql0+AGIn7k/1AOI4Bm dYmNENqBsaX6UOoPUkmD86UYJZqs1q9c6LyrC5OEsyXphgSElM6L+2cY/Cln8jHu 7R238DUpV/QwQZDwiomPQ8DKilVRySS3x8DeayhiXVAJ1iuxb/tgKIuQwCA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g9uq1rs0n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Aug 2026 10:27:44 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-52ee59064d2so1225631cf.1 for ; Wed, 26 Aug 2026 03:27:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787740063; x=1788344863; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=pEM9jPOOZujCwjK6sG3Tm845ZU4s2wO25Iym0LKZjIU=; b=LUcc67O8C1I0n/SNus7LXiPnq04+ZMXbMH/H0JObjTykyrXOTEVN7kETjhYrLCgoS4 ACPIYZ8Irj5BtR5+yaD7BzfHHgNY+BsZG8rw24I0Z6wnS9/i3/0o8e0jvwVg7/1Zg1bo kwrGxlIbQ1vIA321bL9hAQ9NOOgwlg5QmqGQcgCOStT7bOxGiVD2Vs5w9Hz3TbH5ChHE uKG/SXmXquPldG0QJGfq00phgJEOggan6Oo0EH3tv+lgqASU7xIXYMpliqdwAFBy91kj tnLLKT/rZQzGrqhRV9P1HWWRhjwgnTd+kqCn67X/+uRiQ1eMEwhCxwF79vylHzAujJ6P Ftrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787740063; x=1788344863; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=pEM9jPOOZujCwjK6sG3Tm845ZU4s2wO25Iym0LKZjIU=; b=FKNhqcMkRISAWbXxQ2/CR1c/ROx0t+WoXI6Ifk/9yEOFynX6/5jCukQ/TRzDLEtRtL RndVi19QMICELma12rDvGBLxfPiWjBPoC3R78ZhMHFfaXlrPEw9eKdxnJ2NcdhbAgwQm jq8Qtk5Ba1A7pKSYZbpQhkRQv/H+ZuV1hHs14jEnYWH5IhGhBlc6nJ8vsVqqy7DolVTH dpnI2N2AetbMA6mmdiHt4tfYLtF26VYV9tgR/r8xsNIT+/2jel6Mx6wGkTqy0ddCth5+ U9XTgeigQM8s+NcZEuhRakZBPllKNKMU+CfKEuJuTc1y0H5CoR1dO36IP0RNRLlUFRcu bVrg== X-Forwarded-Encrypted: i=1; AHgh+RrDC+2/Ee/+DC9LbTJB79ru46TcBHPOqbVkkdLq3Cw4G5LJUKbK4dMlx9qRuAOK2Xj39zvATfqOZVaCKPs=@vger.kernel.org X-Gm-Message-State: AFuF++nrorXDQ5pPmz0hXIO1z3ZH5m6QMfTjngeJTNweGEeVXFZEyIs6 fiPqYIA0Pj7LZ2YShoE/odY2s9C7kmagcwdhzBv6SYy+uefeWuX4VEu0sdGg2kSbeOpLtvx6GdY d3icM+4GTuM369GtDI5gp6CGtoDuDq3knp/40/7CsysHR4Nf3Vf2BSRag7DfcsHatZyM= X-Gm-Gg: AR+sD13dQzRBDBriul8Svyw9Owf+rdnWCyt80RFa4mR5WDJqbXtVlSSBsnIkDn0iiH0 SafOgEsyDyTbIegA3MX37szhi4ckjn+jq5+s0ODpVVMxHlA7shwD/u2OEOm51fnOW/HyqOpmJsY llvzTNnY+SElyOgxVCVkjfP0HtdJdPHGNEzNkeddTTseKvDse4c2SmtI6prK+cBynle2mgL6zd7 itFn2yL5aAN0DZO1sTjuhq+hF3rEaZ1eR5OfvmJqG36wE08cly1qsPqPnUsMTCY8cRmi0zrFr0U NkbIS8dt/Ko8Mv0IcNKzA7QJwRIeLikzlkPTVAV3C7t14voDgZ8RIKxbVgI8jjZrjSbvL6F6IG7 ZfmJz9TGTNgenZTeEkw9WgV2tMgPAaDkGWJttrbOWqnBxPzQ03iYT+QkX4z+N6y0GqhZUjx2enq kzyRE5uPbeSbFdxoQ= X-Received: by 2002:a05:622a:118d:b0:51b:fb5f:b263 with SMTP id d75a77b69052e-52e2ec1e5demr130566581cf.4.1787740058122; Wed, 26 Aug 2026 03:27:38 -0700 (PDT) X-Received: by 2002:a05:622a:118d:b0:51b:fb5f:b263 with SMTP id d75a77b69052e-52e2ec1e5demr130566251cf.4.1787740057635; Wed, 26 Aug 2026 03:27:37 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c250a5d68d1sm506364966b.11.2026.08.26.03.27.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 03:27:36 -0700 (PDT) From: Hans de Goede To: Bjorn Andersson , Cristian Marussi , Sudeep Holla Cc: Hans de Goede , Daniel Lezcano , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Bjorn Andersson Subject: [PATCH v4 1/3] module: add SCMI device table alias support Date: Wed, 26 Aug 2026 12:27:32 +0200 Message-ID: <20260826102734.31766-2-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260826102734.31766-1-johannes.goede@oss.qualcomm.com> References: <20260826102734.31766-1-johannes.goede@oss.qualcomm.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-Proofpoint-GUID: vmaxA4wMLlfwgRtYKZWGNdYb2T1yPXfu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfX9fl5JPam1lJJ zC9TNY6wZOtcnvbealFm1dcVfRsph4tb1aTREs+CIdZGK/AieFhkGglNeZPcFsrECoRifKJvTMX 30s/T5QqyQ3XIePG3zYSUZyWvrJDZLJ/aVKdJQ8D6eYl+pYD6UHujIdqw9jw+mCQPq5jZc+Aofi uz9ve6E3p1orX9OXi4CNN72UvyjPAExYpdFOQn2r/t6poaubOCskw7pDv8DP12tEyOnONqvF1Cm 4oMFDBDuIPHTW97HvNk/NtPI2mSZSZQcUj0CuETGyIb2I2AUlgwD2tZjDmpoOEAGXUlsehc2hsx PrFA0+abC+Mxpo+xfd58sDvwK8c23pOV4Z5ro0VuhWNMWeOOWmRZOuQ0Lz3VXpd0lnvAMsulTtH /x7UBNpuV406cOH4n2tUiMlROlHzsK/YpsnUeh9wB9RD7b10e7I45m3ECS8rFMfVZRfW7p7pHJk edeYR3U3ehdcf9Vsqzg== X-Authority-Analysis: v=2.4 cv=Y77IdBeN c=1 sm=1 tr=0 ts=6a8ebfa0 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=NbjprmzQH6tOvfj-_-IA:9 a=uxP6HrT_eTzRwkO_Te1X:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-ORIG-GUID: vmaxA4wMLlfwgRtYKZWGNdYb2T1yPXfu X-Proofpoint-Spam-Info: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfX+NCBoJPXJusg wEG3joby7bJ8oUz+mAGpGvr/ISkn4E4Zh5XXixw0/vEpjqf3zY8fMrgk07MN2WO7i7Act6ixDFo PtXlANo8FLW9vwBo2G28ht4VEQjnWjY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-26_03,2026-08-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608260087 Content-Type: text/plain; charset="utf-8" From: Bjorn Andersson SCMI client drivers already describe their bus match data with MODULE_DEVICE_TABLE(scmi, ...), but modpost does not know how to consume SCMI device tables. As a result, SCMI modules do not get generated module aliases from their id tables. Move struct scmi_device_id to mod_devicetable.h so it has a fixed layout visible to modpost, add the corresponding generated offsets and teach file2alias to emit scmi:: aliases. Use the same stable alias format for SCMI device uevents and sysfs modaliases. The previous string included the instance-specific device name, which is not useful for matching modules. Assisted-by: Codex:GPT-5.5 Reviewed-by: Hans de Goede Tested-by: Hans de Goede Signed-off-by: Bjorn Andersson Signed-off-by: Hans de Goede --- Changes in v4: - Drop unused driver_data member from struct scmi_device_id (Uwe) - Drop device-id/scmi.h include from mod_devicetable.h (Uwe) - Add device-id/scmi.h to devicetable-offsets.c and file2alias.c (Uwe) Changes in v3: - Adjust for ad428f5811bd ("mod_devicetable.h: Split into per subsystem headers") - Add '\n' to modalias_show() output, matching other subsystems' modalias Changes in v2: - Drop #include from scmi_protocol.h - Link to v1: https://patch.msgid.link/20260616-scmi-modalias-v1-0-662b8dd5= 2ab2@oss.qualcomm.com --- MAINTAINERS | 1 + drivers/firmware/arm_scmi/bus.c | 21 ++++++++++----------- include/linux/device-id/scmi.h | 17 +++++++++++++++++ include/linux/scmi_protocol.h | 6 +----- scripts/mod/devicetable-offsets.c | 5 +++++ scripts/mod/file2alias.c | 12 ++++++++++++ 6 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 include/linux/device-id/scmi.h diff --git a/MAINTAINERS b/MAINTAINERS index fc6ca082106f..ee5beee606fc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -26334,6 +26334,7 @@ F: drivers/pmdomain/arm/ F: drivers/powercap/arm_scmi_powercap.c F: drivers/regulator/scmi-regulator.c F: drivers/reset/reset-scmi.c +F: include/linux/device-id/scmi.h F: include/linux/sc[mp]i_protocol.h F: include/trace/events/scmi.h F: include/uapi/linux/virtio_scmi.h diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bu= s.c index 793be9eabaed..d12d5de15a1a 100644 --- a/drivers/firmware/arm_scmi/bus.c +++ b/drivers/firmware/arm_scmi/bus.c @@ -13,11 +13,12 @@ #include #include #include +#include #include =20 #include "common.h" =20 -#define SCMI_UEVENT_MODALIAS_FMT "%s:%02x:%s" +#define SCMI_UEVENT_MODALIAS_FMT SCMI_MODULE_PREFIX "%02x:%s" =20 BLOCKING_NOTIFIER_HEAD(scmi_requested_devices_nh); EXPORT_SYMBOL_GPL(scmi_requested_devices_nh); @@ -141,7 +142,7 @@ static int scmi_protocol_table_register(const struct sc= mi_device_id *id_table) int ret =3D 0; const struct scmi_device_id *entry; =20 - for (entry =3D id_table; entry->name && ret =3D=3D 0; entry++) + for (entry =3D id_table; entry->name[0] && ret =3D=3D 0; entry++) ret =3D scmi_protocol_device_request(entry); =20 return ret; @@ -197,18 +198,18 @@ scmi_protocol_table_unregister(const struct scmi_devi= ce_id *id_table) { const struct scmi_device_id *entry; =20 - for (entry =3D id_table; entry->name; entry++) + for (entry =3D id_table; entry->name[0]; entry++) scmi_protocol_device_unrequest(entry); } =20 static int scmi_dev_match_by_id_table(struct scmi_device *scmi_dev, const struct scmi_device_id *id_table) { - if (!id_table || !id_table->name) + if (!id_table || !id_table->name[0]) return 0; =20 /* Always skip transport devices from matching */ - for (; id_table->protocol_id && id_table->name; id_table++) + for (; id_table->protocol_id && id_table->name[0]; id_table++) if (id_table->protocol_id =3D=3D scmi_dev->protocol_id && strncmp(scmi_dev->name, "__scmi_transport_device", 23) && !strcmp(id_table->name, scmi_dev->name)) @@ -245,7 +246,7 @@ static struct scmi_device *scmi_child_dev_find(struct d= evice *parent, struct device *dev; =20 id_table[0].protocol_id =3D prot_id; - id_table[0].name =3D name; + strscpy(id_table[0].name, name, sizeof(id_table[0].name)); =20 dev =3D device_find_child(parent, &id_table, scmi_match_by_id_table); if (!dev) @@ -282,8 +283,7 @@ static int scmi_device_uevent(const struct device *dev,= struct kobj_uevent_env * const struct scmi_device *scmi_dev =3D to_scmi_dev(dev); =20 return add_uevent_var(env, "MODALIAS=3D" SCMI_UEVENT_MODALIAS_FMT, - dev_name(&scmi_dev->dev), scmi_dev->protocol_id, - scmi_dev->name); + scmi_dev->protocol_id, scmi_dev->name); } =20 static ssize_t modalias_show(struct device *dev, @@ -291,9 +291,8 @@ static ssize_t modalias_show(struct device *dev, { struct scmi_device *scmi_dev =3D to_scmi_dev(dev); =20 - return sysfs_emit(buf, SCMI_UEVENT_MODALIAS_FMT, - dev_name(&scmi_dev->dev), scmi_dev->protocol_id, - scmi_dev->name); + return sysfs_emit(buf, SCMI_UEVENT_MODALIAS_FMT "\n", + scmi_dev->protocol_id, scmi_dev->name); } static DEVICE_ATTR_RO(modalias); =20 diff --git a/include/linux/device-id/scmi.h b/include/linux/device-id/scmi.h new file mode 100644 index 000000000000..1b4ccfa9dcc5 --- /dev/null +++ b/include/linux/device-id/scmi.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef LINUX_DEVICE_ID_SCMI_H +#define LINUX_DEVICE_ID_SCMI_H + +#ifdef __KERNEL__ +#include +#endif + +#define SCMI_NAME_SIZE 32 +#define SCMI_MODULE_PREFIX "scmi:" + +struct scmi_device_id { + __u8 protocol_id; + char name[SCMI_NAME_SIZE]; +}; + +#endif /* ifndef LINUX_DEVICE_ID_SCMI_H */ diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index 5ab73b1ab9aa..ba53302d95f5 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -9,6 +9,7 @@ #define _LINUX_SCMI_PROTOCOL_H =20 #include +#include #include #include #include @@ -951,11 +952,6 @@ struct scmi_device { =20 #define to_scmi_dev(d) container_of_const(d, struct scmi_device, dev) =20 -struct scmi_device_id { - u8 protocol_id; - const char *name; -}; - struct scmi_driver { const char *name; int (*probe)(struct scmi_device *sdev); diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-of= fsets.c index b4178c42d08f..91ec3704ee2b 100644 --- a/scripts/mod/devicetable-offsets.c +++ b/scripts/mod/devicetable-offsets.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #define COMPILE_OFFSETS +#include #include #include =20 @@ -144,6 +145,10 @@ int main(void) DEVID(rpmsg_device_id); DEVID_FIELD(rpmsg_device_id, name); =20 + DEVID(scmi_device_id); + DEVID_FIELD(scmi_device_id, protocol_id); + DEVID_FIELD(scmi_device_id, name); + DEVID(i2c_device_id); DEVID_FIELD(i2c_device_id, name); =20 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 8d36c74dec2d..5379b1def07b 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -121,6 +121,7 @@ typedef struct { /* Big exception to the "don't include kernel headers into userspace, which * even potentially has different endianness and word sizes, since * we handle those differences explicitly below */ +#include "../../include/linux/device-id/scmi.h" #include "../../include/linux/mod_devicetable.h" =20 struct devtable { @@ -852,6 +853,16 @@ static void do_rpmsg_entry(struct module *mod, void *s= ymval) module_alias_printf(mod, false, RPMSG_DEVICE_MODALIAS_FMT, *name); } =20 +/* Looks like: scmi:NN:S */ +static void do_scmi_entry(struct module *mod, void *symval) +{ + DEF_FIELD(symval, scmi_device_id, protocol_id); + DEF_FIELD_ADDR(symval, scmi_device_id, name); + + module_alias_printf(mod, false, SCMI_MODULE_PREFIX "%02x:%s", + protocol_id, *name); +} + /* Looks like: i2c:S */ static void do_i2c_entry(struct module *mod, void *symval) { @@ -1491,6 +1502,7 @@ static const struct devtable devtable[] =3D { {"virtio", SIZE_virtio_device_id, do_virtio_entry}, {"vmbus", SIZE_hv_vmbus_device_id, do_vmbus_entry}, {"rpmsg", SIZE_rpmsg_device_id, do_rpmsg_entry}, + {"scmi", SIZE_scmi_device_id, do_scmi_entry}, {"i2c", SIZE_i2c_device_id, do_i2c_entry}, {"i3c", SIZE_i3c_device_id, do_i3c_entry}, {"slim", SIZE_slim_device_id, do_slim_entry}, --=20 2.55.0 From nobody Mon Sep 28 04:51:25 2026 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 4CA843C0634 for ; Wed, 26 Aug 2026 10:27:42 +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=1787740068; cv=none; b=BoksQRyOgu8STZMuFfgUoendd2d2d0cQ3O7h2mX/thBhrEG2buYOodTrg159sSKmM1+AKdwnV3AEq2ij8IjecwT5dAfAj+WwFwbChiY4ABy36WKjm3sRgAgF5NJHYpk2Fwk2eAvjg+Uxtj8rqFg9znmgGHV+DaiypsrVz507NQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787740068; c=relaxed/simple; bh=4WRilBWhHzZLU8uvO/z39X42z49BUIa3+WWApYbxJ24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oTj4eCDq+CXjPUswL1/pUt2qZgPQxh7MCvpd+U2+uui/Egp8n9nMGATCOiXdupxE11eSHkRTmZlI2WlvBQI0rdV30FCqfrpuzx/ZPtlRHqwVRpaN7M877h0QcFIUh3k3tWfurYWs2+lhpeZtBiKOpo9vo+gR1wYlzGbSt6Muomo= 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=f3ToAtLn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hTOhHXwO; 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="f3ToAtLn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hTOhHXwO" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67QAGpdR107560 for ; Wed, 26 Aug 2026 10:27:40 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=c5VY/KOB4mi ZQvykR/E8D9DhRmzVzOzBrO3/MiSseIo=; b=f3ToAtLnnYAf6zOg5679hxdEAY8 VinJg18H1mIPlvYvTXCu7/GToxUrtiMSrz0i4hAGa6PGY9m8KC5p1dbA0/DjesFL dOCuxSXs+BwIxiv6K8fQJoKEdVI6f7mSCow6kKgymCiMH8ypSKsC/J2p5Ubw9f5k YooO9OMs4Yx7uMQmvG4yZcOXYy5Krbjq1qBAdQvdzvx/EpaLWWBLYtJ3zWiU90qA u0zX7s+7c6bK4AnHveNHlGMfy+2OO9Cia4QyjUVq5ZOnJNa5t6i2TiTf2TG4bg/t J0bJKZvwrSPXWN2foz57MQ5CRpf7vaP41N/vW+g+OdvJeN9kJsxVDTvzTzg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g9s9g9bwp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Aug 2026 10:27:40 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5174a236220so7003741cf.3 for ; Wed, 26 Aug 2026 03:27:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787740060; x=1788344860; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=c5VY/KOB4miZQvykR/E8D9DhRmzVzOzBrO3/MiSseIo=; b=hTOhHXwOF1hi8+izp9pIArNvDhV9QsotS0KjUZUb5pEDirGopaPVt/YgfZWvuNgjHf wB5ftNWkk/i1g9I84nhSOI/9+LrYvuzI8SIT3UQxLSqsFydgtGHsykzxWJ9N8m+mnpU7 SEZGC/5A7XF+WbQ3P7DJW9H2xzRd6+6rf1tRkjbJjbeCT45UjCrPYx0iX3MHCznj6UIJ KVJUVf6Qq0oNOPmg7V0c2H0l15ti7HL4JOsZPvGxWC3ttnyXJX393jopR5L+RYfHBdlV bWvzs3KTGdsZa9TNdDM7Li48Q3FkoW1Gdx/ljYxPxaf1olNWGKqn2Vs07g8BWRnj2pPJ qqpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787740060; x=1788344860; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=c5VY/KOB4miZQvykR/E8D9DhRmzVzOzBrO3/MiSseIo=; b=Fto1Vtnu9XPUYcnoVRqwf+9od+4/rNsw1S8AEAtvOtusRXkZj5fOD4reM2mj6ZO9X2 TFyJ+nLoSe2VdnBLlkVCoPhhVHl5NskDWP/d3DtWBWeg/umI8s941wCIIt4fRpaytvW2 6+eNR8U9QySR9y05DFaEF6B02FfZQxFGNp7YD0tuCkAwoDf3mmW1XfSW70OcbcK8xyGT E2IYew6zVWn5xzNOgNU4X0rBdfyeU6RfJBKZYPLTIiKFN2IXrXTJT7MPd/9Q6McvR9qa VBF0ZmWlvIY6kFIP30vrzyYORDe+8RQQ4rARCHAjta1vC68yNTVpt7nUWXDm2dQ1+31O T9jg== X-Forwarded-Encrypted: i=1; AHgh+RryY62ea6MaWdp4tOZte56eBZyXpQk7J8Sz0flT1rKTscaefCDMbWeeRHCRZInit0BAWC2lUi51USEkw4s=@vger.kernel.org X-Gm-Message-State: AFuF++kwbAsk3QGgtJok/blM+o1OnbYHNefH/9wplQ0+s4lp19GLAKku bjHX13AMciHJvh4kp2GV/YKiVdw/Sua3Z3pffKu/mvt60S4rfcDZ4q+Na3e02pkzzOq5jB8o7wm H+KUrNdbRmQEXxTjCp6y0kotJCwELny6UuObC+onyp81113jXbR3+QiAokdnSDalb5zQ= X-Gm-Gg: AR+sD10u4eA7jzrmbVHgHJcHTa6qwfItju2hBCC7JQDl5sxiewy6Oo7CjkYt7mcy/ut stL++fKpuRETCbBKixH3EEPkLIjH2rHbXOzzKSm7+6EiEKGUiQZEpUtONYMwi8RGJ6ZK7Ya77oU lVUM8MEIJSQeuLvH6jmiqWGWh/IAjE56znuypJPr3JZ8k5z0Vj9Bt10QRnj67pxImk7OUfK+dFL JZmHpKNl5oZeGbj/IQVrHUc1xG8ZlCvcXfI+zJ/OW05NFamX9KMMEVBIdKGrWb+7L1DU+Yj/iO5 F4xp/8C9dE79yVDKYymQBfdT1WgzfFCdNK5P2E1+8Obu1JAgk+CBXKBA2xz2IPaR476AIYYNwpR 9NE3mGUJqrsGPr+zYOCXMNmhBpIXXI62J8iyc80IFt+577G1E8s3mFtYMYkxBVrgxF23H3/okDY QMioObx8xHqPOaWys= X-Received: by 2002:a05:622a:8c1c:b0:52f:4a76:750d with SMTP id d75a77b69052e-52f4a7675d1mr2032151cf.9.1787740059597; Wed, 26 Aug 2026 03:27:39 -0700 (PDT) X-Received: by 2002:a05:622a:8c1c:b0:52f:4a76:750d with SMTP id d75a77b69052e-52f4a7675d1mr2031811cf.9.1787740059146; Wed, 26 Aug 2026 03:27:39 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c250a5d68d1sm506364966b.11.2026.08.26.03.27.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 03:27:38 -0700 (PDT) From: Hans de Goede To: Bjorn Andersson , Cristian Marussi , Sudeep Holla Cc: Hans de Goede , Daniel Lezcano , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v4 2/3] firmware: arm_scmi: Pre-register protocol, name tupples for standard protocols Date: Wed, 26 Aug 2026 12:27:33 +0200 Message-ID: <20260826102734.31766-3-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260826102734.31766-1-johannes.goede@oss.qualcomm.com> References: <20260826102734.31766-1-johannes.goede@oss.qualcomm.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-Proofpoint-GUID: RQvrH8WmZya1s0ivyxNvx1Se96CawSQf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfX3veJvialbmCc eQcc9XtoI+4A46p0/esG5+9djPjw2QQZFWeco5xiuwoWY09j9SWu5V1OunZeDiyeugVlXBF+mIO R8sbdvRQ7t/R4sxdmDwhyO61/AlPyJQgKvGAcBPN5jeDboem/Phb8og+yTub0Q/c1quOriaSB5z 8p9ojwmw8td8wlRaSsUv/VCx7mJBFji05gGYzzUx8Oo7JVBgs0Xy9ciGqUailBD3/vOypN2NRtn xA6FlY58JPD5hNJi9bTqsTBcMqyXx+SWojHvyiEdcSlBeXaQPuBwjPKl+Luxp7Wxjvzwotvhxlk X+o1nyjuymlQlXxbahy9K6PpmLMaBUk3fG9OHH6bdTcmttPB/yPYWl/2oyzdhk9hNIFaBYEoFCX q7kV34scDTzdTGFwAG+CMwMUH6XhZDo5QTFn3beev/aqCHrLhB/w+G2x6LoAXDjpvWxCnZwewjf Tnc1pFn2qgdMuoXn1+A== X-Authority-Analysis: v=2.4 cv=Xfq5Co55 c=1 sm=1 tr=0 ts=6a8ebf9c cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=bC-a23v3AAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=VscC1fOeZKh3OTZq1J8A:9 a=kacYvNCVWA4VmyqE58fU:22 a=FO4_E8m0qiDe52t0p3_H:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfXzSoih1r6jzHy 656gUyyuOBTIqgO4SbSc0mkoSHMUkaBLhVd5vSKHVFSMSgHKMAcVPHxGBcWFuBypPLcgJtttCbY hXYrdlQVMl31aXFPCgwslQSuBqc5I/g= X-Proofpoint-ORIG-GUID: RQvrH8WmZya1s0ivyxNvx1Se96CawSQf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-26_03,2026-08-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608260087 Content-Type: text/plain; charset="utf-8" From: Cristian Marussi Driver module auto-loading requires the devices to already be created for udev to get the necessary uevents based on which udev auto-loads modules. But SCMI devices are only created after their { protocol, name } tupples have been registered which is done from scmi_driver_register(). This creates a circular dependency where device creation is waiting for the driver to register and loading the module with the driver is waiting for the device to be created. Pre-register the tupples for standard protocols to break this circular dependency. Tested-by: Hans de Goede Signed-off-by: Cristian Marussi Signed-off-by: Hans de Goede --- Changes in v3: - Drop adding of a bus uevent function this is already done - Update comments and commit message with a better explanation of why - Link to v1/RFC: https://patch.msgid.link/20250203100154.140877-2-cristian= .marussi@arm.com --- drivers/firmware/arm_scmi/bus.c | 47 ++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bu= s.c index d12d5de15a1a..111727904a89 100644 --- a/drivers/firmware/arm_scmi/bus.c +++ b/drivers/firmware/arm_scmi/bus.c @@ -77,12 +77,13 @@ static int scmi_protocol_device_request(const struct sc= mi_device_id *id_table) if (phead) { head =3D phead; list_for_each_entry(rdev, head, node) { + /* pr_debug() because dups are expected for std protocols */ if (!strcmp(rdev->id_table->name, id_table->name)) { - pr_err("Ignoring duplicate request [%d] %s\n", - rdev->id_table->protocol_id, - rdev->id_table->name); - ret =3D -EINVAL; - goto out; + pr_debug("Device already requested [%d] %s\n", + rdev->id_table->protocol_id, + rdev->id_table->name); + mutex_unlock(&scmi_requested_devices_mtx); + return 0; } } } @@ -579,17 +580,49 @@ static void scmi_devices_unregister(void) bus_for_each_dev(&scmi_bus_type, NULL, NULL, __scmi_devices_unregister); } =20 +/* Standard protocols table */ +static const struct scmi_device_id scmi_std_id_table[] =3D { + { SCMI_PROTOCOL_POWER, "genpd" }, + { SCMI_PROTOCOL_SYSTEM, "syspower" }, + { SCMI_PROTOCOL_PERF, "perf" }, + { SCMI_PROTOCOL_PERF, "cpufreq" }, + { SCMI_PROTOCOL_CLOCK, "clocks" }, + { SCMI_PROTOCOL_SENSOR, "hwmon" }, + { SCMI_PROTOCOL_SENSOR, "iiodev" }, + { SCMI_PROTOCOL_RESET, "reset" }, + { SCMI_PROTOCOL_VOLTAGE, "regulator" }, + { SCMI_PROTOCOL_POWERCAP, "powercap" }, + { SCMI_PROTOCOL_PINCTRL, "pinctrl" }, + { SCMI_PROTOCOL_PINCTRL, "pinctrl-imx" }, + { }, +}; + static int __init scmi_bus_init(void) { int retval; =20 retval =3D bus_register(&scmi_bus_type); - if (retval) + if (retval) { pr_err("SCMI protocol bus register failed (%d)\n", retval); + return retval; + } + + /* + * Driver module auto-loading requires the devices to already be created + * for udev to get the necessary uevents. But the devices are only + * created after their { protocol, name } tupples have been registered + * which is done from scmi_driver_register(). Pre-register the tupples + * for known (in tree) drivers to break this circular dependency. + */ + retval =3D scmi_protocol_table_register(scmi_std_id_table); + if (retval) { + bus_unregister(&scmi_bus_type); + return retval; + } =20 pr_info("SCMI protocol bus registered\n"); =20 - return retval; + return 0; } subsys_initcall(scmi_bus_init); =20 --=20 2.55.0 From nobody Mon Sep 28 04:51:25 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 28FD63B774F for ; Wed, 26 Aug 2026 10:27:44 +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=1787740068; cv=none; b=SuF6nvLgRergPrXFEYIDBRyotITMjX8gqtQT8TtJptwY2yqZLhTJf12Y7w+0ex6D25OvMMo3AYH2/DpC/Mjnfdk0kO94fI8Mmr8uhbai0vLSm7lfzR2DpdEQaJcr59s5fm+dh6aW3rvO7AH2+ObTZcZbE+nzGk2dBIe8KYwVRRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787740068; c=relaxed/simple; bh=Lf0DV6zqTiNRbRqg0PwFD+T9VOrPKtziLfLRHxcXw+o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tYdH/45of5jM89Nxn/v8ELL3OjtjRrA/c1CC/u/XJbshUgAuNC7BR5Bnh9xXxL+X2lXbEp8zeJuW0UZ9MCsXRRy9Ywt6dawWKTIev3z/MhWytMfTQihkB6xD0BEGzsFvWU1kqetOTillDTGNBliHS6GZhYYlLxCeuuogNFqAAdY= 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=Rc1NaWyI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XSpgFzwp; arc=none smtp.client-ip=205.220.168.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="Rc1NaWyI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XSpgFzwp" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67QAGWI61658578 for ; Wed, 26 Aug 2026 10:27:42 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=gbJ+FmOGmDz b9CCf6V3nGKJG3Pm04UC3Lj/S2Ts4X5Q=; b=Rc1NaWyIaY7ZCx9lrwqpQlqjhuG Jkt1Edc+sE4suC4XX8di+BV6gXRtEKcWnDl5zOghZIQ3NmzVc5WG+gu8kL7NEKyv 3+z39tbHV+FRro5ovW9bbzlreg0MhpZj1HkgcJrOZsAEYdIjHnPrbHTwckRidgQ4 4Sh2VDN72DFdLj9j2O9BIBS+hOTfSKamgMX5jqdYGWpMNY/hr2o8J4AvJLoeKERw QGYkeOxZV/7znyLfr6e+lNJBWXMMnOiQYRD8ZSLqdHsF/f42T8PWSfYt1A7G8u5e WgN0RBfFdrRUDWfFC3E96RoOCfk4RyeHsircR6JcCSWTtGhTSfmOxEtPfYw== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g9uq1rs0k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Aug 2026 10:27:42 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5174a236220so7004221cf.3 for ; Wed, 26 Aug 2026 03:27:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787740061; x=1788344861; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gbJ+FmOGmDzb9CCf6V3nGKJG3Pm04UC3Lj/S2Ts4X5Q=; b=XSpgFzwpcN1C7C3ry25WKQGoW/ElMLwdjSffVFgMt2PBMbUM6IDEQ3Ry9mopaYh3Of a1hOx+2m8o5Su93e5Vr4GmXcPupqtK9oBcm2PG6RN3hZX6d+LNBFUenJ4OJRZhzz8R7W rfvyCf0XTjr+oM1LP5ny3qKlU3Cl5H2kz2y9Pxw1ublZqpcMqCIBJwzK4OuIe29iQ/ff Y4gg5i/VdiWiD9ZutBkHBPv7GdgcSpm3/qASueuIuMX+GwCmGNS4FhbM0/LWSoMJmRgx LG+bWgK595rS3+wsSqp1gZF48P2XA/+B2pNl4OCELEpdSgtCJmceotwJYU2U2Qyqu4+Q CMEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787740061; x=1788344861; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=gbJ+FmOGmDzb9CCf6V3nGKJG3Pm04UC3Lj/S2Ts4X5Q=; b=URQXePithd5xVKTu5Ov3jvg+cUIs/YJExSPoBNF2ts9C8WZHTIpoj2aVEnUmc5q4Ma ZRvNLac5f4YKL28NK8odIEAYv4+K1utPwJbS5kGcah8kyqOLXF89yq38jd2eCNsJ2+Yh G2k16a4bDsYHT1uFvf8hkEN42Y4rotWcsRV4402awSl2rtL0kArqrMgvi/NcadMMifZB Mm3aGnduVOFWPi8nwN13Feo5e2hhrfOGGLun5BT08m0dJ+mWR+K6NTnm5Mh+SIA/cPug eRUrZifcUjMDWLBMqCmRHG7Jj9ygMQfcOjDNPvPkXorr3GW7KkvrWPLcnRPZBse6JzSI g/xw== X-Forwarded-Encrypted: i=1; AHgh+Rp0GOyxAAA2keQN49PqKC4PA5b1eJtw81mH6vjIhITw55vylcLNA63OFGqO2JL52ir/LRDKXVttaFYAOXU=@vger.kernel.org X-Gm-Message-State: AFuF++nHUI7lAbJegI3cgSAwBsc0fAd4t7TxhKb1JOOAi3RVpRnfUHk0 XaSav0GMDTfHrH0pp1xlmVs+U/bAsVWT0Xr5BH3YImJYbZQKhYKCMWN0Sagm5GPw6syoVDsSic+ 33TYtj3WqnvgJtmnoCE8Y/Ndwsdzs3a4kbJj1h8s74h2YV25l1JJFOlcPfSuGLR1FYOg= X-Gm-Gg: AR+sD10ubOwNlqPS3gZ8S7PBwRrnwVAAhiK5i8XhRSQ7dEaRdU/MMN7Xc2J2nxg0tI6 ztxS/inuVHuaIqpLQn4el/o6Q2zIHE/5KATaNoHS8kZXiirU7ZO9dDXkxDT9gbp3FX46v/e/8a3 JWOmAPYJw5WtLXF1t5Z3Z9snR7iAZPGujnU5MLk8JDP+dxhj/oBS9eKMUAAWoNKz4ik2lVq0fcw ddCKd+80d8QivuWSdxu4IOlfT6JrAhNtNeUnSi0eRrv105bS2gpD+watHxtpxQqqsU7WKcDNl3a iN1KmFGKXAi4//etuJadGVMj5oFd3avWOGohrLVvBGz/6oRxhPI+Y8X0eO6YD/LUQP6vP3PQwHq arAx+YdgRlGonK+FO+MwsQ9suTPwaTcVb7eII4fZILN8MEIOchYWolT3Zf/x5MhgxO+hWzvS5S+ dAoERlscKo5beIGBA= X-Received: by 2002:ac8:5f10:0:b0:52d:6afd:7db5 with SMTP id d75a77b69052e-52e4230c933mr43890901cf.25.1787740061201; Wed, 26 Aug 2026 03:27:41 -0700 (PDT) X-Received: by 2002:ac8:5f10:0:b0:52d:6afd:7db5 with SMTP id d75a77b69052e-52e4230c933mr43890631cf.25.1787740060761; Wed, 26 Aug 2026 03:27:40 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c250a5d68d1sm506364966b.11.2026.08.26.03.27.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 03:27:39 -0700 (PDT) From: Hans de Goede To: Bjorn Andersson , Cristian Marussi , Sudeep Holla Cc: Hans de Goede , Daniel Lezcano , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v4 3/3] firmware: arm_scmi: Pre-register protocol, name tupples for IMX protocols Date: Wed, 26 Aug 2026 12:27:34 +0200 Message-ID: <20260826102734.31766-4-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260826102734.31766-1-johannes.goede@oss.qualcomm.com> References: <20260826102734.31766-1-johannes.goede@oss.qualcomm.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-Proofpoint-GUID: SNgHwOfBd8Na5MxV_PL2aPwUm2kUL3Tn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfXxbhAMkwKGU4d sfLsNLCkKcXtePgd0sevRfLy1SVbPejVxOtpgcCtwC63CBk6dy5p3I7YgGYdkvnjDRenqwXMCzE Y4JRLqqliUELD/DoHIAc1Ti67FLG/hYxSMQ5V3Wv7+PQdJ7/ZHACyZvJoQSKvChuF8QzpG7VXbV Xb9PhqvF8/zcDkuNT9Cyqrlw6UmYtVV49mEWOAFq394pJobmnsMn0Mi79fCSrtgQifdHE41/ESO 2vwEARgZ8GYqAYJNzAiog4y3QSPLdGKbLu0xyYa0E5GfvzbU2F2trS1Me28CV/IYqIQ7aPo/Bl7 Jb7rfzOc6VFRXJmBLYZHuUBEeJoq+hKmjgjz17IKlBo+fXIj8bQ7pqGs5JnmhzaMpUXJeRatgw6 a2mKk3zxQu9ltMMSvs608yLb8dVW4PhVD1BLHU5nwOMpydSxEq2bdhO9xz7BzltIF0HDexzB6DU QnQTa0C2aFEvHytKQrA== X-Authority-Analysis: v=2.4 cv=Y77IdBeN c=1 sm=1 tr=0 ts=6a8ebf9e cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=88Q6Yv8u5fullXUEwxUA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: SNgHwOfBd8Na5MxV_PL2aPwUm2kUL3Tn X-Proofpoint-Spam-Info: AW1haW4tMjYwODI2MDA4NyBTYWx0ZWRfXzISlBWYs/9pA rtbtl89eclkvYFgZQ16vTBhukGm9oJHeKD1X5FitvWWkeaTqCGSH/EEW3kYZR8brjFCphyFz72v fy9YveQXy9FBhCFiY5HwGHC2h/qYEoA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-26_03,2026-08-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608260087 Content-Type: text/plain; charset="utf-8" There are in tree drivers for various IMX vendor protocols, also pre-register the { protocol, name } tupples for these to make module auto-loading work for these in tree drivers. Signed-off-by: Hans de Goede --- Changes in v3: - New patch in v3 of this patch-set --- drivers/firmware/arm_scmi/bus.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bu= s.c index 111727904a89..9f5740dc606f 100644 --- a/drivers/firmware/arm_scmi/bus.c +++ b/drivers/firmware/arm_scmi/bus.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 #include "common.h" =20 @@ -580,8 +581,8 @@ static void scmi_devices_unregister(void) bus_for_each_dev(&scmi_bus_type, NULL, NULL, __scmi_devices_unregister); } =20 -/* Standard protocols table */ static const struct scmi_device_id scmi_std_id_table[] =3D { + /* Standard protocols */ { SCMI_PROTOCOL_POWER, "genpd" }, { SCMI_PROTOCOL_SYSTEM, "syspower" }, { SCMI_PROTOCOL_PERF, "perf" }, @@ -594,6 +595,12 @@ static const struct scmi_device_id scmi_std_id_table[]= =3D { { SCMI_PROTOCOL_POWERCAP, "powercap" }, { SCMI_PROTOCOL_PINCTRL, "pinctrl" }, { SCMI_PROTOCOL_PINCTRL, "pinctrl-imx" }, + /* Vendor protocols with in tree drivers */ + { SCMI_PROTOCOL_IMX_BBM, "imx-bbm-key" }, + { SCMI_PROTOCOL_IMX_BBM, "imx-bbm-rtc" }, + { SCMI_PROTOCOL_IMX_CPU, "imx-cpu" }, + { SCMI_PROTOCOL_IMX_LMM, "imx-lmm" }, + { SCMI_PROTOCOL_IMX_MISC, "imx-misc-ctrl" }, { }, }; =20 --=20 2.55.0