From: Greg Kroah-Hartman Date: Tue, 7 Feb 2012 01:15:31 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.0.21~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c554a88238deb0c47b67340d6d7c9f5ae4e052e6;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: drm-i915-hdmi-hot-remove-notification-to-audio-driver.patch udf-mark-lvid-buffer-as-uptodate-before-marking-it-dirty.patch --- diff --git a/queue-3.0/drm-i915-hdmi-hot-remove-notification-to-audio-driver.patch b/queue-3.0/drm-i915-hdmi-hot-remove-notification-to-audio-driver.patch new file mode 100644 index 00000000000..e1c635a2a79 --- /dev/null +++ b/queue-3.0/drm-i915-hdmi-hot-remove-notification-to-audio-driver.patch @@ -0,0 +1,51 @@ +From 2deed761188d7480eb5f7efbfe7aa77f09322ed8 Mon Sep 17 00:00:00 2001 +From: Wu Fengguang +Date: Fri, 9 Dec 2011 20:42:20 +0800 +Subject: drm/i915: HDMI hot remove notification to audio driver + +From: Wu Fengguang + +commit 2deed761188d7480eb5f7efbfe7aa77f09322ed8 upstream. + +On HDMI monitor hot remove, clear SDVO_AUDIO_ENABLE accordingly, so that +the audio driver will receive hot plug events and take action to refresh +its device state and ELD contents. + +The cleared SDVO_AUDIO_ENABLE bit needs to be restored to prevent losing +HDMI audio after DPMS on. + +CC: Wang Zhenyu +Signed-off-by: Wu Fengguang +Signed-off-by: Keith Packard +Signed-off-by: Eugeni Dodonov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_hdmi.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_hdmi.c ++++ b/drivers/gpu/drm/i915/intel_hdmi.c +@@ -158,6 +158,10 @@ static void intel_hdmi_dpms(struct drm_e + struct drm_i915_private *dev_priv = dev->dev_private; + struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder); + u32 temp; ++ u32 enable_bits = SDVO_ENABLE; ++ ++ if (intel_hdmi->has_audio) ++ enable_bits |= SDVO_AUDIO_ENABLE; + + temp = I915_READ(intel_hdmi->sdvox_reg); + +@@ -170,9 +174,9 @@ static void intel_hdmi_dpms(struct drm_e + } + + if (mode != DRM_MODE_DPMS_ON) { +- temp &= ~SDVO_ENABLE; ++ temp &= ~enable_bits; + } else { +- temp |= SDVO_ENABLE; ++ temp |= enable_bits; + } + + I915_WRITE(intel_hdmi->sdvox_reg, temp); diff --git a/queue-3.0/series b/queue-3.0/series index 616d4386928..e3c53a43fa6 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -22,3 +22,5 @@ drm-nouveau-gem-fix-fence_sync-race-oops.patch drm-radeon-kms-disable-output-polling-when-suspended.patch sched-rt-fix-task-stack-corruption-under-__arch_want_interrupts_on_ctxsw.patch asoc-ensure-we-generate-a-driver-name.patch +udf-mark-lvid-buffer-as-uptodate-before-marking-it-dirty.patch +drm-i915-hdmi-hot-remove-notification-to-audio-driver.patch diff --git a/queue-3.0/udf-mark-lvid-buffer-as-uptodate-before-marking-it-dirty.patch b/queue-3.0/udf-mark-lvid-buffer-as-uptodate-before-marking-it-dirty.patch new file mode 100644 index 00000000000..23643296441 --- /dev/null +++ b/queue-3.0/udf-mark-lvid-buffer-as-uptodate-before-marking-it-dirty.patch @@ -0,0 +1,37 @@ +From 853a0c25baf96b028de1654bea1e0c8857eadf3d Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 23 Dec 2011 11:53:07 +0100 +Subject: udf: Mark LVID buffer as uptodate before marking it dirty + +From: Jan Kara + +commit 853a0c25baf96b028de1654bea1e0c8857eadf3d upstream. + +When we hit EIO while writing LVID, the buffer uptodate bit is cleared. +This then results in an anoying warning from mark_buffer_dirty() when we +write the buffer again. So just set uptodate flag unconditionally. + +Reviewed-by: Namjae Jeon +Signed-off-by: Jan Kara +Cc: Dave Jones +Signed-off-by: Greg Kroah-Hartman + +--- + fs/udf/super.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/fs/udf/super.c ++++ b/fs/udf/super.c +@@ -1830,6 +1830,12 @@ static void udf_close_lvid(struct super_ + le16_to_cpu(lvid->descTag.descCRCLength))); + + lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag); ++ /* ++ * We set buffer uptodate unconditionally here to avoid spurious ++ * warnings from mark_buffer_dirty() when previous EIO has marked ++ * the buffer as !uptodate ++ */ ++ set_buffer_uptodate(bh); + mark_buffer_dirty(bh); + sbi->s_lvid_dirty = 0; + mutex_unlock(&sbi->s_alloc_mutex);