diff options
author | Subhransu S. Prusty <subhransu.s.prusty@intel.com> | 2014-10-30 13:51:47 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-10-31 19:57:32 +0300 |
commit | 2559d9928f36f3c0bfb4ded9bb47d47b36337b09 (patch) | |
tree | 253201d223f5e3922d405b2dbc453a525f8c4bba /sound/soc/intel | |
parent | 54adc0ad647792b3a8557520477a40f76d99a007 (diff) | |
download | linux-2559d9928f36f3c0bfb4ded9bb47d47b36337b09.tar.xz |
ASoC: Intel: move the driver context allocation to routine
This will be used by ACPI code as well, so moving to common routine helps
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel')
-rw-r--r-- | sound/soc/intel/sst/sst.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/sound/soc/intel/sst/sst.c b/sound/soc/intel/sst/sst.c index 0863471a2c86..55bb1f7764f9 100644 --- a/sound/soc/intel/sst/sst.c +++ b/sound/soc/intel/sst/sst.c @@ -230,6 +230,20 @@ static void sst_init_locks(struct intel_sst_drv *ctx) spin_lock_init(&ctx->block_lock); } +int sst_alloc_drv_context(struct intel_sst_drv **ctx, + struct device *dev, unsigned int dev_id) +{ + *ctx = devm_kzalloc(dev, sizeof(struct intel_sst_drv), GFP_KERNEL); + if (!(*ctx)) + return -ENOMEM; + + (*ctx)->dev = dev; + (*ctx)->dev_id = dev_id; + + return 0; +} + + /* * intel_sst_probe - PCI probe function * @@ -247,12 +261,11 @@ static int intel_sst_probe(struct pci_dev *pci, int ddr_base; dev_dbg(&pci->dev, "Probe for DID %x\n", pci->device); - sst_drv_ctx = devm_kzalloc(&pci->dev, sizeof(*sst_drv_ctx), GFP_KERNEL); - if (!sst_drv_ctx) - return -ENOMEM; - sst_drv_ctx->dev = &pci->dev; - sst_drv_ctx->dev_id = pci->device; + ret = sst_alloc_drv_context(&sst_drv_ctx, &pci->dev, pci->device); + if (ret < 0) + return ret; + if (!sst_pdata) return -EINVAL; |