From: Adrian Hunter Date: Fri, 28 Nov 2025 06:40:34 +0000 (+0200) Subject: i3c: mipi-i3c-hci-pci: Allocate a structure for mipi_i3c_hci_pci device information X-Git-Tag: v6.19-rc1~57^2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da8116a9be9bdc0412ac3aa7931b16ab7335261e;p=thirdparty%2Flinux.git i3c: mipi-i3c-hci-pci: Allocate a structure for mipi_i3c_hci_pci device information Allocate a structure for mipi_i3c_hci_pci device information, in preparation for additional changes that need to store mipi_i3c_hci_pci device-specific information. Signed-off-by: Adrian Hunter Reviewed-by: Frank Li Link: https://patch.msgid.link/20251128064038.55158-9-adrian.hunter@intel.com Signed-off-by: Alexandre Belloni --- diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c index b9794212b2fbe..8936e50eddf78 100644 --- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c +++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c @@ -14,6 +14,10 @@ #include #include +struct mipi_i3c_hci_pci { + struct platform_device *pdev; +}; + struct mipi_i3c_hci_pci_info { int (*init)(struct pci_dev *pci); }; @@ -68,10 +72,14 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci, const struct pci_device_id *id) { const struct mipi_i3c_hci_pci_info *info; - struct platform_device *pdev; + struct mipi_i3c_hci_pci *hci; struct resource res[2]; int dev_id, ret; + hci = devm_kzalloc(&pci->dev, sizeof(*hci), GFP_KERNEL); + if (!hci) + return -ENOMEM; + ret = pcim_enable_device(pci); if (ret) return ret; @@ -92,14 +100,14 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci, if (dev_id < 0) return dev_id; - pdev = platform_device_alloc("mipi-i3c-hci", dev_id); - if (!pdev) + hci->pdev = platform_device_alloc("mipi-i3c-hci", dev_id); + if (!hci->pdev) return -ENOMEM; - pdev->dev.parent = &pci->dev; - device_set_node(&pdev->dev, dev_fwnode(&pci->dev)); + hci->pdev->dev.parent = &pci->dev; + device_set_node(&hci->pdev->dev, dev_fwnode(&pci->dev)); - ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); + ret = platform_device_add_resources(hci->pdev, res, ARRAY_SIZE(res)); if (ret) goto err; @@ -110,23 +118,24 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci, goto err; } - ret = platform_device_add(pdev); + ret = platform_device_add(hci->pdev); if (ret) goto err; - pci_set_drvdata(pci, pdev); + pci_set_drvdata(pci, hci); return 0; err: - platform_device_put(pdev); + platform_device_put(hci->pdev); ida_free(&mipi_i3c_hci_pci_ida, dev_id); return ret; } static void mipi_i3c_hci_pci_remove(struct pci_dev *pci) { - struct platform_device *pdev = pci_get_drvdata(pci); + struct mipi_i3c_hci_pci *hci = pci_get_drvdata(pci); + struct platform_device *pdev = hci->pdev; int dev_id = pdev->id; platform_device_unregister(pdev);