Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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 <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20251128064038.55158-9-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

authored by

Adrian Hunter and committed by
Alexandre Belloni
da8116a9 6f6efdd1

+19 -10
+19 -10
drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
··· 14 14 #include <linux/pci.h> 15 15 #include <linux/platform_device.h> 16 16 17 + struct mipi_i3c_hci_pci { 18 + struct platform_device *pdev; 19 + }; 20 + 17 21 struct mipi_i3c_hci_pci_info { 18 22 int (*init)(struct pci_dev *pci); 19 23 }; ··· 72 68 const struct pci_device_id *id) 73 69 { 74 70 const struct mipi_i3c_hci_pci_info *info; 75 - struct platform_device *pdev; 71 + struct mipi_i3c_hci_pci *hci; 76 72 struct resource res[2]; 77 73 int dev_id, ret; 74 + 75 + hci = devm_kzalloc(&pci->dev, sizeof(*hci), GFP_KERNEL); 76 + if (!hci) 77 + return -ENOMEM; 78 78 79 79 ret = pcim_enable_device(pci); 80 80 if (ret) ··· 100 92 if (dev_id < 0) 101 93 return dev_id; 102 94 103 - pdev = platform_device_alloc("mipi-i3c-hci", dev_id); 104 - if (!pdev) 95 + hci->pdev = platform_device_alloc("mipi-i3c-hci", dev_id); 96 + if (!hci->pdev) 105 97 return -ENOMEM; 106 98 107 - pdev->dev.parent = &pci->dev; 108 - device_set_node(&pdev->dev, dev_fwnode(&pci->dev)); 99 + hci->pdev->dev.parent = &pci->dev; 100 + device_set_node(&hci->pdev->dev, dev_fwnode(&pci->dev)); 109 101 110 - ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); 102 + ret = platform_device_add_resources(hci->pdev, res, ARRAY_SIZE(res)); 111 103 if (ret) 112 104 goto err; 113 105 ··· 118 110 goto err; 119 111 } 120 112 121 - ret = platform_device_add(pdev); 113 + ret = platform_device_add(hci->pdev); 122 114 if (ret) 123 115 goto err; 124 116 125 - pci_set_drvdata(pci, pdev); 117 + pci_set_drvdata(pci, hci); 126 118 127 119 return 0; 128 120 129 121 err: 130 - platform_device_put(pdev); 122 + platform_device_put(hci->pdev); 131 123 ida_free(&mipi_i3c_hci_pci_ida, dev_id); 132 124 return ret; 133 125 } 134 126 135 127 static void mipi_i3c_hci_pci_remove(struct pci_dev *pci) 136 128 { 137 - struct platform_device *pdev = pci_get_drvdata(pci); 129 + struct mipi_i3c_hci_pci *hci = pci_get_drvdata(pci); 130 + struct platform_device *pdev = hci->pdev; 138 131 int dev_id = pdev->id; 139 132 140 133 platform_device_unregister(pdev);