Skip to content

Commit da8116a

Browse files
ahunter6alexandrebelloni
authored andcommitted
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>
1 parent 6f6efdd commit da8116a

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
#include <linux/pci.h>
1515
#include <linux/platform_device.h>
1616

17+
struct mipi_i3c_hci_pci {
18+
struct platform_device *pdev;
19+
};
20+
1721
struct mipi_i3c_hci_pci_info {
1822
int (*init)(struct pci_dev *pci);
1923
};
@@ -68,10 +72,14 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci,
6872
const struct pci_device_id *id)
6973
{
7074
const struct mipi_i3c_hci_pci_info *info;
71-
struct platform_device *pdev;
75+
struct mipi_i3c_hci_pci *hci;
7276
struct resource res[2];
7377
int dev_id, ret;
7478

79+
hci = devm_kzalloc(&pci->dev, sizeof(*hci), GFP_KERNEL);
80+
if (!hci)
81+
return -ENOMEM;
82+
7583
ret = pcim_enable_device(pci);
7684
if (ret)
7785
return ret;
@@ -92,14 +100,14 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci,
92100
if (dev_id < 0)
93101
return dev_id;
94102

95-
pdev = platform_device_alloc("mipi-i3c-hci", dev_id);
96-
if (!pdev)
103+
hci->pdev = platform_device_alloc("mipi-i3c-hci", dev_id);
104+
if (!hci->pdev)
97105
return -ENOMEM;
98106

99-
pdev->dev.parent = &pci->dev;
100-
device_set_node(&pdev->dev, dev_fwnode(&pci->dev));
107+
hci->pdev->dev.parent = &pci->dev;
108+
device_set_node(&hci->pdev->dev, dev_fwnode(&pci->dev));
101109

102-
ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
110+
ret = platform_device_add_resources(hci->pdev, res, ARRAY_SIZE(res));
103111
if (ret)
104112
goto err;
105113

@@ -110,23 +118,24 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci,
110118
goto err;
111119
}
112120

113-
ret = platform_device_add(pdev);
121+
ret = platform_device_add(hci->pdev);
114122
if (ret)
115123
goto err;
116124

117-
pci_set_drvdata(pci, pdev);
125+
pci_set_drvdata(pci, hci);
118126

119127
return 0;
120128

121129
err:
122-
platform_device_put(pdev);
130+
platform_device_put(hci->pdev);
123131
ida_free(&mipi_i3c_hci_pci_ida, dev_id);
124132
return ret;
125133
}
126134

127135
static void mipi_i3c_hci_pci_remove(struct pci_dev *pci)
128136
{
129-
struct platform_device *pdev = pci_get_drvdata(pci);
137+
struct mipi_i3c_hci_pci *hci = pci_get_drvdata(pci);
138+
struct platform_device *pdev = hci->pdev;
130139
int dev_id = pdev->id;
131140

132141
platform_device_unregister(pdev);

0 commit comments

Comments
 (0)