Message ID | 1436897626-118574-1-git-send-email-yang.a.fang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 14, 2015 at 11:13:46AM -0700, yang.a.fang@intel.com wrote: > +#ifdef PM_CONFIG > +#define GET_USAGE_COUNT(dev) (atomic_read(&dev->power.usage_count)) > +#else > +#define GET_USAGE_COUNT(dev) 1 > +#endif PM_CONFIG?
> -----Original Message----- > From: Mark Brown [mailto:broonie@kernel.org] > Sent: Tuesday, July 14, 2015 11:16 AM > To: Fang, Yang A > Cc: lgirdwood@gmail.com; alsa-devel@alsa-project.org; Koul, Vinod; Nujella, > Sathyanarayana; kevin.strasser@linux.intel.com; Sripathi, Srinivas; > Sreeramalu, Shilpa; Mirche, Dinesh; stable@vger.kernel.org > Subject: Re: [PATCH] ASoC: Intel: Get correct usage_count value to load > firmware > > On Tue, Jul 14, 2015 at 11:13:46AM -0700, yang.a.fang@intel.com wrote: > > > +#ifdef PM_CONFIG > > +#define GET_USAGE_COUNT(dev) (atomic_read(&dev- > >power.usage_count)) > > +#else > > +#define GET_USAGE_COUNT(dev) 1 > > +#endif > > PM_CONFIG? Sorry for the typo. Will fix that.
diff --git a/sound/soc/intel/atom/sst/sst_drv_interface.c b/sound/soc/intel/atom/sst/sst_drv_interface.c index 620da1d..440b953 100644 --- a/sound/soc/intel/atom/sst/sst_drv_interface.c +++ b/sound/soc/intel/atom/sst/sst_drv_interface.c @@ -42,6 +42,11 @@ #define MIN_FRAGMENT_SIZE (50 * 1024) #define MAX_FRAGMENT_SIZE (1024 * 1024) #define SST_GET_BYTES_PER_SAMPLE(pcm_wd_sz) (((pcm_wd_sz + 15) >> 4) << 1) +#ifdef PM_CONFIG +#define GET_USAGE_COUNT(dev) (atomic_read(&dev->power.usage_count)) +#else +#define GET_USAGE_COUNT(dev) 1 +#endif int free_stream_context(struct intel_sst_drv *ctx, unsigned int str_id) { @@ -141,15 +146,9 @@ static int sst_power_control(struct device *dev, bool state) int ret = 0; int usage_count = 0; -#ifdef CONFIG_PM - usage_count = atomic_read(&dev->power.usage_count); -#else - usage_count = 1; -#endif - if (state == true) { ret = pm_runtime_get_sync(dev); - + usage_count = GET_USAGE_COUNT(dev); dev_dbg(ctx->dev, "Enable: pm usage count: %d\n", usage_count); if (ret < 0) { dev_err(ctx->dev, "Runtime get failed with err: %d\n", ret); @@ -164,6 +163,7 @@ static int sst_power_control(struct device *dev, bool state) } } } else { + usage_count = GET_USAGE_COUNT(dev); dev_dbg(ctx->dev, "Disable: pm usage count: %d\n", usage_count); return sst_pm_runtime_put(ctx); }