[v2,2/9] ALSA: hda - add helper to get channels from cap bits
diff mbox

Message ID 1460454977-30057-3-git-send-email-subhransu.s.prusty@intel.com
State New
Headers show

Commit Message

Subhransu S. Prusty April 12, 2016, 9:56 a.m. UTC
This helper is copied from legacy hda driver.

Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 sound/hda/local.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Takashi Iwai April 12, 2016, 10:10 a.m. UTC | #1
On Tue, 12 Apr 2016 11:56:10 +0200,
Subhransu S. Prusty wrote:
> 
> This helper is copied from legacy hda driver.
> 
> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  sound/hda/local.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/sound/hda/local.h b/sound/hda/local.h
> index d692f41..57f07d7 100644
> --- a/sound/hda/local.h
> +++ b/sound/hda/local.h
> @@ -16,6 +16,16 @@ static inline int get_wcaps_type(unsigned int wcaps)
>  	return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
>  }
>  
> +static inline unsigned int get_wcaps_channels(u32 wcaps)
> +{
> +	unsigned int chans;
> +
> +	chans = (wcaps & AC_WCAP_CHAN_CNT_EXT) >> 13;
> +	chans = ((chans << 1) | 1) + 1;

Let's make it simple.  This is equivalent with
	chans = (chans + 1) * 2;


Takashi
Subhransu S. Prusty April 12, 2016, 1:38 p.m. UTC | #2
On Tue, Apr 12, 2016 at 12:10:48PM +0200, Takashi Iwai wrote:
> On Tue, 12 Apr 2016 11:56:10 +0200,
> Subhransu S. Prusty wrote:
> > 
> > This helper is copied from legacy hda driver.
> > 
> > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > ---
> >  sound/hda/local.h | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/sound/hda/local.h b/sound/hda/local.h
> > index d692f41..57f07d7 100644
> > --- a/sound/hda/local.h
> > +++ b/sound/hda/local.h
> > @@ -16,6 +16,16 @@ static inline int get_wcaps_type(unsigned int wcaps)
> >  	return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
> >  }
> >  
> > +static inline unsigned int get_wcaps_channels(u32 wcaps)
> > +{
> > +	unsigned int chans;
> > +
> > +	chans = (wcaps & AC_WCAP_CHAN_CNT_EXT) >> 13;
> > +	chans = ((chans << 1) | 1) + 1;
> 
> Let's make it simple.  This is equivalent with
> 	chans = (chans + 1) * 2;

Sure.

Regards,
Subhransu
> 
> 
> Takashi

Patch
diff mbox

diff --git a/sound/hda/local.h b/sound/hda/local.h
index d692f41..57f07d7 100644
--- a/sound/hda/local.h
+++ b/sound/hda/local.h
@@ -16,6 +16,16 @@  static inline int get_wcaps_type(unsigned int wcaps)
 	return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
 }
 
+static inline unsigned int get_wcaps_channels(u32 wcaps)
+{
+	unsigned int chans;
+
+	chans = (wcaps & AC_WCAP_CHAN_CNT_EXT) >> 13;
+	chans = ((chans << 1) | 1) + 1;
+
+	return chans;
+}
+
 extern const struct attribute_group *hdac_dev_attr_groups[];
 int hda_widget_sysfs_init(struct hdac_device *codec);
 void hda_widget_sysfs_exit(struct hdac_device *codec);