summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorTobias Powalowski <tobias@T-POWA-LX.(none)>2009-06-13 10:34:59 +0200
committerTobias Powalowski <tobias@T-POWA-LX.(none)>2009-06-13 10:34:59 +0200
commit99578463d88de930611e6e1714ec748d8b2b3ef6 (patch)
treeef0daac94cfa703b9fdd246adfe06e5073e18f2a /patches
parente7e681be6053647091c673bf589998acb40731a5 (diff)
'more patches added'
Diffstat (limited to 'patches')
-rw-r--r--patches/kms-2.6.30-2.patch54
-rw-r--r--patches/kms-2.6.30.patch35
-rw-r--r--patches/wmi.patch33
3 files changed, 122 insertions, 0 deletions
diff --git a/patches/kms-2.6.30-2.patch b/patches/kms-2.6.30-2.patch
new file mode 100644
index 0000000..2866c4e
--- /dev/null
+++ b/patches/kms-2.6.30-2.patch
@@ -0,0 +1,54 @@
+From: Ma Ling <ling.ma@intel.com>
+Date: Sun, 31 May 2009 08:58:32 +0000 (+0800)
+Subject: drm/i915: Set correct TV detection voltage level override values
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fanholt%2Fdrm-intel.git;a=commitdiff_plain;h=cb66c692d1ae257f32dc7f6085cf9cb9f2f6bab8
+
+drm/i915: Set correct TV detection voltage level override values
+
+We detect TV connect status by setting DAC voltage level override
+values as 0.7 voltage for DAC_A/B/C. The corresponding 2-bits shold be 0x2,
+In order correctly to set last bit as 0, at first we must clean it.
+
+It fixed freedesktop.org bug #21204
+
+Signed-off-by: Ma Ling <ling.ma@intel.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+
+diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
+index 99681cf..79df9e9 100644
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -958,15 +958,15 @@
+ # define DAC_A_1_3_V (0 << 4)
+ # define DAC_A_1_1_V (1 << 4)
+ # define DAC_A_0_7_V (2 << 4)
+-# define DAC_A_OFF (3 << 4)
++# define DAC_A_MASK (3 << 4)
+ # define DAC_B_1_3_V (0 << 2)
+ # define DAC_B_1_1_V (1 << 2)
+ # define DAC_B_0_7_V (2 << 2)
+-# define DAC_B_OFF (3 << 2)
++# define DAC_B_MASK (3 << 2)
+ # define DAC_C_1_3_V (0 << 0)
+ # define DAC_C_1_1_V (1 << 0)
+ # define DAC_C_0_7_V (2 << 0)
+-# define DAC_C_OFF (3 << 0)
++# define DAC_C_MASK (3 << 0)
+
+ /**
+ * CSC coefficients are stored in a floating point format with 9 bits of
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
+index d2c3298..c7d9ef0 100644
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1392,6 +1392,9 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_output *intel_output)
+ tv_ctl &= ~TV_TEST_MODE_MASK;
+ tv_ctl |= TV_TEST_MODE_MONITOR_DETECT;
+ tv_dac &= ~TVDAC_SENSE_MASK;
++ tv_dac &= ~DAC_A_MASK;
++ tv_dac &= ~DAC_B_MASK;
++ tv_dac &= ~DAC_C_MASK;
+ tv_dac |= (TVDAC_STATE_CHG_EN |
+ TVDAC_A_SENSE_CTL |
+ TVDAC_B_SENSE_CTL |
diff --git a/patches/kms-2.6.30.patch b/patches/kms-2.6.30.patch
new file mode 100644
index 0000000..168a78c
--- /dev/null
+++ b/patches/kms-2.6.30.patch
@@ -0,0 +1,35 @@
+From: Keith Packard <keithp@keithp.com>
+Date: Sat, 6 Jun 2009 01:19:56 +0000 (-0700)
+Subject: drm/i915: Hook connector to encoder during load detection (fixes tv/vga detect)
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fanholt%2Fdrm-intel.git;a=commitdiff_plain;h=03d6069912babc07a3da20e715dd6a5dc8f0f867
+
+drm/i915: Hook connector to encoder during load detection (fixes tv/vga detect)
+
+With the DRM-driven DPMS code, encoders are considered idle unless a
+connector is hooked to them, so mode setting is skipped. This makes load
+detection fail as none of the hardware is enabled.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+
+diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
+index a87eeff..b32a51f 100644
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -2136,6 +2136,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output,
+ }
+
+ encoder->crtc = crtc;
++ intel_output->base.encoder = encoder;
+ intel_output->load_detect_temp = true;
+
+ intel_crtc = to_intel_crtc(crtc);
+@@ -2171,6 +2172,7 @@ void intel_release_load_detect_pipe(struct intel_output *intel_output, int dpms_
+
+ if (intel_output->load_detect_temp) {
+ encoder->crtc = NULL;
++ intel_output->base.encoder = NULL;
+ intel_output->load_detect_temp = false;
+ crtc->enabled = drm_helper_crtc_in_use(crtc);
+ drm_helper_disable_unused_functions(dev);
diff --git a/patches/wmi.patch b/patches/wmi.patch
new file mode 100644
index 0000000..a8b98da
--- /dev/null
+++ b/patches/wmi.patch
@@ -0,0 +1,33 @@
+diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
+index 043b208..f215a59 100644
+--- a/drivers/platform/x86/wmi.c
++++ b/drivers/platform/x86/wmi.c
+@@ -270,7 +270,7 @@ u32 method_id, const struct acpi_buffer *in, struct acpi_buffer *out)
+ acpi_status status;
+ struct acpi_object_list input;
+ union acpi_object params[3];
+- char method[4] = "WM";
++ char method[5] = "WM";
+
+ if (!find_guid(guid_string, &wblock))
+ return AE_ERROR;
+@@ -328,8 +328,8 @@ struct acpi_buffer *out)
+ acpi_status status, wc_status = AE_ERROR;
+ struct acpi_object_list input, wc_input;
+ union acpi_object wc_params[1], wq_params[1];
+- char method[4];
+- char wc_method[4] = "WC";
++ char method[5];
++ char wc_method[5] = "WC";
+
+ if (!guid_string || !out)
+ return AE_BAD_PARAMETER;
+@@ -410,7 +410,7 @@ const struct acpi_buffer *in)
+ acpi_handle handle;
+ struct acpi_object_list input;
+ union acpi_object params[2];
+- char method[4] = "WS";
++ char method[5] = "WS";
+
+ if (!guid_string || !in)
+ return AE_BAD_DATA;