{"id":2226315,"url":"http://patchwork.ozlabs.org/api/patches/2226315/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260422-pwrseq-m2-bt-v1-8-720d02545a64@oss.qualcomm.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260422-pwrseq-m2-bt-v1-8-720d02545a64@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-22T11:24:49","name":"[08/12] power: sequencing: pcie-m2: Create BT node based on the pci_device_id[] table","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"d04b98d8cae4b9389573e5959f4ed3569fc4bae7","submitter":{"id":91277,"url":"http://patchwork.ozlabs.org/api/people/91277/?format=json","name":"Manivannan Sadhasivam via B4 Relay","email":"devnull+manivannan.sadhasivam.oss.qualcomm.com@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260422-pwrseq-m2-bt-v1-8-720d02545a64@oss.qualcomm.com/mbox/","series":[{"id":500992,"url":"http://patchwork.ozlabs.org/api/series/500992/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=500992","date":"2026-04-22T11:24:41","name":"Fixes/improvements for the PCI M.2 power sequencing driver","version":1,"mbox":"http://patchwork.ozlabs.org/series/500992/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2226315/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2226315/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-52961-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=N+5UYEQH;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pci+bounces-52961-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"N+5UYEQH\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0xkK1M2tz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:26:17 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 46B64302881C\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:25:54 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 94B443D3318;\n\tWed, 22 Apr 2026 11:25:13 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 055293CFF73;\n\tWed, 22 Apr 2026 11:25:13 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPS id D7387C2BCC9;\n\tWed, 22 Apr 2026 11:25:12 +0000 (UTC)","from aws-us-west-2-korg-lkml-1.web.codeaurora.org\n (localhost.localdomain [127.0.0.1])\n\tby smtp.lore.kernel.org (Postfix) with ESMTP id CF0D4F5A8DE;\n\tWed, 22 Apr 2026 11:25:12 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776857113; cv=none;\n b=Ud6+9yjKjp23h7qU3vMKEMp/PR+2b8K/0u/IjqnDjbn4vG78SbrcdeYVhPrl+0MK4WkWoMG7rZSjPflkT4pE8mxGAbKRTob+Ju6h22Q2dkvyrr2Um0JzZBtrQV4+t0VL39kV+gmvWBEQLvbs4nNvehjvXpADbJ1dPQ/8ONincU8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776857113; c=relaxed/simple;\n\tbh=rahIK407Uf2DgR2AcY120luq+IbRKhapEgJAn9AFJa4=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=PCDgNc940WgnZdJFBNICDD36IitGo+/XJl4WuM8Aw4AbkJxD2Fqnfaa/UB3bZWJc1Gg6Ty7HfT0BkmJtxra3DebA7PNA8YLvRDIyJsKrDN7pvo5GvG3Us6eQWnxPtRSsIFXmgw/i+kZsb1q++ziLlxBSMZpf7HJJxsNML1ZIgi4=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=N+5UYEQH; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776857112;\n\tbh=rahIK407Uf2DgR2AcY120luq+IbRKhapEgJAn9AFJa4=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;\n\tb=N+5UYEQHoaK8Q60BrBtaMgSadbgDe6ZzQJa3IcQS1G0ZRPh5aqlpu3qrlSjwnRyJt\n\t O9fHeuuOU+0Vy8j7Kn7rcd0HogXMbeiIWDnLJ1YG9j+FQkJNiPQfzfw4nR9W1ursUa\n\t 0TLMI5Mn78uB9stpSc9l/l3knuBFlU89TYotARX+zokGj4y48OT9RwNNJjVqCQ7vQ8\n\t RrkFQXPmdWfI6mtHqGxqrJAatzw3eixCOA07NWlMNyyli27DtiC/GpHYi/nvUJB79T\n\t 1Sicwb1N+pSDOMSPRK340alro3Q10A22er/cgWoJleTl2O2V/5P6j34Mclb2RMcL7i\n\t NnF4GO5dmru+A==","From":"Manivannan Sadhasivam via B4 Relay\n <devnull+manivannan.sadhasivam.oss.qualcomm.com@kernel.org>","Date":"Wed, 22 Apr 2026 16:54:49 +0530","Subject":"[PATCH 08/12] power: sequencing: pcie-m2: Create BT node based on\n the pci_device_id[] table","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260422-pwrseq-m2-bt-v1-8-720d02545a64@oss.qualcomm.com>","References":"<20260422-pwrseq-m2-bt-v1-0-720d02545a64@oss.qualcomm.com>","In-Reply-To":"<20260422-pwrseq-m2-bt-v1-0-720d02545a64@oss.qualcomm.com>","To":"Bartosz Golaszewski <brgl@kernel.org>,\n Manivannan Sadhasivam <mani@kernel.org>,\n Marcel Holtmann <marcel@holtmann.org>,\n Luiz Augusto von Dentz <luiz.dentz@gmail.com>,\n Shuai Zhang <quic_shuaz@quicinc.com>","Cc":"linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,\n linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org,\n linux-bluetooth@vger.kernel.org, Wei Deng <wei.deng@oss.qualcomm.com>,\n Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,\n Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>","X-Mailer":"b4 0.15.0","X-Developer-Signature":"v=1; a=openpgp-sha256; l=3150;\n i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id;\n bh=gwqWztQ2vBGh5JXCHhwF7Sem2dA5HgVW+YJLGPrMk3w=;\n b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBp6LAVV9Sl4KSgjtyUczECqKLK18IZ+VW0DgOZs\n CMcQtapewqJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaeiwFQAKCRBVnxHm/pHO\n 9TCsB/9hzdnKbSX7cxGGZtqiNVW08cTyu3KNGCbmesZe7YNrw4yKGzcElM0lXYbtu/dJsmlXf9A\n x0EFRzFyajbrKsaURicDPjIpgJTJZHXx22YLxNWzq6PdW691FZrcfE4+rrzHJGVYdbVfpYmC+/u\n qSfzNvtYSds4KrzsJzhyaqTGNIlRjTRZnCpeRtSv4ZJzh3UHaknbS6UVOnwZs2t9ayrNdWZsZBn\n HLsYjjYItl2WX3mTShfTncKzSYONlWaQW8D0E4Av9j9hBWnb9KvpadcIAoCX7sHkqMUhJF3Apdy\n IzRryhYX9fMapEJrQVm0fkc1bSCN/dHq3DoD1cCK48p+RNz3","X-Developer-Key":"i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp;\n fpr=C668AEC3C3188E4C611465E7488550E901166008","X-Endpoint-Received":"by B4 Relay for\n manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461","X-Original-From":"Manivannan Sadhasivam\n <manivannan.sadhasivam@oss.qualcomm.com>","Reply-To":"manivannan.sadhasivam@oss.qualcomm.com"},"content":"From: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>\n\nCurrently, pwrseq_pcie_m2_create_bt_node() hardcodes the BT compatible for\ncreating the devicetree node. But to allow adding support for more devices\nin the future, create the BT node based on the pci_device_id[] table. The\nBT compatible is passed using 'driver_data'.\n\nCo-developed-by: Wei Deng <wei.deng@oss.qualcomm.com>\nSigned-off-by: Wei Deng <wei.deng@oss.qualcomm.com>\nSigned-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>\n---\n drivers/power/sequencing/pwrseq-pcie-m2.c | 29 ++++++++++++++++++++---------\n 1 file changed, 20 insertions(+), 9 deletions(-)","diff":"diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c\nindex b21fcc089580..23dc91e2b128 100644\n--- a/drivers/power/sequencing/pwrseq-pcie-m2.c\n+++ b/drivers/power/sequencing/pwrseq-pcie-m2.c\n@@ -193,14 +193,29 @@ static int pwrseq_pcie_m2_match(struct pwrseq_device *pwrseq,\n \treturn PWRSEQ_NO_MATCH;\n }\n \n+static const struct pci_device_id pwrseq_m2_pci_ids[] = {\n+\t{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107),\n+\t  .driver_data = (kernel_ulong_t)\"qcom,wcn7850-bt\" },\n+\t{ } /* Sentinel */\n+};\n+\n static int pwrseq_pcie_m2_create_bt_node(struct pwrseq_pcie_m2_ctx *ctx,\n \t\t\t\t\tstruct pwrseq_pci_dev *pci_dev,\n-\t\t\t\t\tstruct device_node *parent)\n+\t\t\t\t\tstruct device_node *parent,\n+\t\t\t\t\tstruct pci_dev *pdev)\n {\n+\tconst struct pci_device_id *id;\n \tstruct device *dev = ctx->dev;\n+\tconst char *compatible;\n \tstruct device_node *np;\n \tint ret;\n \n+\tid = pci_match_id(pwrseq_m2_pci_ids, pdev);\n+\tif (WARN_ON_ONCE(!id)) /* Shouldn't happen */\n+\t\treturn -ENODEV;\n+\n+\tcompatible = (const char *)id->driver_data;\n+\n \tpci_dev->ocs = kzalloc_obj(*pci_dev->ocs);\n \tif (!pci_dev->ocs)\n \t\treturn -ENOMEM;\n@@ -214,7 +229,7 @@ static int pwrseq_pcie_m2_create_bt_node(struct pwrseq_pcie_m2_ctx *ctx,\n \t\tgoto err_destroy_changeset;\n \t}\n \n-\tret = of_changeset_add_prop_string(pci_dev->ocs, np, \"compatible\", \"qcom,wcn7850-bt\");\n+\tret = of_changeset_add_prop_string(pci_dev->ocs, np, \"compatible\", compatible);\n \tif (ret) {\n \t\tdev_err(dev, \"Failed to add bluetooth compatible: %d\\n\", ret);\n \t\tgoto err_destroy_changeset;\n@@ -289,13 +304,14 @@ static int __pwrseq_pcie_m2_create_serdev(struct pwrseq_pcie_m2_ctx *ctx,\n \t\tgoto err_free_pci_dev;\n \t}\n \n-\tret = pwrseq_pcie_m2_create_bt_node(ctx, pci_dev, serdev_parent);\n+\tret = pwrseq_pcie_m2_create_bt_node(ctx, pci_dev, serdev_parent, pdev);\n \tif (ret)\n \t\tgoto err_free_serdev;\n \n \tret = serdev_device_add(pci_dev->serdev);\n \tif (ret) {\n-\t\tdev_err(dev, \"Failed to add serdev for WCN7850: %d\\n\", ret);\n+\t\tdev_err(dev, \"Failed to add serdev for PCI device (%s): %d\\n\",\n+\t\t\tpci_name(pdev), ret);\n \t\tgoto err_free_dt_node;\n \t}\n \n@@ -361,11 +377,6 @@ static void pwrseq_pcie_m2_remove_serdev(struct pwrseq_pcie_m2_ctx *ctx,\n \tmutex_unlock(&ctx->list_lock);\n }\n \n-static const struct pci_device_id pwrseq_m2_pci_ids[] = {\n-\t{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107) },\n-\t{ } /* Sentinel */\n-};\n-\n static int pwrseq_pcie_m2_notify(struct notifier_block *nb, unsigned long action,\n \t\t\t      void *data)\n {\n","prefixes":["08/12"]}