Skip to content

Commit 9b33dfa

Browse files
keyonjieplbossart
authored andcommitted
ASoC: SOF: remove superfluous parent device pointers of snd_sof_pdata
We had pointers for parent device of snd_sof_pdata, pci for pci_dev, pdev for platform_device, and spi for spi_device (intended to but not added yet). All of these can be retrieved from parent dev via container_of(), so they are actually superfluous. Here remove these pointers to kinds of parent devices, add an enum sof_device_type and simplify the initialization of snd_sof_dev->parent correspondingly. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
1 parent e7823fc commit 9b33dfa

5 files changed

Lines changed: 18 additions & 16 deletions

File tree

include/sound/sof.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@
2323

2424
struct snd_sof_dsp_ops;
2525

26+
/* SOF probe type */
27+
enum sof_device_type {
28+
SOF_DEVICE_PCI = 0,
29+
SOF_DEVICE_APCI,
30+
SOF_DEVICE_SPI
31+
};
32+
2633
/*
2734
* SOF Platform data.
2835
*/
@@ -32,10 +39,9 @@ struct snd_sof_pdata {
3239
const char *drv_name;
3340
const char *name;
3441

35-
/* parent devices */
42+
/* parent device */
3643
struct device *dev;
37-
struct pci_dev *pci;
38-
struct platform_device *pdev;
44+
enum sof_device_type type;
3945

4046
/* descriptor */
4147
const struct sof_dev_desc *desc;

sound/soc/sof/core.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,14 +239,9 @@ static int sof_probe(struct platform_device *pdev)
239239

240240
/* initialize sof device */
241241
sdev->dev = &pdev->dev;
242-
if (plat_data->pci) {
243-
sdev->pci = plat_data->pci;
244-
sdev->parent = &plat_data->pci->dev;
245-
} else if (plat_data->pdev) {
246-
sdev->parent = &plat_data->pdev->dev;
247-
} else {
248-
sdev->parent = plat_data->dev;
249-
}
242+
sdev->parent = plat_data->dev;
243+
if (plat_data->type == SOF_DEVICE_PCI)
244+
sdev->pci = container_of(plat_data->dev, struct pci_dev, dev);
250245
sdev->ops = plat_data->machine->pdata;
251246

252247
sdev->pdata = plat_data;

sound/soc/sof/sof-acpi-dev.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ static struct platform_device *
121121
mfld_new_mach_data(struct snd_sof_pdata *sof_pdata)
122122
{
123123
struct snd_soc_acpi_mach pmach;
124-
struct device *dev = &sof_pdata->pdev->dev;
124+
struct device *dev = sof_pdata->dev;
125125
const struct snd_soc_acpi_mach *mach = sof_pdata->machine;
126126
struct platform_device *pdev = NULL;
127127

@@ -139,7 +139,7 @@ static void sof_acpi_fw_cb(const struct firmware *fw, void *context)
139139
struct sof_platform_priv *priv = context;
140140
struct snd_sof_pdata *sof_pdata = priv->sof_pdata;
141141
const struct snd_soc_acpi_mach *mach = sof_pdata->machine;
142-
struct device *dev = &sof_pdata->pdev->dev;
142+
struct device *dev = sof_pdata->dev;
143143

144144
sof_pdata->fw = fw;
145145
if (!fw) {
@@ -273,7 +273,8 @@ static int sof_acpi_probe(struct platform_device *pdev)
273273
*/
274274
sof_pdata->desc = desc;
275275
priv->sof_pdata = sof_pdata;
276-
sof_pdata->pdev = pdev;
276+
sof_pdata->dev = &pdev->dev;
277+
sof_pdata->type = SOF_DEVICE_APCI;
277278
dev_set_drvdata(&pdev->dev, priv);
278279

279280
/* do we need to generate any machine plat data ? */

sound/soc/sof/sof-pci-dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,8 @@ static int sof_pci_probe(struct pci_dev *pci,
251251
sof_pdata->machine = mach;
252252
sof_pdata->desc = (struct sof_dev_desc *)pci_id->driver_data;
253253
priv->sof_pdata = sof_pdata;
254-
sof_pdata->pci = pci;
255254
sof_pdata->dev = &pci->dev;
255+
sof_pdata->type = SOF_DEVICE_PCI;
256256

257257
/* register machine driver */
258258
sof_pdata->pdev_mach =

sound/soc/sof/sof-spi-dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ static int sof_spi_probe(struct spi_device *spi)
8989
sof_pdata->machine = mach;
9090
sof_pdata->desc = (struct sof_dev_desc *)pci_id->driver_data;
9191
priv->sof_pdata = sof_pdata;
92-
sof_pdata->spi = spi;
9392
sof_pdata->dev = dev;
93+
sof_pdata->type = SOF_DEVICE_SPI;
9494

9595
/* register machine driver */
9696
sof_pdata->pdev_mach =

0 commit comments

Comments
 (0)