diff mbox

[1/4] ctl: confirm to return all identical information in 'activate' event

Message ID 1428741665-22262-2-git-send-email-o-takashi@sakamocchi.jp (mailing list archive)
State Accepted
Commit c78497e010ae62c8abfb33a45d0e0b361218e9bb
Headers show

Commit Message

Takashi Sakamoto April 11, 2015, 8:41 a.m. UTC
When event originator doesn't set numerical ID in identical information,
the event data includes no numerical ID, thus userspace applications
cannot identify the control just by unique ID in event data.

This commit fix this bug so as the event data includes all of identical
information.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
---
 sound/core/control.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Takashi Iwai April 11, 2015, 3:40 p.m. UTC | #1
At Sat, 11 Apr 2015 17:41:02 +0900,
Takashi Sakamoto wrote:
> 
> When event originator doesn't set numerical ID in identical information,
> the event data includes no numerical ID, thus userspace applications
> cannot identify the control just by unique ID in event data.
> 
> This commit fix this bug so as the event data includes all of identical
> information.
> 
> Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

Applied, thanks.


Takashi

> ---
>  sound/core/control.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/sound/core/control.c b/sound/core/control.c
> index 00fcaa0..90a9e5d 100644
> --- a/sound/core/control.c
> +++ b/sound/core/control.c
> @@ -578,6 +578,7 @@ error:
>   *
>   * Finds the control instance with the given id, and activate or
>   * inactivate the control together with notification, if changed.
> + * The given ID data is filled with full information.
>   *
>   * Return: 0 if unchanged, 1 if changed, or a negative error code on failure.
>   */
> @@ -607,6 +608,7 @@ int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id,
>  			goto unlock;
>  		vd->access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE;
>  	}
> +	snd_ctl_build_ioff(id, kctl, index_offset);
>  	ret = 1;
>   unlock:
>  	up_write(&card->controls_rwsem);
> -- 
> 2.1.0
>
diff mbox

Patch

diff --git a/sound/core/control.c b/sound/core/control.c
index 00fcaa0..90a9e5d 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -578,6 +578,7 @@  error:
  *
  * Finds the control instance with the given id, and activate or
  * inactivate the control together with notification, if changed.
+ * The given ID data is filled with full information.
  *
  * Return: 0 if unchanged, 1 if changed, or a negative error code on failure.
  */
@@ -607,6 +608,7 @@  int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id,
 			goto unlock;
 		vd->access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE;
 	}
+	snd_ctl_build_ioff(id, kctl, index_offset);
 	ret = 1;
  unlock:
 	up_write(&card->controls_rwsem);