From 84cae24ee7fd7795d20ce712336728d0431bc0c8 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 17 Mar 2010 07:23:27 -0700 Subject: [PATCH] start .32 queue --- ...detection-logic-for-bios-without-vbt.patch | 60 +++++++++++++++++++ queue-2.6.32/series | 1 + 2 files changed, 61 insertions(+) create mode 100644 queue-2.6.32/drm-i915-fix-gpio-register-detection-logic-for-bios-without-vbt.patch create mode 100644 queue-2.6.32/series diff --git a/queue-2.6.32/drm-i915-fix-gpio-register-detection-logic-for-bios-without-vbt.patch b/queue-2.6.32/drm-i915-fix-gpio-register-detection-logic-for-bios-without-vbt.patch new file mode 100644 index 00000000000..fdbb0315290 --- /dev/null +++ b/queue-2.6.32/drm-i915-fix-gpio-register-detection-logic-for-bios-without-vbt.patch @@ -0,0 +1,60 @@ +From 29874f44fbcbc24b231b42c9956f8f9de9407231 Mon Sep 17 00:00:00 2001 +From: Shaohua Li +Date: Wed, 18 Nov 2009 15:15:02 +0800 +Subject: drm/i915: fix gpio register detection logic for BIOS without VBT + +From: Shaohua Li + +commit 29874f44fbcbc24b231b42c9956f8f9de9407231 upstream. + +if no VBT is present, crt_ddc_bus will be left at 0, and cause us +to use that for the GPIO register offset. That's never a valid register +offset, so let the "undefined" value be 0 instead of -1. + +Signed-off-by: Shaohua Li +Signed-off-by: Zhao Yakui +Signed-off-by: Eric Anholt +[anholt: clarified the commit message a bit] +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_drv.h | 2 +- + drivers/gpu/drm/i915/intel_bios.c | 4 ---- + drivers/gpu/drm/i915/intel_crt.c | 2 +- + 3 files changed, 2 insertions(+), 6 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_drv.h ++++ b/drivers/gpu/drm/i915/i915_drv.h +@@ -258,7 +258,7 @@ typedef struct drm_i915_private { + + struct notifier_block lid_notifier; + +- int crt_ddc_bus; /* -1 = unknown, else GPIO to use for CRT DDC */ ++ int crt_ddc_bus; /* 0 = unknown, else GPIO to use for CRT DDC */ + struct drm_i915_fence_reg fence_regs[16]; /* assume 965 */ + int fence_reg_start; /* 4 if userland hasn't ioctl'd us yet */ + int num_fence_regs; /* 8 on pre-965, 16 otherwise */ +--- a/drivers/gpu/drm/i915/intel_bios.c ++++ b/drivers/gpu/drm/i915/intel_bios.c +@@ -241,10 +241,6 @@ parse_general_definitions(struct drm_i91 + GPIOF, + }; + +- /* Set sensible defaults in case we can't find the general block +- or it is the wrong chipset */ +- dev_priv->crt_ddc_bus = -1; +- + general = find_section(bdb, BDB_GENERAL_DEFINITIONS); + if (general) { + u16 block_size = get_blocksize(general); +--- a/drivers/gpu/drm/i915/intel_crt.c ++++ b/drivers/gpu/drm/i915/intel_crt.c +@@ -557,7 +557,7 @@ void intel_crt_init(struct drm_device *d + else { + i2c_reg = GPIOA; + /* Use VBT information for CRT DDC if available */ +- if (dev_priv->crt_ddc_bus != -1) ++ if (dev_priv->crt_ddc_bus != 0) + i2c_reg = dev_priv->crt_ddc_bus; + } + intel_output->ddc_bus = intel_i2c_create(dev, i2c_reg, "CRTDDC_A"); diff --git a/queue-2.6.32/series b/queue-2.6.32/series new file mode 100644 index 00000000000..eebe9d0456b --- /dev/null +++ b/queue-2.6.32/series @@ -0,0 +1 @@ +drm-i915-fix-gpio-register-detection-logic-for-bios-without-vbt.patch -- 2.47.3