Re: [PATCH 6/6] drm/i915: Fix lock order reversal in GEM relocation entry copying. -- makes X hang

2009-04-01 Thread Florian Mickler
On Tue, 31 Mar 2009 12:36:56 -0700
Eric Anholt e...@anholt.net wrote:

 
 Ouch.  Could you file a bug report using:
 
 http://intellinuxgraphics.org/how_to_report_bug.html
 
 so I've got the information I need to try to reproduce this?
 

shure. done.

http://bugs.freedesktop.org/show_bug.cgi?id=20985

thx,

Florian

p.s. hope i didn't miss some vital piece of information?


signature.asc
Description: PGP signature
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 20856] X hangs after idle time on GM45

2009-04-01 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=20856





--- Comment #2 from David John david...@mail.com  2009-03-31 23:37:34 PST ---
(In reply to comment #1)
 Bugs like this have been fixed recently in libdrm, Mesa and the kernel.  But
 you can also work around the problem by creating a driconf file and setting 
 the
 vblank_mode (googling around should show you how).
 

I'll try that. Thanks, Jesse.


-- 
Configure bugmail: http://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.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 12899] Crash in i915.ko: i915_driver_irq_handler

2009-04-01 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=12899





--- Comment #4 from Helge Bahmann helge.bahm...@secunet.com  2009-04-01 
11:40:40 ---
To my knowledge, the code is unchanged, but maybe I can invest some time into
investigating further tomorrow to produce a patch I am more confident of

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: DRI2 + buffer creation

2009-04-01 Thread Stefan Dösinger
Am Dienstag, 31. März 2009 22:03:45 schrieb Ian Romanick:
 Errthis is a bandaid on a bigger problem.  What about 24-bit depth
 with 16-bit color?  What about when we start to support multisampling?
 Etc.  If the DDX needs the fbconfig information, why not just give it
 the fbconfig?  Right?
Some cards even support floating point depth buffers afaik.

--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 20954] mesa/drm(git): kernel panic with radeon driver (Radeon 9500 Pro )

2009-04-01 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=20954





--- Comment #2 from Rafael Antonio Porras Samaniego sp...@distrobit.net  
2009-04-01 11:36:22 PST ---
(In reply to comment #1)
 I just moved the vblank_cleanup after lastclose, give that a try and see if it
 is resolved.
 

No, the same kernel panic still appears.


-- 
Configure bugmail: http://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.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] KMS: cache the EDID information of the LVDS

2009-04-01 Thread Eric Anholt
On Fri, 2009-03-27 at 22:01 -0700, Arjan van de Ven wrote:
 On Fri, 27 Mar 2009 16:08:18 -0700
 Jesse Barnes jbar...@virtuousgeek.org wrote:

 return ret;
  
  I definitely like the idea of caching the LVDS EDID, but rather than
  adding it to the intel_output struct I'd rather see it stored with the
  rest of the LVDS stuff in i915_private (though that stuff should be
  pulled out into an output private at some point).  We could also just
  open code the intel_ddc_get_modes stuff in intel_lvds_init, getting
  the EDID just once, storing the property once, and adding the mode
  list once.  intel_lvds_get_modes would need to be fixed too...
  
 
 that gets a bit messy though, esp if other output types decide to also
 want to cache. Remember that some of this code gets called from DRM or
 even userland, so the edid will end up being stored in a generic
 structure

Ack.  SDVO LVDS and eDP would also want to do this, and i915_private
then seems like the wrong place.

-- 
Eric Anholt
e...@anholt.net eric.anh...@intel.com




signature.asc
Description: This is a digitally signed message part
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Cache the EDID value for a short time in i915

2009-04-01 Thread Eric Anholt
On Mon, 2009-03-16 at 19:36 -0700, Arjan van de Ven wrote:
 From 8ad1bd63c097f9f6948439c1ce7c0b17b8caa64a Mon Sep 17 00:00:00 2001
 From: Arjan van de Ven ar...@linux.intel.com
 Date: Mon, 16 Mar 2009 19:31:39 -0700
 Subject: [PATCH] drm: Cache the EDID value for a short time in i915
 
 during the boot process we have several places that want to make sure we have
 EDID information in a short time. An EDID probe for me takes 0.23 seconds, so
 doing multiple of them is not very nice.
 
 This patch caches the EDID result for upto 1 second to avoid repeated
 delays.
 
 Signed-off-by: Arjan van de Ven ar...@linux.intel.com

I'm holding off on this one.  I'm applying the LVDS caching (makes
complete sense) but I think someone needs to take a serious look at the
requests for modes on outputs by the kernel and be sure that we've
separated I want you go to reprobe and then tell me the current data
from tell me what the current set of modes is.

Once that's done, I expect this patch goes away.

-- 
Eric Anholt
e...@anholt.net eric.anh...@intel.com




signature.asc
Description: This is a digitally signed message part
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Patch 1/3_v2]: [DRM/I915] : Sync the mode validation for INTERLACE/DBLSCAN

2009-04-01 Thread Eric Anholt
On Mon, 2009-03-23 at 11:15 +0800, yakui_zhao wrote:
 Subject: [DRM/I915]: Sync the mode validation for INTERLACE/DBLSCAN
 From: Zhao Yakui yakui.z...@intel.com
 
  Sync the mode validation for INTERLACE/DBLSCAN
  This covers:
  Check whether the INTERLACE/DBLSCAN is supported by output device. If
 not, the mode containing the flag of INTERLACE/DBLSCAN will be marked
 as unsupported.
  
  Fix the code-style based on Eric's suggestion
 Signed-off-by: Zhao Yakui yakui.z...@intel.com

The commit message here should look like:

drm: Sync the mode validation for INTERLACE/DBLSCAN

Check whether the INTERLACE/DBLSCAN is supported by output device. If
not, the mode containing the flag of INTERLACE/DBLSCAN will be marked
as unsupported.

Signed-off-by: Zhao Yakui yakui.z...@intel.com

(drm: not drm/i915: since it doesn't touch i915 at all, and you've got
lines duplicated, strangely indented, and a line about a change in this
commit to the previous revision of the commit instead of about what this
code does compared to the code it's changing)

The drm versus drm/i915: is an important signal to me for whether it
should go through my tree or airlied's.

 ---
  drivers/gpu/drm/drm_crtc_helper.c |   29 +
  1 file changed, 29 insertions(+)
 
 Index: linux-2.6/drivers/gpu/drm/drm_crtc_helper.c
 ===
 --- linux-2.6.orig/drivers/gpu/drm/drm_crtc_helper.c  2009-03-23 
 09:29:59.0 +0800
 +++ linux-2.6/drivers/gpu/drm/drm_crtc_helper.c   2009-03-23 
 11:13:43.0 +0800
 @@ -42,6 +42,25 @@
  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
  };
  
 +static void drm_mode_validate_flag(struct drm_connector *connector,
 +int flags)
 +{
 + struct drm_display_mode *mode, *t;

Usually we put a blank line between declarations and code.

 + if (flags == (DRM_MODE_FLAG_DBLSCAN | DRM_MODE_FLAG_INTERLACE))
 + return;
 +
 + list_for_each_entry_safe(mode, t, connector-modes, head) {
 + if ((mode-flags  DRM_MODE_FLAG_INTERLACE) 
 + !(flags  DRM_MODE_FLAG_INTERLACE))
 + mode-status = MODE_NO_INTERLACE;
 + if ((mode-flags  DRM_MODE_FLAG_DBLSCAN) 
 + !(flags  DRM_MODE_FLAG_DBLSCAN))
 + mode-status = MODE_NO_DBLESCAN;
 + }
 +
 + return;
 +}
 +
  /**
   * drm_helper_probe_connector_modes - get complete set of display modes
   * @dev: DRM device
 @@ -72,6 +91,7 @@
   struct drm_connector_helper_funcs *connector_funcs =
   connector-helper_private;
   int count = 0;
 + int mode_flags = 0;
  
   DRM_DEBUG(%s\n, drm_get_connector_name(connector));
   /* set all modes to the unverified state */
 @@ -96,6 +116,15 @@
   if (maxX  maxY)
   drm_mode_validate_size(dev, connector-modes, maxX,
  maxY, 0);
 +
 + {
 + if (connector-interlace_allowed)
 + mode_flags |= DRM_MODE_FLAG_INTERLACE;
 + if (connector-doublescan_allowed)
 + mode_flags |= DRM_MODE_FLAG_DBLSCAN;
 + drm_mode_validate_flag(connector, mode_flags);
 + }
 +

Why is this mysteriously in a new block?

-- 
Eric Anholt
e...@anholt.net eric.anh...@intel.com




signature.asc
Description: This is a digitally signed message part
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Patch 3/3_v2]: [DRM/I915] : Sync the default modes for LVDS output device

2009-04-01 Thread Eric Anholt
On Mon, 2009-03-23 at 11:30 +0800, yakui_zhao wrote:
 Subject: [DRM/I915]: Sync the default modes for LVDS output device
 From: Zhao Yakui yakui.z...@intel.com
 
 Sync the default modes for the LVDS output device
 This covers:
 Add the default modes for the LVDS output device.
 The bit of edid-feature.msc indicates whether the display device is not
 continous-frequency. And it is used to determine whether the default modes 
 will
 be added to the output device.
 But for the LVDS output device the edid-feature.msc will always be 
 set.Even
 when there is no edid, the correponding bit in the fake edid will be set.
 In such case the default modes will be added to LVDS output device.
 If not, the different modes are obtained by using KMS/UMS.
 
 Signed-off-by: Zhao Yakui yakui.z...@intel.com

These giant tables of modes are insane.  Especially having a bunch of
different refresh rates when the LVDS actually has a fixed refresh rate.
Just generate a mode at each appropriate size using GTF or CVT.

I'm not really sold on the whole idea of the kernel generating these
fake modes for LVDS, given that we can support any size and that the
refresh rate is a lie since we're always using the fixed mode.  Any
other opinions on this?

-- 
Eric Anholt
e...@anholt.net eric.anh...@intel.com




signature.asc
Description: This is a digitally signed message part
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Patch 2/3_v2]: [DRM/I915] : Sync the panel fitting property with 2D driver

2009-04-01 Thread Eric Anholt
On Mon, 2009-03-23 at 11:21 +0800, yakui_zhao wrote:
 Subject: DRM/I915: Sync the panel fitting property with 2D driver
 From: Zhao Yakui yakui.z...@intel.com
 
  Sync the panel fitting property with 2D driver
  This covers:
  a. create the scaling mode property and attach it to LVDS
  b. add the support of panel fitting property for LVDS
  c. update the display mode according to the panel fitting mode
 
 Fix the code-style based on Eric's suggestion.

checkpatch.pl, commit message in your email is mangled (compare your
output to git send-email.  Or just use git send-email), and please keep
using kzalloc/kfree.
 
 
 Signed-off-by: Zhao Yakui yakui.z...@intel.com
 ---
  drivers/gpu/drm/i915/i915_reg.h   |   16 ++
  drivers/gpu/drm/i915/intel_lvds.c |  282 
 +++---
  2 files changed, 277 insertions(+), 21 deletions(-)
 
 Index: linux-2.6/drivers/gpu/drm/i915/i915_reg.h
 ===
 --- linux-2.6.orig/drivers/gpu/drm/i915/i915_reg.h2009-03-23 
 11:08:45.0 +0800
 +++ linux-2.6/drivers/gpu/drm/i915/i915_reg.h 2009-03-23 11:09:37.0 
 +0800
 @@ -808,9 +808,25 @@
  #define   HORIZ_INTERP_MASK  (3  6)
  #define   HORIZ_AUTO_SCALE   (1  5)
  #define   PANEL_8TO6_DITHER_ENABLE (1  3)
 +#define   PFIT_FILTER_FUZZY  (0  24)
 +#define   PFIT_SCALING_AUTO  (0  26)
 +#define   PFIT_SCALING_PROGRAMMED (1  26)
 +#define   PFIT_SCALING_PILLAR(2  26)
 +#define   PFIT_SCALING_LETTER(3  26)
  #define PFIT_PGM_RATIOS  0x61234
  #define   PFIT_VERT_SCALE_MASK   0xfff0
  #define   PFIT_HORIZ_SCALE_MASK  0xfff0
 +/* Pre-965 */
 +#define  PFIT_VERT_SCALE_SHIFT   20
 +#define  PFIT_VERT_SCALE_MASK0xfff0
 +#define  PFIT_HORIZ_SCALE_SHIFT  4
 +#define  PFIT_HORIZ_SCALE_MASK   0xfff0
 +/* 965+ */
 +#define  PFIT_VERT_SCALE_SHIFT_965   16
 +#define  PFIT_VERT_SCALE_MASK_9650x1fff
 +#define  PFIT_HORIZ_SCALE_SHIFT_965  0
 +#define  PFIT_HORIZ_SCALE_MASK_965   0x1fff
 +
  #define PFIT_AUTO_RATIOS 0x61238
  
  /* Backlight control */
 Index: linux-2.6/drivers/gpu/drm/i915/intel_lvds.c
 ===
 --- linux-2.6.orig/drivers/gpu/drm/i915/intel_lvds.c  2009-03-23 
 11:08:45.0 +0800
 +++ linux-2.6/drivers/gpu/drm/i915/intel_lvds.c   2009-03-23 
 11:19:40.0 +0800
 @@ -37,6 +37,21 @@
  #include i915_drm.h
  #include i915_drv.h
  
 +/*
 + * the following four scaling options are defined.
 + * #define DRM_MODE_SCALE_NON_GPU0
 + * #define DRM_MODE_SCALE_FULLSCREEN 1
 + * #define DRM_MODE_SCALE_NO_SCALE   2
 + * #define DRM_MODE_SCALE_ASPECT 3
 + */
 +
 +/* Private structure for the integrated LVDS support */
 +struct intel_lvds_priv {
 + int fitting_mode;
 + u32 pfit_control;
 + u32 pfit_pgm_ratios;
 +};
 +
  /**
   * Sets the backlight level.
   *
 @@ -160,10 +175,24 @@
 struct drm_display_mode *mode,
 struct drm_display_mode *adjusted_mode)
  {
 + /*
 +  * float point operation is not supported . So the PANEL_RATIO_FACTOR
 +  * is defined, which can avoid the float point computation when
 +  * calculating the panel ratio.
 +  */
 +#define PANEL_RATIO_FACTOR 8192
   struct drm_device *dev = encoder-dev;
   struct drm_i915_private *dev_priv = dev-dev_private;
   struct intel_crtc *intel_crtc = to_intel_crtc(encoder-crtc);
   struct drm_encoder *tmp_encoder;
 + struct intel_output *intel_output = enc_to_intel_output(encoder);
 + struct intel_lvds_priv *lvds_priv = intel_output-dev_priv;
 + u32 pfit_control = 0, pfit_pgm_ratios = 0;
 + int left_border = 0, right_border = 0, top_border = 0;
 + int bottom_border = 0;
 + bool border = 0;
 + int panel_ratio, desired_ratio, vert_scale, horiz_scale;
 + int horiz_ratio, vert_ratio;
  
   /* Should never happen!! */
   if (!IS_I965G(dev)  intel_crtc-pipe == 0) {
 @@ -179,7 +208,9 @@
   return false;
   }
   }
 -
 + /* If we don't have a panel mode, there is nothing we can do */
 + if (dev_priv-panel_fixed_mode == NULL)
 + return true;
   /*
* If we have timings from the BIOS for the panel, put them in
* to the adjusted mode.  The CRTC will be set up for this mode,
 @@ -203,6 +234,191 @@
   drm_mode_set_crtcinfo(adjusted_mode, CRTC_INTERLACE_HALVE_V);
   }
  
 + /* Make sure pre-965s set dither correctly */
 + if (!IS_I965G(dev)) {
 + if (dev_priv-panel_wants_dither || dev_priv-lvds_dither)
 + pfit_control |= PANEL_8TO6_DITHER_ENABLE;
 + }
 +
 + /* Native modes don't need 

Re: [Patch 3/3_v2]: [DRM/I915] : Sync the default modes for LVDS output device

2009-04-01 Thread Alex Deucher
On 4/1/09, Eric Anholt e...@anholt.net wrote:
 On Mon, 2009-03-23 at 11:30 +0800, yakui_zhao wrote:
   Subject: [DRM/I915]: Sync the default modes for LVDS output device
   From: Zhao Yakui yakui.z...@intel.com
  
   Sync the default modes for the LVDS output device
   This covers:
   Add the default modes for the LVDS output device.
   The bit of edid-feature.msc indicates whether the display device is 
 not
   continous-frequency. And it is used to determine whether the default modes 
 will
   be added to the output device.
   But for the LVDS output device the edid-feature.msc will always be 
 set.Even
   when there is no edid, the correponding bit in the fake edid will be set.
   In such case the default modes will be added to LVDS output device.
   If not, the different modes are obtained by using KMS/UMS.
  
   Signed-off-by: Zhao Yakui yakui.z...@intel.com

  These giant tables of modes are insane.  Especially having a bunch of
  different refresh rates when the LVDS actually has a fixed refresh rate.
  Just generate a mode at each appropriate size using GTF or CVT.

  I'm not really sold on the whole idea of the kernel generating these
  fake modes for LVDS, given that we can support any size and that the
  refresh rate is a lie since we're always using the fixed mode.  Any
  other opinions on this?


Maybe a common drm mode function helper that will add a bunch of
common (4:3 and 16:9) modes that fixed mode encoders like LVDS can
call.  We certainly don't need to add modes with differing refresh
rates.

Alex


  --
  Eric Anholt
  e...@anholt.net eric.anh...@intel.com



 --

 --
  ___
  Dri-devel mailing list
  Dri-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/dri-devel




--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Patch 3/3_v2]: [DRM/I915] : Sync the default modes for LVDS output device

2009-04-01 Thread Jesse Barnes
On Wed, 01 Apr 2009 13:27:02 -0700
Eric Anholt e...@anholt.net wrote:

 On Mon, 2009-03-23 at 11:30 +0800, yakui_zhao wrote:
  Subject: [DRM/I915]: Sync the default modes for LVDS output device
  From: Zhao Yakui yakui.z...@intel.com
  
  Sync the default modes for the LVDS output device
  This covers:
  Add the default modes for the LVDS output device.
  The bit of edid-feature.msc indicates whether the display
  device is not continous-frequency. And it is used to determine
  whether the default modes will be added to the output device.
  But for the LVDS output device the edid-feature.msc will
  always be set.Even when there is no edid, the correponding bit in
  the fake edid will be set. In such case the default modes will be
  added to LVDS output device. If not, the different modes are
  obtained by using KMS/UMS.
  
  Signed-off-by: Zhao Yakui yakui.z...@intel.com
 
 These giant tables of modes are insane.  Especially having a bunch of
 different refresh rates when the LVDS actually has a fixed refresh
 rate. Just generate a mode at each appropriate size using GTF or CVT.
 
 I'm not really sold on the whole idea of the kernel generating these
 fake modes for LVDS, given that we can support any size and that the
 refresh rate is a lie since we're always using the fixed mode.  Any
 other opinions on this?

Yeah, having a bunch of hard coded modes seems like the wrong way to do
things here.  We can support arbitrary sizes with panel fitting and/or
borders, so using CVT or GTF seems like a good idea.  Question is, how
do we indicate this to userland?  Ideally we'd just export a CVT/GTF
flag and allow just about any mode to be sent down at mode set time,
but that would probably mean changes to the way we handle modes in the
DRM core. Alternately, we could export the flag and let userland load
custom modes before using them (that would match the mode list handling
we have).

-- 
Jesse Barnes, Intel Open Source Technology Center

--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Intel-gfx] [Patch 3/3_v2]: [DRM/I915] : Sync the default modes for LVDS output device

2009-04-01 Thread Keith Packard
On Wed, 2009-04-01 at 13:27 -0700, Eric Anholt wrote:

 I'm not really sold on the whole idea of the kernel generating these
 fake modes for LVDS, given that we can support any size and that the
 refresh rate is a lie since we're always using the fixed mode.  Any
 other opinions on this?

It would be nice if KMS could expose the hardware a bit more accurately;
knowing that the device has a scaler with specific size limits would
allow user space to know what was possible far more succinctly than a
huge list of modes.

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


signature.asc
Description: This is a digitally signed message part
--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Cache the EDID value for a short time in i915

2009-04-01 Thread Arjan van de Ven
On Wed, 01 Apr 2009 12:38:17 -0700
Eric Anholt e...@anholt.net wrote:

 On Mon, 2009-03-16 at 19:36 -0700, Arjan van de Ven wrote:
  From 8ad1bd63c097f9f6948439c1ce7c0b17b8caa64a Mon Sep 17 00:00:00
  2001
  From: Arjan van de Ven ar...@linux.intel.com
  Date: Mon, 16 Mar 2009 19:31:39 -0700
  Subject: [PATCH] drm: Cache the EDID value for a short time in i915
  
  during the boot process we have several places that want to make
  sure we have EDID information in a short time. An EDID probe for me
  takes 0.23 seconds, so doing multiple of them is not very nice.
  
  This patch caches the EDID result for upto 1 second to avoid
  repeated delays.
  
  Signed-off-by: Arjan van de Ven ar...@linux.intel.com
 
 I'm holding off on this one.  I'm applying the LVDS caching (makes
 complete sense) but I think someone needs to take a serious look at
 the requests for modes on outputs by the kernel and be sure that we've
 separated I want you go to reprobe and then tell me the current data
 from tell me what the current set of modes is.
 
 Once that's done, I expect this patch goes away.

for me the caching patch obsoletes this one, so absolutely fine by me.

 


-- 
Arjan van de VenIntel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org

--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel