Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Dave Airlie
 Also, is it a bug that xrandr does not report eDP and DVI ports? (the first
 one is located on the NTB itself and dock, DVI is located on the dock only.)
 xrandr reports only VGA1 and LVDS1 ports. I have optimus variant but
 I switched to Intel only in BIOS.

Its most likely they aren't wired to the Intel chip at all, just the nvidia.

Dave.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Chris Wilson
On Wed, 3 Aug 2011 00:12:07 +0200, Lukas Hejtmanek xhejt...@ics.muni.cz wrote:
 On Sat, Jul 09, 2011 at 12:59:50PM +0100, Chris Wilson wrote:
  On Sat, 9 Jul 2011 13:19:57 +0200 (CEST), Nicolas Kalkhof 
  nkalk...@web.de wrote:
   Hi Chris,
   
   Applications:
   Oxygen XML Editor 12.2 using latest jdk 1.6.0 (get the trial here: 
   http://www.oxygenxml.com/)
   Squirrel SQL Editor 3.2.1 (get it here: 
   http://squirrel-sql.sourceforge.net/)
   Desktop: XFCE 4.8 or Trinity 3.5.12
   Got a ScreenRegion dumped with xwd, see attachment.
  
  Given that I have to wait for a trial key, you're going to have to
  convince me that it is not simply the application mishandling a NoExpose.
  What are the steps to reproduce within Oxygen XML Editor? Can it be
  reproduced within the help system, which is all I can access at the
  moment? Can it be reproduced in any other application using a different
  toolkit?
 
 Chris, I'm getting similar render issues with XFCE and openbox. I use 2.6.39.3
 kernel + git head driver (--enable-sna).
 
 I got screen corruption accross all the apps (xfce-terminal, im psi, xfce4
 panel, firefox). Not all are text related, e.g., xfce4 panel gets corrupted in
 pager (workspace switcher where no text is).

I know xfce4 has the choice of a compositor, do you have it enabled? Is
it possible to capture the corruption in a screen shot?
 
 My HW is Lenovo T420. 00:02.0 VGA compatible controller: Intel Corporation 2nd
 Generation Core Processor Family Integrated Graphics Controller (rev 09)
 
 I gave a try to 3.0 kernel but problems were even worse. Playing video using
 XV gave me random framents of video accross whole desktop :(

This is to starting to sound quite serious. Is this just an excerbation
of 2.6.39 behaviour or is it an entirely new failure mode?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Jesse Barnes
On Wed, 3 Aug 2011 08:06:05 +0100
Dave Airlie airl...@gmail.com wrote:

  Also, is it a bug that xrandr does not report eDP and DVI ports? (the first
  one is located on the NTB itself and dock, DVI is located on the dock only.)
  xrandr reports only VGA1 and LVDS1 ports. I have optimus variant but
  I switched to Intel only in BIOS.
 
 Its most likely they aren't wired to the Intel chip at all, just the nvidia.

Yeah that's pretty common.  On my Vaio, I can get DDC bits from the
HDMI port with the Intel display controller, but can't actually light
it up.  I guess it's cheaper to do that than to wire up a full MUX for
the port.

-- 
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/4] drm: track CEA version number if present

2011-08-03 Thread Jesse Barnes
Drivers need to know the CEA version number in addition to other display
info (like whether the display is an HDMI sink) before enabling certain
features.  So track the CEA version number in the display info
structure.

Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org
---
 drivers/gpu/drm/drm_edid.c |9 +
 include/drm/drm_crtc.h |2 ++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 0929219..e12f8b0 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1439,6 +1439,8 @@ EXPORT_SYMBOL(drm_detect_monitor_audio);
 static void drm_add_display_info(struct edid *edid,
 struct drm_display_info *info)
 {
+   u8 *edid_ext;
+
info-width_mm = edid-width_cm * 10;
info-height_mm = edid-height_cm * 10;
 
@@ -1483,6 +1485,13 @@ static void drm_add_display_info(struct edid *edid,
info-color_formats = DRM_COLOR_FORMAT_YCRCB444;
if (info-color_formats  DRM_EDID_FEATURE_RGB_YCRCB422)
info-color_formats = DRM_COLOR_FORMAT_YCRCB422;
+
+   /* Get data from CEA blocks if present */
+   edid_ext = drm_find_cea_extension(edid);
+   if (!edid_ext)
+   return;
+
+   info-cea_rev = edid_ext[1];
 }
 
 /**
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 33d12f8..d515bc8 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -205,6 +205,8 @@ struct drm_display_info {
enum subpixel_order subpixel_order;
u32 color_formats;
 
+   u8 cea_rev;
+
char *raw_edid; /* if any */
 };
 
-- 
1.7.4.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 3/4] drm/i915/hdmi: split infoframe setting from infoframe type code

2011-08-03 Thread Jesse Barnes
This makes it easier to add support for other infoframes (e.g. SPD,
vendor specific).

Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org
---
 drivers/gpu/drm/i915/i915_reg.h   |1 +
 drivers/gpu/drm/i915/intel_drv.h  |2 +
 drivers/gpu/drm/i915/intel_hdmi.c |  149 +---
 3 files changed, 106 insertions(+), 46 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index a7f7a34..b630816 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1505,6 +1505,7 @@
 #define   VIDEO_DIP_SELECT_AVI (0  19)
 #define   VIDEO_DIP_SELECT_VENDOR  (1  19)
 #define   VIDEO_DIP_SELECT_SPD (3  19)
+#define   VIDEO_DIP_SELECT_MASK(3  19)
 #define   VIDEO_DIP_FREQ_ONCE  (0  16)
 #define   VIDEO_DIP_FREQ_VSYNC (1  16)
 #define   VIDEO_DIP_FREQ_2VSYNC(2  16)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 9ffa61e..45c403b 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -177,6 +177,8 @@ struct intel_crtc {
 #define to_intel_encoder(x) container_of(x, struct intel_encoder, base)
 #define to_intel_framebuffer(x) container_of(x, struct intel_framebuffer, base)
 
+#define DIP_HEADER_SIZE5
+
 #define DIP_TYPE_AVI0x82
 #define DIP_VERSION_AVI 0x2
 #define DIP_LEN_AVI 13
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index c220255..fe3469b 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -45,6 +45,8 @@ struct intel_hdmi {
bool has_hdmi_sink;
bool has_audio;
int force_audio;
+   void (*write_infoframe)(struct drm_encoder *encoder,
+   struct dip_infoframe *frame);
 };
 
 static struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
@@ -58,37 +60,70 @@ static struct intel_hdmi *intel_attached_hdmi(struct 
drm_connector *connector)
struct intel_hdmi, base);
 }
 
-void intel_dip_infoframe_csum(struct dip_infoframe *avi_if)
+void intel_dip_infoframe_csum(struct dip_infoframe *frame)
 {
-   uint8_t *data = (uint8_t *)avi_if;
+   uint8_t *data = (uint8_t *)frame;
uint8_t sum = 0;
unsigned i;
 
-   avi_if-checksum = 0;
-   avi_if-ecc = 0;
+   frame-checksum = 0;
+   frame-ecc = 0;
 
-   for (i = 0; i  sizeof(*avi_if); i++)
+   /* Header isn't part of the checksum */
+   for (i = 5; i  frame-len; i++)
sum += data[i];
 
-   avi_if-checksum = 0x100 - sum;
+   frame-checksum = 0x100 - sum;
 }
 
-static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder)
+static u32 intel_infoframe_index(struct dip_infoframe *frame)
 {
-   struct dip_infoframe avi_if = {
-   .type = DIP_TYPE_AVI,
-   .ver = DIP_VERSION_AVI,
-   .len = DIP_LEN_AVI,
-   };
-   uint32_t *data = (uint32_t *)avi_if;
+   u32 flags = 0;
+
+   switch (frame-type) {
+   case DIP_TYPE_AVI:
+   flags |= VIDEO_DIP_SELECT_AVI;
+   break;
+   case DIP_TYPE_SPD:
+   flags |= VIDEO_DIP_SELECT_SPD;
+   break;
+   default:
+   DRM_DEBUG_DRIVER(unknown info frame type %d\n, frame-type);
+   break;
+   }
+
+   return flags;
+}
+
+static u32 intel_infoframe_flags(struct dip_infoframe *frame)
+{
+   u32 flags = 0;
+
+   switch (frame-type) {
+   case DIP_TYPE_AVI:
+   flags |= VIDEO_DIP_ENABLE_AVI | VIDEO_DIP_FREQ_VSYNC;
+   break;
+   case DIP_TYPE_SPD:
+   flags |= VIDEO_DIP_ENABLE_SPD | VIDEO_DIP_FREQ_2VSYNC;
+   break;
+   default:
+   DRM_DEBUG_DRIVER(unknown info frame type %d\n, frame-type);
+   break;
+   }
+
+   return flags;
+}
+
+static void i9xx_write_infoframe(struct drm_encoder *encoder,
+struct dip_infoframe *frame)
+{
+   uint32_t *data = (uint32_t *)frame;
struct drm_device *dev = encoder-dev;
struct drm_i915_private *dev_priv = dev-dev_private;
struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
-   u32 port;
-   unsigned i;
+   u32 port, flags, val = I915_READ(VIDEO_DIP_CTL);
+   unsigned i, len = DIP_HEADER_SIZE + frame-len;
 
-   if (!intel_hdmi-has_hdmi_sink)
-   return;
 
/* XXX first guess at handling video port, is this corrent? */
if (intel_hdmi-sdvox_reg == SDVOB)
@@ -98,52 +133,72 @@ static void intel_hdmi_set_avi_infoframe(struct 
drm_encoder *encoder)
else
return;
 
-   I915_WRITE(VIDEO_DIP_CTL, VIDEO_DIP_ENABLE | port |
-  VIDEO_DIP_SELECT_AVI | VIDEO_DIP_FREQ_VSYNC);
+   flags = intel_infoframe_index(frame);
+
+   val = 

[Intel-gfx] [PATCH 4/4] drm/i915/hdmi: HDMI source product description infoframe support

2011-08-03 Thread Jesse Barnes
Set an SPD infoframe if the sink supports it.

Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org
---
 drivers/gpu/drm/i915/intel_drv.h  |   21 +
 drivers/gpu/drm/i915/intel_hdmi.c |   16 
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 45c403b..7da7b6b 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -183,6 +183,22 @@ struct intel_crtc {
 #define DIP_VERSION_AVI 0x2
 #define DIP_LEN_AVI 13
 
+#define DIP_TYPE_SPD   0x3
+#define DIP_VERSION_SPD0x1
+#define DIP_LEN_SPD25
+#define DIP_SPD_UNKNOWN0
+#define DIP_SPD_DSTB   0x1
+#define DIP_SPD_DVDP   0x2
+#define DIP_SPD_DVHS   0x3
+#define DIP_SPD_HDDVR  0x4
+#define DIP_SPD_DVC0x5
+#define DIP_SPD_DSC0x6
+#define DIP_SPD_VCD0x7
+#define DIP_SPD_GAME   0x8
+#define DIP_SPD_PC 0x9
+#define DIP_SPD_BD 0xa
+#define DIP_SPD_SCD0xb
+
 struct dip_infoframe {
uint8_t type;   /* HB0 */
uint8_t ver;/* HB1 */
@@ -207,6 +223,11 @@ struct dip_infoframe {
uint16_t left_bar_end;
uint16_t right_bar_start;
} avi;
+   struct {
+   uint8_t vn[8];
+   uint8_t pd[16];
+   uint8_t sdi;
+   } spd;
uint8_t payload[27];
} __attribute__ ((packed)) body;
 } __attribute__((packed));
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index fe3469b..ab3bde7 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -201,6 +201,21 @@ static void intel_hdmi_set_avi_infoframe(struct 
drm_encoder *encoder)
intel_set_infoframe(encoder, avi_if);
 }
 
+static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder)
+{
+   struct dip_infoframe spd_if;
+
+   memset(spd_if, 0, sizeof(spd_if));
+   spd_if.type = DIP_TYPE_SPD;
+   spd_if.ver = DIP_VERSION_SPD;
+   spd_if.len = DIP_LEN_SPD;
+   strcpy(spd_if.body.spd.vn, Intel);
+   strcpy(spd_if.body.spd.pd, Integrated gfx);
+   spd_if.body.spd.sdi = DIP_SPD_PC;
+
+   intel_set_infoframe(encoder, spd_if);
+}
+
 static void intel_hdmi_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
@@ -239,6 +254,7 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder,
POSTING_READ(intel_hdmi-sdvox_reg);
 
intel_hdmi_set_avi_infoframe(encoder);
+   intel_hdmi_set_spd_infoframe(encoder);
 }
 
 static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
-- 
1.7.4.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Lukas Hejtmanek
On Wed, Aug 03, 2011 at 08:44:30AM +0100, Chris Wilson wrote:
  I gave a try to 3.0 kernel but problems were even worse. Playing video using
  XV gave me random framents of video accross whole desktop :(
 
 This is to starting to sound quite serious. Is this just an excerbation
 of 2.6.39 behaviour or is it an entirely new failure mode?

Oh, I forgot to answer this one. XV is just fine with 2.6.39 and the same git
head driver as tried with 3.0.0.

-- 
Lukáš Hejtmánek
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Lukas Hejtmanek
On Wed, Aug 03, 2011 at 08:44:30AM +0100, Chris Wilson wrote:
  I got screen corruption accross all the apps (xfce-terminal, im psi, xfce4
  panel, firefox). Not all are text related, e.g., xfce4 panel gets corrupted 
  in
  pager (workspace switcher where no text is).
 
 I know xfce4 has the choice of a compositor, do you have it enabled? Is
 it possible to capture the corruption in a screen shot?

I got another observation. Videos played in firefox from youtube do not get
refresh. Playback is only visible if I move another window on top of the
firefox and its subwindow with video content.

-- 
Lukáš Hejtmánek
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] gen6 (SNB) garbled window content when scrolling with SNA enabled

2011-08-03 Thread Dave Airlie
On Wed, Aug 3, 2011 at 4:59 PM, Jesse Barnes jbar...@virtuousgeek.org wrote:
 On Wed, 3 Aug 2011 08:06:05 +0100
 Dave Airlie airl...@gmail.com wrote:

  Also, is it a bug that xrandr does not report eDP and DVI ports? (the first
  one is located on the NTB itself and dock, DVI is located on the dock 
  only.)
  xrandr reports only VGA1 and LVDS1 ports. I have optimus variant but
  I switched to Intel only in BIOS.

 Its most likely they aren't wired to the Intel chip at all, just the nvidia.

 Yeah that's pretty common.  On my Vaio, I can get DDC bits from the
 HDMI port with the Intel display controller, but can't actually light
 it up.  I guess it's cheaper to do that than to wire up a full MUX for
 the port.

Yeah the combined nvidia/intel driver detects the DDC and switches to
the nvidia driver.

Dave.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] PCH refclk patches

2011-08-03 Thread Jesse Barnes
Still tracking an issue where unplugging a PCH attached port (DP or VGA
in testing) causes a transcoder disable failure.  Maybe the PCH refclk
update is being done in the wrong order...

But displays come up and mode sets work fine, so additional
testing/review would be appreciated.

Thanks,
Jesse

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/2] drm/i915: enable/disable spread spectrum as needed on mode set

2011-08-03 Thread Jesse Barnes
This resurrects Chris's old code to better manage the PCH reference
clock.  With some previous mode setting bugs fixed, it appears work work
now.

Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org
---
 drivers/gpu/drm/i915/i915_drv.h  |1 +
 drivers/gpu/drm/i915/intel_bios.c|1 +
 drivers/gpu/drm/i915/intel_bios.h|4 ++-
 drivers/gpu/drm/i915/intel_display.c |   63 +++---
 4 files changed, 40 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index feb4f16..303e4b3 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -356,6 +356,7 @@ typedef struct drm_i915_private {
unsigned int lvds_vbt:1;
unsigned int int_crt_support:1;
unsigned int lvds_use_ssc:1;
+   unsigned int display_clock_mode:1;
int lvds_ssc_freq;
struct {
int rate;
diff --git a/drivers/gpu/drm/i915/intel_bios.c 
b/drivers/gpu/drm/i915/intel_bios.c
index 61abef8..de3460e 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -309,6 +309,7 @@ parse_general_features(struct drm_i915_private *dev_priv,
dev_priv-lvds_use_ssc = general-enable_ssc;
dev_priv-lvds_ssc_freq =
intel_bios_ssc_frequency(dev, general-ssc_freq);
+   dev_priv-display_clock_mode = general-display_clock_mode;
}
 }
 
diff --git a/drivers/gpu/drm/i915/intel_bios.h 
b/drivers/gpu/drm/i915/intel_bios.h
index 5f8e4ed..02b1b624 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -120,7 +120,9 @@ struct bdb_general_features {
u8 ssc_freq:1;
u8 enable_lfp_on_override:1;
u8 disable_ssc_ddt:1;
-   u8 rsvd8:3; /* finish byte */
+   u8 rsvd7:1;
+   u8 display_clock_mode:1;
+   u8 rsvd8:1; /* finish byte */
 
 /* bits 3 */
u8 disable_smooth_vision:1;
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 644fd4cb..0f627a5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5057,6 +5057,7 @@ static void ironlake_update_pch_refclk(struct drm_device 
*dev)
struct intel_encoder *encoder;
struct intel_encoder *has_edp_encoder = NULL;
u32 temp;
+   int num_connectors = 0;
bool has_lvds = false;
 
/* We need to take the global config into account */
@@ -5076,6 +5077,7 @@ static void ironlake_update_pch_refclk(struct drm_device 
*dev)
has_edp_encoder = encoder;
break;
}
+   num_connectors++;
}
}
 
@@ -5085,43 +5087,48 @@ static void ironlake_update_pch_refclk(struct 
drm_device *dev)
 * ignoring this setting.
 */
temp = I915_READ(PCH_DREF_CONTROL);
-   /* Always enable nonspread source */
+
+   /* First clear the current state for output switching */
+   temp = ~DREF_SSC1_ENABLE;
+   temp = ~DREF_SSC4_ENABLE;
+   temp = ~DREF_SUPERSPREAD_SOURCE_MASK;
temp = ~DREF_NONSPREAD_SOURCE_MASK;
-   temp |= DREF_NONSPREAD_SOURCE_ENABLE;
temp = ~DREF_SSC_SOURCE_MASK;
-   temp |= DREF_SSC_SOURCE_ENABLE;
-   I915_WRITE(PCH_DREF_CONTROL, temp);
-
-   POSTING_READ(PCH_DREF_CONTROL);
-   udelay(200);
+   temp = ~DREF_CPU_SOURCE_OUTPUT_MASK;
 
-   if (has_edp_encoder) {
-   if (intel_panel_use_ssc(dev_priv)) {
-   temp |= DREF_SSC1_ENABLE;
-   I915_WRITE(PCH_DREF_CONTROL, temp);
-
-   POSTING_READ(PCH_DREF_CONTROL);
-   udelay(200);
-   }
-   temp = ~DREF_CPU_SOURCE_OUTPUT_MASK;
+   if (!num_connectors)
+   goto out;
 
-   /* Enable CPU source on CPU attached eDP */
-   if (!intel_encoder_is_pch_edp(has_edp_encoder-base)) {
-   if (intel_panel_use_ssc(dev_priv))
+   if ((has_lvds || has_edp_encoder) 
+   intel_panel_use_ssc(dev_priv)) {
+   temp |= DREF_SSC_SOURCE_ENABLE;
+   if (has_edp_encoder) {
+   if (!intel_encoder_is_pch_edp(has_edp_encoder-base))
temp |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD;
else
-   temp |= DREF_CPU_SOURCE_OUTPUT_NONSPREAD;
-   } else {
-   /* Enable SSC on PCH eDP if needed */
-   if (intel_panel_use_ssc(dev_priv)) {
-   DRM_ERROR(enabling SSC on PCH\n);
temp |= DREF_SUPERSPREAD_SOURCE_ENABLE;
-   }
}
-   I915_WRITE(PCH_DREF_CONTROL, temp);
-   

Re: [Intel-gfx] [PATCH v3] pass ELD to HDMI/DP audio driver

2011-08-03 Thread Keith Packard
On Mon, 1 Aug 2011 21:51:40 +0800, Wu Fengguang fengguang...@intel.com wrote:

 1) intel_write_eld() is not called at all
It seems we need to call intel_write_eld() in other places besides
inside -mode_set(). Is -detect() the right place to do so? In
other words, are there established connector=encoder mapping
that can be queried inside intel_hdmi_detect()/intel_dp_detect()?

The connector has a link to the encoder (struct intel_connector contains a
pointer to a struct intel_encoder).

 2) intel_dp_detect() is called even though it's an HDMI monitor
connected to an HDMI jack.. It may be a bug specific to the
hardware I'm testing (attached its full dmesg).

We run all of the hotplug functions when any connector change is
detected; easier than trying to track what happened from the bits
visible from the interrupt.

I note that this patch does not include the necessary hooks for
Ivybridge; we'll need that included (and tested) for this to be
considered for kernel 3.1. I'd be surprised if it couldn't use
ironlake_write_eld just fine, so it should just be a matter of setting
the write_eld field and testing it on actual hardware.

-- 
keith.pack...@intel.com


pgpVglgRsa0Y0.pgp
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Try enabling RC6 by default (again)

2011-08-03 Thread Keith Packard
Jesse Barnes and I found a couple of issues where incorrect mode
setting would cause problems with RC6 enabled. We're hopeful that
fixing those will resolve the outstanding issues with a few machines
that had trouble before 3.0 with rc6.

Cc: Pekka Enberg penb...@kernel.org
Cc: Francesco Allertsen fallert...@gmail.com
Cc: Ted Phelps phe...@gnusto.com
Cc: Gu Rui chaos.pro...@gmail.com
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38567
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=38332
Signed-off-by: Keith Packard kei...@keithp.com
---
 drivers/gpu/drm/i915/i915_drv.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ce045a8..60e4b9e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -62,7 +62,7 @@ module_param_named(semaphores, i915_semaphores, int, 0600);
 MODULE_PARM_DESC(semaphores,
Use semaphores for inter-ring sync (default: false));
 
-unsigned int i915_enable_rc6 __read_mostly = 0;
+unsigned int i915_enable_rc6 __read_mostly = 1;
 module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
 MODULE_PARM_DESC(i915_enable_rc6,
Enable power-saving render C-state 6 (default: true));
-- 
1.7.5.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx