From: Greg Kroah-Hartman Date: Fri, 2 Dec 2011 22:03:52 +0000 (-0800) Subject: 3.0 patches X-Git-Tag: v3.0.13~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=08675fe2529f51e0a459474c623d3ab571569628;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0 patches added patches: alsa-lx6464es-fix-device-communication-via-command-bus.patch arm-7161-1-errata-no-automatic-store-buffer-drain.patch arm-mx28-fix-bit-operation-in-clock-setting.patch arm-omap2-select-arm_amba-if-omap3_emu-is-defined.patch arm-omap-smartreflex-fix-irq-handling-bug.patch arm-pxa-fix-inconsistent-config_usb_pxa27x.patch asoc-ensure-wm8731-register-cache-is-synced-when-resuming-from-disabled.patch asoc-fsl_ssi-properly-initialize-the-sysfs-attribute-object.patch asoc-wm8753-skip-noop-reconfiguration-of-dai-mode.patch --- diff --git a/queue-3.0/alsa-lx6464es-fix-device-communication-via-command-bus.patch b/queue-3.0/alsa-lx6464es-fix-device-communication-via-command-bus.patch new file mode 100644 index 00000000000..1c9ed8abc96 --- /dev/null +++ b/queue-3.0/alsa-lx6464es-fix-device-communication-via-command-bus.patch @@ -0,0 +1,58 @@ +From a29878553a9a7b4c06f93c7e383527cf014d4ceb Mon Sep 17 00:00:00 2001 +From: Tim Blechmann +Date: Tue, 22 Nov 2011 11:15:45 +0100 +Subject: ALSA: lx6464es - fix device communication via command bus + +From: Tim Blechmann + +commit a29878553a9a7b4c06f93c7e383527cf014d4ceb upstream. + +commit 6175ddf06b6172046a329e3abfd9c901a43efd2e optimized the mem*io +functions that have been used to send commands to the device. these +optimizations somehow corrupted the communication with the lx6464es, +that resulted the device to be unusable with kernels after 2.6.33. + +this patch emulates the memcpy_*_io functions via a loop to avoid these +problems. + +Signed-off-by: Tim Blechmann +LKML-Reference: <4ECB5257.4040600@ladisch.de> +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/lx6464es/lx_core.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +--- a/sound/pci/lx6464es/lx_core.c ++++ b/sound/pci/lx6464es/lx_core.c +@@ -80,8 +80,12 @@ unsigned long lx_dsp_reg_read(struct lx6 + + void lx_dsp_reg_readbuf(struct lx6464es *chip, int port, u32 *data, u32 len) + { +- void __iomem *address = lx_dsp_register(chip, port); +- memcpy_fromio(data, address, len*sizeof(u32)); ++ u32 __iomem *address = lx_dsp_register(chip, port); ++ int i; ++ ++ /* we cannot use memcpy_fromio */ ++ for (i = 0; i != len; ++i) ++ data[i] = ioread32(address + i); + } + + +@@ -94,8 +98,12 @@ void lx_dsp_reg_write(struct lx6464es *c + void lx_dsp_reg_writebuf(struct lx6464es *chip, int port, const u32 *data, + u32 len) + { +- void __iomem *address = lx_dsp_register(chip, port); +- memcpy_toio(address, data, len*sizeof(u32)); ++ u32 __iomem *address = lx_dsp_register(chip, port); ++ int i; ++ ++ /* we cannot use memcpy_to */ ++ for (i = 0; i != len; ++i) ++ iowrite32(data[i], address + i); + } + + diff --git a/queue-3.0/arm-7161-1-errata-no-automatic-store-buffer-drain.patch b/queue-3.0/arm-7161-1-errata-no-automatic-store-buffer-drain.patch new file mode 100644 index 00000000000..a8f80e23d4e --- /dev/null +++ b/queue-3.0/arm-7161-1-errata-no-automatic-store-buffer-drain.patch @@ -0,0 +1,62 @@ +From 11ed0ba1754841316d4095478944300acf19acc3 Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Mon, 14 Nov 2011 17:24:58 +0100 +Subject: ARM: 7161/1: errata: no automatic store buffer drain + +From: Will Deacon + +commit 11ed0ba1754841316d4095478944300acf19acc3 upstream. + +This patch implements a workaround for PL310 erratum 769419. On +revisions of the PL310 prior to r3p2, the Store Buffer does not +automatically drain. This can cause normal, non-cacheable writes to be +retained when the memory system is idle, leading to suboptimal I/O +performance for drivers using coherent DMA. + +This patch adds an optional wmb() call to the cpu_idle loop. On systems +with an outer cache, this causes an explicit flush of the store buffer. + +Acked-by: Catalin Marinas +Tested-by: Marc Zyngier +Signed-off-by: Will Deacon +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/Kconfig | 12 ++++++++++++ + arch/arm/kernel/process.c | 3 +++ + 2 files changed, 15 insertions(+) + +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -1312,6 +1312,18 @@ config ARM_ERRATA_764369 + relevant cache maintenance functions and sets a specific bit + in the diagnostic control register of the SCU. + ++config PL310_ERRATA_769419 ++ bool "PL310 errata: no automatic Store Buffer drain" ++ depends on CACHE_L2X0 ++ help ++ On revisions of the PL310 prior to r3p2, the Store Buffer does ++ not automatically drain. This can cause normal, non-cacheable ++ writes to be retained when the memory system is idle, leading ++ to suboptimal I/O performance for drivers using coherent DMA. ++ This option adds a write barrier to the cpu_idle loop so that, ++ on systems with an outer cache, the store buffer is drained ++ explicitly. ++ + endmenu + + menu "Kernel Features" +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -191,6 +191,9 @@ void cpu_idle(void) + #endif + + local_irq_disable(); ++#ifdef CONFIG_PL310_ERRATA_769419 ++ wmb(); ++#endif + if (hlt_counter) { + local_irq_enable(); + cpu_relax(); diff --git a/queue-3.0/arm-mx28-fix-bit-operation-in-clock-setting.patch b/queue-3.0/arm-mx28-fix-bit-operation-in-clock-setting.patch new file mode 100644 index 00000000000..7f2c1319011 --- /dev/null +++ b/queue-3.0/arm-mx28-fix-bit-operation-in-clock-setting.patch @@ -0,0 +1,35 @@ +From c2735391fbc68feae10d6d14e60956c8106e725f Mon Sep 17 00:00:00 2001 +From: Wolfram Sang +Date: Sat, 10 Sep 2011 12:26:07 +0200 +Subject: arm: mx28: fix bit operation in clock setting + +From: Wolfram Sang + +commit c2735391fbc68feae10d6d14e60956c8106e725f upstream. + +reg | (1 << clk->enable_shift) always evaluates to true. Switch it +to & which makes much more sense. Same fix as 13be9f00 (ARM i.MX28: fix +bit operation) at a different location. + +Signed-off-by: Wolfram Sang +Cc: Sascha Hauer +Cc: Shawn Guo +Signed-off-by: Shawn Guo +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-mxs/clock-mx28.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/mach-mxs/clock-mx28.c ++++ b/arch/arm/mach-mxs/clock-mx28.c +@@ -404,7 +404,7 @@ static int name##_set_rate(struct clk *c + reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \ + reg &= ~BM_CLKCTRL_##dr##_DIV; \ + reg |= div << BP_CLKCTRL_##dr##_DIV; \ +- if (reg | (1 << clk->enable_shift)) { \ ++ if (reg & (1 << clk->enable_shift)) { \ + pr_err("%s: clock is gated\n", __func__); \ + return -EINVAL; \ + } \ diff --git a/queue-3.0/arm-omap-smartreflex-fix-irq-handling-bug.patch b/queue-3.0/arm-omap-smartreflex-fix-irq-handling-bug.patch new file mode 100644 index 00000000000..bd7ff9bdae0 --- /dev/null +++ b/queue-3.0/arm-omap-smartreflex-fix-irq-handling-bug.patch @@ -0,0 +1,33 @@ +From 5a4f1844c2ba21f804d7729306d9b16eaeb724a8 Mon Sep 17 00:00:00 2001 +From: Felipe Balbi +Date: Wed, 23 Nov 2011 14:43:37 -0800 +Subject: ARM: OMAP: smartreflex: fix IRQ handling bug + +From: Felipe Balbi + +commit 5a4f1844c2ba21f804d7729306d9b16eaeb724a8 upstream. + +Fix a bug which has been on this driver since +it was added by the original commit 984aa6db +which would never clear IRQSTATUS bits. + +Signed-off-by: Felipe Balbi +Signed-off-by: Kevin Hilman +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-omap2/smartreflex.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/mach-omap2/smartreflex.c ++++ b/arch/arm/mach-omap2/smartreflex.c +@@ -137,7 +137,7 @@ static irqreturn_t sr_interrupt(int irq, + sr_write_reg(sr_info, ERRCONFIG_V1, status); + } else if (sr_info->ip_type == SR_TYPE_V2) { + /* Read the status bits */ +- sr_read_reg(sr_info, IRQSTATUS); ++ status = sr_read_reg(sr_info, IRQSTATUS); + + /* Clear them by writing back */ + sr_write_reg(sr_info, IRQSTATUS, status); diff --git a/queue-3.0/arm-omap2-select-arm_amba-if-omap3_emu-is-defined.patch b/queue-3.0/arm-omap2-select-arm_amba-if-omap3_emu-is-defined.patch new file mode 100644 index 00000000000..59ba61a760b --- /dev/null +++ b/queue-3.0/arm-omap2-select-arm_amba-if-omap3_emu-is-defined.patch @@ -0,0 +1,62 @@ +From a8a6565c7615cab3608d75af95b5c8a3522cd7c4 Mon Sep 17 00:00:00 2001 +From: Ming Lei +Date: Wed, 23 Nov 2011 14:44:50 -0800 +Subject: ARM: OMAP2: select ARM_AMBA if OMAP3_EMU is defined + +From: Ming Lei + +commit a8a6565c7615cab3608d75af95b5c8a3522cd7c4 upstream. + +This patch selects ARM_AMBA if OMAP3_EMU is defined because +OC_ETM depends on ARM_AMBA, so fix the link failure[1]. + +[1], +arch/arm/kernel/built-in.o: In function `etm_remove': +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:609: undefined +reference to `amba_release_regions' +arch/arm/kernel/built-in.o: In function `etb_remove': +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:409: undefined +reference to `amba_release_regions' +arch/arm/kernel/built-in.o: In function `etm_init': +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:640: undefined +reference to `amba_driver_register' +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:646: undefined +reference to `amba_driver_register' +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:648: undefined +reference to `amba_driver_unregister' +arch/arm/kernel/built-in.o: In function `etm_probe': +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:545: undefined +reference to `amba_request_regions' +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:595: undefined +reference to `amba_release_regions' +arch/arm/kernel/built-in.o: In function `etb_probe': +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:347: undefined +reference to `amba_request_regions' +/home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:392: undefined +reference to `amba_release_regions' +arch/arm/mach-omap2/built-in.o: In function `emu_init': +/home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:62: +undefined reference to `amba_device_register' +/home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:63: +undefined reference to `amba_device_register' +make: *** [.tmp_vmlinux1] Error 1 +making modules + +Signed-off-by: Ming Lei +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-omap2/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/mach-omap2/Kconfig ++++ b/arch/arm/mach-omap2/Kconfig +@@ -326,6 +326,7 @@ config MACH_OMAP4_PANDA + config OMAP3_EMU + bool "OMAP3 debugging peripherals" + depends on ARCH_OMAP3 ++ select ARM_AMBA + select OC_ETM + help + Say Y here to enable debugging hardware of omap3 diff --git a/queue-3.0/arm-pxa-fix-inconsistent-config_usb_pxa27x.patch b/queue-3.0/arm-pxa-fix-inconsistent-config_usb_pxa27x.patch new file mode 100644 index 00000000000..c1b71018c81 --- /dev/null +++ b/queue-3.0/arm-pxa-fix-inconsistent-config_usb_pxa27x.patch @@ -0,0 +1,157 @@ +From c0a39151a4055332897cba615623d3de2f3896df Mon Sep 17 00:00:00 2001 +From: Haojian Zhuang +Date: Thu, 10 Nov 2011 07:13:07 +0800 +Subject: ARM: pxa: fix inconsistent CONFIG_USB_PXA27X + +From: Haojian Zhuang + +commit c0a39151a4055332897cba615623d3de2f3896df upstream. + +Since CONFIG_USB_GADGET_PXA27X and other macros are renamed to +CONFIG_USB_PXA27X. Update them in arch/arm/mach-pxa and arch/arm/configs +to keep consistent. + +Signed-off-by: Haojian Zhuang +Acked-by: Felipe Balbi +Signed-off-by: Eric Miao +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/configs/ezx_defconfig | 2 +- + arch/arm/configs/imote2_defconfig | 2 +- + arch/arm/configs/magician_defconfig | 2 +- + arch/arm/configs/zeus_defconfig | 2 +- + arch/arm/mach-pxa/balloon3.c | 2 +- + arch/arm/mach-pxa/colibri-pxa320.c | 2 +- + arch/arm/mach-pxa/gumstix.c | 2 +- + arch/arm/mach-pxa/include/mach/palm27x.h | 4 ++-- + arch/arm/mach-pxa/palm27x.c | 4 ++-- + arch/arm/mach-pxa/palmtc.c | 2 +- + arch/arm/mach-pxa/vpac270.c | 2 +- + 11 files changed, 13 insertions(+), 13 deletions(-) + +--- a/arch/arm/configs/ezx_defconfig ++++ b/arch/arm/configs/ezx_defconfig +@@ -287,7 +287,7 @@ CONFIG_USB=y + # CONFIG_USB_DEVICE_CLASS is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_GADGET=y +-CONFIG_USB_GADGET_PXA27X=y ++CONFIG_USB_PXA27X=y + CONFIG_USB_ETH=m + # CONFIG_USB_ETH_RNDIS is not set + CONFIG_MMC=y +--- a/arch/arm/configs/imote2_defconfig ++++ b/arch/arm/configs/imote2_defconfig +@@ -263,7 +263,7 @@ CONFIG_USB=y + # CONFIG_USB_DEVICE_CLASS is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_GADGET=y +-CONFIG_USB_GADGET_PXA27X=y ++CONFIG_USB_PXA27X=y + CONFIG_USB_ETH=m + # CONFIG_USB_ETH_RNDIS is not set + CONFIG_MMC=y +--- a/arch/arm/configs/magician_defconfig ++++ b/arch/arm/configs/magician_defconfig +@@ -132,7 +132,7 @@ CONFIG_USB_MON=m + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_GADGET=y + CONFIG_USB_GADGET_VBUS_DRAW=500 +-CONFIG_USB_GADGET_PXA27X=y ++CONFIG_USB_PXA27X=y + CONFIG_USB_ETH=m + # CONFIG_USB_ETH_RNDIS is not set + CONFIG_USB_GADGETFS=m +--- a/arch/arm/configs/zeus_defconfig ++++ b/arch/arm/configs/zeus_defconfig +@@ -140,7 +140,7 @@ CONFIG_USB_SERIAL=m + CONFIG_USB_SERIAL_GENERIC=y + CONFIG_USB_SERIAL_MCT_U232=m + CONFIG_USB_GADGET=m +-CONFIG_USB_GADGET_PXA27X=y ++CONFIG_USB_PXA27X=y + CONFIG_USB_ETH=m + CONFIG_USB_GADGETFS=m + CONFIG_USB_FILE_STORAGE=m +--- a/arch/arm/mach-pxa/balloon3.c ++++ b/arch/arm/mach-pxa/balloon3.c +@@ -307,7 +307,7 @@ static inline void balloon3_mmc_init(voi + /****************************************************************************** + * USB Gadget + ******************************************************************************/ +-#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE) ++#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE) + static void balloon3_udc_command(int cmd) + { + if (cmd == PXA2XX_UDC_CMD_CONNECT) +--- a/arch/arm/mach-pxa/colibri-pxa320.c ++++ b/arch/arm/mach-pxa/colibri-pxa320.c +@@ -147,7 +147,7 @@ static void __init colibri_pxa320_init_e + static inline void __init colibri_pxa320_init_eth(void) {} + #endif /* CONFIG_AX88796 */ + +-#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE) ++#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE) + static struct gpio_vbus_mach_info colibri_pxa320_gpio_vbus_info = { + .gpio_vbus = mfp_to_gpio(MFP_PIN_GPIO96), + .gpio_pullup = -1, +--- a/arch/arm/mach-pxa/gumstix.c ++++ b/arch/arm/mach-pxa/gumstix.c +@@ -106,7 +106,7 @@ static void __init gumstix_mmc_init(void + } + #endif + +-#ifdef CONFIG_USB_GADGET_PXA25X ++#ifdef CONFIG_USB_PXA25X + static struct gpio_vbus_mach_info gumstix_udc_info = { + .gpio_vbus = GPIO_GUMSTIX_USB_GPIOn, + .gpio_pullup = GPIO_GUMSTIX_USB_GPIOx, +--- a/arch/arm/mach-pxa/include/mach/palm27x.h ++++ b/arch/arm/mach-pxa/include/mach/palm27x.h +@@ -37,8 +37,8 @@ extern void __init palm27x_lcd_init(int + static inline void palm27x_lcd_init(int power, struct pxafb_mode_info *mode) {} + #endif + +-#if defined(CONFIG_USB_GADGET_PXA27X) || \ +- defined(CONFIG_USB_GADGET_PXA27X_MODULE) ++#if defined(CONFIG_USB_PXA27X) || \ ++ defined(CONFIG_USB_PXA27X_MODULE) + extern void __init palm27x_udc_init(int vbus, int pullup, + int vbus_inverted); + #else +--- a/arch/arm/mach-pxa/palm27x.c ++++ b/arch/arm/mach-pxa/palm27x.c +@@ -164,8 +164,8 @@ void __init palm27x_lcd_init(int power, + /****************************************************************************** + * USB Gadget + ******************************************************************************/ +-#if defined(CONFIG_USB_GADGET_PXA27X) || \ +- defined(CONFIG_USB_GADGET_PXA27X_MODULE) ++#if defined(CONFIG_USB_PXA27X) || \ ++ defined(CONFIG_USB_PXA27X_MODULE) + static struct gpio_vbus_mach_info palm27x_udc_info = { + .gpio_vbus_inverted = 1, + }; +--- a/arch/arm/mach-pxa/palmtc.c ++++ b/arch/arm/mach-pxa/palmtc.c +@@ -339,7 +339,7 @@ static inline void palmtc_mkp_init(void) + /****************************************************************************** + * UDC + ******************************************************************************/ +-#if defined(CONFIG_USB_GADGET_PXA25X)||defined(CONFIG_USB_GADGET_PXA25X_MODULE) ++#if defined(CONFIG_USB_PXA25X)||defined(CONFIG_USB_PXA25X_MODULE) + static struct gpio_vbus_mach_info palmtc_udc_info = { + .gpio_vbus = GPIO_NR_PALMTC_USB_DETECT_N, + .gpio_vbus_inverted = 1, +--- a/arch/arm/mach-pxa/vpac270.c ++++ b/arch/arm/mach-pxa/vpac270.c +@@ -343,7 +343,7 @@ static inline void vpac270_uhc_init(void + /****************************************************************************** + * USB Gadget + ******************************************************************************/ +-#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE) ++#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE) + static struct gpio_vbus_mach_info vpac270_gpio_vbus_info = { + .gpio_vbus = GPIO41_VPAC270_UDC_DETECT, + .gpio_pullup = -1, diff --git a/queue-3.0/asoc-ensure-wm8731-register-cache-is-synced-when-resuming-from-disabled.patch b/queue-3.0/asoc-ensure-wm8731-register-cache-is-synced-when-resuming-from-disabled.patch new file mode 100644 index 00000000000..7486fb07333 --- /dev/null +++ b/queue-3.0/asoc-ensure-wm8731-register-cache-is-synced-when-resuming-from-disabled.patch @@ -0,0 +1,26 @@ +From ed3e80c4c991a52f9fce3421536a78e331ae0949 Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Mon, 21 Nov 2011 11:55:41 +0000 +Subject: ASoC: Ensure WM8731 register cache is synced when resuming from disabled + +From: Mark Brown + +commit ed3e80c4c991a52f9fce3421536a78e331ae0949 upstream. + +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8731.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/soc/codecs/wm8731.c ++++ b/sound/soc/codecs/wm8731.c +@@ -463,6 +463,7 @@ static int wm8731_set_bias_level(struct + snd_soc_write(codec, WM8731_PWR, 0xffff); + regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies), + wm8731->supplies); ++ codec->cache_sync = 1; + break; + } + codec->dapm.bias_level = level; diff --git a/queue-3.0/asoc-fsl_ssi-properly-initialize-the-sysfs-attribute-object.patch b/queue-3.0/asoc-fsl_ssi-properly-initialize-the-sysfs-attribute-object.patch new file mode 100644 index 00000000000..255004e02e6 --- /dev/null +++ b/queue-3.0/asoc-fsl_ssi-properly-initialize-the-sysfs-attribute-object.patch @@ -0,0 +1,30 @@ +From 0f768a7235d3dfb6f4833030a95a06419df089cb Mon Sep 17 00:00:00 2001 +From: Timur Tabi +Date: Mon, 14 Nov 2011 16:35:26 -0600 +Subject: ASoC: fsl_ssi: properly initialize the sysfs attribute object + +From: Timur Tabi + +commit 0f768a7235d3dfb6f4833030a95a06419df089cb upstream. + +Commit 6992f533 ("sysfs: Use one lockdep class per sysfs attribute") +requires 'struct attribute' objects to be initialized with sysfs_attr_init(). + +Signed-off-by: Timur Tabi +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/fsl/fsl_ssi.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/soc/fsl/fsl_ssi.c ++++ b/sound/soc/fsl/fsl_ssi.c +@@ -698,6 +698,7 @@ static int __devinit fsl_ssi_probe(struc + + /* Initialize the the device_attribute structure */ + dev_attr = &ssi_private->dev_attr; ++ sysfs_attr_init(&dev_attr->attr); + dev_attr->attr.name = "statistics"; + dev_attr->attr.mode = S_IRUGO; + dev_attr->show = fsl_sysfs_ssi_show; diff --git a/queue-3.0/asoc-wm8753-skip-noop-reconfiguration-of-dai-mode.patch b/queue-3.0/asoc-wm8753-skip-noop-reconfiguration-of-dai-mode.patch new file mode 100644 index 00000000000..5a098883b52 --- /dev/null +++ b/queue-3.0/asoc-wm8753-skip-noop-reconfiguration-of-dai-mode.patch @@ -0,0 +1,39 @@ +From 2391a0e06789a3f1718dee30b282562f7ed28c87 Mon Sep 17 00:00:00 2001 +From: Timo Juhani Lindfors +Date: Thu, 17 Nov 2011 02:52:50 +0200 +Subject: ASoC: wm8753: Skip noop reconfiguration of DAI mode + +From: Timo Juhani Lindfors + +commit 2391a0e06789a3f1718dee30b282562f7ed28c87 upstream. + +This patch makes it possible to set DAI mode to its currently applied +value even if codec is active. This is necessary to allow + +aplay -t raw -r 44100 -f S16_LE -c 2 < /dev/urandom & +alsactl store -f backup.state +alsactl restore -f backup.state + +to work without returning errors. This patch is based on a patch sent +by Klaus Kurzmann . + +Signed-off-by: Timo Juhani Lindfors +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8753.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/sound/soc/codecs/wm8753.c ++++ b/sound/soc/codecs/wm8753.c +@@ -189,6 +189,9 @@ static int wm8753_set_dai(struct snd_kco + struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); + u16 ioctl; + ++ if (wm8753->dai_func == ucontrol->value.integer.value[0]) ++ return 0; ++ + if (codec->active) + return -EBUSY; + diff --git a/queue-3.0/series b/queue-3.0/series index cd9de27d0f7..6cd6b1a81d8 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -12,3 +12,12 @@ drm-i915-fix-cb-tuning-check-for-ilk.patch pci-hotplug-shpchp-don-t-blindly-claim-non-amd-0x7450-device-ids.patch drm-radeon-kms-fix-up-gpio-i2c-mask-bits-for-r4xx.patch viafb-correct-sync-polarity-for-olpc-dcon.patch +arm-pxa-fix-inconsistent-config_usb_pxa27x.patch +arm-mx28-fix-bit-operation-in-clock-setting.patch +arm-omap-smartreflex-fix-irq-handling-bug.patch +arm-omap2-select-arm_amba-if-omap3_emu-is-defined.patch +arm-7161-1-errata-no-automatic-store-buffer-drain.patch +alsa-lx6464es-fix-device-communication-via-command-bus.patch +asoc-fsl_ssi-properly-initialize-the-sysfs-attribute-object.patch +asoc-wm8753-skip-noop-reconfiguration-of-dai-mode.patch +asoc-ensure-wm8731-register-cache-is-synced-when-resuming-from-disabled.patch