Message ID | 1462367365-10907-1-git-send-email-tim.gardner@canonical.com |
---|---|
State | New |
Headers | show |
Backport seems reasonable due to id already being present. --chris On Wed, May 04, 2016 at 07:09:25AM -0600, Tim Gardner wrote: > From: Kailang Yang <kailang@realtek.com> > > BugLink: http://bugs.launchpad.net/bugs/1577905 > > This is Dell usb dock audio workaround. > It was fixed the master volume keep lower. > > [Some background: the patch essentially skips the controls of a couple > of FU volumes. Although the firmware exposes the dB and the value > information via the usb descriptor, changing the values (we set the > min volume as default) screws up the device. Although this has been > fixed in the newer firmware, the devices are shipped with the old > firmware, thus we need the workaround in the driver side. -- tiwai] > > Signed-off-by: Kailang Yang <kailang@realtek.com> > Cc: <stable@vger.kernel.org> > Signed-off-by: Takashi Iwai <tiwai@suse.de> > (back ported from commit adcdd0d5a1cb779f6d455ae70882c19c527627a8) > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > > Conflicts: > sound/usb/mixer_maps.c > --- > sound/usb/mixer_maps.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c > index a254993..bdb0957 100644 > --- a/sound/usb/mixer_maps.c > +++ b/sound/usb/mixer_maps.c > @@ -338,6 +338,16 @@ static struct usbmix_name_map bose_companion5_map[] = { > }; > > /* > + * Dell usb dock with ALC4020 codec had a firmware problem where it got > + * screwed up when zero volume is passed; just skip it as a workaround > + */ > +static const struct usbmix_name_map dell_alc4020_map[] = { > + { 16, NULL }, > + { 19, NULL }, > + { 0 } > +}; > + > +/* > * Control map entries > */ > > @@ -416,6 +426,10 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { > .map = aureon_51_2_map, > }, > { > + .id = USB_ID(0x0bda, 0x4014), > + .map = dell_alc4020_map, > + }, > + { > .id = USB_ID(0x13e5, 0x0001), > .map = scratch_live_map, > .ignore_ctl_error = 1, > -- > 1.9.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c index a254993..bdb0957 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c @@ -338,6 +338,16 @@ static struct usbmix_name_map bose_companion5_map[] = { }; /* + * Dell usb dock with ALC4020 codec had a firmware problem where it got + * screwed up when zero volume is passed; just skip it as a workaround + */ +static const struct usbmix_name_map dell_alc4020_map[] = { + { 16, NULL }, + { 19, NULL }, + { 0 } +}; + +/* * Control map entries */ @@ -416,6 +426,10 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { .map = aureon_51_2_map, }, { + .id = USB_ID(0x0bda, 0x4014), + .map = dell_alc4020_map, + }, + { .id = USB_ID(0x13e5, 0x0001), .map = scratch_live_map, .ignore_ctl_error = 1,