From: Greg Kroah-Hartman Date: Sat, 13 Sep 2014 01:08:51 +0000 (-0700) Subject: 3.14-stable patches X-Git-Tag: v3.10.55~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c6ab7c9f2f06c4e8ddcebc8d1abb9b6c8bfe3daa;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: acpi-cpuidle-fix-deadlock-between-cpuidle_lock-and-cpu_hotplug.lock.patch acpi-hotplug-check-scan-handlers-in-acpi_scan_hot_remove.patch acpi-run-fixed-event-device-notifications-in-process-context.patch acpi-scan-not-cache-_sun-value-in-struct-acpi_device_pnp.patch acpica-utilities-fix-memory-leak-in-acpi_ut_copy_iobject_to_iobject.patch asoc-adau1701-fix-adau1701_reg_read.patch asoc-axi-fix-adi-axi-spdif-specification.patch asoc-blackfin-use-samples-to-set-silence.patch asoc-max98090-fix-missing-free_irq.patch asoc-pcm-fix-dpcm_path_put-in-dpcm-runtime-update.patch asoc-pxa-pxa-ssp-small-leak-in-probe.patch asoc-pxa-ssp-drop-sndrv_pcm_fmtbit_s24_le.patch asoc-rt5640-do-not-allow-regmap-to-use-bulk-read-write-operations.patch asoc-samsung-correct-i2s-dai-suspend-resume-ops.patch asoc-wm8994-prevent-double-lock-of-accdet_lock-mutex-on-wm1811.patch asoc-wm_adsp-add-missing-module_license.patch bfa-fix-undefined-bit-shift-on-big-endian-architectures-with-32-bit-dma-address.patch bq2415x_charger-fix-atomic-sleep-bug.patch spi-pxa2xx-add-acpi-id-for-intel-braswell.patch --- diff --git a/queue-3.14/acpi-cpuidle-fix-deadlock-between-cpuidle_lock-and-cpu_hotplug.lock.patch b/queue-3.14/acpi-cpuidle-fix-deadlock-between-cpuidle_lock-and-cpu_hotplug.lock.patch new file mode 100644 index 00000000000..94f633d9f22 --- /dev/null +++ b/queue-3.14/acpi-cpuidle-fix-deadlock-between-cpuidle_lock-and-cpu_hotplug.lock.patch @@ -0,0 +1,71 @@ +From 6726655dfdd2dc60c035c690d9f10cb69d7ea075 Mon Sep 17 00:00:00 2001 +From: Jiri Kosina +Date: Wed, 3 Sep 2014 15:04:28 +0200 +Subject: ACPI / cpuidle: fix deadlock between cpuidle_lock and cpu_hotplug.lock + +From: Jiri Kosina + +commit 6726655dfdd2dc60c035c690d9f10cb69d7ea075 upstream. + +There is a following AB-BA dependency between cpu_hotplug.lock and +cpuidle_lock: + +1) cpu_hotplug.lock -> cpuidle_lock +enable_nonboot_cpus() + _cpu_up() + cpu_hotplug_begin() + LOCK(cpu_hotplug.lock) + cpu_notify() + ... + acpi_processor_hotplug() + cpuidle_pause_and_lock() + LOCK(cpuidle_lock) + +2) cpuidle_lock -> cpu_hotplug.lock +acpi_os_execute_deferred() workqueue + ... + acpi_processor_cst_has_changed() + cpuidle_pause_and_lock() + LOCK(cpuidle_lock) + get_online_cpus() + LOCK(cpu_hotplug.lock) + +Fix this by reversing the order acpi_processor_cst_has_changed() does +thigs -- let it first execute the protection against CPU hotplug by +calling get_online_cpus() and obtain the cpuidle lock only after that (and +perform the symmentric change when allowing CPUs hotplug again and +dropping cpuidle lock). + +Spotted by lockdep. + +Signed-off-by: Jiri Kosina +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/processor_idle.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/acpi/processor_idle.c ++++ b/drivers/acpi/processor_idle.c +@@ -1071,9 +1071,9 @@ int acpi_processor_cst_has_changed(struc + + if (pr->id == 0 && cpuidle_get_driver() == &acpi_idle_driver) { + +- cpuidle_pause_and_lock(); + /* Protect against cpu-hotplug */ + get_online_cpus(); ++ cpuidle_pause_and_lock(); + + /* Disable all cpuidle devices */ + for_each_online_cpu(cpu) { +@@ -1100,8 +1100,8 @@ int acpi_processor_cst_has_changed(struc + cpuidle_enable_device(dev); + } + } +- put_online_cpus(); + cpuidle_resume_and_unlock(); ++ put_online_cpus(); + } + + return 0; diff --git a/queue-3.14/acpi-hotplug-check-scan-handlers-in-acpi_scan_hot_remove.patch b/queue-3.14/acpi-hotplug-check-scan-handlers-in-acpi_scan_hot_remove.patch new file mode 100644 index 00000000000..1b854fba2b8 --- /dev/null +++ b/queue-3.14/acpi-hotplug-check-scan-handlers-in-acpi_scan_hot_remove.patch @@ -0,0 +1,77 @@ +From dee1592638ab7ea35a32179b73f9284dead49c03 Mon Sep 17 00:00:00 2001 +From: Tang Chen +Date: Fri, 8 Aug 2014 10:30:45 +0800 +Subject: ACPI / hotplug: Check scan handlers in acpi_scan_hot_remove() + +From: Tang Chen + +commit dee1592638ab7ea35a32179b73f9284dead49c03 upstream. + +When ACPI_HOTPLUG_MEMORY is not configured, memory_device_handler.attach +is not set. In acpi_scan_attach_handler(), the acpi_device->handler will +not be initialized. + +In acpi_scan_hot_remove(), it doesn't check if acpi_device->handler is NULL. +If we do memory hot-remove without ACPI_HOTPLUG_MEMORY configured, the kernel +will panic. + + BUG: unable to handle kernel NULL pointer dereference at 0000000000000088 + IP: [] acpi_device_hotplug+0x1d7/0x4c4 + PGD 0 + Oops: 0000 [#1] SMP + Modules linked in: sd_mod(E) sr_mod(E) cdrom(E) crc_t10dif(E) crct10dif_common(E) ata_piix(E) libata(E) + CPU: 0 PID: 41 Comm: kworker/u2:1 Tainted: G E 3.16.0-rc7--3.16-rc7-tangchen+ #20 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 + Workqueue: kacpi_hotplug acpi_hotplug_work_fn + task: ffff8800182436c0 ti: ffff880018254000 task.ti: ffff880018254000 + RIP: 0010:[] [] acpi_device_hotplug+0x1d7/0x4c4 + RSP: 0000:ffff880018257da8 EFLAGS: 00000246 + RAX: 0000000000000000 RBX: ffff88001cd8d800 RCX: 0000000000000000 + RDX: 0000000000000000 RSI: ffff88001e40e6f8 RDI: 0000000000000246 + RBP: ffff880018257df0 R08: 0000000000000096 R09: 00000000000011a0 + R10: 63735f6970636120 R11: 725f746f685f6e61 R12: 0000000000000003 + R13: ffff88001cc1c400 R14: ffff88001e062028 R15: 0000000000000040 + FS: 0000000000000000(0000) GS:ffff88001e400000(0000) knlGS:0000000000000000 + CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b + CR2: 0000000000000088 CR3: 000000001a9a2000 CR4: 00000000000006f0 + DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 + DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000 + Stack: + 00000000523cab58 ffff88001cd8d9f8 ffff88001852d480 00000000523cab58 + ffff88001852d480 ffff880018221e40 ffff88001cc1c400 ffff88001cce2d00 + 0000000000000040 ffff880018257e08 ffffffff813dc31d ffff88001852d480 + Call Trace: + [] acpi_hotplug_work_fn+0x1e/0x29 + [] process_one_work+0x17b/0x460 + [] worker_thread+0x11d/0x5b0 + [] ? rescuer_thread+0x3a0/0x3a0 + [] kthread+0xe1/0x100 + [] ? kthread_create_on_node+0x1a0/0x1a0 + [] ret_from_fork+0x7c/0xb0 + [] ? kthread_create_on_node+0x1a0/0x1a0 + +This patch fixes this problem by checking if acpi_device->handler is NULL +in acpi_scan_hot_remove(). + +Fixes: d22ddcbc4fb7 (ACPI / hotplug: Add demand_offline hotplug profile flag) +Signed-off-by: Tang Chen +[rjw: Subject] +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/scan.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -329,7 +329,8 @@ static int acpi_scan_hot_remove(struct a + unsigned long long sta; + acpi_status status; + +- if (device->handler->hotplug.demand_offline && !acpi_force_hot_remove) { ++ if (device->handler && device->handler->hotplug.demand_offline ++ && !acpi_force_hot_remove) { + if (!acpi_scan_is_offline(device, true)) + return -EBUSY; + } else { diff --git a/queue-3.14/acpi-run-fixed-event-device-notifications-in-process-context.patch b/queue-3.14/acpi-run-fixed-event-device-notifications-in-process-context.patch new file mode 100644 index 00000000000..1cd47c5a11f --- /dev/null +++ b/queue-3.14/acpi-run-fixed-event-device-notifications-in-process-context.patch @@ -0,0 +1,85 @@ +From 236105db632c6279a020f78c83e22eaef746006b Mon Sep 17 00:00:00 2001 +From: Lan Tianyu +Date: Tue, 26 Aug 2014 01:29:24 +0200 +Subject: ACPI: Run fixed event device notifications in process context + +From: Lan Tianyu + +commit 236105db632c6279a020f78c83e22eaef746006b upstream. + +Currently, notify callbacks for fixed button events are run from +interrupt context. That is not necessary and after commit 0bf6368ee8f2 +(ACPI / button: Add ACPI Button event via netlink routine) it causes +netlink routines to be called from interrupt context which is not +correct. + +Also, that is different from non-fixed device events (including +non-fixed button events) whose notify callbacks are all executed from +process context. + +For the above reasons, make fixed button device notify callbacks run +in process context which will avoid the deadlock when using netlink +to report button events to user space. + +Fixes: 0bf6368ee8f2 (ACPI / button: Add ACPI Button event via netlink routine) +Link: https://lkml.org/lkml/2014/8/21/606 +Reported-by: Benjamin Block +Reported-by: Knut Petersen +Signed-off-by: Lan Tianyu +[rjw: Function names, subject and changelog.] +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/scan.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -916,12 +916,17 @@ static void acpi_device_notify(acpi_hand + device->driver->ops.notify(device, event); + } + +-static acpi_status acpi_device_notify_fixed(void *data) ++static void acpi_device_notify_fixed(void *data) + { + struct acpi_device *device = data; + + /* Fixed hardware devices have no handles */ + acpi_device_notify(NULL, ACPI_FIXED_HARDWARE_EVENT, device); ++} ++ ++static acpi_status acpi_device_fixed_event(void *data) ++{ ++ acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_device_notify_fixed, data); + return AE_OK; + } + +@@ -932,12 +937,12 @@ static int acpi_device_install_notify_ha + if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) + status = + acpi_install_fixed_event_handler(ACPI_EVENT_POWER_BUTTON, +- acpi_device_notify_fixed, ++ acpi_device_fixed_event, + device); + else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) + status = + acpi_install_fixed_event_handler(ACPI_EVENT_SLEEP_BUTTON, +- acpi_device_notify_fixed, ++ acpi_device_fixed_event, + device); + else + status = acpi_install_notify_handler(device->handle, +@@ -954,10 +959,10 @@ static void acpi_device_remove_notify_ha + { + if (device->device_type == ACPI_BUS_TYPE_POWER_BUTTON) + acpi_remove_fixed_event_handler(ACPI_EVENT_POWER_BUTTON, +- acpi_device_notify_fixed); ++ acpi_device_fixed_event); + else if (device->device_type == ACPI_BUS_TYPE_SLEEP_BUTTON) + acpi_remove_fixed_event_handler(ACPI_EVENT_SLEEP_BUTTON, +- acpi_device_notify_fixed); ++ acpi_device_fixed_event); + else + acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, + acpi_device_notify); diff --git a/queue-3.14/acpi-scan-not-cache-_sun-value-in-struct-acpi_device_pnp.patch b/queue-3.14/acpi-scan-not-cache-_sun-value-in-struct-acpi_device_pnp.patch new file mode 100644 index 00000000000..fea11e0050c --- /dev/null +++ b/queue-3.14/acpi-scan-not-cache-_sun-value-in-struct-acpi_device_pnp.patch @@ -0,0 +1,81 @@ +From a383b68d9fe9864c4d3b86f67ad6488f58136435 Mon Sep 17 00:00:00 2001 +From: Yasuaki Ishimatsu +Date: Wed, 3 Sep 2014 13:39:13 +0900 +Subject: ACPI / scan: not cache _SUN value in struct acpi_device_pnp + +From: Yasuaki Ishimatsu + +commit a383b68d9fe9864c4d3b86f67ad6488f58136435 upstream. + +The _SUN device indentification object is not guaranteed to return +the same value every time it is executed, so we should not cache its +return value, but rather execute it every time as needed. If it is +cached, an incorrect stale value may be used in some situations. + +This issue was exposed by commit 202317a573b2 (ACPI / scan: Add +acpi_device objects for all device nodes in the namespace). Fix it +by avoiding to cache the return value of _SUN. + +Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace) +Signed-off-by: Yasuaki Ishimatsu +[ rjw: Changelog ] +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/scan.c | 15 ++++++++------- + include/acpi/acpi_bus.h | 1 - + 2 files changed, 8 insertions(+), 8 deletions(-) + +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -661,8 +661,14 @@ static ssize_t + acpi_device_sun_show(struct device *dev, struct device_attribute *attr, + char *buf) { + struct acpi_device *acpi_dev = to_acpi_device(dev); ++ acpi_status status; ++ unsigned long long sun; ++ ++ status = acpi_evaluate_integer(acpi_dev->handle, "_SUN", NULL, &sun); ++ if (ACPI_FAILURE(status)) ++ return -ENODEV; + +- return sprintf(buf, "%lu\n", acpi_dev->pnp.sun); ++ return sprintf(buf, "%llu\n", sun); + } + static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL); + +@@ -684,7 +690,6 @@ static int acpi_device_setup_files(struc + { + struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; + acpi_status status; +- unsigned long long sun; + int result = 0; + + /* +@@ -725,14 +730,10 @@ static int acpi_device_setup_files(struc + if (dev->pnp.unique_id) + result = device_create_file(&dev->dev, &dev_attr_uid); + +- status = acpi_evaluate_integer(dev->handle, "_SUN", NULL, &sun); +- if (ACPI_SUCCESS(status)) { +- dev->pnp.sun = (unsigned long)sun; ++ if (acpi_has_method(dev->handle, "_SUN")) { + result = device_create_file(&dev->dev, &dev_attr_sun); + if (result) + goto end; +- } else { +- dev->pnp.sun = (unsigned long)-1; + } + + if (acpi_has_method(dev->handle, "_STA")) { +--- a/include/acpi/acpi_bus.h ++++ b/include/acpi/acpi_bus.h +@@ -228,7 +228,6 @@ struct acpi_device_pnp { + acpi_device_name device_name; /* Driver-determined */ + acpi_device_class device_class; /* " */ + union acpi_object *str_obj; /* unicode string for _STR method */ +- unsigned long sun; /* _SUN */ + }; + + #define acpi_device_bid(d) ((d)->pnp.bus_id) diff --git a/queue-3.14/acpica-utilities-fix-memory-leak-in-acpi_ut_copy_iobject_to_iobject.patch b/queue-3.14/acpica-utilities-fix-memory-leak-in-acpi_ut_copy_iobject_to_iobject.patch new file mode 100644 index 00000000000..d09e29f1cbf --- /dev/null +++ b/queue-3.14/acpica-utilities-fix-memory-leak-in-acpi_ut_copy_iobject_to_iobject.patch @@ -0,0 +1,42 @@ +From 8aa5e56eeb61a099ea6519eb30ee399e1bc043ce Mon Sep 17 00:00:00 2001 +From: "David E. Box" +Date: Tue, 8 Jul 2014 10:05:52 +0800 +Subject: ACPICA: Utilities: Fix memory leak in acpi_ut_copy_iobject_to_iobject + +From: "David E. Box" + +commit 8aa5e56eeb61a099ea6519eb30ee399e1bc043ce upstream. + +Adds return status check on copy routines to delete the allocated destination +object if either copy fails. Reported by Colin Ian King on bugs.acpica.org, +Bug 1087. +The last applicable commit: + Commit: 3371c19c294a4cb3649aa4e84606be8a1d999e61 + Subject: ACPICA: Remove ACPI_GET_OBJECT_TYPE macro + +Link: https://bugs.acpica.org/show_bug.cgi?id=1087 +Reported-by: Colin Ian King +Signed-off-by: David E. Box +Signed-off-by: Bob Moore +Signed-off-by: Lv Zheng +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/acpica/utcopy.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/acpi/acpica/utcopy.c ++++ b/drivers/acpi/acpica/utcopy.c +@@ -1001,5 +1001,11 @@ acpi_ut_copy_iobject_to_iobject(union ac + status = acpi_ut_copy_simple_object(source_desc, *dest_desc); + } + ++ /* Delete the allocated object if copy failed */ ++ ++ if (ACPI_FAILURE(status)) { ++ acpi_ut_remove_reference(*dest_desc); ++ } ++ + return_ACPI_STATUS(status); + } diff --git a/queue-3.14/asoc-adau1701-fix-adau1701_reg_read.patch b/queue-3.14/asoc-adau1701-fix-adau1701_reg_read.patch new file mode 100644 index 00000000000..d0187d0b705 --- /dev/null +++ b/queue-3.14/asoc-adau1701-fix-adau1701_reg_read.patch @@ -0,0 +1,37 @@ +From 3ad80b828b2533f37c221e2df155774efd6ed814 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Thu, 3 Jul 2014 16:51:36 +0200 +Subject: ASoC: adau1701: fix adau1701_reg_read() + +From: Daniel Mack + +commit 3ad80b828b2533f37c221e2df155774efd6ed814 upstream. + +Fix a long standing bug in the read register routing of adau1701. +The bytes arrive in the buffer in big-endian, so the result has to be +shifted before and-ing the bytes in the loop. + +Signed-off-by: Daniel Mack +Acked-by: Lars-Peter Clausen +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/adau1701.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/adau1701.c ++++ b/sound/soc/codecs/adau1701.c +@@ -230,8 +230,10 @@ static int adau1701_reg_read(void *conte + + *value = 0; + +- for (i = 0; i < size; i++) +- *value |= recv_buf[i] << (i * 8); ++ for (i = 0; i < size; i++) { ++ *value <<= 8; ++ *value |= recv_buf[i]; ++ } + + return 0; + } diff --git a/queue-3.14/asoc-axi-fix-adi-axi-spdif-specification.patch b/queue-3.14/asoc-axi-fix-adi-axi-spdif-specification.patch new file mode 100644 index 00000000000..1a37e87d2af --- /dev/null +++ b/queue-3.14/asoc-axi-fix-adi-axi-spdif-specification.patch @@ -0,0 +1,38 @@ +From d1555c407a65db42126b295425379acb393ba83a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20F=C3=A4rber?= +Date: Mon, 28 Jul 2014 15:05:03 +0200 +Subject: ASoC: axi: Fix ADI AXI SPDIF specification +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Andreas=20F=C3=A4rber?= + +commit d1555c407a65db42126b295425379acb393ba83a upstream. + +The specification requires compatible = "adi,axi-spdif-1.00.a" but +driver and example and file name indicate "adi,axi-spdif-tx-1.00.a". +Change the specification to match the implementation. + +Acked-by: Lars-Peter Clausen +Reviewed-by: Michal Simek +Fixes: d7b528eff927 ("dt: Add bindings documentation for the ADI AXI-SPDIF audio controller") +Signed-off-by: Andreas Färber +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt ++++ b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt +@@ -1,7 +1,7 @@ + ADI AXI-SPDIF controller + + Required properties: +- - compatible : Must be "adi,axi-spdif-1.00.a" ++ - compatible : Must be "adi,axi-spdif-tx-1.00.a" + - reg : Must contain SPDIF core's registers location and length + - clocks : Pairs of phandle and specifier referencing the controller's clocks. + The controller expects two clocks, the clock used for the AXI interface and diff --git a/queue-3.14/asoc-blackfin-use-samples-to-set-silence.patch b/queue-3.14/asoc-blackfin-use-samples-to-set-silence.patch new file mode 100644 index 00000000000..335f73d66a1 --- /dev/null +++ b/queue-3.14/asoc-blackfin-use-samples-to-set-silence.patch @@ -0,0 +1,46 @@ +From 30443408fd7201fd1911b09daccf92fae3cc700d Mon Sep 17 00:00:00 2001 +From: Scott Jiang +Date: Fri, 18 Jul 2014 16:14:57 +0800 +Subject: ASoC: blackfin: use samples to set silence + +From: Scott Jiang + +commit 30443408fd7201fd1911b09daccf92fae3cc700d upstream. + +The third parameter for snd_pcm_format_set_silence needs the number +of samples instead of sample bytes. + +Signed-off-by: Scott Jiang +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/blackfin/bf5xx-i2s-pcm.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/sound/soc/blackfin/bf5xx-i2s-pcm.c ++++ b/sound/soc/blackfin/bf5xx-i2s-pcm.c +@@ -290,19 +290,19 @@ static int bf5xx_pcm_silence(struct snd_ + unsigned int sample_size = runtime->sample_bits / 8; + void *buf = runtime->dma_area; + struct bf5xx_i2s_pcm_data *dma_data; +- unsigned int offset, size; ++ unsigned int offset, samples; + + dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream); + + if (dma_data->tdm_mode) { + offset = pos * 8 * sample_size; +- size = count * 8 * sample_size; ++ samples = count * 8; + } else { + offset = frames_to_bytes(runtime, pos); +- size = frames_to_bytes(runtime, count); ++ samples = count * runtime->channels; + } + +- snd_pcm_format_set_silence(runtime->format, buf + offset, size); ++ snd_pcm_format_set_silence(runtime->format, buf + offset, samples); + + return 0; + } diff --git a/queue-3.14/asoc-max98090-fix-missing-free_irq.patch b/queue-3.14/asoc-max98090-fix-missing-free_irq.patch new file mode 100644 index 00000000000..405d65e8397 --- /dev/null +++ b/queue-3.14/asoc-max98090-fix-missing-free_irq.patch @@ -0,0 +1,34 @@ +From 4adeb0ccf86a5af1825bbfe290dee9e60a5ab870 Mon Sep 17 00:00:00 2001 +From: Jarkko Nikula +Date: Thu, 19 Jun 2014 09:32:05 +0300 +Subject: ASoC: max98090: Fix missing free_irq + +From: Jarkko Nikula + +commit 4adeb0ccf86a5af1825bbfe290dee9e60a5ab870 upstream. + +max98090.c doesn't free the threaded interrupt it requests. This causes +an oops when doing "cat /proc/interrupts" after snd-soc-max98090.ko is +unloaded. + +Fix this by requesting the interrupt by using devm_request_threaded_irq(). + +Signed-off-by: Jarkko Nikula +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/max98090.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/soc/codecs/max98090.c ++++ b/sound/soc/codecs/max98090.c +@@ -2250,7 +2250,7 @@ static int max98090_probe(struct snd_soc + /* Register for interrupts */ + dev_dbg(codec->dev, "irq = %d\n", max98090->irq); + +- ret = request_threaded_irq(max98090->irq, NULL, ++ ret = devm_request_threaded_irq(codec->dev, max98090->irq, NULL, + max98090_interrupt, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "max98090_interrupt", codec); + if (ret < 0) { diff --git a/queue-3.14/asoc-pcm-fix-dpcm_path_put-in-dpcm-runtime-update.patch b/queue-3.14/asoc-pcm-fix-dpcm_path_put-in-dpcm-runtime-update.patch new file mode 100644 index 00000000000..13f666336ac --- /dev/null +++ b/queue-3.14/asoc-pcm-fix-dpcm_path_put-in-dpcm-runtime-update.patch @@ -0,0 +1,31 @@ +From 7ed9de76ff342cbd717a9cf897044b99272cb8f8 Mon Sep 17 00:00:00 2001 +From: Qiao Zhou +Date: Wed, 4 Jun 2014 19:42:06 +0800 +Subject: ASoC: pcm: fix dpcm_path_put in dpcm runtime update + +From: Qiao Zhou + +commit 7ed9de76ff342cbd717a9cf897044b99272cb8f8 upstream. + +we need to release dapm widget list after dpcm_path_get in +soc_dpcm_runtime_update. otherwise, there will be potential memory +leak. add dpcm_path_put to fix it. + +Signed-off-by: Qiao Zhou +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/soc-pcm.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/soc/soc-pcm.c ++++ b/sound/soc/soc-pcm.c +@@ -2011,6 +2011,7 @@ int soc_dpcm_runtime_update(struct snd_s + dpcm_be_disconnect(fe, SNDRV_PCM_STREAM_PLAYBACK); + } + ++ dpcm_path_put(&list); + capture: + /* skip if FE doesn't have capture capability */ + if (!fe->cpu_dai->driver->capture.channels_min) diff --git a/queue-3.14/asoc-pxa-pxa-ssp-small-leak-in-probe.patch b/queue-3.14/asoc-pxa-pxa-ssp-small-leak-in-probe.patch new file mode 100644 index 00000000000..ffc5cec62ba --- /dev/null +++ b/queue-3.14/asoc-pxa-pxa-ssp-small-leak-in-probe.patch @@ -0,0 +1,32 @@ +From 4548728981de259d7d37d0ae968a777b09794168 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Thu, 31 Jul 2014 15:57:51 +0300 +Subject: ASoC: pxa: pxa-ssp: small leak in probe() + +From: Dan Carpenter + +commit 4548728981de259d7d37d0ae968a777b09794168 upstream. + +There is a small memory leak if probe() fails. + +Fixes: 2023c90c3a2c ('ASoC: pxa: pxa-ssp: add DT bindings') +Signed-off-by: Dan Carpenter +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/pxa/pxa-ssp.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/sound/soc/pxa/pxa-ssp.c ++++ b/sound/soc/pxa/pxa-ssp.c +@@ -725,7 +725,8 @@ static int pxa_ssp_probe(struct snd_soc_ + ssp_handle = of_parse_phandle(dev->of_node, "port", 0); + if (!ssp_handle) { + dev_err(dev, "unable to get 'port' phandle\n"); +- return -ENODEV; ++ ret = -ENODEV; ++ goto err_priv; + } + + priv->ssp = pxa_ssp_request_of(ssp_handle, "SoC audio"); diff --git a/queue-3.14/asoc-pxa-ssp-drop-sndrv_pcm_fmtbit_s24_le.patch b/queue-3.14/asoc-pxa-ssp-drop-sndrv_pcm_fmtbit_s24_le.patch new file mode 100644 index 00000000000..a6aad6100c1 --- /dev/null +++ b/queue-3.14/asoc-pxa-ssp-drop-sndrv_pcm_fmtbit_s24_le.patch @@ -0,0 +1,34 @@ +From 9301503af016eb537ccce76adec0c1bb5c84871e Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Wed, 13 Aug 2014 21:51:06 +0200 +Subject: ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LE + +From: Daniel Mack + +commit 9301503af016eb537ccce76adec0c1bb5c84871e upstream. + +This mode is unsupported, as the DMA controller can't do zero-padding +of samples. + +Signed-off-by: Daniel Mack +Reported-by: Johannes Stezenbach +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/pxa/pxa-ssp.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/sound/soc/pxa/pxa-ssp.c ++++ b/sound/soc/pxa/pxa-ssp.c +@@ -767,9 +767,7 @@ static int pxa_ssp_remove(struct snd_soc + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ + SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000) + +-#define PXA_SSP_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |\ +- SNDRV_PCM_FMTBIT_S24_LE | \ +- SNDRV_PCM_FMTBIT_S32_LE) ++#define PXA_SSP_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE) + + static const struct snd_soc_dai_ops pxa_ssp_dai_ops = { + .startup = pxa_ssp_startup, diff --git a/queue-3.14/asoc-rt5640-do-not-allow-regmap-to-use-bulk-read-write-operations.patch b/queue-3.14/asoc-rt5640-do-not-allow-regmap-to-use-bulk-read-write-operations.patch new file mode 100644 index 00000000000..3fdffae7ed7 --- /dev/null +++ b/queue-3.14/asoc-rt5640-do-not-allow-regmap-to-use-bulk-read-write-operations.patch @@ -0,0 +1,30 @@ +From f4821e8e8e957fe4c601a49b9a97b7399d5f7ab1 Mon Sep 17 00:00:00 2001 +From: Jarkko Nikula +Date: Tue, 26 Aug 2014 17:03:13 +0300 +Subject: ASoC: rt5640: Do not allow regmap to use bulk read-write operations + +From: Jarkko Nikula + +commit f4821e8e8e957fe4c601a49b9a97b7399d5f7ab1 upstream. + +Debugging showed Realtek RT5642 doesn't support autoincrementing writes so +driver should set the use_single_rw flag for regmap. + +Signed-off-by: Jarkko Nikula +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/rt5640.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/soc/codecs/rt5640.c ++++ b/sound/soc/codecs/rt5640.c +@@ -2071,6 +2071,7 @@ static struct snd_soc_codec_driver soc_c + static const struct regmap_config rt5640_regmap = { + .reg_bits = 8, + .val_bits = 16, ++ .use_single_rw = true, + + .max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) * + RT5640_PR_SPACING), diff --git a/queue-3.14/asoc-samsung-correct-i2s-dai-suspend-resume-ops.patch b/queue-3.14/asoc-samsung-correct-i2s-dai-suspend-resume-ops.patch new file mode 100644 index 00000000000..d58004c43ad --- /dev/null +++ b/queue-3.14/asoc-samsung-correct-i2s-dai-suspend-resume-ops.patch @@ -0,0 +1,55 @@ +From d3d4e5247b013008a39e4d5f69ce4c60ed57f997 Mon Sep 17 00:00:00 2001 +From: Sylwester Nawrocki +Date: Fri, 4 Jul 2014 16:05:45 +0200 +Subject: ASoC: samsung: Correct I2S DAI suspend/resume ops + +From: Sylwester Nawrocki + +commit d3d4e5247b013008a39e4d5f69ce4c60ed57f997 upstream. + +We should save/restore relevant I2S registers regardless of +the dai->active flag, otherwise some settings are being lost +after system suspend/resume cycle. E.g. I2S slave mode set only +during dai initialization is not preserved and the device ends +up in master mode after system resume. + +Signed-off-by: Sylwester Nawrocki +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/samsung/i2s.c | 16 ++++++---------- + 1 file changed, 6 insertions(+), 10 deletions(-) + +--- a/sound/soc/samsung/i2s.c ++++ b/sound/soc/samsung/i2s.c +@@ -915,11 +915,9 @@ static int i2s_suspend(struct snd_soc_da + { + struct i2s_dai *i2s = to_info(dai); + +- if (dai->active) { +- i2s->suspend_i2smod = readl(i2s->addr + I2SMOD); +- i2s->suspend_i2scon = readl(i2s->addr + I2SCON); +- i2s->suspend_i2spsr = readl(i2s->addr + I2SPSR); +- } ++ i2s->suspend_i2smod = readl(i2s->addr + I2SMOD); ++ i2s->suspend_i2scon = readl(i2s->addr + I2SCON); ++ i2s->suspend_i2spsr = readl(i2s->addr + I2SPSR); + + return 0; + } +@@ -928,11 +926,9 @@ static int i2s_resume(struct snd_soc_dai + { + struct i2s_dai *i2s = to_info(dai); + +- if (dai->active) { +- writel(i2s->suspend_i2scon, i2s->addr + I2SCON); +- writel(i2s->suspend_i2smod, i2s->addr + I2SMOD); +- writel(i2s->suspend_i2spsr, i2s->addr + I2SPSR); +- } ++ writel(i2s->suspend_i2scon, i2s->addr + I2SCON); ++ writel(i2s->suspend_i2smod, i2s->addr + I2SMOD); ++ writel(i2s->suspend_i2spsr, i2s->addr + I2SPSR); + + return 0; + } diff --git a/queue-3.14/asoc-wm8994-prevent-double-lock-of-accdet_lock-mutex-on-wm1811.patch b/queue-3.14/asoc-wm8994-prevent-double-lock-of-accdet_lock-mutex-on-wm1811.patch new file mode 100644 index 00000000000..64d84e758da --- /dev/null +++ b/queue-3.14/asoc-wm8994-prevent-double-lock-of-accdet_lock-mutex-on-wm1811.patch @@ -0,0 +1,62 @@ +From b38314179c9ccb789e6fe967cff171fa817e8978 Mon Sep 17 00:00:00 2001 +From: Charles Keepax +Date: Mon, 16 Jun 2014 21:24:03 +0100 +Subject: ASoC: wm8994: Prevent double lock of accdet_lock mutex on wm1811 + +From: Charles Keepax + +commit b38314179c9ccb789e6fe967cff171fa817e8978 upstream. + +wm1811_micd_stop takes the accdet_lock mutex, and is called from two +places, one of which is already holding the accdet_lock. This obviously +causes a lock up. + +This patch fixes this issue by removing the lock from wm1811_micd_stop +and ensuring that it is always locked externally. + +Signed-off-by: Charles Keepax +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8994.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +--- a/sound/soc/codecs/wm8994.c ++++ b/sound/soc/codecs/wm8994.c +@@ -3497,6 +3497,7 @@ static irqreturn_t wm8994_mic_irq(int ir + return IRQ_HANDLED; + } + ++/* Should be called with accdet_lock held */ + static void wm1811_micd_stop(struct snd_soc_codec *codec) + { + struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); +@@ -3504,14 +3505,10 @@ static void wm1811_micd_stop(struct snd_ + if (!wm8994->jackdet) + return; + +- mutex_lock(&wm8994->accdet_lock); +- + snd_soc_update_bits(codec, WM8958_MIC_DETECT_1, WM8958_MICD_ENA, 0); + + wm1811_jackdet_set_mode(codec, WM1811_JACKDET_MODE_JACK); + +- mutex_unlock(&wm8994->accdet_lock); +- + if (wm8994->wm8994->pdata.jd_ext_cap) + snd_soc_dapm_disable_pin(&codec->dapm, + "MICBIAS2"); +@@ -3552,10 +3549,10 @@ static void wm8958_open_circuit_work(str + open_circuit_work.work); + struct device *dev = wm8994->wm8994->dev; + +- wm1811_micd_stop(wm8994->hubs.codec); +- + mutex_lock(&wm8994->accdet_lock); + ++ wm1811_micd_stop(wm8994->hubs.codec); ++ + dev_dbg(dev, "Reporting open circuit\n"); + + wm8994->jack_mic = false; diff --git a/queue-3.14/asoc-wm_adsp-add-missing-module_license.patch b/queue-3.14/asoc-wm_adsp-add-missing-module_license.patch new file mode 100644 index 00000000000..afb8ca3bc18 --- /dev/null +++ b/queue-3.14/asoc-wm_adsp-add-missing-module_license.patch @@ -0,0 +1,30 @@ +From 0a37c6efec4a2fdc2563c5a8faa472b814deee80 Mon Sep 17 00:00:00 2001 +From: Praveen Diwakar +Date: Fri, 4 Jul 2014 11:17:41 +0530 +Subject: ASoC: wm_adsp: Add missing MODULE_LICENSE + +From: Praveen Diwakar + +commit 0a37c6efec4a2fdc2563c5a8faa472b814deee80 upstream. + +Since MODULE_LICENSE is missing the module load fails, +so add this for module. + +Signed-off-by: Praveen Diwakar +Signed-off-by: Vinod Koul +Reviewed-by: Charles Keepax +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm_adsp.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/soc/codecs/wm_adsp.c ++++ b/sound/soc/codecs/wm_adsp.c +@@ -1745,3 +1745,5 @@ int wm_adsp2_init(struct wm_adsp *adsp, + return 0; + } + EXPORT_SYMBOL_GPL(wm_adsp2_init); ++ ++MODULE_LICENSE("GPL v2"); diff --git a/queue-3.14/bfa-fix-undefined-bit-shift-on-big-endian-architectures-with-32-bit-dma-address.patch b/queue-3.14/bfa-fix-undefined-bit-shift-on-big-endian-architectures-with-32-bit-dma-address.patch new file mode 100644 index 00000000000..c1919e1577d --- /dev/null +++ b/queue-3.14/bfa-fix-undefined-bit-shift-on-big-endian-architectures-with-32-bit-dma-address.patch @@ -0,0 +1,49 @@ +From 03a6c3ff3282ee9fa893089304d951e0be93a144 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 8 Jun 2014 23:33:25 +0100 +Subject: bfa: Fix undefined bit shift on big-endian architectures with 32-bit DMA address + +From: Ben Hutchings + +commit 03a6c3ff3282ee9fa893089304d951e0be93a144 upstream. + +bfa_swap_words() shifts its argument (assumed to be 64-bit) by 32 bits +each way. In two places the argument type is dma_addr_t, which may be +32-bit, in which case the effect of the bit shift is undefined: + +drivers/scsi/bfa/bfa_fcpim.c: In function 'bfa_ioim_send_ioreq': +drivers/scsi/bfa/bfa_fcpim.c:2497:4: warning: left shift count >= width of type [enabled by default] + addr = bfa_sgaddr_le(sg_dma_address(sg)); + ^ +drivers/scsi/bfa/bfa_fcpim.c:2497:4: warning: right shift count >= width of type [enabled by default] +drivers/scsi/bfa/bfa_fcpim.c:2509:4: warning: left shift count >= width of type [enabled by default] + addr = bfa_sgaddr_le(sg_dma_address(sg)); + ^ +drivers/scsi/bfa/bfa_fcpim.c:2509:4: warning: right shift count >= width of type [enabled by default] + +Avoid this by adding casts to u64 in bfa_swap_words(). + +Compile-tested only. + +Signed-off-by: Ben Hutchings +Reviewed-by: Martin K. Petersen +Acked-by: Anil Gurumurthy +Fixes: f16a17507b09 ('[SCSI] bfa: remove all OS wrappers') +Signed-off-by: Christoph Hellwig +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/bfa/bfa_ioc.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/scsi/bfa/bfa_ioc.h ++++ b/drivers/scsi/bfa/bfa_ioc.h +@@ -72,7 +72,7 @@ struct bfa_sge_s { + } while (0) + + #define bfa_swap_words(_x) ( \ +- ((_x) << 32) | ((_x) >> 32)) ++ ((u64)(_x) << 32) | ((u64)(_x) >> 32)) + + #ifdef __BIG_ENDIAN + #define bfa_sge_to_be(_x) diff --git a/queue-3.14/bq2415x_charger-fix-atomic-sleep-bug.patch b/queue-3.14/bq2415x_charger-fix-atomic-sleep-bug.patch new file mode 100644 index 00000000000..6ddee0c7fc9 --- /dev/null +++ b/queue-3.14/bq2415x_charger-fix-atomic-sleep-bug.patch @@ -0,0 +1,69 @@ +From 3c0185046c0ee49a6e55c714612ef3bcd5385df3 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Mon, 7 Apr 2014 13:14:04 +0200 +Subject: bq2415x_charger: Fix Atomic Sleep Bug + +From: Sebastian Reichel + +commit 3c0185046c0ee49a6e55c714612ef3bcd5385df3 upstream. + +Move sysfs_notify and i2c_transfer calls from bq2415x_notifier_call +to bq2415x_timer_work to avoid sleeping in atomic context. + +This fixes the following bug: + +[ 7.667449] Workqueue: events power_supply_changed_work +[ 7.673034] [] (unwind_backtrace+0x0/0xe0) from [] (show_stack+0x10/0x14) +[ 7.682098] [] (show_stack+0x10/0x14) from [] (dump_stack+0x78/0xac) +[ 7.690704] [] (dump_stack+0x78/0xac) from [] (__schedule_bug+0x48/0x60) +[ 7.699645] [] (__schedule_bug+0x48/0x60) from [] (__schedule+0x74/0x638) +[ 7.708618] [] (__schedule+0x74/0x638) from [] (schedule_timeout+0x1dc/0x24c) +[ 7.718017] [] (schedule_timeout+0x1dc/0x24c) from [] (wait_for_common+0x138/0x17c) +[ 7.727966] [] (wait_for_common+0x138/0x17c) from [] (omap_i2c_xfer+0x340/0x4a0) +[ 7.737640] [] (omap_i2c_xfer+0x340/0x4a0) from [] (__i2c_transfer+0x40/0x74) +[ 7.747039] [] (__i2c_transfer+0x40/0x74) from [] (i2c_transfer+0x6c/0x90) +[ 7.756195] [] (i2c_transfer+0x6c/0x90) from [] (bq2415x_i2c_write+0x48/0x78) +[ 7.765563] [] (bq2415x_i2c_write+0x48/0x78) from [] (bq2415x_set_weak_battery_voltage+0x4c/0x50) +[ 7.776824] [] (bq2415x_set_weak_battery_voltage+0x4c/0x50) from [] (bq2415x_set_mode+0xdc/0x14c) +[ 7.788085] [] (bq2415x_set_mode+0xdc/0x14c) from [] (bq2415x_notifier_call+0xa8/0xb4) +[ 7.798309] [] (bq2415x_notifier_call+0xa8/0xb4) from [] (notifier_call_chain+0x38/0x68) +[ 7.808715] [] (notifier_call_chain+0x38/0x68) from [] (__atomic_notifier_call_chain+0x2c/0x3c) +[ 7.819732] [] (__atomic_notifier_call_chain+0x2c/0x3c) from [] (atomic_notifier_call_chain+0x14/0x18) +[ 7.831420] [] (atomic_notifier_call_chain+0x14/0x18) from [] (power_supply_changed_work+0x6c/0xb8) +[ 7.842864] [] (power_supply_changed_work+0x6c/0xb8) from [] (process_one_work+0x248/0x440) +[ 7.853546] [] (process_one_work+0x248/0x440) from [] (worker_thread+0x208/0x350) +[ 7.863372] [] (worker_thread+0x208/0x350) from [] (kthread+0xc8/0xdc) +[ 7.872131] [] (kthread+0xc8/0xdc) from [] (ret_from_fork+0x14/0x3c) + +Fixes: 32260308b4ca ("bq2415x_charger: Use power_supply notifier for automode") +Signed-off-by: Sebastian Reichel +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/power/bq2415x_charger.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/drivers/power/bq2415x_charger.c ++++ b/drivers/power/bq2415x_charger.c +@@ -840,8 +840,7 @@ static int bq2415x_notifier_call(struct + if (bq->automode < 1) + return NOTIFY_OK; + +- sysfs_notify(&bq->charger.dev->kobj, NULL, "reported_mode"); +- bq2415x_set_mode(bq, bq->reported_mode); ++ schedule_delayed_work(&bq->work, 0); + + return NOTIFY_OK; + } +@@ -892,6 +891,11 @@ static void bq2415x_timer_work(struct wo + int error; + int boost; + ++ if (bq->automode > 0 && (bq->reported_mode != bq->mode)) { ++ sysfs_notify(&bq->charger.dev->kobj, NULL, "reported_mode"); ++ bq2415x_set_mode(bq, bq->reported_mode); ++ } ++ + if (!bq->autotimer) + return; + diff --git a/queue-3.14/series b/queue-3.14/series index f317831d784..fceb3534550 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -48,3 +48,22 @@ mips-tlbex-fix-a-missing-statement-for-hugetlb.patch mips-remove-bug_on-is_fpu_owner-in-do_ade.patch mips-asm-reg.h-make-32-and-64-bit-definitions-available-at-the-same-time.patch mips-octeon-make-get_system_type-thread-safe.patch +asoc-wm8994-prevent-double-lock-of-accdet_lock-mutex-on-wm1811.patch +asoc-pcm-fix-dpcm_path_put-in-dpcm-runtime-update.patch +asoc-wm_adsp-add-missing-module_license.patch +asoc-blackfin-use-samples-to-set-silence.patch +asoc-samsung-correct-i2s-dai-suspend-resume-ops.patch +asoc-adau1701-fix-adau1701_reg_read.patch +asoc-max98090-fix-missing-free_irq.patch +asoc-pxa-pxa-ssp-small-leak-in-probe.patch +asoc-pxa-ssp-drop-sndrv_pcm_fmtbit_s24_le.patch +asoc-axi-fix-adi-axi-spdif-specification.patch +asoc-rt5640-do-not-allow-regmap-to-use-bulk-read-write-operations.patch +bfa-fix-undefined-bit-shift-on-big-endian-architectures-with-32-bit-dma-address.patch +bq2415x_charger-fix-atomic-sleep-bug.patch +acpica-utilities-fix-memory-leak-in-acpi_ut_copy_iobject_to_iobject.patch +acpi-hotplug-check-scan-handlers-in-acpi_scan_hot_remove.patch +spi-pxa2xx-add-acpi-id-for-intel-braswell.patch +acpi-run-fixed-event-device-notifications-in-process-context.patch +acpi-scan-not-cache-_sun-value-in-struct-acpi_device_pnp.patch +acpi-cpuidle-fix-deadlock-between-cpuidle_lock-and-cpu_hotplug.lock.patch diff --git a/queue-3.14/spi-pxa2xx-add-acpi-id-for-intel-braswell.patch b/queue-3.14/spi-pxa2xx-add-acpi-id-for-intel-braswell.patch new file mode 100644 index 00000000000..2aeb2a9b067 --- /dev/null +++ b/queue-3.14/spi-pxa2xx-add-acpi-id-for-intel-braswell.patch @@ -0,0 +1,31 @@ +From aca26364689e00e3b2052072424682231bdae6ae Mon Sep 17 00:00:00 2001 +From: Alan Cox +Date: Wed, 20 Aug 2014 13:57:26 +0300 +Subject: spi/pxa2xx: Add ACPI ID for Intel Braswell + +From: Alan Cox + +commit aca26364689e00e3b2052072424682231bdae6ae upstream. + +The SPI host controller is the same as used in Baytrail, only the ACPI ID +is different so add this new ID to the list. + +Signed-off-by: Alan Cox +Signed-off-by: Mika Westerberg +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spi-pxa2xx.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/spi/spi-pxa2xx.c ++++ b/drivers/spi/spi-pxa2xx.c +@@ -1078,6 +1078,7 @@ static struct acpi_device_id pxa2xx_spi_ + { "INT3430", 0 }, + { "INT3431", 0 }, + { "80860F0E", 0 }, ++ { "8086228E", 0 }, + { }, + }; + MODULE_DEVICE_TABLE(acpi, pxa2xx_spi_acpi_match);