From: Greg Kroah-Hartman Date: Tue, 6 Mar 2018 18:48:33 +0000 (-0800) Subject: 3.18-stable patches X-Git-Tag: v4.14.25~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6c76c9ad8e10e7fd2b5115adcc131f2c00fa722a;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: alsa-usb-audio-add-a-quirck-for-b-w-px-headphones.patch cpufreq-s3c24xx-fix-broken-s3c_cpufreq_init.patch --- diff --git a/queue-3.18/alsa-usb-audio-add-a-quirck-for-b-w-px-headphones.patch b/queue-3.18/alsa-usb-audio-add-a-quirck-for-b-w-px-headphones.patch new file mode 100644 index 00000000000..7fedcaaa1bb --- /dev/null +++ b/queue-3.18/alsa-usb-audio-add-a-quirck-for-b-w-px-headphones.patch @@ -0,0 +1,75 @@ +From 240a8af929c7c57dcde28682725b29cf8474e8e5 Mon Sep 17 00:00:00 2001 +From: Erik Veijola +Date: Fri, 23 Feb 2018 14:06:52 +0200 +Subject: ALSA: usb-audio: Add a quirck for B&W PX headphones + +From: Erik Veijola + +commit 240a8af929c7c57dcde28682725b29cf8474e8e5 upstream. + +The capture interface doesn't work and the playback interface only +supports 48 kHz sampling rate even though it advertises more rates. + +Signed-off-by: Erik Veijola +Cc: +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks-table.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 47 insertions(+) + +--- a/sound/usb/quirks-table.h ++++ b/sound/usb/quirks-table.h +@@ -3312,4 +3312,51 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge + } + }, + ++{ ++ /* ++ * Bower's & Wilkins PX headphones only support the 48 kHz sample rate ++ * even though it advertises more. The capture interface doesn't work ++ * even on windows. ++ */ ++ USB_DEVICE(0x19b5, 0x0021), ++ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { ++ .ifnum = QUIRK_ANY_INTERFACE, ++ .type = QUIRK_COMPOSITE, ++ .data = (const struct snd_usb_audio_quirk[]) { ++ { ++ .ifnum = 0, ++ .type = QUIRK_AUDIO_STANDARD_MIXER, ++ }, ++ /* Capture */ ++ { ++ .ifnum = 1, ++ .type = QUIRK_IGNORE_INTERFACE, ++ }, ++ /* Playback */ ++ { ++ .ifnum = 2, ++ .type = QUIRK_AUDIO_FIXED_ENDPOINT, ++ .data = &(const struct audioformat) { ++ .formats = SNDRV_PCM_FMTBIT_S16_LE, ++ .channels = 2, ++ .iface = 2, ++ .altsetting = 1, ++ .altset_idx = 1, ++ .attributes = UAC_EP_CS_ATTR_FILL_MAX | ++ UAC_EP_CS_ATTR_SAMPLE_RATE, ++ .endpoint = 0x03, ++ .ep_attr = USB_ENDPOINT_XFER_ISOC, ++ .rates = SNDRV_PCM_RATE_48000, ++ .rate_min = 48000, ++ .rate_max = 48000, ++ .nr_rates = 1, ++ .rate_table = (unsigned int[]) { ++ 48000 ++ } ++ } ++ }, ++ } ++ } ++}, ++ + #undef USB_DEVICE_VENDOR_SPEC diff --git a/queue-3.18/cpufreq-s3c24xx-fix-broken-s3c_cpufreq_init.patch b/queue-3.18/cpufreq-s3c24xx-fix-broken-s3c_cpufreq_init.patch new file mode 100644 index 00000000000..c613e10fe89 --- /dev/null +++ b/queue-3.18/cpufreq-s3c24xx-fix-broken-s3c_cpufreq_init.patch @@ -0,0 +1,47 @@ +From 0373ca74831b0f93cd4cdbf7ad3aec3c33a479a5 Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Fri, 23 Feb 2018 09:38:28 +0530 +Subject: cpufreq: s3c24xx: Fix broken s3c_cpufreq_init() + +From: Viresh Kumar + +commit 0373ca74831b0f93cd4cdbf7ad3aec3c33a479a5 upstream. + +commit a307a1e6bc0d "cpufreq: s3c: use cpufreq_generic_init()" +accidentally broke cpufreq on s3c2410 and s3c2412. + +These two platforms don't have a CPU frequency table and used to skip +calling cpufreq_table_validate_and_show() for them. But with the +above commit, we started calling it unconditionally and that will +eventually fail as the frequency table pointer is NULL. + +Fix this by calling cpufreq_table_validate_and_show() conditionally +again. + +Fixes: a307a1e6bc0d "cpufreq: s3c: use cpufreq_generic_init()" +Cc: 3.13+ # v3.13+ +Signed-off-by: Viresh Kumar +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/cpufreq/s3c24xx-cpufreq.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/cpufreq/s3c24xx-cpufreq.c ++++ b/drivers/cpufreq/s3c24xx-cpufreq.c +@@ -364,7 +364,13 @@ struct clk *s3c_cpufreq_clk_get(struct d + static int s3c_cpufreq_init(struct cpufreq_policy *policy) + { + policy->clk = clk_arm; +- return cpufreq_generic_init(policy, ftab, cpu_cur.info->latency); ++ ++ policy->cpuinfo.transition_latency = cpu_cur.info->latency; ++ ++ if (ftab) ++ return cpufreq_table_validate_and_show(policy, ftab); ++ ++ return 0; + } + + static int __init s3c_cpufreq_initclks(void) diff --git a/queue-3.18/series b/queue-3.18/series index 85eb921b8e4..19b7f01f420 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -1,2 +1,4 @@ tpm_i2c_infineon-fix-potential-buffer-overruns-caused-by-bit-glitches-on-the-bus.patch tpm_i2c_nuvoton-fix-potential-buffer-overruns-caused-by-bit-glitches-on-the-bus.patch +alsa-usb-audio-add-a-quirck-for-b-w-px-headphones.patch +cpufreq-s3c24xx-fix-broken-s3c_cpufreq_init.patch