Re: [Intel-gfx] [PATCH 1/2] drm/i915: i915.enable_backlight=0 disables intel_backlight

2012-05-14 Thread Kamal Mostafa
Hi Daniel-

Reminding you of this patch...

The new i915.enable_backlight modparam introduced in patch 1/2 is
generally useful, regardless of whether we quirk-enable as done in patch
2/2.  Its already been used successfully for a different machine[0] with
a different backlight problem.

Please consider applying this patch 1/2.

Thanks,

 -Kamal

[0] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/954661/comments/27


On Thu, 2012-04-26 at 22:07 +0200, Daniel Vetter wrote:
 On Wed, Apr 25, 2012 at 10:28:41AM -0700, Kamal Mostafa wrote:
  i915.enable_backlight=0 can be used to disable i915 backlight control
  and the /sys/class/backlight/intel_backlight interface -- useful for
  systems where intel_backight conflicts with BIOS backlight control.
  
  BugLink: https://launchpad.net/bugs/954661
  Signed-off-by: Kamal Mostafa ka...@canonical.com
 
 Ok, I've just gone through the fun of merging a set of backlight quirks a
 few weeks back. Then noticed that an awful lot of machines seem to be
 affected and later on read about a few interesting bits in the
 documentation. Turns out the hw is all good, it's just the driver totally
 mishandling the backlight.
 
 To cut things short: This time around I want more justification for the
 quirk than just this makes this one machine work somehow.
 -Daniel
 
  ---
   drivers/gpu/drm/i915/i915_drv.c|6 ++
   drivers/gpu/drm/i915/i915_drv.h|1 +
   drivers/gpu/drm/i915/intel_panel.c |   12 
   3 files changed, 19 insertions(+), 0 deletions(-)
  
  diff --git a/drivers/gpu/drm/i915/i915_drv.c 
  b/drivers/gpu/drm/i915/i915_drv.c
  index ae8a64f..ddb947b 100644
  --- a/drivers/gpu/drm/i915/i915_drv.c
  +++ b/drivers/gpu/drm/i915/i915_drv.c
  @@ -112,6 +112,12 @@ module_param_named(i915_enable_ppgtt, 
  i915_enable_ppgtt, int, 0600);
   MODULE_PARM_DESC(i915_enable_ppgtt,
  Enable PPGTT (default: true));
   
  +int i915_enable_backlight __read_mostly = -1;
  +module_param_named(enable_backlight, i915_enable_backlight, int, 0644);
  +MODULE_PARM_DESC(enable_backlight,
  +   Enable backlight control and the intel_backlight interface. 
  +   (default: -1 (auto)));
  +
   static struct drm_driver driver;
   extern int intel_agp_enabled;
   
  diff --git a/drivers/gpu/drm/i915/i915_drv.h 
  b/drivers/gpu/drm/i915/i915_drv.h
  index 5fabc6c..6e52a42 100644
  --- a/drivers/gpu/drm/i915/i915_drv.h
  +++ b/drivers/gpu/drm/i915/i915_drv.h
  @@ -1087,6 +1087,7 @@ extern int i915_enable_rc6 __read_mostly;
   extern int i915_enable_fbc __read_mostly;
   extern bool i915_enable_hangcheck __read_mostly;
   extern int i915_enable_ppgtt __read_mostly;
  +extern int i915_enable_backlight __read_mostly;
   
   extern int i915_suspend(struct drm_device *dev, pm_message_t state);
   extern int i915_resume(struct drm_device *dev);
  diff --git a/drivers/gpu/drm/i915/intel_panel.c 
  b/drivers/gpu/drm/i915/intel_panel.c
  index 48177ec..fcecbd2 100644
  --- a/drivers/gpu/drm/i915/intel_panel.c
  +++ b/drivers/gpu/drm/i915/intel_panel.c
  @@ -259,6 +259,9 @@ void intel_panel_disable_backlight(struct drm_device 
  *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
   
  +   if (!i915_enable_backlight)
  +   return;
  +
  dev_priv-backlight_enabled = false;
  intel_panel_actually_set_backlight(dev, 0);
   }
  @@ -267,6 +270,9 @@ void intel_panel_enable_backlight(struct drm_device 
  *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
   
  +   if (!i915_enable_backlight)
  +   return;
  +
  if (dev_priv-backlight_level == 0)
  dev_priv-backlight_level = intel_panel_get_max_backlight(dev);
   
  @@ -333,6 +339,9 @@ int intel_panel_setup_backlight(struct drm_device *dev)
  struct backlight_properties props;
  struct drm_connector *connector;
   
  +   if (!i915_enable_backlight)
  +   return 0;
  +
  intel_panel_init_backlight(dev);
   
  if (dev_priv-int_lvds_connector)
  @@ -368,6 +377,9 @@ void intel_panel_destroy_backlight(struct drm_device 
  *dev)
   #else
   int intel_panel_setup_backlight(struct drm_device *dev)
   {
  +   if (!i915_enable_backlight)
  +   return;
  +
  intel_panel_init_backlight(dev);
  return 0;
   }
  -- 
  1.7.5.4
  
  ___
  Intel-gfx mailing list
  Intel-gfx@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/intel-gfx
 



signature.asc
Description: This is a digitally signed message part
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/2] drm/i915: i915.enable_backlight=0 disables intel_backlight

2012-04-27 Thread Kamal Mostafa
On Thu, 2012-04-26 at 22:07 +0200, Daniel Vetter wrote:
 On Wed, Apr 25, 2012 at 10:28:41AM -0700, Kamal Mostafa wrote:
  i915.enable_backlight=0 can be used to disable i915 backlight control
  and the /sys/class/backlight/intel_backlight interface -- useful for
  systems where intel_backight conflicts with BIOS backlight control.
  
  BugLink: https://launchpad.net/bugs/954661
  Signed-off-by: Kamal Mostafa ka...@canonical.com
 
 Ok, I've just gone through the fun of merging a set of backlight quirks a
 few weeks back. Then noticed that an awful lot of machines seem to be
 affected and later on read about a few interesting bits in the
 documentation. Turns out the hw is all good, it's just the driver totally
 mishandling the backlight.
 
 To cut things short: This time around I want more justification for the
 quirk than just this makes this one machine work somehow.


The enable_backlight modparam (this PATCH 1/2) would be generally useful
to have, whether or not we quirk-disable it for that particular machine.
Consider accepting this first patch 1/2 on its own?

 -Kamal


  ---
   drivers/gpu/drm/i915/i915_drv.c|6 ++
   drivers/gpu/drm/i915/i915_drv.h|1 +
   drivers/gpu/drm/i915/intel_panel.c |   12 
   3 files changed, 19 insertions(+), 0 deletions(-)
  
  diff --git a/drivers/gpu/drm/i915/i915_drv.c 
  b/drivers/gpu/drm/i915/i915_drv.c
  index ae8a64f..ddb947b 100644
  --- a/drivers/gpu/drm/i915/i915_drv.c
  +++ b/drivers/gpu/drm/i915/i915_drv.c
  @@ -112,6 +112,12 @@ module_param_named(i915_enable_ppgtt, 
  i915_enable_ppgtt, int, 0600);
   MODULE_PARM_DESC(i915_enable_ppgtt,
  Enable PPGTT (default: true));
   
  +int i915_enable_backlight __read_mostly = -1;
  +module_param_named(enable_backlight, i915_enable_backlight, int, 0644);
  +MODULE_PARM_DESC(enable_backlight,
  +   Enable backlight control and the intel_backlight interface. 
  +   (default: -1 (auto)));
  +
   static struct drm_driver driver;
   extern int intel_agp_enabled;
   
  diff --git a/drivers/gpu/drm/i915/i915_drv.h 
  b/drivers/gpu/drm/i915/i915_drv.h
  index 5fabc6c..6e52a42 100644
  --- a/drivers/gpu/drm/i915/i915_drv.h
  +++ b/drivers/gpu/drm/i915/i915_drv.h
  @@ -1087,6 +1087,7 @@ extern int i915_enable_rc6 __read_mostly;
   extern int i915_enable_fbc __read_mostly;
   extern bool i915_enable_hangcheck __read_mostly;
   extern int i915_enable_ppgtt __read_mostly;
  +extern int i915_enable_backlight __read_mostly;
   
   extern int i915_suspend(struct drm_device *dev, pm_message_t state);
   extern int i915_resume(struct drm_device *dev);
  diff --git a/drivers/gpu/drm/i915/intel_panel.c 
  b/drivers/gpu/drm/i915/intel_panel.c
  index 48177ec..fcecbd2 100644
  --- a/drivers/gpu/drm/i915/intel_panel.c
  +++ b/drivers/gpu/drm/i915/intel_panel.c
  @@ -259,6 +259,9 @@ void intel_panel_disable_backlight(struct drm_device 
  *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
   
  +   if (!i915_enable_backlight)
  +   return;
  +
  dev_priv-backlight_enabled = false;
  intel_panel_actually_set_backlight(dev, 0);
   }
  @@ -267,6 +270,9 @@ void intel_panel_enable_backlight(struct drm_device 
  *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
   
  +   if (!i915_enable_backlight)
  +   return;
  +
  if (dev_priv-backlight_level == 0)
  dev_priv-backlight_level = intel_panel_get_max_backlight(dev);
   
  @@ -333,6 +339,9 @@ int intel_panel_setup_backlight(struct drm_device *dev)
  struct backlight_properties props;
  struct drm_connector *connector;
   
  +   if (!i915_enable_backlight)
  +   return 0;
  +
  intel_panel_init_backlight(dev);
   
  if (dev_priv-int_lvds_connector)
  @@ -368,6 +377,9 @@ void intel_panel_destroy_backlight(struct drm_device 
  *dev)
   #else
   int intel_panel_setup_backlight(struct drm_device *dev)
   {
  +   if (!i915_enable_backlight)
  +   return;
  +
  intel_panel_init_backlight(dev);
  return 0;
   }
  -- 
  1.7.5.4
  
  ___
  Intel-gfx mailing list
  Intel-gfx@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/intel-gfx
 


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


Re: [Intel-gfx] [PATCH 1/2] drm/i915: i915.enable_backlight=0 disables intel_backlight

2012-04-26 Thread Daniel Vetter
On Wed, Apr 25, 2012 at 10:28:41AM -0700, Kamal Mostafa wrote:
 i915.enable_backlight=0 can be used to disable i915 backlight control
 and the /sys/class/backlight/intel_backlight interface -- useful for
 systems where intel_backight conflicts with BIOS backlight control.
 
 BugLink: https://launchpad.net/bugs/954661
 Signed-off-by: Kamal Mostafa ka...@canonical.com

Ok, I've just gone through the fun of merging a set of backlight quirks a
few weeks back. Then noticed that an awful lot of machines seem to be
affected and later on read about a few interesting bits in the
documentation. Turns out the hw is all good, it's just the driver totally
mishandling the backlight.

To cut things short: This time around I want more justification for the
quirk than just this makes this one machine work somehow.
-Daniel

 ---
  drivers/gpu/drm/i915/i915_drv.c|6 ++
  drivers/gpu/drm/i915/i915_drv.h|1 +
  drivers/gpu/drm/i915/intel_panel.c |   12 
  3 files changed, 19 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
 index ae8a64f..ddb947b 100644
 --- a/drivers/gpu/drm/i915/i915_drv.c
 +++ b/drivers/gpu/drm/i915/i915_drv.c
 @@ -112,6 +112,12 @@ module_param_named(i915_enable_ppgtt, i915_enable_ppgtt, 
 int, 0600);
  MODULE_PARM_DESC(i915_enable_ppgtt,
   Enable PPGTT (default: true));
  
 +int i915_enable_backlight __read_mostly = -1;
 +module_param_named(enable_backlight, i915_enable_backlight, int, 0644);
 +MODULE_PARM_DESC(enable_backlight,
 + Enable backlight control and the intel_backlight interface. 
 + (default: -1 (auto)));
 +
  static struct drm_driver driver;
  extern int intel_agp_enabled;
  
 diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
 index 5fabc6c..6e52a42 100644
 --- a/drivers/gpu/drm/i915/i915_drv.h
 +++ b/drivers/gpu/drm/i915/i915_drv.h
 @@ -1087,6 +1087,7 @@ extern int i915_enable_rc6 __read_mostly;
  extern int i915_enable_fbc __read_mostly;
  extern bool i915_enable_hangcheck __read_mostly;
  extern int i915_enable_ppgtt __read_mostly;
 +extern int i915_enable_backlight __read_mostly;
  
  extern int i915_suspend(struct drm_device *dev, pm_message_t state);
  extern int i915_resume(struct drm_device *dev);
 diff --git a/drivers/gpu/drm/i915/intel_panel.c 
 b/drivers/gpu/drm/i915/intel_panel.c
 index 48177ec..fcecbd2 100644
 --- a/drivers/gpu/drm/i915/intel_panel.c
 +++ b/drivers/gpu/drm/i915/intel_panel.c
 @@ -259,6 +259,9 @@ void intel_panel_disable_backlight(struct drm_device *dev)
  {
   struct drm_i915_private *dev_priv = dev-dev_private;
  
 + if (!i915_enable_backlight)
 + return;
 +
   dev_priv-backlight_enabled = false;
   intel_panel_actually_set_backlight(dev, 0);
  }
 @@ -267,6 +270,9 @@ void intel_panel_enable_backlight(struct drm_device *dev)
  {
   struct drm_i915_private *dev_priv = dev-dev_private;
  
 + if (!i915_enable_backlight)
 + return;
 +
   if (dev_priv-backlight_level == 0)
   dev_priv-backlight_level = intel_panel_get_max_backlight(dev);
  
 @@ -333,6 +339,9 @@ int intel_panel_setup_backlight(struct drm_device *dev)
   struct backlight_properties props;
   struct drm_connector *connector;
  
 + if (!i915_enable_backlight)
 + return 0;
 +
   intel_panel_init_backlight(dev);
  
   if (dev_priv-int_lvds_connector)
 @@ -368,6 +377,9 @@ void intel_panel_destroy_backlight(struct drm_device *dev)
  #else
  int intel_panel_setup_backlight(struct drm_device *dev)
  {
 + if (!i915_enable_backlight)
 + return;
 +
   intel_panel_init_backlight(dev);
   return 0;
  }
 -- 
 1.7.5.4
 
 ___
 Intel-gfx mailing list
 Intel-gfx@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/2] drm/i915: i915.enable_backlight=0 disables intel_backlight

2012-04-25 Thread Kamal Mostafa
i915.enable_backlight=0 can be used to disable i915 backlight control
and the /sys/class/backlight/intel_backlight interface -- useful for
systems where intel_backight conflicts with BIOS backlight control.

BugLink: https://launchpad.net/bugs/954661
Signed-off-by: Kamal Mostafa ka...@canonical.com
---
 drivers/gpu/drm/i915/i915_drv.c|6 ++
 drivers/gpu/drm/i915/i915_drv.h|1 +
 drivers/gpu/drm/i915/intel_panel.c |   12 
 3 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ae8a64f..ddb947b 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -112,6 +112,12 @@ module_param_named(i915_enable_ppgtt, i915_enable_ppgtt, 
int, 0600);
 MODULE_PARM_DESC(i915_enable_ppgtt,
Enable PPGTT (default: true));
 
+int i915_enable_backlight __read_mostly = -1;
+module_param_named(enable_backlight, i915_enable_backlight, int, 0644);
+MODULE_PARM_DESC(enable_backlight,
+   Enable backlight control and the intel_backlight interface. 
+   (default: -1 (auto)));
+
 static struct drm_driver driver;
 extern int intel_agp_enabled;
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 5fabc6c..6e52a42 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1087,6 +1087,7 @@ extern int i915_enable_rc6 __read_mostly;
 extern int i915_enable_fbc __read_mostly;
 extern bool i915_enable_hangcheck __read_mostly;
 extern int i915_enable_ppgtt __read_mostly;
+extern int i915_enable_backlight __read_mostly;
 
 extern int i915_suspend(struct drm_device *dev, pm_message_t state);
 extern int i915_resume(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 48177ec..fcecbd2 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -259,6 +259,9 @@ void intel_panel_disable_backlight(struct drm_device *dev)
 {
struct drm_i915_private *dev_priv = dev-dev_private;
 
+   if (!i915_enable_backlight)
+   return;
+
dev_priv-backlight_enabled = false;
intel_panel_actually_set_backlight(dev, 0);
 }
@@ -267,6 +270,9 @@ void intel_panel_enable_backlight(struct drm_device *dev)
 {
struct drm_i915_private *dev_priv = dev-dev_private;
 
+   if (!i915_enable_backlight)
+   return;
+
if (dev_priv-backlight_level == 0)
dev_priv-backlight_level = intel_panel_get_max_backlight(dev);
 
@@ -333,6 +339,9 @@ int intel_panel_setup_backlight(struct drm_device *dev)
struct backlight_properties props;
struct drm_connector *connector;
 
+   if (!i915_enable_backlight)
+   return 0;
+
intel_panel_init_backlight(dev);
 
if (dev_priv-int_lvds_connector)
@@ -368,6 +377,9 @@ void intel_panel_destroy_backlight(struct drm_device *dev)
 #else
 int intel_panel_setup_backlight(struct drm_device *dev)
 {
+   if (!i915_enable_backlight)
+   return;
+
intel_panel_init_backlight(dev);
return 0;
 }
-- 
1.7.5.4

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