diff mbox

alsa: hda_codec: fix number of devices query on hotplug

Message ID 1433821171-23519-1-git-send-email-airlied@gmail.com (mailing list archive)
State Accepted
Delegated to: Takashi Iwai
Headers show

Commit Message

Dave Airlie June 9, 2015, 3:39 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

The new regmap code seems to cache this, which isn't helpful
for the hotplug dock situation where this gets updated.

Use the uncached query for this.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 sound/pci/hda/hda_codec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Takashi Iwai June 9, 2015, 5:36 a.m. UTC | #1
At Tue,  9 Jun 2015 13:39:31 +1000,
airlied@gmail.com wrote:
> 
> From: Dave Airlie <airlied@redhat.com>
> 
> The new regmap code seems to cache this, which isn't helpful
> for the hotplug dock situation where this gets updated.
> 
> Use the uncached query for this.
> 
> Signed-off-by: Dave Airlie <airlied@redhat.com>

Applied, thanks!


Takashi

> ---
>  sound/pci/hda/hda_codec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index b49feff..b778221 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -436,7 +436,7 @@ static unsigned int get_num_devices(struct hda_codec *codec, hda_nid_t nid)
>  	    get_wcaps_type(wcaps) != AC_WID_PIN)
>  		return 0;
>  
> -	parm = snd_hda_param_read(codec, nid, AC_PAR_DEVLIST_LEN);
> +	parm = snd_hdac_read_parm_uncached(&codec->core, nid, AC_PAR_DEVLIST_LEN);
>  	if (parm == -1 && codec->bus->rirb_error)
>  		parm = 0;
>  	return parm & AC_DEV_LIST_LEN_MASK;
> -- 
> 2.4.1
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
diff mbox

Patch

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index b49feff..b778221 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -436,7 +436,7 @@  static unsigned int get_num_devices(struct hda_codec *codec, hda_nid_t nid)
 	    get_wcaps_type(wcaps) != AC_WID_PIN)
 		return 0;
 
-	parm = snd_hda_param_read(codec, nid, AC_PAR_DEVLIST_LEN);
+	parm = snd_hdac_read_parm_uncached(&codec->core, nid, AC_PAR_DEVLIST_LEN);
 	if (parm == -1 && codec->bus->rirb_error)
 		parm = 0;
 	return parm & AC_DEV_LIST_LEN_MASK;