--- /dev/null
+From 56385a12d9bb9e173751f74b6c430742018cafc0 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 18 Aug 2010 14:08:17 +0200
+Subject: ALSA: emu10k1 - delay the PCM interrupts (add pcm_irq_delay parameter)
+
+From: Jaroslav Kysela <perex@perex.cz>
+
+commit 56385a12d9bb9e173751f74b6c430742018cafc0 upstream.
+
+With some hardware combinations, the PCM interrupts are acknowledged
+before the period boundary from the emu10k1 chip. The midlevel PCM code
+gets confused and the playback stream is interrupted.
+
+It seems that the interrupt processing shift by 2 samples is enough
+to fix this issue. This default value does not harm other,
+non-affected hardware.
+
+More information: Kernel bugzilla bug#16300
+
+[A copmile warning fixed by tiwai]
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/sound/emu10k1.h | 1 +
+ sound/core/pcm_native.c | 4 ++++
+ sound/pci/emu10k1/emu10k1.c | 4 ++++
+ sound/pci/emu10k1/emupcm.c | 30 ++++++++++++++++++++++++++----
+ sound/pci/emu10k1/memory.c | 4 +++-
+ 5 files changed, 38 insertions(+), 5 deletions(-)
+
+--- a/include/sound/emu10k1.h
++++ b/include/sound/emu10k1.h
+@@ -1707,6 +1707,7 @@ struct snd_emu10k1 {
+ unsigned int card_type; /* EMU10K1_CARD_* */
+ unsigned int ecard_ctrl; /* ecard control bits */
+ unsigned long dma_mask; /* PCI DMA mask */
++ unsigned int delay_pcm_irq; /* in samples */
+ int max_cache_pages; /* max memory size / PAGE_SIZE */
+ struct snd_dma_buffer silent_page; /* silent page */
+ struct snd_dma_buffer ptb_pages; /* page table pages */
+--- a/sound/core/pcm_native.c
++++ b/sound/core/pcm_native.c
+@@ -979,6 +979,10 @@ static int snd_pcm_do_pause(struct snd_p
+ {
+ if (substream->runtime->trigger_master != substream)
+ return 0;
++ /* some drivers might use hw_ptr to recover from the pause -
++ update the hw_ptr now */
++ if (push)
++ snd_pcm_update_hw_ptr(substream);
+ /* The jiffies check in snd_pcm_update_hw_ptr*() is done by
+ * a delta betwen the current jiffies, this gives a large enough
+ * delta, effectively to skip the check once.
+--- a/sound/pci/emu10k1/emu10k1.c
++++ b/sound/pci/emu10k1/emu10k1.c
+@@ -52,6 +52,7 @@ static int max_synth_voices[SNDRV_CARDS]
+ static int max_buffer_size[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 128};
+ static int enable_ir[SNDRV_CARDS];
+ static uint subsystem[SNDRV_CARDS]; /* Force card subsystem model */
++static uint delay_pcm_irq[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 2};
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for the EMU10K1 soundcard.");
+@@ -73,6 +74,8 @@ module_param_array(enable_ir, bool, NULL
+ MODULE_PARM_DESC(enable_ir, "Enable IR.");
+ module_param_array(subsystem, uint, NULL, 0444);
+ MODULE_PARM_DESC(subsystem, "Force card subsystem model.");
++module_param_array(delay_pcm_irq, uint, NULL, 0444);
++MODULE_PARM_DESC(delay_pcm_irq, "Delay PCM interrupt by specified number of samples (default 0).");
+ /*
+ * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400
+ */
+@@ -127,6 +130,7 @@ static int __devinit snd_card_emu10k1_pr
+ &emu)) < 0)
+ goto error;
+ card->private_data = emu;
++ emu->delay_pcm_irq = delay_pcm_irq[dev] & 0x1f;
+ if ((err = snd_emu10k1_pcm(emu, 0, NULL)) < 0)
+ goto error;
+ if ((err = snd_emu10k1_pcm_mic(emu, 1, NULL)) < 0)
+--- a/sound/pci/emu10k1/emupcm.c
++++ b/sound/pci/emu10k1/emupcm.c
+@@ -332,7 +332,7 @@ static void snd_emu10k1_pcm_init_voice(s
+ evoice->epcm->ccca_start_addr = start_addr + ccis;
+ if (extra) {
+ start_addr += ccis;
+- end_addr += ccis;
++ end_addr += ccis + emu->delay_pcm_irq;
+ }
+ if (stereo && !extra) {
+ snd_emu10k1_ptr_write(emu, CPF, voice, CPF_STEREO_MASK);
+@@ -360,7 +360,9 @@ static void snd_emu10k1_pcm_init_voice(s
+ /* Assumption that PT is already 0 so no harm overwriting */
+ snd_emu10k1_ptr_write(emu, PTRX, voice, (send_amount[0] << 8) | send_amount[1]);
+ snd_emu10k1_ptr_write(emu, DSL, voice, end_addr | (send_amount[3] << 24));
+- snd_emu10k1_ptr_write(emu, PSST, voice, start_addr | (send_amount[2] << 24));
++ snd_emu10k1_ptr_write(emu, PSST, voice,
++ (start_addr + (extra ? emu->delay_pcm_irq : 0)) |
++ (send_amount[2] << 24));
+ if (emu->card_capabilities->emu_model)
+ pitch_target = PITCH_48000; /* Disable interpolators on emu1010 card */
+ else
+@@ -732,6 +734,23 @@ static void snd_emu10k1_playback_stop_vo
+ snd_emu10k1_ptr_write(emu, IP, voice, 0);
+ }
+
++static inline void snd_emu10k1_playback_mangle_extra(struct snd_emu10k1 *emu,
++ struct snd_emu10k1_pcm *epcm,
++ struct snd_pcm_substream *substream,
++ struct snd_pcm_runtime *runtime)
++{
++ unsigned int ptr, period_pos;
++
++ /* try to sychronize the current position for the interrupt
++ source voice */
++ period_pos = runtime->status->hw_ptr - runtime->hw_ptr_interrupt;
++ period_pos %= runtime->period_size;
++ ptr = snd_emu10k1_ptr_read(emu, CCCA, epcm->extra->number);
++ ptr &= ~0x00ffffff;
++ ptr |= epcm->ccca_start_addr + period_pos;
++ snd_emu10k1_ptr_write(emu, CCCA, epcm->extra->number, ptr);
++}
++
+ static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream,
+ int cmd)
+ {
+@@ -753,6 +772,8 @@ static int snd_emu10k1_playback_trigger(
+ /* follow thru */
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ case SNDRV_PCM_TRIGGER_RESUME:
++ if (cmd == SNDRV_PCM_TRIGGER_PAUSE_RELEASE)
++ snd_emu10k1_playback_mangle_extra(emu, epcm, substream, runtime);
+ mix = &emu->pcm_mixer[substream->number];
+ snd_emu10k1_playback_prepare_voice(emu, epcm->voices[0], 1, 0, mix);
+ snd_emu10k1_playback_prepare_voice(emu, epcm->voices[1], 0, 0, mix);
+@@ -869,8 +890,9 @@ static snd_pcm_uframes_t snd_emu10k1_pla
+ #endif
+ /*
+ printk(KERN_DEBUG
+- "ptr = 0x%x, buffer_size = 0x%x, period_size = 0x%x\n",
+- ptr, runtime->buffer_size, runtime->period_size);
++ "ptr = 0x%lx, buffer_size = 0x%lx, period_size = 0x%lx\n",
++ (long)ptr, (long)runtime->buffer_size,
++ (long)runtime->period_size);
+ */
+ return ptr;
+ }
+--- a/sound/pci/emu10k1/memory.c
++++ b/sound/pci/emu10k1/memory.c
+@@ -310,8 +310,10 @@ snd_emu10k1_alloc_pages(struct snd_emu10
+ if (snd_BUG_ON(!hdr))
+ return NULL;
+
++ idx = runtime->period_size >= runtime->buffer_size ?
++ (emu->delay_pcm_irq * 2) : 0;
+ mutex_lock(&hdr->block_mutex);
+- blk = search_empty(emu, runtime->dma_bytes);
++ blk = search_empty(emu, runtime->dma_bytes + idx);
+ if (blk == NULL) {
+ mutex_unlock(&hdr->block_mutex);
+ return NULL;
--- /dev/null
+From c3e68fad88143fd1fe8fe640207fb19c0f087dbc Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 16 Aug 2010 10:15:57 +0200
+Subject: ALSA: hda - Add quirk for Dell Vostro 1220
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit c3e68fad88143fd1fe8fe640207fb19c0f087dbc upstream.
+
+model=dell-vostro is needed for Dell Vostro 1220 with Coexnat 5067.
+
+Reference: Novell bnc#631066
+ https://bugzilla.novell.com/show_bug.cgi?id=631066
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_conexant.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -2843,6 +2843,7 @@ static struct snd_pci_quirk cxt5066_cfg_
+ SND_PCI_QUIRK(0x1028, 0x02f5, "Dell",
+ CXT5066_DELL_LAPTOP),
+ SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT5066_OLPC_XO_1_5),
++ SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTO),
+ SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTO),
+ SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD),
+ SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5),
--- /dev/null
+From 53bacfbbb2ddd981287b58a511c8b8f5df179886 Mon Sep 17 00:00:00 2001
+From: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
+Date: Sun, 8 Aug 2010 00:17:05 +0930
+Subject: ALSA: hda - Fix missing stream for second ADC on Realtek ALC260 HDA codec
+
+From: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
+
+commit 53bacfbbb2ddd981287b58a511c8b8f5df179886 upstream.
+
+I discovered tonight that ALSA no longer sets up a stream for the second ADC
+provided by the Realtek ALC260 HDA codec. At some point alc_build_pcms()
+started using stream_analog_alt_capture when constructing the second ADC
+stream, but patch_alc260() was never updated accordingly. I have no idea
+when this regression occurred. The trivial patch to patch_alc260() given
+below fixes the problem as far as I can tell. The patch is against 2.6.35.
+
+Signed-off-by: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6757,6 +6757,7 @@ static int patch_alc260(struct hda_codec
+
+ spec->stream_analog_playback = &alc260_pcm_analog_playback;
+ spec->stream_analog_capture = &alc260_pcm_analog_capture;
++ spec->stream_analog_alt_capture = &alc260_pcm_analog_capture;
+
+ spec->stream_digital_playback = &alc260_pcm_digital_playback;
+ spec->stream_digital_capture = &alc260_pcm_digital_capture;
--- /dev/null
+From a5ba6beb839cfa288960c92cd2668a2601c24dda Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 16 Aug 2010 08:08:48 +0200
+Subject: ALSA: riptide - Fix detection / load of firmware files
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit a5ba6beb839cfa288960c92cd2668a2601c24dda upstream.
+
+The detection and loading of firmeware on riptide driver has been broken
+due to rewrite of some codes, checking the presense wrongly.
+This patch fixes the logic again.
+
+Reference: kernel bug 16596
+ https://bugzilla.kernel.org/show_bug.cgi?id=16596
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/riptide/riptide.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+--- a/sound/pci/riptide/riptide.c
++++ b/sound/pci/riptide/riptide.c
+@@ -1224,15 +1224,14 @@ static int try_to_load_firmware(struct c
+ firmware.firmware.ASIC, firmware.firmware.CODEC,
+ firmware.firmware.AUXDSP, firmware.firmware.PROG);
+
++ if (!chip)
++ return 1;
++
+ for (i = 0; i < FIRMWARE_VERSIONS; i++) {
+ if (!memcmp(&firmware_versions[i], &firmware, sizeof(firmware)))
+- break;
+- }
+- if (i >= FIRMWARE_VERSIONS)
+- return 0; /* no match */
++ return 1; /* OK */
+
+- if (!chip)
+- return 1; /* OK */
++ }
+
+ snd_printdd("Writing Firmware\n");
+ if (!chip->fw_entry) {
--- /dev/null
+From 4f0ed9a51bc8ef16c2589112fdb110479e4b0df1 Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Fri, 6 Aug 2010 17:57:12 +0100
+Subject: ASoC: Fix inverted mute controls for WM8580
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 4f0ed9a51bc8ef16c2589112fdb110479e4b0df1 upstream.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/codecs/wm8580.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/codecs/wm8580.c
++++ b/sound/soc/codecs/wm8580.c
+@@ -269,9 +269,9 @@ SOC_DOUBLE("DAC2 Invert Switch", WM8580_
+ SOC_DOUBLE("DAC3 Invert Switch", WM8580_DAC_CONTROL4, 4, 5, 1, 0),
+
+ SOC_SINGLE("DAC ZC Switch", WM8580_DAC_CONTROL5, 5, 1, 0),
+-SOC_SINGLE("DAC1 Switch", WM8580_DAC_CONTROL5, 0, 1, 0),
+-SOC_SINGLE("DAC2 Switch", WM8580_DAC_CONTROL5, 1, 1, 0),
+-SOC_SINGLE("DAC3 Switch", WM8580_DAC_CONTROL5, 2, 1, 0),
++SOC_SINGLE("DAC1 Switch", WM8580_DAC_CONTROL5, 0, 1, 1),
++SOC_SINGLE("DAC2 Switch", WM8580_DAC_CONTROL5, 1, 1, 1),
++SOC_SINGLE("DAC3 Switch", WM8580_DAC_CONTROL5, 2, 1, 1),
+
+ SOC_DOUBLE("ADC Mute Switch", WM8580_ADC_CONTROL1, 0, 1, 1, 0),
+ SOC_SINGLE("ADC High-Pass Filter Switch", WM8580_ADC_CONTROL1, 4, 1, 0),
--- /dev/null
+From ac770267a7cd85a747b6111db46f66d1515e7cd7 Mon Sep 17 00:00:00 2001
+From: Cliff Cai <cliff.cai@analog.com>
+Date: Sat, 7 Aug 2010 11:16:27 -0400
+Subject: ASoC: register cache should be 1 byte aligned for 1 byte long register
+
+From: Cliff Cai <cliff.cai@analog.com>
+
+commit ac770267a7cd85a747b6111db46f66d1515e7cd7 upstream.
+
+Signed-off-by: Cliff Cai <cliff.cai@analog.com>
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/soc-cache.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/soc-cache.c
++++ b/sound/soc/soc-cache.c
+@@ -296,7 +296,7 @@ static unsigned int snd_soc_16_8_read_i2
+ static unsigned int snd_soc_16_8_read(struct snd_soc_codec *codec,
+ unsigned int reg)
+ {
+- u16 *cache = codec->reg_cache;
++ u8 *cache = codec->reg_cache;
+
+ reg &= 0xff;
+ if (reg >= codec->reg_cache_size)
+@@ -307,7 +307,7 @@ static unsigned int snd_soc_16_8_read(st
+ static int snd_soc_16_8_write(struct snd_soc_codec *codec, unsigned int reg,
+ unsigned int value)
+ {
+- u16 *cache = codec->reg_cache;
++ u8 *cache = codec->reg_cache;
+ u8 data[3];
+ int ret;
+
--- /dev/null
+From b2c1e07b81a126e5846dfc3d36f559d861df59f4 Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Mon, 16 Aug 2010 11:46:57 +0100
+Subject: ASoC: Remove DSP mode support for WM8776
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit b2c1e07b81a126e5846dfc3d36f559d861df59f4 upstream.
+
+This is not supported by current hardware revisions.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/codecs/wm8776.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+--- a/sound/soc/codecs/wm8776.c
++++ b/sound/soc/codecs/wm8776.c
+@@ -178,13 +178,6 @@ static int wm8776_set_fmt(struct snd_soc
+ case SND_SOC_DAIFMT_LEFT_J:
+ iface |= 0x0001;
+ break;
+- /* FIXME: CHECK A/B */
+- case SND_SOC_DAIFMT_DSP_A:
+- iface |= 0x0003;
+- break;
+- case SND_SOC_DAIFMT_DSP_B:
+- iface |= 0x0007;
+- break;
+ default:
+ return -EINVAL;
+ }
--- /dev/null
+From d862b13bc8cbab9692fbe0ef44c40d0488b81af1 Mon Sep 17 00:00:00 2001
+From: Maxim Levitsky <maximlevitsky@gmail.com>
+Date: Wed, 11 Aug 2010 14:17:52 -0700
+Subject: memstick: fix hangs on unexpected device removal in mspro_blk
+
+From: Maxim Levitsky <maximlevitsky@gmail.com>
+
+commit d862b13bc8cbab9692fbe0ef44c40d0488b81af1 upstream.
+
+mspro_block_remove() is called from detect thread that first calls the
+mspro_block_stop(), which stops the request queue. If we call
+del_gendisk() with the queue stopped we get a deadlock.
+
+Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
+Cc: Alex Dubov <oakad@yahoo.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/memstick/core/mspro_block.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/memstick/core/mspro_block.c
++++ b/drivers/memstick/core/mspro_block.c
+@@ -1331,13 +1331,14 @@ static void mspro_block_remove(struct me
+ struct mspro_block_data *msb = memstick_get_drvdata(card);
+ unsigned long flags;
+
+- del_gendisk(msb->disk);
+- dev_dbg(&card->dev, "mspro block remove\n");
+ spin_lock_irqsave(&msb->q_lock, flags);
+ msb->eject = 1;
+ blk_start_queue(msb->queue);
+ spin_unlock_irqrestore(&msb->q_lock, flags);
+
++ del_gendisk(msb->disk);
++ dev_dbg(&card->dev, "mspro block remove\n");
++
+ blk_cleanup_queue(msb->queue);
+ msb->queue = NULL;
+
--- /dev/null
+From 21fd0495ea61d53e0ebe575330e343ce4e6d2a61 Mon Sep 17 00:00:00 2001
+From: Maxim Levitsky <maximlevitsky@gmail.com>
+Date: Wed, 11 Aug 2010 14:17:52 -0700
+Subject: memstick: init sysfs attributes
+
+From: Maxim Levitsky <maximlevitsky@gmail.com>
+
+commit 21fd0495ea61d53e0ebe575330e343ce4e6d2a61 upstream.
+
+Otherwise lockdep complains.
+
+Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
+Cc: Alex Dubov <oakad@yahoo.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/memstick/core/mspro_block.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/memstick/core/mspro_block.c
++++ b/drivers/memstick/core/mspro_block.c
+@@ -1040,6 +1040,7 @@ static int mspro_block_read_attributes(s
+ snprintf(s_attr->name, sizeof(s_attr->name),
+ "attr_x%02x", attr->entries[cnt].id);
+
++ sysfs_attr_init(&s_attr->dev_attr.attr);
+ s_attr->dev_attr.attr.name = s_attr->name;
+ s_attr->dev_attr.attr.mode = S_IRUGO;
+ s_attr->dev_attr.show = mspro_block_attr_show(s_attr->id);
--- /dev/null
+From c4604e49c1a5832a58789a22eba7ca982933e1be Mon Sep 17 00:00:00 2001
+From: Joonyoung Shim <jy0922.shim@samsung.com>
+Date: Fri, 6 Aug 2010 15:48:24 +0100
+Subject: regulator: Default GPIO controlled WM8994 regulators to disabled
+
+From: Joonyoung Shim <jy0922.shim@samsung.com>
+
+commit c4604e49c1a5832a58789a22eba7ca982933e1be upstream.
+
+This ensures that if the GPIO was not enabled prior to the driver
+starting the regulator API will insert the required powerup ramp
+delay when it enables the regulator. The gpiolib API does not
+provide this information.
+
+[Rewrote changelog to describe the actual change -- broonie.]
+
+Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/regulator/wm8994-regulator.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/drivers/regulator/wm8994-regulator.c
++++ b/drivers/regulator/wm8994-regulator.c
+@@ -219,8 +219,6 @@ static __devinit int wm8994_ldo_probe(st
+
+ ldo->wm8994 = wm8994;
+
+- ldo->is_enabled = true;
+-
+ if (pdata->ldo[id].enable && gpio_is_valid(pdata->ldo[id].enable)) {
+ ldo->enable = pdata->ldo[id].enable;
+
+@@ -237,7 +235,8 @@ static __devinit int wm8994_ldo_probe(st
+ ret);
+ goto err_gpio;
+ }
+- }
++ } else
++ ldo->is_enabled = true;
+
+ ldo->regulator = regulator_register(&wm8994_ldo_desc[id], &pdev->dev,
+ pdata->ldo[id].init_data, ldo);