[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29393

Alex Deucher  changed:

   What|Removed |Added

  Component|Drivers/DRI/R600|GLX
 AssignedTo|dri-devel at lists.freedesktop |mesa-dev at 
lists.freedesktop.
   |.org|org
 CC||nbowler at draconx.ca

--- Comment #4 from Alex Deucher  2010-08-03 21:21:23 PDT 
---
This looks like a glx bug rather than a driver bug.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[PATCH 2/2] drm/radeon/kms: enable underscan option for digital connectors

2010-08-03 Thread Alex Deucher
This connector attribute allows you to enable or disable underscan
on a digital output to compensate for panels that automatically
overscan (e.g., many HDMI TVs).  Valid values for the attribute are:

off - forces underscan off
on - forces underscan on
auto - enables underscan if an HDMI TV is connected, off otherwise

default value is auto.

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/atombios_crtc.c |   36 +---
 drivers/gpu/drm/radeon/radeon_connectors.c |   23 +++
 drivers/gpu/drm/radeon/radeon_display.c|   41 
 drivers/gpu/drm/radeon/radeon_encoders.c   |5 +++-
 drivers/gpu/drm/radeon/radeon_mode.h   |   18 +++-
 5 files changed, 98 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c 
b/drivers/gpu/drm/radeon/atombios_crtc.c
index a2e65d9..12ad512 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -44,10 +44,6 @@ static void atombios_overscan_setup(struct drm_crtc *crtc,

memset(, 0, sizeof(args));

-   args.usOverscanRight = 0;
-   args.usOverscanLeft = 0;
-   args.usOverscanBottom = 0;
-   args.usOverscanTop = 0;
args.ucCRTC = radeon_crtc->crtc_id;

switch (radeon_crtc->rmx_type) {
@@ -56,7 +52,6 @@ static void atombios_overscan_setup(struct drm_crtc *crtc,
args.usOverscanBottom = (adjusted_mode->crtc_vdisplay - 
mode->crtc_vdisplay) / 2;
args.usOverscanLeft = (adjusted_mode->crtc_hdisplay - 
mode->crtc_hdisplay) / 2;
args.usOverscanRight = (adjusted_mode->crtc_hdisplay - 
mode->crtc_hdisplay) / 2;
-   atom_execute_table(rdev->mode_info.atom_context, index, 
(uint32_t *));
break;
case RMX_ASPECT:
a1 = mode->crtc_vdisplay * adjusted_mode->crtc_hdisplay;
@@ -69,17 +64,16 @@ static void atombios_overscan_setup(struct drm_crtc *crtc,
args.usOverscanLeft = (adjusted_mode->crtc_vdisplay - 
(a1 / mode->crtc_hdisplay)) / 2;
args.usOverscanRight = (adjusted_mode->crtc_vdisplay - 
(a1 / mode->crtc_hdisplay)) / 2;
}
-   atom_execute_table(rdev->mode_info.atom_context, index, 
(uint32_t *));
break;
case RMX_FULL:
default:
-   args.usOverscanRight = 0;
-   args.usOverscanLeft = 0;
-   args.usOverscanBottom = 0;
-   args.usOverscanTop = 0;
-   atom_execute_table(rdev->mode_info.atom_context, index, 
(uint32_t *));
+   args.usOverscanRight = radeon_crtc->h_border;
+   args.usOverscanLeft = radeon_crtc->h_border;
+   args.usOverscanBottom = radeon_crtc->v_border;
+   args.usOverscanTop = radeon_crtc->v_border;
break;
}
+   atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t 
*));
 }

 static void atombios_scaler_setup(struct drm_crtc *crtc)
@@ -282,22 +276,22 @@ atombios_set_crtc_dtd_timing(struct drm_crtc *crtc,
u16 misc = 0;

memset(, 0, sizeof(args));
-   args.usH_Size = cpu_to_le16(mode->crtc_hdisplay);
+   args.usH_Size = cpu_to_le16(mode->crtc_hdisplay - 
(radeon_crtc->h_border * 2));
args.usH_Blanking_Time =
-   cpu_to_le16(mode->crtc_hblank_end - mode->crtc_hdisplay);
-   args.usV_Size = cpu_to_le16(mode->crtc_vdisplay);
+   cpu_to_le16(mode->crtc_hblank_end - mode->crtc_hdisplay + 
(radeon_crtc->h_border * 2));
+   args.usV_Size = cpu_to_le16(mode->crtc_vdisplay - 
(radeon_crtc->v_border * 2));
args.usV_Blanking_Time =
-   cpu_to_le16(mode->crtc_vblank_end - mode->crtc_vdisplay);
+   cpu_to_le16(mode->crtc_vblank_end - mode->crtc_vdisplay + 
(radeon_crtc->v_border * 2));
args.usH_SyncOffset =
-   cpu_to_le16(mode->crtc_hsync_start - mode->crtc_hdisplay);
+   cpu_to_le16(mode->crtc_hsync_start - mode->crtc_hdisplay + 
radeon_crtc->h_border);
args.usH_SyncWidth =
cpu_to_le16(mode->crtc_hsync_end - mode->crtc_hsync_start);
args.usV_SyncOffset =
-   cpu_to_le16(mode->crtc_vsync_start - mode->crtc_vdisplay);
+   cpu_to_le16(mode->crtc_vsync_start - mode->crtc_vdisplay + 
radeon_crtc->v_border);
args.usV_SyncWidth =
cpu_to_le16(mode->crtc_vsync_end - mode->crtc_vsync_start);
-   /*args.ucH_Border = mode->hborder;*/
-   /*args.ucV_Border = mode->vborder;*/
+   args.ucH_Border = radeon_crtc->h_border;
+   args.ucV_Border = radeon_crtc->v_border;

if (mode->flags & DRM_MODE_FLAG_NVSYNC)
misc |= ATOM_VSYNC_POLARITY;
@@ -1176,10 +1170,8 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc,
atombios_crtc_set_pll(crtc, adjusted_mode);
atombios_enable_ss(crtc);

-   if (ASIC_IS_DCE4(rdev))
+   

[PATCH 1/2] drm/radeon/kms: fix calculation of h/v scaling factors

2010-08-03 Thread Alex Deucher
Prior to this patch the code was dividing the src_v by the dst_h
and vice versa, rather than src_v/dst_v and src_h/dst_h.

This could lead to problems in the calculation of the display
watermarks.

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/radeon_display.c |   20 +---
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_display.c 
b/drivers/gpu/drm/radeon/radeon_display.c
index 283beed..12a5414 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1073,11 +1073,13 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
struct radeon_encoder *radeon_encoder;
bool first = true;
+   u32 src_v = 1, dst_v = 1;
+   u32 src_h = 1, dst_h = 1;

list_for_each_entry(encoder, >mode_config.encoder_list, head) {
-   radeon_encoder = to_radeon_encoder(encoder);
if (encoder->crtc != crtc)
continue;
+   radeon_encoder = to_radeon_encoder(encoder);
if (first) {
/* set scaling */
if (radeon_encoder->rmx_type == RMX_OFF)
@@ -1087,6 +1089,10 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
radeon_crtc->rmx_type = 
radeon_encoder->rmx_type;
else
radeon_crtc->rmx_type = RMX_OFF;
+   src_v = crtc->mode.vdisplay;
+   dst_v = radeon_crtc->native_mode.vdisplay;
+   src_h = crtc->mode.hdisplay;
+   dst_h = radeon_crtc->native_mode.vdisplay;
/* copy native mode */
memcpy(_crtc->native_mode,
   _encoder->native_mode,
@@ -1096,22 +1102,22 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
if (radeon_crtc->rmx_type != radeon_encoder->rmx_type) {
/* WARNING: Right now this can't happen but
 * in the future we need to check that scaling
-* are consistent accross different encoder
+* are consistent across different encoder
 * (ie all encoder can work with the same
 *  scaling).
 */
-   DRM_ERROR("Scaling not consistent accross 
encoder.\n");
+   DRM_ERROR("Scaling not consistent across 
encoder.\n");
return false;
}
}
}
if (radeon_crtc->rmx_type != RMX_OFF) {
fixed20_12 a, b;
-   a.full = dfixed_const(crtc->mode.vdisplay);
-   b.full = dfixed_const(radeon_crtc->native_mode.hdisplay);
+   a.full = dfixed_const(src_v);
+   b.full = dfixed_const(dst_v);
radeon_crtc->vsc.full = dfixed_div(a, b);
-   a.full = dfixed_const(crtc->mode.hdisplay);
-   b.full = dfixed_const(radeon_crtc->native_mode.vdisplay);
+   a.full = dfixed_const(src_h);
+   b.full = dfixed_const(dst_h);
radeon_crtc->hsc.full = dfixed_div(a, b);
} else {
radeon_crtc->vsc.full = dfixed_const(1);
-- 
1.7.1.1



[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #3 from Casey Jones  2010-08-03 19:26:51 
PDT ---
This is what I got.

f8d81c31cee30821da3aab331a57f484f6a07a5d is the first bad commit
commit f8d81c31cee30821da3aab331a57f484f6a07a5d
Author: Nick Bowler 
Date:   Wed Jul 14 12:01:49 2010 -0400

dri2: Track event mask in client code.

When direct rendering is being used, DRI2 BufferSwapComplete events are
sent unconditionally to clients, even if they haven't been requested.
This causes error messages to be printed by every freeglut application
of the form

  freeglut (./gears): Unknown X event type: 104

and might confuse other clients.

This is a fixed up version of the patch by Jesse Barnes, which drops
BufferSwapComplete events if they are not requested by clients.

Fixes fdo bug 27962.

Signed-off-by: Nick Bowler 
Signed-off-by: Jesse Barnes 

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #2 from Alex Deucher  2010-08-03 18:17:09 PDT 
---
Can you bisect mesa to see what commit broke it?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #1 from Casey Jones  2010-08-03 18:07:16 
PDT ---
I also tried r600g in my chroot just for kicks, and it crashes as well.  Plain
old glxgears worked, but the Lwjgl version does not.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29393] New: R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29393

   Summary: R600: libGL crashes using Lwjgl
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/R600
AssignedTo: dri-devel at lists.freedesktop.org
ReportedBy: jonescaseyb at gmail.com


Created an attachment (id=37560)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37560)
Full Java error log

Lwjgl is a Java binding to OpenGL.  Any Lwjgl application or demo crashes
libGL.so and forces the Java VM to abort.

This is the output from Java:

Could not locate symbol glXCreateContextAttribsARB
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb00434a8, pid=19189, tid=2954230640
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) Server VM (17.0-b16 mixed mode linux-x86 )
# Problematic frame:
# C  [libGL.so.1+0x424a8]
#
# An error report file with more information is saved as:
# /root/hs_err_pid19189.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

I'm attaching the mentioned hs_err_pid19189.log

I'm using the latest git version of Mesa with a Radeon 4850.  KMS is enabled. 
I'm using the Sun/Oracle JDK, not OpenJDK or IcedTea.  I've confirmed that this
works on Mesa 7.8.2.  It worked on earlier version of 7.9, but sometime in the
last few weeks it stopped working.  I've been working on my own Lwjgl
application, so when I ran into this error I downgraded Mesa to 7.8, but I
still have 7.9 in a chroot which I can do further testing on.

There are demo applications here:
http://lwjgl.org/demos.php

I used GLGears.
To run a jnlp file from the command line:
javaws test.opengl.Gears

Thanks.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29390] Radeon KMS - Bootup - First Text At 640x480 - Then Blank Screen - Then FB

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29390

Alex Deucher  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||NOTOURBUG

--- Comment #1 from Alex Deucher  2010-08-03 15:33:37 PDT 
---
You might try a different distro.  This isn't really a driver bug, more a
distro start up configuration issue.  The latest fedora and ubuntu releases go
straight from from the bios post screen to the plymouth boot screen.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29390] Radeon KMS - Bootup - First Text At 640x480 - Then Blank Screen - Then FB

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29390

Alex Deucher  changed:

   What|Removed |Added

Product|xorg|DRI
Version|7.5 |unspecified
  Component|Driver/radeonhd |DRM/Radeon
 AssignedTo|eich at pdx.freedesktop.org|dri-devel at 
lists.freedesktop
   ||.org
  QAContact|xorg-team at lists.x.org   |

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 28628] [r300g] ARB_vp: error: relative address offset too large (163)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=28628

Marek Ol??k  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #3 from Marek Ol??k  2010-08-03 15:25:12 PDT 
---
Fixed by commit 0614006d090902324149387ec150231b647928fd. Closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29303] [r300g] compiz segfaults when resizing windows

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29303

Marek Ol??k  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #1 from Marek Ol??k  2010-08-03 15:20:52 PDT 
---
Fixed by commit afbf446de5ad91743e2e2a76799bd87f3eed5f9a. Closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29389] [r300g] [bisected] hard locks in openarena with kernel 2.6.35

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29389

Giacomo Perale  changed:

   What|Removed |Added

  Attachment #37557|text/x-log  |text/plain
  mime type||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[PATCH 7/7] drm/edid: Add modes from CEA short video descriptor codes

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c   |  188 +++-
 drivers/gpu/drm/drm_edid_modes.h |  260 ++
 2 files changed, 389 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 817ffab..44fd754 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1223,53 +1223,23 @@ add_cvt_modes(struct drm_connector *connector, struct 
edid *edid)
return closure.modes;
 }

-static void
-do_detailed_mode(struct detailed_timing *timing, void *c)
+/* XXX assumes there's only one */
+static u8 *
+find_cea_block(struct edid *edid)
 {
-   struct detailed_mode_closure *closure = c;
-   struct drm_display_mode *newmode;
-
-   if (timing->pixel_clock) {
-   newmode = drm_mode_detailed(closure->connector->dev,
-   closure->edid, timing,
-   closure->quirks);
-   if (!newmode)
-   return;
+   int i;
+   u8 *ret;

-   if (closure->preferred)
-   newmode->type |= DRM_MODE_TYPE_PREFERRED;
+   if (!edid)
+   return NULL;

-   drm_mode_probed_add(closure->connector, newmode);
-   closure->modes++;
-   closure->preferred = 0;
+   for (i = 0; i < edid->extensions; i++) {
+   ret = (u8 *)edid + EDID_LENGTH * (i + 1);
+   if (ret[0] == CEA_EXT)
+   return ret;
}
-}
-
-/*
- * add_detailed_modes - Add modes from detailed timings
- * @connector: attached connector
- * @edid: EDID block to scan
- * @quirks: quirks to apply
- */
-static int
-add_detailed_modes(struct drm_connector *connector, struct edid *edid,
-  u32 quirks)
-{
-   struct detailed_mode_closure closure = {
-   connector,
-   edid,
-   1,
-   quirks,
-   0
-   };
-
-   if (closure.preferred && !version_greater(edid, 1, 3))
-   closure.preferred =
-   (edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING);
-
-   drm_for_each_detailed_block((u8 *)edid, do_detailed_mode, );

-   return closure.modes;
+   return NULL;
 }

 #define HDMI_IDENTIFIER 0x000C03
@@ -1283,25 +1253,13 @@ add_detailed_modes(struct drm_connector *connector, 
struct edid *edid,
  */
 bool drm_detect_hdmi_monitor(struct edid *edid)
 {
-   char *edid_ext = NULL;
+   u8 *edid_ext = NULL;
int i, hdmi_id;
int start_offset, end_offset;
bool is_hdmi = false;

-   /* No EDID or EDID extensions */
-   if (edid == NULL || edid->extensions == 0)
-   goto end;
-
-   /* Find CEA extension */
-   for (i = 0; i < edid->extensions; i++) {
-   edid_ext = (char *)edid + EDID_LENGTH * (i + 1);
-   /* This block is CEA extension */
-   if (edid_ext[0] == 0x02)
-   break;
-   }
-
-   if (i == edid->extensions)
-   goto end;
+   if (!(edid_ext = find_cea_block(edid)))
+   return false;

/* Data block offset in CEA extension block */
start_offset = 4;
@@ -1325,11 +1283,116 @@ bool drm_detect_hdmi_monitor(struct edid *edid)
}
}

-end:
return is_hdmi;
 }
 EXPORT_SYMBOL(drm_detect_hdmi_monitor);

+static int
+add_cea_modes(struct drm_connector *connector, struct edid *edid)
+{
+   u8 *block = find_cea_block(edid);
+   u8 *b, *end;
+   int modes = 0;
+
+   if (!block)
+   return 0;
+
+   if (block[0x01] < 3)
+   return 0; /* SVDs not specified yet */
+
+   b = block;
+   end = block + block[0x02];
+
+   while (b < end) {
+   u8 header = *b;
+   u8 length = header & 0x1f;
+   u8 tag = (header & 0xe0) >> 5;
+
+   if (tag == 2) {
+   int i, m;
+   struct drm_display_mode *mode, *newmode;
+   for (i = 1; i <= length; i++) {
+   m = b[i] & 0x7f;
+   if (m > cea_num_modes) /* XXX warn */
+   continue;
+
+   /*
+* Don't add modes that require pixel repeat,
+* yet. The driver needs to be aware of this
+* and we don't have a mechanism for that.
+*
+* This prunes some modes that don't need 
+* repeat; oh well.
+*/
+   mode = _modes[m];
+   if (mode->hdisplay == 1440 ||
+   mode->hdisplay == 2880)
+ 

[PATCH 6/7] drm/edid: Re-add the reduced blanking modes to the DMT table

2010-08-03 Thread Adam Jackson
Also fix up mode generation to only add RB modes from DMT if it looks
like an RB-capable monitor.

Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c   |   43 +
 drivers/gpu/drm/drm_edid_modes.h |   98 --
 drivers/gpu/drm/drm_fb_helper.c  |2 +-
 include/drm/drm_crtc.h   |2 +-
 4 files changed, 118 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 66b8b5c..817ffab 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -433,8 +433,17 @@ static void edid_fixup_preferred(struct drm_connector 
*connector,
preferred_mode->type |= DRM_MODE_TYPE_PREFERRED;
 }

-struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
-  int hsize, int vsize, int fresh)
+static bool
+mode_is_rb(struct drm_display_mode *mode)
+{
+   return (mode->htotal - mode->hdisplay == 160) &&
+  (mode->hsync_end - mode->hdisplay == 80) &&
+  (mode->hsync_end - mode->hsync_start == 32) &&
+  (mode->vsync_start - mode->vdisplay == 3);
+}
+
+struct drm_display_mode *
+drm_mode_find_dmt(struct drm_device *dev, int hsize, int vsize, int r, bool rb)
 {
int i;
struct drm_display_mode *ptr, *mode;
@@ -444,7 +453,8 @@ struct drm_display_mode *drm_mode_find_dmt(struct 
drm_device *dev,
ptr = _dmt_modes[i];
if (hsize == ptr->hdisplay &&
vsize == ptr->vdisplay &&
-   fresh == drm_mode_vrefresh(ptr)) {
+   r == drm_mode_vrefresh(ptr) &&
+   rb == mode_is_rb(ptr)) {
/* get the expected default mode */
mode = drm_mode_duplicate(dev, ptr);
break;
@@ -694,7 +704,12 @@ drm_mode_std(struct drm_connector *connector, struct edid 
*edid,
}

/* check whether it can be found in default mode table */
-   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate);
+   if (drm_monitor_supports_rb(edid)) {
+   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, 1);
+   if (mode)
+   return mode;
+   }
+   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, 0);
if (mode)
return mode;

@@ -722,7 +737,8 @@ drm_mode_std(struct drm_connector *connector, struct edid 
*edid,
}
break;
case LEVEL_CVT:
-   mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 0, 0,
+   mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 
+   drm_monitor_supports_rb(edid), 0,
false);
break;
}
@@ -874,15 +890,6 @@ static struct drm_display_mode *drm_mode_detailed(struct 
drm_device *dev,
 }

 static bool
-mode_is_rb(struct drm_display_mode *mode)
-{
-   return (mode->htotal - mode->hdisplay == 160) &&
-  (mode->hsync_end - mode->hdisplay == 80) &&
-  (mode->hsync_end - mode->hsync_start == 32) &&
-  (mode->vsync_start - mode->vdisplay == 3);
-}
-
-static bool
 mode_in_hsync_range(struct drm_display_mode *mode, struct edid *edid, u8 *t)
 {
int hsync, hmin, hmax;
@@ -957,10 +964,6 @@ mode_in_range(struct drm_display_mode *mode, struct edid 
*edid,
return true;
 }

-/*
- * XXX If drm_dmt_modes ever regrows the CVT-R modes (and it will) this will
- * need to account for them.
- */
 static int
 drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid,
struct detailed_timing *timing)
@@ -1025,8 +1028,8 @@ drm_est3_modes(struct drm_connector *connector, struct 
detailed_timing *timing)
mode = drm_mode_find_dmt(connector->dev,
 est3_modes[m].w,
 est3_modes[m].h,
-est3_modes[m].r
-/*, est3_modes[m].rb 
*/);
+est3_modes[m].r,
+est3_modes[m].rb);
if (mode) {
drm_mode_probed_add(connector, mode);
modes++;
diff --git a/drivers/gpu/drm/drm_edid_modes.h b/drivers/gpu/drm/drm_edid_modes.h
index 6eb7592..19690cd 100644
--- a/drivers/gpu/drm/drm_edid_modes.h
+++ b/drivers/gpu/drm/drm_edid_modes.h
@@ -27,11 +27,7 @@
 #include "drmP.h"
 #include "drm_edid.h"

-/*
- * Autogenerated from the DMT spec.
- * This table is copied from xfree86/modes/xf86EdidModes.c.
- * But the mode with Reduced blank feature is deleted.
- */
+/* 

[PATCH 5/7] drm/edid: Split mode lists out to their own header for readability

2010-08-03 Thread Adam Jackson
... of the code, not of the mode lists.

Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c   |  354 +---
 drivers/gpu/drm/drm_edid_modes.h |  380 ++
 2 files changed, 381 insertions(+), 353 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_edid_modes.h

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 3f59e36..66b8b5c 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -33,6 +33,7 @@
 #include 
 #include "drmP.h"
 #include "drm_edid.h"
+#include "drm_edid_modes.h"

 #define version_greater(edid, maj, min) \
(((edid)->version > (maj)) || \
@@ -386,7 +387,6 @@ static u32 edid_get_quirks(struct edid *edid)
 #define MODE_SIZE(m) ((m)->hdisplay * (m)->vdisplay)
 #define MODE_REFRESH_DIFF(m,r) (abs((m)->vrefresh - target_refresh))

-
 /**
  * edid_fixup_preferred - set preferred modes based on quirk list
  * @connector: has mode list to fix up
@@ -433,245 +433,6 @@ static void edid_fixup_preferred(struct drm_connector 
*connector,
preferred_mode->type |= DRM_MODE_TYPE_PREFERRED;
 }

-/*
- * Add the Autogenerated from the DMT spec.
- * This table is copied from xfree86/modes/xf86EdidModes.c.
- * But the mode with Reduced blank feature is deleted.
- */
-static struct drm_display_mode drm_dmt_modes[] = {
-   /* 640x350 at 85Hz */
-   { DRM_MODE("640x350", DRM_MODE_TYPE_DRIVER, 31500, 640, 672,
-  736, 832, 0, 350, 382, 385, 445, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 640x400 at 85Hz */
-   { DRM_MODE("640x400", DRM_MODE_TYPE_DRIVER, 31500, 640, 672,
-  736, 832, 0, 400, 401, 404, 445, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 720x400 at 85Hz */
-   { DRM_MODE("720x400", DRM_MODE_TYPE_DRIVER, 35500, 720, 756,
-  828, 936, 0, 400, 401, 404, 446, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 640x480 at 60Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25175, 640, 656,
-  752, 800, 0, 480, 489, 492, 525, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 640x480 at 72Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 31500, 640, 664,
-  704, 832, 0, 480, 489, 492, 520, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 640x480 at 75Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 31500, 640, 656,
-  720, 840, 0, 480, 481, 484, 500, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 640x480 at 85Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 36000, 640, 696,
-  752, 832, 0, 480, 481, 484, 509, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 800x600 at 56Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 36000, 800, 824,
-  896, 1024, 0, 600, 601, 603, 625, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 800x600 at 60Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 4, 800, 840,
-  968, 1056, 0, 600, 601, 605, 628, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 800x600 at 72Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 5, 800, 856,
-  976, 1040, 0, 600, 637, 643, 666, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 800x600 at 75Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 49500, 800, 816,
-  896, 1056, 0, 600, 601, 604, 625, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 800x600 at 85Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 56250, 800, 832,
-  896, 1048, 0, 600, 601, 604, 631, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 848x480 at 60Hz */
-   { DRM_MODE("848x480", DRM_MODE_TYPE_DRIVER, 33750, 848, 864,
-  976, 1088, 0, 480, 486, 494, 517, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
-   /* 1024x768 at 43Hz, interlace */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 44900, 1024, 1032,
-  1208, 1264, 0, 768, 768, 772, 817, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
-   DRM_MODE_FLAG_INTERLACE) },
-   /* 1024x768 at 60Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 65000, 1024, 1048,
-  1184, 1344, 0, 768, 771, 777, 806, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 1024x768 at 70Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 75000, 1024, 1048,
-  1184, 1328, 0, 768, 771, 777, 806, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
-   /* 

[PATCH 4/7] drm/edid: Rewrite mode parse to use the generic detailed block walk

2010-08-03 Thread Adam Jackson
This brings us in line with the EDID spec recommendation for mode
priority sorting.  We still don't extract all the modes we could from
VTB, but VTB is so rare in the wild that I'm not really concerned.

Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c |  526 +++-
 1 files changed, 273 insertions(+), 253 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 9299dd6..3f59e36 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -34,6 +34,10 @@
 #include "drmP.h"
 #include "drm_edid.h"

+#define version_greater(edid, maj, min) \
+   (((edid)->version > (maj)) || \
+((edid)->version == (maj) && (edid)->revision > (min)))
+
 #define EDID_EST_TIMINGS 16
 #define EDID_STD_TIMINGS 8
 #define EDID_DETAILED_TIMINGS 4
@@ -62,6 +66,13 @@
 /* use +hsync +vsync for detailed mode */
 #define EDID_QUIRK_DETAILED_SYNC_PP(1 << 6)

+struct detailed_mode_closure {
+   struct drm_connector *connector;
+   struct edid *edid;
+   bool preferred;
+   u32 quirks;
+   int modes;
+};

 #define LEVEL_DMT  0
 #define LEVEL_GTF  1
@@ -1101,117 +1112,6 @@ static struct drm_display_mode 
*drm_mode_detailed(struct drm_device *dev,
return mode;
 }

-/*
- * Detailed mode info for the EDID "established modes" data to use.
- */
-static struct drm_display_mode edid_est_modes[] = {
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 4, 800, 840,
-  968, 1056, 0, 600, 601, 605, 628, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600 
at 60Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 36000, 800, 824,
-  896, 1024, 0, 600, 601, 603,  625, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600 
at 56Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 31500, 640, 656,
-  720, 840, 0, 480, 481, 484, 500, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480 
at 75Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 31500, 640, 664,
-  704,  832, 0, 480, 489, 491, 520, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480 
at 72Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 30240, 640, 704,
-  768,  864, 0, 480, 483, 486, 525, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480 
at 67Hz */
-   { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25200, 640, 656,
-  752, 800, 0, 480, 490, 492, 525, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480 
at 60Hz */
-   { DRM_MODE("720x400", DRM_MODE_TYPE_DRIVER, 35500, 720, 738,
-  846, 900, 0, 400, 421, 423,  449, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 720x400 
at 88Hz */
-   { DRM_MODE("720x400", DRM_MODE_TYPE_DRIVER, 28320, 720, 738,
-  846,  900, 0, 400, 412, 414, 449, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 720x400 
at 70Hz */
-   { DRM_MODE("1280x1024", DRM_MODE_TYPE_DRIVER, 135000, 1280, 1296,
-  1440, 1688, 0, 1024, 1025, 1028, 1066, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 1280x1024 
at 75Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 78800, 1024, 1040,
-  1136, 1312, 0,  768, 769, 772, 800, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 1024x768 
at 75Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 75000, 1024, 1048,
-  1184, 1328, 0,  768, 771, 777, 806, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 1024x768 
at 70Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 65000, 1024, 1048,
-  1184, 1344, 0,  768, 771, 777, 806, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 1024x768 
at 60Hz */
-   { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER,44900, 1024, 1032,
-  1208, 1264, 0, 768, 768, 776, 817, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | 
DRM_MODE_FLAG_INTERLACE) }, /* 1024x768 at 43Hz */
-   { DRM_MODE("832x624", DRM_MODE_TYPE_DRIVER, 57284, 832, 864,
-  928, 1152, 0, 624, 625, 628, 667, 0,
-  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 832x624 
at 75Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 49500, 800, 816,
-  896, 1056, 0, 600, 601, 604,  625, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600 
at 75Hz */
-   { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 5, 800, 856,
-  976, 1040, 0, 600, 637, 643, 666, 0,
-  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600 
at 72Hz */
-   { DRM_MODE("1152x864", DRM_MODE_TYPE_DRIVER, 108000, 

[PATCH 3/7] drm/edid: Add detailed block walk for VTB extensions

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c |   16 
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 1bc15a8..9299dd6 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -712,6 +712,19 @@ cea_for_each_detailed_block(u8 *ext, detailed_cb *cb, void 
*closure)
 }

 static void
+vtb_for_each_detailed_block(u8 *ext, detailed_cb *cb, void *closure)
+{
+   unsigned int i, n = min((int)ext[0x02], 6);
+   u8 *det_base = ext + 5;
+
+   if (ext[0x01] != 1)
+   return; /* unknown version */
+
+   for (i = 0; i < n; i++)
+   cb((struct detailed_timing *)(det_base + 18 * i), closure);
+}
+
+static void
 drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, void *closure)
 {
int i;
@@ -729,6 +742,9 @@ drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, 
void *closure)
case CEA_EXT:
cea_for_each_detailed_block(ext, cb, closure);
break;
+   case VTB_EXT:
+   vtb_for_each_detailed_block(ext, cb, closure);
+   break;
default:
break;
}
-- 
1.7.2



[PATCH 2/7] drm/edid: Add detailed block walk for CEA extensions

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c |   38 +-
 include/drm/drm_edid.h |6 ++
 2 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index e668084..1bc15a8 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -685,6 +685,33 @@ EXPORT_SYMBOL(drm_mode_find_dmt);
 typedef void detailed_cb(struct detailed_timing *timing, void *closure);

 static void
+cea_for_each_detailed_block(u8 *ext, detailed_cb *cb, void *closure)
+{
+   int i, n = 0;
+   u8 rev = ext[0x01], d = ext[0x02];
+   u8 *det_base = ext + d;
+
+   switch (rev) {
+   case 0:
+   /* can't happen */
+   return;
+   case 1:
+   /* have to infer how many blocks we have, check pixel clock */
+   for (i = 0; i < 6; i++)
+   if (det_base[18*i] || det_base[18*i+1])
+   n++;
+   break;
+   default:
+   /* explicit count */
+   n = min(ext[0x03] & 0x0f, 6);
+   break;
+   }
+
+   for (i = 0; i < n; i++)
+   cb((struct detailed_timing *)(det_base + 18 * i), closure);
+}
+
+static void
 drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, void *closure)
 {
int i;
@@ -696,7 +723,16 @@ drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, 
void *closure)
for (i = 0; i < EDID_DETAILED_TIMINGS; i++)
cb(&(edid->detailed_timings[i]), closure);

-   /* XXX extension block walk */
+   for (i = 1; i <= raw_edid[0x7e]; i++) {
+   u8 *ext = raw_edid + (i * EDID_LENGTH);
+   switch (*ext) {
+   case CEA_EXT:
+   cea_for_each_detailed_block(ext, cb, closure);
+   break;
+   default:
+   break;
+   }
+   }
 }

 static void
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index 39e2cc5..5881fad 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -28,6 +28,12 @@
 #define EDID_LENGTH 128
 #define DDC_ADDR 0x50

+#define CEA_EXT0x02
+#define VTB_EXT0x10
+#define DI_EXT 0x40
+#define LS_EXT 0x50
+#define MI_EXT 0x60
+
 struct est_timings {
u8 t1;
u8 t2;
-- 
1.7.2



[PATCH 1/7] drm: Remove unused fields from drm_display_info

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson 
---
 drivers/gpu/drm/drm_edid.c |   15 ---
 include/drm/drm_crtc.h |   35 +--
 2 files changed, 1 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 83d8072..e668084 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1655,23 +1655,8 @@ int drm_add_edid_modes(struct drm_connector *connector, 
struct edid *edid)
if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
edid_fixup_preferred(connector, quirks);

-   connector->display_info.serration_vsync = (edid->input & 
DRM_EDID_INPUT_SERRATION_VSYNC) ? 1 : 0;
-   connector->display_info.sync_on_green = (edid->input & 
DRM_EDID_INPUT_SYNC_ON_GREEN) ? 1 : 0;
-   connector->display_info.composite_sync = (edid->input & 
DRM_EDID_INPUT_COMPOSITE_SYNC) ? 1 : 0;
-   connector->display_info.separate_syncs = (edid->input & 
DRM_EDID_INPUT_SEPARATE_SYNCS) ? 1 : 0;
-   connector->display_info.blank_to_black = (edid->input & 
DRM_EDID_INPUT_BLANK_TO_BLACK) ? 1 : 0;
-   connector->display_info.video_level = (edid->input & 
DRM_EDID_INPUT_VIDEO_LEVEL) >> 5;
-   connector->display_info.digital = (edid->input & 
DRM_EDID_INPUT_DIGITAL) ? 1 : 0;
connector->display_info.width_mm = edid->width_cm * 10;
connector->display_info.height_mm = edid->height_cm * 10;
-   connector->display_info.gamma = edid->gamma;
-   connector->display_info.gtf_supported = (edid->features & 
DRM_EDID_FEATURE_DEFAULT_GTF) ? 1 : 0;
-   connector->display_info.standard_color = (edid->features & 
DRM_EDID_FEATURE_STANDARD_COLOR) ? 1 : 0;
-   connector->display_info.display_type = (edid->features & 
DRM_EDID_FEATURE_DISPLAY_TYPE) >> 3;
-   connector->display_info.active_off_supported = (edid->features & 
DRM_EDID_FEATURE_PM_ACTIVE_OFF) ? 1 : 0;
-   connector->display_info.suspend_supported = (edid->features & 
DRM_EDID_FEATURE_PM_SUSPEND) ? 1 : 0;
-   connector->display_info.standby_supported = (edid->features & 
DRM_EDID_FEATURE_PM_STANDBY) ? 1 : 0;
-   connector->display_info.gamma = edid->gamma;

return num_modes;
 }
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 93a1a31..606eb93 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -190,49 +190,16 @@ enum subpixel_order {
  */
 struct drm_display_info {
char name[DRM_DISPLAY_INFO_LEN];
-   /* Input info */
-   bool serration_vsync;
-   bool sync_on_green;
-   bool composite_sync;
-   bool separate_syncs;
-   bool blank_to_black;
-   unsigned char video_level;
-   bool digital;
+
/* Physical size */
 unsigned int width_mm;
unsigned int height_mm;

-   /* Display parameters */
-   unsigned char gamma; /* FIXME: storage format */
-   bool gtf_supported;
-   bool standard_color;
-   enum {
-   monochrome = 0,
-   rgb,
-   other,
-   unknown,
-   } display_type;
-   bool active_off_supported;
-   bool suspend_supported;
-   bool standby_supported;
-
-   /* Color info FIXME: storage format */
-   unsigned short redx, redy;
-   unsigned short greenx, greeny;
-   unsigned short bluex, bluey;
-   unsigned short whitex, whitey;
-
/* Clock limits FIXME: storage format */
unsigned int min_vfreq, max_vfreq;
unsigned int min_hfreq, max_hfreq;
unsigned int pixel_clock;

-   /* White point indices FIXME: storage format */
-   unsigned int wpx1, wpy1;
-   unsigned int wpgamma1;
-   unsigned int wpx2, wpy2;
-   unsigned int wpgamma2;
-
enum subpixel_order subpixel_order;

char *raw_edid; /* if any */
-- 
1.7.2



[RFC] EDID parser updates

2010-08-03 Thread Adam Jackson
Some cosmetic cleanups, and then some changes to add more modes than we
were before.  6 and 7 are the particularly touchy bits; I'd like a bit of
volunteer testing before landing it on drm-core-next, particularly on
HDMI monitors.  Note that this is mostly about doing more with things
other than your preferred mode, so be sure to check the mode list you get
from RANDR for changes and try all the new ones (if any).

- ajax



[Bug 29389] New: [r300g] [bisected] hard locks in openarena with kernel 2.6.35

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29389

   Summary: [r300g] [bisected] hard locks in openarena with kernel
2.6.35
   Product: Mesa
   Version: git
  Platform: Other
OS/Version: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel at lists.freedesktop.org
ReportedBy: ghepeu at virgilio.it


Created an attachment (id=37557)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37557)
git-bisect.log

Yesterday I upgraded to kernel 2.6.35 and I had a lockup after playing for a
few second at openarena. The day before I had played for a few minutes without
any issue (testing r300g) so I immediately suspected the kernel.

I'm using a radeon x550 (rv370) with yesterday git snapshot of mesa and
xf86-video-ati and xorg-server 1.8.2.

Both r300c/DRI/UMS and r300c/DRI2/KMS dont' seem to suffer from the issue, only
gallium. Nothing unusual in the logs.

I bisected from 2.6.34 (good) to 2.6.35 (bad) and git bisect pointed to commit
eb1f8e4f3be898df808e2dfc131099f5831d491d

eb1f8e4f3be898df808e2dfc131099f5831d491d is the first bad commit
commit eb1f8e4f3be898df808e2dfc131099f5831d491d
Author: Dave Airlie 
Date:   Fri May 7 06:42:51 2010 +

drm/fbdev: rework output polling to be back in the core. (v4)

After thinking it over a lot it made more sense for the core to deal with
the output polling especially so it can notify X.

v2: drop plans for fake connector - per Michel's comments - fix X patch
sent to xorg-devel, add intel polled/hpd setting, add initial nouveau
polled/hpd settings.

v3: add config lock take inside polling, add intel/nouveau poll init/fini
calls

v4: config lock was a bit agressive, only needed around connector list
reading.
otherwise it could re-enter.

glisse: discard drm_helper_hpd_irq_event

v3: Reviewed-by: Michel D??nzer 
Signed-off-by: Dave Airlie 

:04 04 01a1bf1ae4e06bfd3ae9ae67b5b5059e964f5ae4
041231a5c060e531ce0d8127c6f7abc79c14ce76 Mdrivers
:04 04 b67fd6698fa239d26ca9fa2296ea2403e1eaaf1c
cadb905c6d8647313107790ce8b681f4611ee726 Minclude


I had to skip a few revisions because opengl didn't work at all and one
revision I'm not exactly sure it crashed for the same issue (the symptoms were
slightly different, it crashed after maybe two minutes instead of 5-30s) so I'm
not sure that that's the real culprit.

The bisection run took me a few hours and a lot of reboots, so I'm not exactly
eager to try it again...

The full git bisect log is attached.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #10 from Alex Deucher  2010-08-03 11:56:42 PDT 
---
(In reply to comment #9)
> I am awfully sorry, but I am not familiar with git/git-bitsect.
> Of course I will try every patch you can over and give you as much as possible
> details about the effect.

It's very easy. Assuming you have a git tree checked out:

git bisect start
git bisect good v2.6.34
git bisect bad v2.6.35

After that git will walk you through the rest.  It will check out the
appropriate commit, at which point you can compile it, test it, and if it's
good, run:
git bisect good
and if it's bad:
git bisect bad
and git will select the next commit and the process continues.  If there is a
commit that doesn't boot or build, you can skip it with:
git bisect skip

See this page for more info:
http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 27744] atombios stuck in loop - during suspend

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=27744

--- Comment #15 from Alex Deucher  2010-08-03 11:56:16 PDT 
---
(In reply to comment #12)

> Alex, I am pretty much a 'newb' when it comes to git and the kernel in general
> and currently git is making my brain hurt severely. When I have the time I 
> will
> read up more on git and try and work out an easy way to exclude unrelated
> commits that break my kernel and include bug fix commits that allow me to
> bisect this issue successfully. Any pointers to articles/howtos on dealing 
> with
> this specific kind of issue with git?

If there is a commit that doesn't boot or build, you can skip it with:
git bisect skip
and continue the bisection.

See this page for more info:
http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #9 from peterle at hottemptation.org 2010-08-03 11:41:29 PDT ---
I am awfully sorry, but I am not familiar with git/git-bitsect.
Of course I will try every patch you can over and give you as much as possible
details about the effect.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #8 from Alex Deucher  2010-08-03 11:30:16 PDT 
---
Can you use git bisect between 2.6.34 and 2.6.35 and track down which commit
causes the problem?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #18 from Alex Deucher  2010-08-03 11:28:11 PDT 
---
(In reply to comment #17)
> Great, the Ignore option did the trick! Thanks a bunch!
> 
> While it still feels like a bug, I'd understand if nothing can be done to it 
> so
> we might just as well close it as WONTFIX. You guys decide...

"Ignore" means you won't be able to use the connector at all during the life of
the xserver.  If the Disable/Enable options are broken, that's most likely a
xserver issue.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #7 from peterle at hottemptation.org 2010-08-03 11:16:04 PDT ---
Notice:
With the patch resuspend need ~7 seconds.
Withtout the patch resuspend needs ~ 3 seconds.

With old kernel 2.6.34 resuspend need ~ 1 second.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #6 from peterle at hottemptation.org 2010-08-03 11:13:58 PDT ---
Just to notice:
Switch from X11 to TTY1-6 is also still affected.
Switch from TTY1-6 to X11 is, like before, normal - this means: immediately

Switching from a TTY without access to /dev/fb* to a TTY with access (running
fbida or mplayer) is immediately. Switching from a TTY with access (running
fbida or mplayer) is slow. Closing fbida with "q" is also slow.
Closing of mplayer with "strg+c" is not possible. mplayer is it totally
freaking out.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #5 from peterle at hottemptation.org 2010-08-03 11:08:15 PDT ---
Thank you for your help.
But the answer is "No". I doesn't fix the slow resuspend (instead it feels
slower, no wonder...) and also not the slow TTY-Switch between the terminals if
/def/fb* is used. Both problems still exist.

To be honestly. Making a delay just longer doesn't look like a well solution.

Here is my dmesg output, maybe it helps (last lines):
PM: early resume of devices complete after 0.753 msecs
ehci_hcd :00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ehci_hcd :00:1a.0: setting latency timer to 64
HDA Intel :00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
HDA Intel :00:1b.0: setting latency timer to 64
ehci_hcd :00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
pci :00:1e.0: setting latency timer to 64
ehci_hcd :00:1d.0: setting latency timer to 64
HDA Intel :00:1b.0: irq 45 for MSI/MSI-X
ahci :00:1f.2: setting latency timer to 64
pci :00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
radeon :02:00.0: setting latency timer to 64
HDA Intel :02:00.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
HDA Intel :02:00.1: setting latency timer to 64
ath9k :05:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
HDA Intel :02:00.1: irq 46 for MSI/MSI-X
sd 0:0:0:0: [sda] Starting disk
[drm] Clocks initialized !
[drm] ring test succeeded in 1 usecs
[drm] ib test succeeded in 0 usecs
usb 2-1.5: reset high speed USB device using ehci_hcd and address 3
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: configured for UDMA/133
[drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked] *ERROR* atombios stuck executing CB5A (len 67,
WS 0, PS 0) @ 0xCB89
PM: resume of devices complete after 7531.240 msecs
Restarting tasks ... done.
video LNXVIDEO:00: Restoring backlight state
[ pm_notifier_block : 170 ] event :4

atl1c :03:00.0: irq 47 for MSI/MSI-X
ADDRCONF(NETDEV_UP): eth0: link is not ready
ADDRCONF(NETDEV_UP): wlan0: link is not ready
EXT4-fs (sda1): re-mounted. Opts: commit=0
EXT4-fs (sda2): re-mounted. Opts: commit=0
ath9k: Two wiphys trying to scan at the same time
ath9k: Two wiphys trying to scan at the same time
wlan0: deauthenticating from 00:1c:10:36:48:42 by local choice (reason=3)
wlan0: authenticate with 00:1c:10:36:48:42 (try 1)
wlan0: authenticated
wlan0: associate with 00:1c:10:36:48:42 (try 1)
wlan0: RX AssocResp from 00:1c:10:36:48:42 (capab=0x431 status=0 aid=1)
wlan0: associated
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
wlan0: no IPv6 routers present

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #17 from Marius Groeger  2010-08-03 
10:42:11 PDT ---
(In reply to comment #16)
> (In reply to comment #15)
> > Oops :-) However, unfortunately still no luck. "Enable" and "Disable" are
> > accepted and confirmed in Xorg.0.log, but the resolution is still switch to
> > 800x600. For some reason the probing seems to override the xorg.conf 
> > setting.
> > Any further ideas?
> Two things:
> 1) Option "Ignore" "true" in xorg.conf for your S-Video port
> 2) or try adding "radeon.tv=0" to your kernel commandline.

Great, the Ignore option did the trick! Thanks a bunch!

While it still feels like a bug, I'd understand if nothing can be done to it so
we might just as well close it as WONTFIX. You guys decide...

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 27901] GLSL cos/sin functions broken on Mesa R600 driver

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=27901

Alain Perrot  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED

--- Comment #24 from Alain Perrot  2010-08-03 
10:05:39 PDT ---
I've seen that Andre's patch has been committed to Mesa repository (commit
d6a5f94ea4d03b05c434fcad125d1f9c50c638e8), so I'm closing this bug as fixed.

Thanks again!

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29355] M92 : Xserver fails to start

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29355

--- Comment #4 from Alex Deucher  2010-08-03 09:27:04 PDT 
---
There's no radeon info in the dmesg.  What are the pci ids for your card?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #4 from Alex Deucher  2010-08-03 08:50:40 PDT 
---
Did the patch in bug 27744 help?  If not, can you use git bisect between 2.6.34
and 2.6.35 and track down which commit causes the problem?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bugme-new] [Bug 16488] New: [i915] Framebuffer ID error after suspend/hibernate leading to X crash

2010-08-03 Thread Linus Torvalds
On Tue, Aug 3, 2010 at 12:25 AM, Chris Wilson  
wrote:
> On Mon, 2 Aug 2010 16:55:03 -0700, Andrew Morton  linux-foundation.org> wrote:
>>
>> (switched to email. ?Please respond via emailed reply-to-all, not via the
>> bugzilla web interface).
>>
>> On Sun, 1 Aug 2010 08:55:49 GMT
>> bugzilla-daemon at bugzilla.kernel.org wrote:
>>
>> > https://bugzilla.kernel.org/show_bug.cgi?id=16488
>>
>> Innocuous-looking one-liner is said to have made Milan's X server even
>> worse than normal.
>
> We go from a random OOPS to a consistent error (and a failing userspace).
> It sounds more likely that we have uncovered a real bug, probably in
> the ddx.

I can't really imagine that that one-liner made the difference. Not
under any normal load. I suspect it just changes some allocation
pattern very subtly, and then the memory scribble (or whatever) that
really causes the bug perhaps changes.

The original oops reported in launchpad was

  BUG: unable to handle kernel NULL pointer dereference at 0108
  IP: [] intel_release_load_detect_pipe+0x27/0xb0 [i915]

and as far as I can tell, that's due to a load off a NULL crtc, here:

struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;

the disassembly is

   0:   55  push   %ebp
   1:   89 e5   mov%esp,%ebp
   3:   83 ec 14sub$0x14,%esp
   6:   89 5d f4mov%ebx,-0xc(%ebp)
   9:   89 75 f8mov%esi,-0x8(%ebp)
   c:   89 7d fcmov%edi,-0x4(%ebp)
   f:   0f 1f 44 00 00  nopl   0x0(%eax,%eax,1)
  14:   8b b0 ec 02 00 00   mov0x2ec(%eax),%esi   # crtc = encoder->crtc
  1a:   89 c3   mov%eax,%ebx
  1c:   8b 80 f4 02 00 00   mov0x2f4(%eax),%eax   # dev = encoder->dev
  22:   89 d7   mov%edx,%edi
  24:   89 45 f0mov%eax,-0x10(%ebp)
  27:*  8b 8e 08 01 00 00   mov0x108(%esi),%ecx <-- trapping
instruction (crtc_funcs = crtc->helper_private)
  2d:   80 bb 04 03 00 00 00cmpb   $0x0,0x304(%ebx)   #
intel_encoder->load_detect_temp
  34:   75 2a   jne0x60
  36:   0f b6 46 18 movzbl 0x18(%esi),%eax  # crtc->enabled
  3a:   84 c0   test   %al,%al

in case anybody cares. However, I have no idea how ctrc would be NULL
in the first place there, it comes from

struct drm_encoder *encoder = _encoder->enc;
...
struct drm_crtc *crtc = encoder->crtc;

and I don't know the setup code. It _does_ strike me that the C code does:

...
struct drm_crtc *crtc = encoder->crtc;
struct drm_encoder_helper_funcs *encoder_funcs =
encoder->helper_private;
struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;

if (intel_encoder->load_detect_temp) {
encoder->crtc = NULL;
connector->encoder = NULL;


where I react to the fact that first we load "crtc = encoder->crtc"
and dereference that pointer (crtc->helper_private) without checking
whether it might be NULL, and then in some case we clear that field
(encoder->crtc = NULL), so clearly the whole "encoder->crtc" field
_can_ be NULL.

However, I don't see why it should only show up for some people...

  Linus


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

Alex Deucher  changed:

   What|Removed |Added

  Attachment #37545|application/octet-stream|text/plain
  mime type||
  Attachment #37545|0   |1
   is patch||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

Alex Deucher  changed:

   What|Removed |Added

  Attachment #37544|application/octet-stream|text/plain
  mime type||
  Attachment #37544|0   |1
   is patch||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

Alex Deucher  changed:

   What|Removed |Added

  Attachment #37543|application/octet-stream|text/plain
  mime type||
  Attachment #37543|0   |1
   is patch||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[PATCH] light weight drm fbdev panning

2010-08-03 Thread Dave Airlie
On Tue, Aug 3, 2010 at 8:01 AM, James Simmons  wrote:
>
> This patch uses the much lighter mode_set_base instead of calling a full
> mode set. Tested on a i915 netbook. Patch should be against drm-core-next.

The kms code should always fallback if appropriate, I've definitely
seen some modesets I thought were triggered by the pan_display
codepath, so I'd expect if we add this, we might some base sets at the
wrong time. Unless we can prove we only get pan_displays when
expected.

Dave.

>
> Signed-By: James Simmons 
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 7196620..99889e3 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -730,15 +730,20 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo 
> *var,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?struct fb_info *info)
> ?{
> ? ? ? ?struct drm_fb_helper *fb_helper = info->par;
> + ? ? ? struct drm_crtc_helper_funcs *crtc_funcs;
> ? ? ? ?struct drm_device *dev = fb_helper->dev;
> ? ? ? ?struct drm_mode_set *modeset;
> ? ? ? ?struct drm_crtc *crtc;
> - ? ? ? int ret = 0;
> + ? ? ? int ret = -ENXIO;
> ? ? ? ?int i;
>
> ? ? ? ?mutex_lock(>mode_config.mutex);
> ? ? ? ?for (i = 0; i < fb_helper->crtc_count; i++) {
> ? ? ? ? ? ? ? ?crtc = fb_helper->crtc_info[i].mode_set.crtc;
> + ? ? ? ? ? ? ? crtc_funcs = crtc->helper_private;
> +
> + ? ? ? ? ? ? ? if (!crtc_funcs->mode_set_base)
> + ? ? ? ? ? ? ? ? ? ? ? continue;
>
> ? ? ? ? ? ? ? ?modeset = _helper->crtc_info[i].mode_set;
>
> @@ -746,7 +751,8 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo 
> *var,
> ? ? ? ? ? ? ? ?modeset->y = var->yoffset;
>
> ? ? ? ? ? ? ? ?if (modeset->num_connectors) {
> - ? ? ? ? ? ? ? ? ? ? ? ret = crtc->funcs->set_config(modeset);
> + ? ? ? ? ? ? ? ? ? ? ? ret = crtc_funcs->mode_set_base(crtc, modeset->x,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? modeset->y, crtc->fb);
> ? ? ? ? ? ? ? ? ? ? ? ?if (!ret) {
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?info->var.xoffset = var->xoffset;
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?info->var.yoffset = var->yoffset;
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>


[Bugme-new] [Bug 16488] New: [i915] Framebuffer ID error after suspend/hibernate leading to X crash

2010-08-03 Thread Chris Wilson
On Mon, 2 Aug 2010 16:55:03 -0700, Andrew Morton  
wrote:
> 
> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
> 
> On Sun, 1 Aug 2010 08:55:49 GMT
> bugzilla-daemon at bugzilla.kernel.org wrote:
> 
> > https://bugzilla.kernel.org/show_bug.cgi?id=16488
> 
> Innocuous-looking one-liner is said to have made Milan's X server even
> worse than normal.

We go from a random OOPS to a consistent error (and a failing userspace).
It sounds more likely that we have uncovered a real bug, probably in
the ddx.

-- 
Chris Wilson, Intel Open Source Technology Centre


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #3 from peterle at hottemptation.org 2010-08-03 08:06:47 PDT ---
Of course I have the problem with delayed resuspend "atombios stuck", too.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #2 from peterle at hottemptation.org 2010-08-03 08:05:54 PDT ---
Created an attachment (id=37545)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37545)
dmesg after resuspend

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29384] New: Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29384

   Summary: Slow switch between TTY1-TTY6 with /dev/fb0 or X11
involved
   Product: DRI
   Version: unspecified
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel at lists.freedesktop.org
ReportedBy: peterle at hottemptation.org


Created an attachment (id=37543)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37543)
lspci of acer timelinex 3820tg

Hello I made maybe a mistake and don't opened a new bug. But for additional
information the old bug could be helpful, see here:
https://bugs.freedesktop.org/show_bug.cgi?id=27744

Hardware: Radeon 5650
Kernel: 2.6.34
Status: everything is running fine

Hardware: Radeon 5650
Kernel: 2.6.35-rc6 and 2.6.35
Status: everything runs but with glitches

I have just use the TTY1-6 and switch between them everything is still okay
with "2.6.35" but if the switch between TTY which are running applications with
access to /dev/fb0 I got delays around 3 or 4 seconds when I switch away from
TTY which is running fbida (framebuffer-image-viewer) or mplayer.
I case of mplayer this could lead to an uncontrolable system, only reaching the
end of the movie gives here control back (help: MagicSysR, blind reboot or
blind killing of mplayer).

Switching away from TTY7 with running X11 leads also to an delay around 3 or 4
seconds very similar to the delay which occurs while running fbida.
I think a connection between the "stuck atombios" problem and this problem
could existed, but I am not sure. This could also a own dedicated problem, so I
opened this bug.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 27744] atombios stuck in loop - during suspend

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=27744

--- Comment #14 from peterle at hottemptation.org 2010-08-03 07:37:05 PDT ---
Created an attachment (id=37542)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37542)
dmesg log

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 27744] atombios stuck in loop - during suspend

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=27744

--- Comment #13 from peterle at hottemptation.org 2010-08-03 07:35:43 PDT ---
Hello!
I use a Radeon 5650 (Acer TimelineX 3820TG with switch off Intel-Graphics!),
all run's fine with Kernel "2.6.34.1" including KMS, Suspend to RAM, tty1-6
Framebuffer and X11 as well as switching between them.

With 2.6.35 (and rc6) I have the same "Stuck-Message" as the other people here,
but I am afraid this is just the tip of the iceberg!

* wakeup from Suspend is slow, according to the "Stuck-Message"
* switching between TTY1-6 works normal as long nobody use the /dev/fb0
(interesting) device like fbida or mplayer

FBIDA:
Loading of a image or switching between images is normal, but switching away
from the TTY which is running FBIDA is extremly slow. Switching back to the TTY
is as fast as normal.
MPLAYER:
Same as with mplayer, but here it becomes very difficult to get the system back
"under control". Please test this only with short videos, because normally
everyting runes fine after mplayer closed itself. I advice to be patient and
reboot "blind" or use MagicSysRescue if you don't get the control back.
*switching between TTY1-6 and TTY7 (where X11 is launched) is also extremly
slow, similar to FBIDA


I think the problem behind is much bigger. Someone should check the updates
between 2.6.34 and 2.6.35 and if possible fix it fast: window for kernel 2.6.36
is closing in two weeks

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29383] [r300g] Panzers II: terrain textures all black

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29383

--- Comment #1 from Fabio Pedretti  2010-08-03 07:28:17 
PDT ---
Screnshots here due to size limit:

r300g:
http://a.imageshack.us/img837/8601/r300g.png

r300 classic:
http://a.imageshack.us/img192/5466/r300.png

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29383] New: [r300g] Panzers II: terrain textures all black

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29383

   Summary: [r300g] Panzers II: terrain textures all black
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel at lists.freedesktop.org
ReportedBy: fabio.ped at libero.it


With r300g and wine game Panzers II terrain is all black. It's still not
perfect also with classic r300 (there is a stripe effect) but at least textures
are visible. Screenshots with both drivers are attached.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

Marek Ol??k  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #5 from Marek Ol??k  2010-08-03 06:56:04 PDT 
---
Pushed, closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #16 from Daniel  2010-08-03 06:31:26 
PDT ---
(In reply to comment #15)
> Oops :-) However, unfortunately still no luck. "Enable" and "Disable" are
> accepted and confirmed in Xorg.0.log, but the resolution is still switch to
> 800x600. For some reason the probing seems to override the xorg.conf setting.
> Any further ideas?
Two things:
1) Option "Ignore" "true" in xorg.conf for your S-Video port
2) or try adding "radeon.tv=0" to your kernel commandline.

Option 2 does not work for me as the machine seems to freeze with it. However
you might have more luck ;)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29355] M92 : Xserver fails to start

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29355

--- Comment #3 from samit vats  2010-08-03 05:56:19 PDT 
---
Created an attachment (id=37540)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=37540)
dmesg.txt

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

--- Comment #4 from Fabio Pedretti  2010-08-03 05:40:55 
PDT ---
(In reply to comment #3)
> Created an attachment (id=37539)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37539
 Review: https://bugs.freedesktop.org/review?bug=29372=37539

> possible fix v2
> 
> Ah, of course it does. This fixed patch should work, can you test?

Yes, the warnings are no longer printed now.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 28955] [r300g]: refresh/update/damage issues using compiz.

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=28955

--- Comment #5 from Marek Ol??k  2010-08-03 05:40:08 PDT 
---
Does r300c have this issue?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

Marek Ol??k  changed:

   What|Removed |Added

  Attachment #37538|0   |1
is obsolete||

--- Comment #3 from Marek Ol??k  2010-08-03 05:31:13 PDT 
---
Created an attachment (id=37539)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37539
 Review: https://bugs.freedesktop.org/review?bug=29372=37539

possible fix v2

Ah, of course it does. This fixed patch should work, can you test?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #15 from Marius Groeger  2010-08-03 
05:25:41 PDT ---
(In reply to comment #14)
> Option "Enable" "False"
> However, some older xservers (maybe recent ones too), do not deal with enable
> false, you need to use:
> Option "Disable" "True"

Oops :-) However, unfortunately still no luck. "Enable" and "Disable" are
accepted and confirmed in Xorg.0.log, but the resolution is still switch to
800x600. For some reason the probing seems to override the xorg.conf setting.
Any further ideas?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

--- Comment #2 from Fabio Pedretti  2010-08-03 05:22:31 
PDT ---
(In reply to comment #1)
> Created an attachment (id=37538)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37538
 Review: https://bugs.freedesktop.org/review?bug=29372=37538

> possible fix
> 
> Could you try this patch?

It instantly crash with it:

Program received signal SIGSEGV, Segmentation fault.
r300_bind_rs_state (pipe=0x84f7440, state=0x0) at r300_state.c:1110
1110r300->rs_state.size = 25 + (rs->polygon_offset_enable ? 5 : 0);
(gdb) bt
#0  r300_bind_rs_state (pipe=0x84f7440, state=0x0) at r300_state.c:1110
#1  0xaf49c09e in blitter_restore_CSOs (ctx=0x85098b0) at util/u_blitter.c:296
#2  0xaf49d5e1 in util_blitter_copy_region (blitter=0x85098b0, dst=0xae65d3f8,
subdst=..., dstx=0, dsty=0, dstz=0, src=0xae65d5a0, 
subsrc=..., srcx=0, srcy=0, srcz=0, width=64, height=64, ignore_stencil=1
'\001') at util/u_blitter.c:837
#3  0xaf30d562 in r300_hw_copy_region (pipe=0x84f7440, dst=0xae65d3f8,
subdst=..., dstx=0, dsty=0, dstz=0, src=0xae65d5a0, subsrc=..., 
srcx=0, srcy=0, srcz=0, width=64, height=64) at r300_blit.c:237
#4  r300_resource_copy_region (pipe=0x84f7440, dst=0xae65d3f8, subdst=...,
dstx=0, dsty=0, dstz=0, src=0xae65d5a0, subsrc=..., srcx=0, 
srcy=0, srcz=0, width=64, height=64) at r300_blit.c:292
#5  0xaf2f4c25 in r300_copy_into_tiled_texture (ctx=0x84f7440,
trans=0xae651d88) at r300_transfer.c:78
#6  r300_texture_transfer_destroy (ctx=0x84f7440, trans=0xae651d88) at
r300_transfer.c:223
#7  0xaf4c7c1a in u_transfer_destroy_vtbl (pipe=0x84f7440, transfer=0xae651d88)
at util/u_resource.c:49
#8  0xaf411f56 in st_texture_image_unmap (st=0x858d828, stImage=0xae651c98) at
state_tracker/st_texture.c:168
#9  0xaf4500ea in st_TexImage (ctx=, dims=, target=3553, level=0, internalFormat=32849, width=64, 
height=64, depth=1, border=0, format=32992, type=5121, pixels=0xaeeab000,
unpack=0x855e060, texObj=0xae651a78, texImage=0xae651c98, 
imageSize=0, compressed_src=0 '\000') at state_tracker/st_cb_texture.c:765
#10 0xaf450afb in st_TexImage2D (ctx=0x854f248, target=3553, level=0,
internalFormat=32849, width=64, height=64, border=0, format=32992, 
type=5121, pixels=0xaeeab000, unpack=0x855e060, texObj=0xae651a78,
texImage=0xae651c98) at state_tracker/st_cb_texture.c:798
#11 0xaf3aac54 in _mesa_TexImage2D (target=3553, level=0, internalFormat=32849,
width=64, height=64, border=0, format=32992, type=5121, 
pixels=0xaeeab000) at main/teximage.c:2409

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

--- Comment #1 from Marek Ol??k  2010-08-03 05:17:01 PDT 
---
Created an attachment (id=37538)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37538
 Review: https://bugs.freedesktop.org/review?bug=29372=37538

possible fix

Could you try this patch?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 29372] New: [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=29372

   Summary: [r300g] r300: Warning: cs_count off by 5 at
(r300_emit_rs_state, r300_emit.c:629)
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel at lists.freedesktop.org
ReportedBy: fabio.ped at libero.it


Using the game 0ad pre-alpha3 7732 with RV530 on current git master:

1) start a game
2) clic on Menu -> Settings -> enable Developer Overlay -> OK
3) clic on Pathfinder overlay
4) Move some unit on the maps

Hundreds of message like the following appears:
r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[PATCH] expand gamma_set

2010-08-03 Thread James Simmons

Expand the crtc_gamma_set function to accept a starting offset. The 
reason for this is to eventually use this function for setcolreg from 
drm_fb_helper.c. The fbdev colormap function can start at any offset in 
the color map.

Signed-by: James Simmons 

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 4c68f76..a06d1da 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -2541,7 +2541,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
goto out;
}

-   crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, crtc->gamma_size);
+   crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, 
crtc->gamma_size);

 out:
mutex_unlock(>mode_config.mutex);
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index f879589..07a430c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4096,15 +4096,12 @@ void intel_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 
*red, u16 *green,
 }

 static void intel_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
-u16 *blue, uint32_t size)
+u16 *blue, uint32_t start, uint32_t size)
 {
+   int end = (start + size > 256) ? 256 : start + size, i;
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-   int i;
-
-   if (size != 256)
-   return;

-   for (i = 0; i < 256; i++) {
+   for (i = start; i < end; i++) {
intel_crtc->lut_r[i] = red[i] >> 8;
intel_crtc->lut_g[i] = green[i] >> 8;
intel_crtc->lut_b[i] = blue[i] >> 8;
diff --git a/drivers/gpu/drm/nouveau/nv04_crtc.c 
b/drivers/gpu/drm/nouveau/nv04_crtc.c
index 1c20c08..88bb4ce 100644
--- a/drivers/gpu/drm/nouveau/nv04_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv04_crtc.c
@@ -739,15 +739,13 @@ nv_crtc_gamma_load(struct drm_crtc *crtc)
 }

 static void
-nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t size)
+nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t 
start,
+ uint32_t size)
 {
+   int end = (start + size > 256) ? 256 : start + size, i;
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
-   int i;
-
-   if (size != 256)
-   return;

-   for (i = 0; i < 256; i++) {
+   for (i = start; i < end; i++) {
nv_crtc->lut.r[i] = r[i];
nv_crtc->lut.g[i] = g[i];
nv_crtc->lut.b[i] = b[i];
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c 
b/drivers/gpu/drm/nouveau/nv50_crtc.c
index 5d11ea1..2f5f2f2 100644
--- a/drivers/gpu/drm/nouveau/nv50_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
@@ -381,15 +381,12 @@ nv50_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)

 static void
 nv50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
-   uint32_t size)
+   uint32_t start, uint32_t size)
 {
+   int end = (start + size > 256) ? 256 : start + size, i;
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
-   int i;
-
-   if (size != 256)
-   return;

-   for (i = 0; i < 256; i++) {
+   for (i = start; i < end; i++) {
nv_crtc->lut.r[i] = r[i];
nv_crtc->lut.g[i] = g[i];
nv_crtc->lut.b[i] = b[i];
diff --git a/drivers/gpu/drm/radeon/radeon_display.c 
b/drivers/gpu/drm/radeon/radeon_display.c
index 283beed..64e69fd 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -161,17 +161,13 @@ void radeon_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 
*red, u16 *green,
 }

 static void radeon_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
- u16 *blue, uint32_t size)
+ u16 *blue, uint32_t start, uint32_t size)
 {
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
-   int i;
-
-   if (size != 256) {
-   return;
-   }
+   int end = (start + size > 256) ? 256 : start + size, i;

/* userspace palettes are always correct as is */
-   for (i = 0; i < 256; i++) {
+   for (i = start; i < end; i++) {
radeon_crtc->lut_r[i] = red[i] >> 6;
radeon_crtc->lut_g[i] = green[i] >> 6;
radeon_crtc->lut_b[i] = blue[i] >> 6;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index cfaf690..2ff5cf7 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -79,7 +79,7 @@ static void vmw_ldu_crtc_restore(struct drm_crtc *crtc)

 static void vmw_ldu_crtc_gamma_set(struct drm_crtc *crtc,
   u16 *r, u16 *g, u16 *b,
-  uint32_t size)
+  uint32_t start, uint32_t size)
 {
 }

diff --git 

[Bug 26428] [KMS] doom3-demo aborts early on rv280

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=26428

Fabio Pedretti  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #16 from Fabio Pedretti  2010-08-03 
00:01:22 PDT ---
Patches merged in 2.6.34.2 and 2.6.35.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 28459] [r300g] Heroes of Newerth slow and corrupted with libtxc_dxtn.so

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=28459

--- Comment #17 from Fabio Pedretti  2010-08-02 
23:59:18 PDT ---
This is also fixed in 2.6.34.2.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


[Bug 28411] Output polling causes latency every 10 seconds

2010-08-03 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=28411

Marius Groeger  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #2 from Marius Groeger  2010-08-02 
23:04:24 PDT ---
Fixed in 2.6.35 final, 29508eb66bfacdef324d2199eeaea31e0cdfaa29
drm/radeon/kms: drop taking lock around crtc lookup.

Thanks Dave!

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.
You are the assignee for the bug.


[PATCH] light weight drm fbdev panning

2010-08-03 Thread James Simmons

This patch uses the much lighter mode_set_base instead of calling a full 
mode set. Tested on a i915 netbook. Patch should be against drm-core-next.

Signed-By: James Simmons 

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 7196620..99889e3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -730,15 +730,20 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo 
*var,
  struct fb_info *info)
 {
struct drm_fb_helper *fb_helper = info->par;
+   struct drm_crtc_helper_funcs *crtc_funcs;
struct drm_device *dev = fb_helper->dev;
struct drm_mode_set *modeset;
struct drm_crtc *crtc;
-   int ret = 0;
+   int ret = -ENXIO;
int i;

mutex_lock(>mode_config.mutex);
for (i = 0; i < fb_helper->crtc_count; i++) {
crtc = fb_helper->crtc_info[i].mode_set.crtc;
+   crtc_funcs = crtc->helper_private;
+
+   if (!crtc_funcs->mode_set_base)
+   continue;

modeset = _helper->crtc_info[i].mode_set;

@@ -746,7 +751,8 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var,
modeset->y = var->yoffset;

if (modeset->num_connectors) {
-   ret = crtc->funcs->set_config(modeset);
+   ret = crtc_funcs->mode_set_base(crtc, modeset->x,
+   modeset->y, crtc->fb);
if (!ret) {
info->var.xoffset = var->xoffset;
info->var.yoffset = var->yoffset;


[Bug 28459] [r300g] Heroes of Newerth slow and corrupted with libtxc_dxtn.so

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=28459

--- Comment #17 from Fabio Pedretti fabio@libero.it 2010-08-02 23:59:18 
PDT ---
This is also fixed in 2.6.34.2.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 26428] [KMS] doom3-demo aborts early on rv280

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=26428

Fabio Pedretti fabio@libero.it changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #16 from Fabio Pedretti fabio@libero.it 2010-08-03 00:01:22 
PDT ---
Patches merged in 2.6.34.2 and 2.6.35.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [Bugme-new] [Bug 16488] New: [i915] Framebuffer ID error after suspend/hibernate leading to X crash

2010-08-03 Thread Chris Wilson
On Mon, 2 Aug 2010 16:55:03 -0700, Andrew Morton a...@linux-foundation.org 
wrote:
 
 (switched to email.  Please respond via emailed reply-to-all, not via the
 bugzilla web interface).
 
 On Sun, 1 Aug 2010 08:55:49 GMT
 bugzilla-dae...@bugzilla.kernel.org wrote:
 
  https://bugzilla.kernel.org/show_bug.cgi?id=16488
 
 Innocuous-looking one-liner is said to have made Milan's X server even
 worse than normal.

We go from a random OOPS to a consistent error (and a failing userspace).
It sounds more likely that we have uncovered a real bug, probably in
the ddx.

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


[Bug 29372] New: [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29372

   Summary: [r300g] r300: Warning: cs_count off by 5 at
(r300_emit_rs_state, r300_emit.c:629)
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: fabio@libero.it


Using the game 0ad pre-alpha3 7732 with RV530 on current git master:

1) start a game
2) clic on Menu - Settings - enable Developer Overlay - OK
3) clic on Pathfinder overlay
4) Move some unit on the maps

Hundreds of message like the following appears:
r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29372

Marek Olšák mar...@gmail.com changed:

   What|Removed |Added

  Attachment #37538|0   |1
is obsolete||

--- Comment #3 from Marek Olšák mar...@gmail.com 2010-08-03 05:31:13 PDT ---
Created an attachment (id=37539)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37539
 Review: https://bugs.freedesktop.org/review?bug=29372attachment=37539

possible fix v2

Ah, of course it does. This fixed patch should work, can you test?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 28955] [r300g]: refresh/update/damage issues using compiz.

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=28955

--- Comment #5 from Marek Olšák mar...@gmail.com 2010-08-03 05:40:08 PDT ---
Does r300c have this issue?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29372

--- Comment #4 from Fabio Pedretti fabio@libero.it 2010-08-03 05:40:55 
PDT ---
(In reply to comment #3)
 Created an attachment (id=37539)
 View: https://bugs.freedesktop.org/attachment.cgi?id=37539
 Review: https://bugs.freedesktop.org/review?bug=29372attachment=37539

 possible fix v2
 
 Ah, of course it does. This fixed patch should work, can you test?

Yes, the warnings are no longer printed now.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #16 from Daniel di...@betriebsdirektor.de 2010-08-03 06:31:26 PDT 
---
(In reply to comment #15)
 Oops :-) However, unfortunately still no luck. Enable and Disable are
 accepted and confirmed in Xorg.0.log, but the resolution is still switch to
 800x600. For some reason the probing seems to override the xorg.conf setting.
 Any further ideas?
Two things:
1) Option Ignore true in xorg.conf for your S-Video port
2) or try adding radeon.tv=0 to your kernel commandline.

Option 2 does not work for me as the machine seems to freeze with it. However
you might have more luck ;)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29372] [r300g] r300: Warning: cs_count off by 5 at (r300_emit_rs_state, r300_emit.c:629)

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29372

Marek Olšák mar...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #5 from Marek Olšák mar...@gmail.com 2010-08-03 06:56:04 PDT ---
Pushed, closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29383] New: [r300g] Panzers II: terrain textures all black

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29383

   Summary: [r300g] Panzers II: terrain textures all black
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: fabio@libero.it


With r300g and wine game Panzers II terrain is all black. It's still not
perfect also with classic r300 (there is a stripe effect) but at least textures
are visible. Screenshots with both drivers are attached.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 27744] atombios stuck in loop - during suspend

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27744

--- Comment #13 from pete...@hottemptation.org 2010-08-03 07:35:43 PDT ---
Hello!
I use a Radeon 5650 (Acer TimelineX 3820TG with switch off Intel-Graphics!),
all run's fine with Kernel 2.6.34.1 including KMS, Suspend to RAM, tty1-6
Framebuffer and X11 as well as switching between them.

With 2.6.35 (and rc6) I have the same Stuck-Message as the other people here,
but I am afraid this is just the tip of the iceberg!

* wakeup from Suspend is slow, according to the Stuck-Message
* switching between TTY1-6 works normal as long nobody use the /dev/fb0
(interesting) device like fbida or mplayer

FBIDA:
Loading of a image or switching between images is normal, but switching away
from the TTY which is running FBIDA is extremly slow. Switching back to the TTY
is as fast as normal.
MPLAYER:
Same as with mplayer, but here it becomes very difficult to get the system back
under control. Please test this only with short videos, because normally
everyting runes fine after mplayer closed itself. I advice to be patient and
reboot blind or use MagicSysRescue if you don't get the control back.
*switching between TTY1-6 and TTY7 (where X11 is launched) is also extremly
slow, similar to FBIDA


I think the problem behind is much bigger. Someone should check the updates
between 2.6.34 and 2.6.35 and if possible fix it fast: window for kernel 2.6.36
is closing in two weeks

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] New: Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

   Summary: Slow switch between TTY1-TTY6 with /dev/fb0 or X11
involved
   Product: DRI
   Version: unspecified
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: pete...@hottemptation.org


Created an attachment (id=37543)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=37543)
lspci of acer timelinex 3820tg

Hello I made maybe a mistake and don't opened a new bug. But for additional
information the old bug could be helpful, see here:
https://bugs.freedesktop.org/show_bug.cgi?id=27744

Hardware: Radeon 5650
Kernel: 2.6.34
Status: everything is running fine

Hardware: Radeon 5650
Kernel: 2.6.35-rc6 and 2.6.35
Status: everything runs but with glitches

I have just use the TTY1-6 and switch between them everything is still okay
with 2.6.35 but if the switch between TTY which are running applications with
access to /dev/fb0 I got delays around 3 or 4 seconds when I switch away from
TTY which is running fbida (framebuffer-image-viewer) or mplayer.
I case of mplayer this could lead to an uncontrolable system, only reaching the
end of the movie gives here control back (help: MagicSysR, blind reboot or
blind killing of mplayer).

Switching away from TTY7 with running X11 leads also to an delay around 3 or 4
seconds very similar to the delay which occurs while running fbida.
I think a connection between the stuck atombios problem and this problem
could existed, but I am not sure. This could also a own dedicated problem, so I
opened this bug.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #2 from pete...@hottemptation.org 2010-08-03 08:05:54 PDT ---
Created an attachment (id=37545)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=37545)
dmesg after resuspend

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #3 from pete...@hottemptation.org 2010-08-03 08:06:47 PDT ---
Of course I have the problem with delayed resuspend atombios stuck, too.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

  Attachment #37543|application/octet-stream|text/plain
  mime type||
  Attachment #37543|0   |1
   is patch||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [Bugme-new] [Bug 16488] New: [i915] Framebuffer ID error after suspend/hibernate leading to X crash

2010-08-03 Thread Linus Torvalds
On Tue, Aug 3, 2010 at 12:25 AM, Chris Wilson ch...@chris-wilson.co.uk wrote:
 On Mon, 2 Aug 2010 16:55:03 -0700, Andrew Morton a...@linux-foundation.org 
 wrote:

 (switched to email.  Please respond via emailed reply-to-all, not via the
 bugzilla web interface).

 On Sun, 1 Aug 2010 08:55:49 GMT
 bugzilla-dae...@bugzilla.kernel.org wrote:

  https://bugzilla.kernel.org/show_bug.cgi?id=16488

 Innocuous-looking one-liner is said to have made Milan's X server even
 worse than normal.

 We go from a random OOPS to a consistent error (and a failing userspace).
 It sounds more likely that we have uncovered a real bug, probably in
 the ddx.

I can't really imagine that that one-liner made the difference. Not
under any normal load. I suspect it just changes some allocation
pattern very subtly, and then the memory scribble (or whatever) that
really causes the bug perhaps changes.

The original oops reported in launchpad was

  BUG: unable to handle kernel NULL pointer dereference at 0108
  IP: [f8578b97] intel_release_load_detect_pipe+0x27/0xb0 [i915]

and as far as I can tell, that's due to a load off a NULL crtc, here:

struct drm_crtc_helper_funcs *crtc_funcs = crtc-helper_private;

the disassembly is

   0:   55  push   %ebp
   1:   89 e5   mov%esp,%ebp
   3:   83 ec 14sub$0x14,%esp
   6:   89 5d f4mov%ebx,-0xc(%ebp)
   9:   89 75 f8mov%esi,-0x8(%ebp)
   c:   89 7d fcmov%edi,-0x4(%ebp)
   f:   0f 1f 44 00 00  nopl   0x0(%eax,%eax,1)
  14:   8b b0 ec 02 00 00   mov0x2ec(%eax),%esi   # crtc = encoder-crtc
  1a:   89 c3   mov%eax,%ebx
  1c:   8b 80 f4 02 00 00   mov0x2f4(%eax),%eax   # dev = encoder-dev
  22:   89 d7   mov%edx,%edi
  24:   89 45 f0mov%eax,-0x10(%ebp)
  27:*  8b 8e 08 01 00 00   mov0x108(%esi),%ecx -- trapping
instruction (crtc_funcs = crtc-helper_private)
  2d:   80 bb 04 03 00 00 00cmpb   $0x0,0x304(%ebx)   #
intel_encoder-load_detect_temp
  34:   75 2a   jne0x60
  36:   0f b6 46 18 movzbl 0x18(%esi),%eax  # crtc-enabled
  3a:   84 c0   test   %al,%al

in case anybody cares. However, I have no idea how ctrc would be NULL
in the first place there, it comes from

struct drm_encoder *encoder = intel_encoder-enc;
...
struct drm_crtc *crtc = encoder-crtc;

and I don't know the setup code. It _does_ strike me that the C code does:

...
struct drm_crtc *crtc = encoder-crtc;
struct drm_encoder_helper_funcs *encoder_funcs =
encoder-helper_private;
struct drm_crtc_helper_funcs *crtc_funcs = crtc-helper_private;

if (intel_encoder-load_detect_temp) {
encoder-crtc = NULL;
connector-encoder = NULL;


where I react to the fact that first we load crtc = encoder-crtc
and dereference that pointer (crtc-helper_private) without checking
whether it might be NULL, and then in some case we clear that field
(encoder-crtc = NULL), so clearly the whole encoder-crtc field
_can_ be NULL.

However, I don't see why it should only show up for some people...

  Linus
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29355] M92 : Xserver fails to start

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29355

--- Comment #4 from Alex Deucher ag...@yahoo.com 2010-08-03 09:27:04 PDT ---
There's no radeon info in the dmesg.  What are the pci ids for your card?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 24973] [r300 KMS] KMS uses wrong display resulution, xrandr causes X to crash

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=24973

--- Comment #17 from Marius Groeger marius.groe...@web.de 2010-08-03 10:42:11 
PDT ---
(In reply to comment #16)
 (In reply to comment #15)
  Oops :-) However, unfortunately still no luck. Enable and Disable are
  accepted and confirmed in Xorg.0.log, but the resolution is still switch to
  800x600. For some reason the probing seems to override the xorg.conf 
  setting.
  Any further ideas?
 Two things:
 1) Option Ignore true in xorg.conf for your S-Video port
 2) or try adding radeon.tv=0 to your kernel commandline.

Great, the Ignore option did the trick! Thanks a bunch!

While it still feels like a bug, I'd understand if nothing can be done to it so
we might just as well close it as WONTFIX. You guys decide...

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #6 from pete...@hottemptation.org 2010-08-03 11:13:58 PDT ---
Just to notice:
Switch from X11 to TTY1-6 is also still affected.
Switch from TTY1-6 to X11 is, like before, normal - this means: immediately

Switching from a TTY without access to /dev/fb* to a TTY with access (running
fbida or mplayer) is immediately. Switching from a TTY with access (running
fbida or mplayer) is slow. Closing fbida with q is also slow.
Closing of mplayer with strg+c is not possible. mplayer is it totally
freaking out.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #7 from pete...@hottemptation.org 2010-08-03 11:16:04 PDT ---
Notice:
With the patch resuspend need ~7 seconds.
Withtout the patch resuspend needs ~ 3 seconds.

With old kernel 2.6.34 resuspend need ~ 1 second.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #8 from Alex Deucher ag...@yahoo.com 2010-08-03 11:30:16 PDT ---
Can you use git bisect between 2.6.34 and 2.6.35 and track down which commit
causes the problem?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[RFC] EDID parser updates

2010-08-03 Thread Adam Jackson
Some cosmetic cleanups, and then some changes to add more modes than we
were before.  6 and 7 are the particularly touchy bits; I'd like a bit of
volunteer testing before landing it on drm-core-next, particularly on
HDMI monitors.  Note that this is mostly about doing more with things
other than your preferred mode, so be sure to check the mode list you get
from RANDR for changes and try all the new ones (if any).

- ajax

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/7] drm: Remove unused fields from drm_display_info

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c |   15 ---
 include/drm/drm_crtc.h |   35 +--
 2 files changed, 1 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 83d8072..e668084 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1655,23 +1655,8 @@ int drm_add_edid_modes(struct drm_connector *connector, 
struct edid *edid)
if (quirks  (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
edid_fixup_preferred(connector, quirks);
 
-   connector-display_info.serration_vsync = (edid-input  
DRM_EDID_INPUT_SERRATION_VSYNC) ? 1 : 0;
-   connector-display_info.sync_on_green = (edid-input  
DRM_EDID_INPUT_SYNC_ON_GREEN) ? 1 : 0;
-   connector-display_info.composite_sync = (edid-input  
DRM_EDID_INPUT_COMPOSITE_SYNC) ? 1 : 0;
-   connector-display_info.separate_syncs = (edid-input  
DRM_EDID_INPUT_SEPARATE_SYNCS) ? 1 : 0;
-   connector-display_info.blank_to_black = (edid-input  
DRM_EDID_INPUT_BLANK_TO_BLACK) ? 1 : 0;
-   connector-display_info.video_level = (edid-input  
DRM_EDID_INPUT_VIDEO_LEVEL)  5;
-   connector-display_info.digital = (edid-input  
DRM_EDID_INPUT_DIGITAL) ? 1 : 0;
connector-display_info.width_mm = edid-width_cm * 10;
connector-display_info.height_mm = edid-height_cm * 10;
-   connector-display_info.gamma = edid-gamma;
-   connector-display_info.gtf_supported = (edid-features  
DRM_EDID_FEATURE_DEFAULT_GTF) ? 1 : 0;
-   connector-display_info.standard_color = (edid-features  
DRM_EDID_FEATURE_STANDARD_COLOR) ? 1 : 0;
-   connector-display_info.display_type = (edid-features  
DRM_EDID_FEATURE_DISPLAY_TYPE)  3;
-   connector-display_info.active_off_supported = (edid-features  
DRM_EDID_FEATURE_PM_ACTIVE_OFF) ? 1 : 0;
-   connector-display_info.suspend_supported = (edid-features  
DRM_EDID_FEATURE_PM_SUSPEND) ? 1 : 0;
-   connector-display_info.standby_supported = (edid-features  
DRM_EDID_FEATURE_PM_STANDBY) ? 1 : 0;
-   connector-display_info.gamma = edid-gamma;
 
return num_modes;
 }
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 93a1a31..606eb93 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -190,49 +190,16 @@ enum subpixel_order {
  */
 struct drm_display_info {
char name[DRM_DISPLAY_INFO_LEN];
-   /* Input info */
-   bool serration_vsync;
-   bool sync_on_green;
-   bool composite_sync;
-   bool separate_syncs;
-   bool blank_to_black;
-   unsigned char video_level;
-   bool digital;
+
/* Physical size */
 unsigned int width_mm;
unsigned int height_mm;
 
-   /* Display parameters */
-   unsigned char gamma; /* FIXME: storage format */
-   bool gtf_supported;
-   bool standard_color;
-   enum {
-   monochrome = 0,
-   rgb,
-   other,
-   unknown,
-   } display_type;
-   bool active_off_supported;
-   bool suspend_supported;
-   bool standby_supported;
-
-   /* Color info FIXME: storage format */
-   unsigned short redx, redy;
-   unsigned short greenx, greeny;
-   unsigned short bluex, bluey;
-   unsigned short whitex, whitey;
-
/* Clock limits FIXME: storage format */
unsigned int min_vfreq, max_vfreq;
unsigned int min_hfreq, max_hfreq;
unsigned int pixel_clock;
 
-   /* White point indices FIXME: storage format */
-   unsigned int wpx1, wpy1;
-   unsigned int wpgamma1;
-   unsigned int wpx2, wpy2;
-   unsigned int wpgamma2;
-
enum subpixel_order subpixel_order;
 
char *raw_edid; /* if any */
-- 
1.7.2

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 2/7] drm/edid: Add detailed block walk for CEA extensions

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c |   38 +-
 include/drm/drm_edid.h |6 ++
 2 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index e668084..1bc15a8 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -685,6 +685,33 @@ EXPORT_SYMBOL(drm_mode_find_dmt);
 typedef void detailed_cb(struct detailed_timing *timing, void *closure);
 
 static void
+cea_for_each_detailed_block(u8 *ext, detailed_cb *cb, void *closure)
+{
+   int i, n = 0;
+   u8 rev = ext[0x01], d = ext[0x02];
+   u8 *det_base = ext + d;
+
+   switch (rev) {
+   case 0:
+   /* can't happen */
+   return;
+   case 1:
+   /* have to infer how many blocks we have, check pixel clock */
+   for (i = 0; i  6; i++)
+   if (det_base[18*i] || det_base[18*i+1])
+   n++;
+   break;
+   default:
+   /* explicit count */
+   n = min(ext[0x03]  0x0f, 6);
+   break;
+   }
+
+   for (i = 0; i  n; i++)
+   cb((struct detailed_timing *)(det_base + 18 * i), closure);
+}
+
+static void
 drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, void *closure)
 {
int i;
@@ -696,7 +723,16 @@ drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, 
void *closure)
for (i = 0; i  EDID_DETAILED_TIMINGS; i++)
cb((edid-detailed_timings[i]), closure);
 
-   /* XXX extension block walk */
+   for (i = 1; i = raw_edid[0x7e]; i++) {
+   u8 *ext = raw_edid + (i * EDID_LENGTH);
+   switch (*ext) {
+   case CEA_EXT:
+   cea_for_each_detailed_block(ext, cb, closure);
+   break;
+   default:
+   break;
+   }
+   }
 }
 
 static void
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index 39e2cc5..5881fad 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -28,6 +28,12 @@
 #define EDID_LENGTH 128
 #define DDC_ADDR 0x50
 
+#define CEA_EXT0x02
+#define VTB_EXT0x10
+#define DI_EXT 0x40
+#define LS_EXT 0x50
+#define MI_EXT 0x60
+
 struct est_timings {
u8 t1;
u8 t2;
-- 
1.7.2

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 3/7] drm/edid: Add detailed block walk for VTB extensions

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c |   16 
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 1bc15a8..9299dd6 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -712,6 +712,19 @@ cea_for_each_detailed_block(u8 *ext, detailed_cb *cb, void 
*closure)
 }
 
 static void
+vtb_for_each_detailed_block(u8 *ext, detailed_cb *cb, void *closure)
+{
+   unsigned int i, n = min((int)ext[0x02], 6);
+   u8 *det_base = ext + 5;
+
+   if (ext[0x01] != 1)
+   return; /* unknown version */
+
+   for (i = 0; i  n; i++)
+   cb((struct detailed_timing *)(det_base + 18 * i), closure);
+}
+
+static void
 drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, void *closure)
 {
int i;
@@ -729,6 +742,9 @@ drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, 
void *closure)
case CEA_EXT:
cea_for_each_detailed_block(ext, cb, closure);
break;
+   case VTB_EXT:
+   vtb_for_each_detailed_block(ext, cb, closure);
+   break;
default:
break;
}
-- 
1.7.2

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 6/7] drm/edid: Re-add the reduced blanking modes to the DMT table

2010-08-03 Thread Adam Jackson
Also fix up mode generation to only add RB modes from DMT if it looks
like an RB-capable monitor.

Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c   |   43 +
 drivers/gpu/drm/drm_edid_modes.h |   98 --
 drivers/gpu/drm/drm_fb_helper.c  |2 +-
 include/drm/drm_crtc.h   |2 +-
 4 files changed, 118 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 66b8b5c..817ffab 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -433,8 +433,17 @@ static void edid_fixup_preferred(struct drm_connector 
*connector,
preferred_mode-type |= DRM_MODE_TYPE_PREFERRED;
 }
 
-struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
-  int hsize, int vsize, int fresh)
+static bool
+mode_is_rb(struct drm_display_mode *mode)
+{
+   return (mode-htotal - mode-hdisplay == 160) 
+  (mode-hsync_end - mode-hdisplay == 80) 
+  (mode-hsync_end - mode-hsync_start == 32) 
+  (mode-vsync_start - mode-vdisplay == 3);
+}
+
+struct drm_display_mode *
+drm_mode_find_dmt(struct drm_device *dev, int hsize, int vsize, int r, bool rb)
 {
int i;
struct drm_display_mode *ptr, *mode;
@@ -444,7 +453,8 @@ struct drm_display_mode *drm_mode_find_dmt(struct 
drm_device *dev,
ptr = drm_dmt_modes[i];
if (hsize == ptr-hdisplay 
vsize == ptr-vdisplay 
-   fresh == drm_mode_vrefresh(ptr)) {
+   r == drm_mode_vrefresh(ptr) 
+   rb == mode_is_rb(ptr)) {
/* get the expected default mode */
mode = drm_mode_duplicate(dev, ptr);
break;
@@ -694,7 +704,12 @@ drm_mode_std(struct drm_connector *connector, struct edid 
*edid,
}
 
/* check whether it can be found in default mode table */
-   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate);
+   if (drm_monitor_supports_rb(edid)) {
+   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, 1);
+   if (mode)
+   return mode;
+   }
+   mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, 0);
if (mode)
return mode;
 
@@ -722,7 +737,8 @@ drm_mode_std(struct drm_connector *connector, struct edid 
*edid,
}
break;
case LEVEL_CVT:
-   mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 0, 0,
+   mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 
+   drm_monitor_supports_rb(edid), 0,
false);
break;
}
@@ -874,15 +890,6 @@ static struct drm_display_mode *drm_mode_detailed(struct 
drm_device *dev,
 }
 
 static bool
-mode_is_rb(struct drm_display_mode *mode)
-{
-   return (mode-htotal - mode-hdisplay == 160) 
-  (mode-hsync_end - mode-hdisplay == 80) 
-  (mode-hsync_end - mode-hsync_start == 32) 
-  (mode-vsync_start - mode-vdisplay == 3);
-}
-
-static bool
 mode_in_hsync_range(struct drm_display_mode *mode, struct edid *edid, u8 *t)
 {
int hsync, hmin, hmax;
@@ -957,10 +964,6 @@ mode_in_range(struct drm_display_mode *mode, struct edid 
*edid,
return true;
 }
 
-/*
- * XXX If drm_dmt_modes ever regrows the CVT-R modes (and it will) this will
- * need to account for them.
- */
 static int
 drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid,
struct detailed_timing *timing)
@@ -1025,8 +1028,8 @@ drm_est3_modes(struct drm_connector *connector, struct 
detailed_timing *timing)
mode = drm_mode_find_dmt(connector-dev,
 est3_modes[m].w,
 est3_modes[m].h,
-est3_modes[m].r
-/*, est3_modes[m].rb 
*/);
+est3_modes[m].r,
+est3_modes[m].rb);
if (mode) {
drm_mode_probed_add(connector, mode);
modes++;
diff --git a/drivers/gpu/drm/drm_edid_modes.h b/drivers/gpu/drm/drm_edid_modes.h
index 6eb7592..19690cd 100644
--- a/drivers/gpu/drm/drm_edid_modes.h
+++ b/drivers/gpu/drm/drm_edid_modes.h
@@ -27,11 +27,7 @@
 #include drmP.h
 #include drm_edid.h
 
-/*
- * Autogenerated from the DMT spec.
- * This table is copied from xfree86/modes/xf86EdidModes.c.
- * But the mode with Reduced blank feature is deleted.
- */
+/* Autogenerated from the DMT 

[PATCH 7/7] drm/edid: Add modes from CEA short video descriptor codes

2010-08-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c   |  188 +++-
 drivers/gpu/drm/drm_edid_modes.h |  260 ++
 2 files changed, 389 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 817ffab..44fd754 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1223,53 +1223,23 @@ add_cvt_modes(struct drm_connector *connector, struct 
edid *edid)
return closure.modes;
 }
 
-static void
-do_detailed_mode(struct detailed_timing *timing, void *c)
+/* XXX assumes there's only one */
+static u8 *
+find_cea_block(struct edid *edid)
 {
-   struct detailed_mode_closure *closure = c;
-   struct drm_display_mode *newmode;
-
-   if (timing-pixel_clock) {
-   newmode = drm_mode_detailed(closure-connector-dev,
-   closure-edid, timing,
-   closure-quirks);
-   if (!newmode)
-   return;
+   int i;
+   u8 *ret;
 
-   if (closure-preferred)
-   newmode-type |= DRM_MODE_TYPE_PREFERRED;
+   if (!edid)
+   return NULL;
 
-   drm_mode_probed_add(closure-connector, newmode);
-   closure-modes++;
-   closure-preferred = 0;
+   for (i = 0; i  edid-extensions; i++) {
+   ret = (u8 *)edid + EDID_LENGTH * (i + 1);
+   if (ret[0] == CEA_EXT)
+   return ret;
}
-}
-
-/*
- * add_detailed_modes - Add modes from detailed timings
- * @connector: attached connector
- * @edid: EDID block to scan
- * @quirks: quirks to apply
- */
-static int
-add_detailed_modes(struct drm_connector *connector, struct edid *edid,
-  u32 quirks)
-{
-   struct detailed_mode_closure closure = {
-   connector,
-   edid,
-   1,
-   quirks,
-   0
-   };
-
-   if (closure.preferred  !version_greater(edid, 1, 3))
-   closure.preferred =
-   (edid-features  DRM_EDID_FEATURE_PREFERRED_TIMING);
-
-   drm_for_each_detailed_block((u8 *)edid, do_detailed_mode, closure);
 
-   return closure.modes;
+   return NULL;
 }
 
 #define HDMI_IDENTIFIER 0x000C03
@@ -1283,25 +1253,13 @@ add_detailed_modes(struct drm_connector *connector, 
struct edid *edid,
  */
 bool drm_detect_hdmi_monitor(struct edid *edid)
 {
-   char *edid_ext = NULL;
+   u8 *edid_ext = NULL;
int i, hdmi_id;
int start_offset, end_offset;
bool is_hdmi = false;
 
-   /* No EDID or EDID extensions */
-   if (edid == NULL || edid-extensions == 0)
-   goto end;
-
-   /* Find CEA extension */
-   for (i = 0; i  edid-extensions; i++) {
-   edid_ext = (char *)edid + EDID_LENGTH * (i + 1);
-   /* This block is CEA extension */
-   if (edid_ext[0] == 0x02)
-   break;
-   }
-
-   if (i == edid-extensions)
-   goto end;
+   if (!(edid_ext = find_cea_block(edid)))
+   return false;
 
/* Data block offset in CEA extension block */
start_offset = 4;
@@ -1325,11 +1283,116 @@ bool drm_detect_hdmi_monitor(struct edid *edid)
}
}
 
-end:
return is_hdmi;
 }
 EXPORT_SYMBOL(drm_detect_hdmi_monitor);
 
+static int
+add_cea_modes(struct drm_connector *connector, struct edid *edid)
+{
+   u8 *block = find_cea_block(edid);
+   u8 *b, *end;
+   int modes = 0;
+
+   if (!block)
+   return 0;
+
+   if (block[0x01]  3)
+   return 0; /* SVDs not specified yet */
+
+   b = block;
+   end = block + block[0x02];
+
+   while (b  end) {
+   u8 header = *b;
+   u8 length = header  0x1f;
+   u8 tag = (header  0xe0)  5;
+
+   if (tag == 2) {
+   int i, m;
+   struct drm_display_mode *mode, *newmode;
+   for (i = 1; i = length; i++) {
+   m = b[i]  0x7f;
+   if (m  cea_num_modes) /* XXX warn */
+   continue;
+
+   /*
+* Don't add modes that require pixel repeat,
+* yet. The driver needs to be aware of this
+* and we don't have a mechanism for that.
+*
+* This prunes some modes that don't need 
+* repeat; oh well.
+*/
+   mode = cea_modes[m];
+   if (mode-hdisplay == 1440 ||
+   mode-hdisplay == 2880)
+  

[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #9 from pete...@hottemptation.org 2010-08-03 11:41:29 PDT ---
I am awfully sorry, but I am not familiar with git/git-bitsect.
Of course I will try every patch you can over and give you as much as possible
details about the effect.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29384] Slow switch between TTY1-TTY6 with /dev/fb0 or X11 involved

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29384

--- Comment #10 from Alex Deucher ag...@yahoo.com 2010-08-03 11:56:42 PDT ---
(In reply to comment #9)
 I am awfully sorry, but I am not familiar with git/git-bitsect.
 Of course I will try every patch you can over and give you as much as possible
 details about the effect.

It's very easy. Assuming you have a git tree checked out:

git bisect start
git bisect good v2.6.34
git bisect bad v2.6.35

After that git will walk you through the rest.  It will check out the
appropriate commit, at which point you can compile it, test it, and if it's
good, run:
git bisect good
and if it's bad:
git bisect bad
and git will select the next commit and the process continues.  If there is a
commit that doesn't boot or build, you can skip it with:
git bisect skip

See this page for more info:
http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29389] New: [r300g] [bisected] hard locks in openarena with kernel 2.6.35

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29389

   Summary: [r300g] [bisected] hard locks in openarena with kernel
2.6.35
   Product: Mesa
   Version: git
  Platform: Other
OS/Version: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: ghe...@virgilio.it


Created an attachment (id=37557)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=37557)
git-bisect.log

Yesterday I upgraded to kernel 2.6.35 and I had a lockup after playing for a
few second at openarena. The day before I had played for a few minutes without
any issue (testing r300g) so I immediately suspected the kernel.

I'm using a radeon x550 (rv370) with yesterday git snapshot of mesa and
xf86-video-ati and xorg-server 1.8.2.

Both r300c/DRI/UMS and r300c/DRI2/KMS dont' seem to suffer from the issue, only
gallium. Nothing unusual in the logs.

I bisected from 2.6.34 (good) to 2.6.35 (bad) and git bisect pointed to commit
eb1f8e4f3be898df808e2dfc131099f5831d491d

eb1f8e4f3be898df808e2dfc131099f5831d491d is the first bad commit
commit eb1f8e4f3be898df808e2dfc131099f5831d491d
Author: Dave Airlie airl...@redhat.com
Date:   Fri May 7 06:42:51 2010 +

drm/fbdev: rework output polling to be back in the core. (v4)

After thinking it over a lot it made more sense for the core to deal with
the output polling especially so it can notify X.

v2: drop plans for fake connector - per Michel's comments - fix X patch
sent to xorg-devel, add intel polled/hpd setting, add initial nouveau
polled/hpd settings.

v3: add config lock take inside polling, add intel/nouveau poll init/fini
calls

v4: config lock was a bit agressive, only needed around connector list
reading.
otherwise it could re-enter.

glisse: discard drm_helper_hpd_irq_event

v3: Reviewed-by: Michel Dänzer mic...@daenzer.net
Signed-off-by: Dave Airlie airl...@redhat.com

:04 04 01a1bf1ae4e06bfd3ae9ae67b5b5059e964f5ae4
041231a5c060e531ce0d8127c6f7abc79c14ce76 Mdrivers
:04 04 b67fd6698fa239d26ca9fa2296ea2403e1eaaf1c
cadb905c6d8647313107790ce8b681f4611ee726 Minclude


I had to skip a few revisions because opengl didn't work at all and one
revision I'm not exactly sure it crashed for the same issue (the symptoms were
slightly different, it crashed after maybe two minutes instead of 5-30s) so I'm
not sure that that's the real culprit.

The bisection run took me a few hours and a lot of reboots, so I'm not exactly
eager to try it again...

The full git bisect log is attached.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29303] [r300g] compiz segfaults when resizing windows

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29303

Marek Olšák mar...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #1 from Marek Olšák mar...@gmail.com 2010-08-03 15:20:52 PDT ---
Fixed by commit afbf446de5ad91743e2e2a76799bd87f3eed5f9a. Closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 28628] [r300g] ARB_vp: error: relative address offset too large (163)

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=28628

Marek Olšák mar...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #3 from Marek Olšák mar...@gmail.com 2010-08-03 15:25:12 PDT ---
Fixed by commit 0614006d090902324149387ec150231b647928fd. Closing..

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29390] Radeon KMS - Bootup - First Text At 640x480 - Then Blank Screen - Then FB

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29390

Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

Product|xorg|DRI
Version|7.5 |unspecified
  Component|Driver/radeonhd |DRM/Radeon
 AssignedTo|e...@pdx.freedesktop.org|dri-de...@lists.freedesktop
   ||.org
  QAContact|xorg-t...@lists.x.org   |

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29390] Radeon KMS - Bootup - First Text At 640x480 - Then Blank Screen - Then FB

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29390

Alex Deucher ag...@yahoo.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||NOTOURBUG

--- Comment #1 from Alex Deucher ag...@yahoo.com 2010-08-03 15:33:37 PDT ---
You might try a different distro.  This isn't really a driver bug, more a
distro start up configuration issue.  The latest fedora and ubuntu releases go
straight from from the bios post screen to the plymouth boot screen.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/2] drm/radeon/kms: fix calculation of h/v scaling factors

2010-08-03 Thread Alex Deucher
Prior to this patch the code was dividing the src_v by the dst_h
and vice versa, rather than src_v/dst_v and src_h/dst_h.

This could lead to problems in the calculation of the display
watermarks.

Signed-off-by: Alex Deucher alexdeuc...@gmail.com
---
 drivers/gpu/drm/radeon/radeon_display.c |   20 +---
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_display.c 
b/drivers/gpu/drm/radeon/radeon_display.c
index 283beed..12a5414 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1073,11 +1073,13 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
struct radeon_encoder *radeon_encoder;
bool first = true;
+   u32 src_v = 1, dst_v = 1;
+   u32 src_h = 1, dst_h = 1;
 
list_for_each_entry(encoder, dev-mode_config.encoder_list, head) {
-   radeon_encoder = to_radeon_encoder(encoder);
if (encoder-crtc != crtc)
continue;
+   radeon_encoder = to_radeon_encoder(encoder);
if (first) {
/* set scaling */
if (radeon_encoder-rmx_type == RMX_OFF)
@@ -1087,6 +1089,10 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
radeon_crtc-rmx_type = 
radeon_encoder-rmx_type;
else
radeon_crtc-rmx_type = RMX_OFF;
+   src_v = crtc-mode.vdisplay;
+   dst_v = radeon_crtc-native_mode.vdisplay;
+   src_h = crtc-mode.hdisplay;
+   dst_h = radeon_crtc-native_mode.vdisplay;
/* copy native mode */
memcpy(radeon_crtc-native_mode,
   radeon_encoder-native_mode,
@@ -1096,22 +1102,22 @@ bool radeon_crtc_scaling_mode_fixup(struct drm_crtc 
*crtc,
if (radeon_crtc-rmx_type != radeon_encoder-rmx_type) {
/* WARNING: Right now this can't happen but
 * in the future we need to check that scaling
-* are consistent accross different encoder
+* are consistent across different encoder
 * (ie all encoder can work with the same
 *  scaling).
 */
-   DRM_ERROR(Scaling not consistent accross 
encoder.\n);
+   DRM_ERROR(Scaling not consistent across 
encoder.\n);
return false;
}
}
}
if (radeon_crtc-rmx_type != RMX_OFF) {
fixed20_12 a, b;
-   a.full = dfixed_const(crtc-mode.vdisplay);
-   b.full = dfixed_const(radeon_crtc-native_mode.hdisplay);
+   a.full = dfixed_const(src_v);
+   b.full = dfixed_const(dst_v);
radeon_crtc-vsc.full = dfixed_div(a, b);
-   a.full = dfixed_const(crtc-mode.hdisplay);
-   b.full = dfixed_const(radeon_crtc-native_mode.vdisplay);
+   a.full = dfixed_const(src_h);
+   b.full = dfixed_const(dst_h);
radeon_crtc-hsc.full = dfixed_div(a, b);
} else {
radeon_crtc-vsc.full = dfixed_const(1);
-- 
1.7.1.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29393] New: R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29393

   Summary: R600: libGL crashes using Lwjgl
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/R600
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: jonescas...@gmail.com


Created an attachment (id=37560)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=37560)
Full Java error log

Lwjgl is a Java binding to OpenGL.  Any Lwjgl application or demo crashes
libGL.so and forces the Java VM to abort.

This is the output from Java:

Could not locate symbol glXCreateContextAttribsARB
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb00434a8, pid=19189, tid=2954230640
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) Server VM (17.0-b16 mixed mode linux-x86 )
# Problematic frame:
# C  [libGL.so.1+0x424a8]
#
# An error report file with more information is saved as:
# /root/hs_err_pid19189.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

I'm attaching the mentioned hs_err_pid19189.log

I'm using the latest git version of Mesa with a Radeon 4850.  KMS is enabled. 
I'm using the Sun/Oracle JDK, not OpenJDK or IcedTea.  I've confirmed that this
works on Mesa 7.8.2.  It worked on earlier version of 7.9, but sometime in the
last few weeks it stopped working.  I've been working on my own Lwjgl
application, so when I ran into this error I downgraded Mesa to 7.8, but I
still have 7.9 in a chroot which I can do further testing on.

There are demo applications here:
http://lwjgl.org/demos.php

I used GLGears.
To run a jnlp file from the command line:
javaws test.opengl.Gears

Thanks.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #1 from Casey Jones jonescas...@gmail.com 2010-08-03 18:07:16 PDT 
---
I also tried r600g in my chroot just for kicks, and it crashes as well.  Plain
old glxgears worked, but the Lwjgl version does not.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #2 from Alex Deucher ag...@yahoo.com 2010-08-03 18:17:09 PDT ---
Can you bisect mesa to see what commit broke it?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Bug 29393] R600: libGL crashes using Lwjgl

2010-08-03 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=29393

--- Comment #3 from Casey Jones jonescas...@gmail.com 2010-08-03 19:26:51 PDT 
---
This is what I got.

f8d81c31cee30821da3aab331a57f484f6a07a5d is the first bad commit
commit f8d81c31cee30821da3aab331a57f484f6a07a5d
Author: Nick Bowler nbow...@draconx.ca
Date:   Wed Jul 14 12:01:49 2010 -0400

dri2: Track event mask in client code.

When direct rendering is being used, DRI2 BufferSwapComplete events are
sent unconditionally to clients, even if they haven't been requested.
This causes error messages to be printed by every freeglut application
of the form

  freeglut (./gears): Unknown X event type: 104

and might confuse other clients.

This is a fixed up version of the patch by Jesse Barnes, which drops
BufferSwapComplete events if they are not requested by clients.

Fixes fdo bug 27962.

Signed-off-by: Nick Bowler nbow...@draconx.ca
Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


  1   2   >