rpms/kernel/devel drm-intel-pm.patch, 1.1, 1.2 kernel.spec, 1.1675, 1.1676
Matthew Garrett
mjg59 at fedoraproject.org
Thu Jul 30 20:43:31 UTC 2009
- Previous message (by thread): rpms/device-mapper-multipath/devel select_lib.patch, NONE, 1.1 device-mapper-multipath.spec, 1.60, 1.61 redhatification.patch, 1.4, 1.5 lib64_multipath.patch, 1.2, NONE
- Next message (by thread): rpms/PyOpenGL/devel PyOpenGL.spec,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mjg59
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26268
Modified Files:
drm-intel-pm.patch kernel.spec
Log Message:
* Thu Jul 30 2009 Matthew Garrett <mjg at redhat.com>
- drm-intel-pm.patch: Don't reclock external outputs. Increase the reduced
clock slightly to avoid upsetting some hardware. Disable renderclock
adjustment for the moment - it's breaking on some hardware.
drm-intel-pm.patch:
linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.h.orig |only
linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_reg.h.orig |only
linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_display.c.orig |only
linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.c | 15
linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.h | 14
linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_gem.c | 8
linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_reg.h | 22
linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_display.c | 483 +++++++++-
linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_drv.h | 4
9 files changed, 511 insertions(+), 35 deletions(-)
Index: drm-intel-pm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-intel-pm.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- drm-intel-pm.patch 27 Jul 2009 02:22:56 -0000 1.1
+++ drm-intel-pm.patch 30 Jul 2009 20:43:31 -0000 1.2
@@ -1,19 +1,31 @@
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.c linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.c
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.c 2009-07-27 03:06:09.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.c 2009-07-27 03:11:18.000000000 +0100
-@@ -43,6 +43,9 @@
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.c 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.c 2009-07-30 21:29:34.000000000 +0100
+@@ -43,6 +43,21 @@
unsigned int i915_fbpercrtc = 0;
module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400);
+unsigned int i915_powersave = 1;
+module_param_named(powersave, i915_powersave, int, 0400);
+
++unsigned int i915_lvdsclock = 1;
++module_param_named(lvdsclock, i915_lvdsclock, int, 0400);
++
++unsigned int i915_lvdsscale = 85;
++module_param_named(lvdsscale, i915_lvdsscale, int, 0400);
++
++unsigned int i915_displayclock = 1;
++module_param_named(displayclock, i915_displayclock, int, 0600);
++
++unsigned int i915_renderclock = 0;
++module_param_named(renderclock, i915_renderclock, int, 0600);
++
static struct drm_driver driver;
static struct pci_device_id pciidlist[] = {
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.h linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.h
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.h 2009-07-27 02:59:58.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.h 2009-07-27 03:11:18.000000000 +0100
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_drv.h 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_drv.h 2009-07-30 21:29:34.000000000 +0100
@@ -436,6 +436,12 @@
struct drm_i915_gem_phys_object *phys_objs[I915_MAX_PHYS_OBJECT];
} mm;
@@ -27,15 +39,19 @@ diff -ur linux-2.6.30.noarch.orig/driver
} drm_i915_private_t;
/** driver private structure attached to each drm_gem_object */
-@@ -565,6 +571,7 @@
+@@ -565,6 +571,11 @@
extern struct drm_ioctl_desc i915_ioctls[];
extern int i915_max_ioctl;
extern unsigned int i915_fbpercrtc;
+extern unsigned int i915_powersave;
++extern unsigned int i915_lvdsclock;
++extern unsigned int i915_lvdsscale;
++extern unsigned int i915_displayclock;
++extern unsigned int i915_renderclock;
extern int i915_master_create(struct drm_device *dev, struct drm_master *master);
extern void i915_master_destroy(struct drm_device *dev, struct drm_master *master);
-@@ -892,6 +899,9 @@
+@@ -893,6 +904,9 @@
/* dsparb controlled by hw only */
#define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IGDNG(dev))
@@ -45,9 +61,10 @@ diff -ur linux-2.6.30.noarch.orig/driver
#define PRIMARY_RINGBUFFER_SIZE (128*1024)
#endif
+Only in linux-2.6.30.noarch.orig/drivers/gpu/drm/i915: i915_drv.h.orig
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_gem.c linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_gem.c
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_gem.c 2009-07-27 03:06:09.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_gem.c 2009-07-27 03:11:18.000000000 +0100
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_gem.c 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_gem.c 2009-07-30 21:29:34.000000000 +0100
@@ -29,6 +29,7 @@
#include "drm.h"
#include "i915_drm.h"
@@ -87,9 +104,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
DRM_INFO("%s: object %p read %08x -> %08x write %08x -> %08x\n",
__func__, obj,
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_reg.h linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_reg.h
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_reg.h 2009-07-27 02:59:58.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_reg.h 2009-07-27 03:11:18.000000000 +0100
-@@ -55,7 +55,7 @@
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/i915_reg.h 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/i915_reg.h 2009-07-30 21:29:34.000000000 +0100
+@@ -56,7 +56,7 @@
/* PCI config space */
#define HPLLCC 0xc0 /* 855 only */
@@ -98,7 +115,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
#define GC_CLOCK_133_200 (0 << 0)
#define GC_CLOCK_100_200 (1 << 0)
#define GC_CLOCK_100_133 (2 << 0)
-@@ -65,6 +65,25 @@
+@@ -66,6 +66,25 @@
#define GC_DISPLAY_CLOCK_190_200_MHZ (0 << 4)
#define GC_DISPLAY_CLOCK_333_MHZ (4 << 4)
#define GC_DISPLAY_CLOCK_MASK (7 << 4)
@@ -124,7 +141,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
#define LBB 0xf4
/* VGA stuff */
-@@ -1569,6 +1588,7 @@
+@@ -1570,6 +1589,7 @@
#define PIPECONF_PROGRESSIVE (0 << 21)
#define PIPECONF_INTERLACE_W_FIELD_INDICATION (6 << 21)
#define PIPECONF_INTERLACE_FIELD_0_ONLY (7 << 21)
@@ -132,9 +149,10 @@ diff -ur linux-2.6.30.noarch.orig/driver
#define PIPEASTAT 0x70024
#define PIPE_FIFO_UNDERRUN_STATUS (1UL<<31)
#define PIPE_CRC_ERROR_ENABLE (1UL<<29)
+Only in linux-2.6.30.noarch.orig/drivers/gpu/drm/i915: i915_reg.h.orig
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_display.c linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_display.c
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_display.c 2009-07-27 03:06:09.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_display.c 2009-07-27 03:12:17.000000000 +0100
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_display.c 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_display.c 2009-07-30 21:29:34.000000000 +0100
@@ -36,6 +36,7 @@
bool intel_pipe_has_type (struct drm_crtc *crtc, int type);
@@ -452,10 +470,10 @@ diff -ur linux-2.6.30.noarch.orig/driver
return -EINVAL;
}
-+ if (limit->find_reduced_pll) {
++ if (limit->find_reduced_pll && is_lvds) {
+ memcpy(&reduced_clock, &clock, sizeof(intel_clock_t));
+ has_reduced_clock = limit->find_reduced_pll(limit, crtc,
-+ (adjusted_mode->clock*3/4),
++ (adjusted_mode->clock*i915_lvdsscale/100),
+ refclk,
+ &reduced_clock);
+ }
@@ -496,7 +514,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
intel_dp_set_m_n(crtc, mode, adjusted_mode);
I915_WRITE(fp_reg, fp);
-+ if (has_reduced_clock && i915_powersave) {
++ if (has_reduced_clock && i915_powersave && i915_lvdsclock) {
+ I915_WRITE(fp_reg + 4, fp2);
+ intel_crtc->lowfreq_avail = true;
+ if (HAS_PIPE_CXSR(dev)) {
@@ -536,7 +554,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
if (x < 0) {
temp |= CURSOR_POS_SIGN << CURSOR_X_SHIFT;
x = -x;
-@@ -2813,6 +2920,271 @@
+@@ -2813,6 +2920,286 @@
return mode;
}
@@ -559,6 +577,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
+{
+ drm_i915_private_t *dev_priv = dev->dev_private;
+
++ if (!i915_renderclock)
++ return;
++
+ if (IS_G4X(dev) || IS_I9XX(dev)) {
+ /* Up to maximum... */
+ pci_write_config_word(dev->pdev, GCFGC, dev_priv->orig_clock);
@@ -577,6 +598,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
+
+void intel_decrease_renderclock(struct drm_device *dev)
+{
++ if (!i915_renderclock)
++ return;
++
+ if (IS_G4X(dev)) {
+ u16 gcfgc;
+
@@ -641,6 +665,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
+ */
+void intel_decrease_displayclock(struct drm_device *dev)
+{
++ if (!i915_displayclock)
++ return;
++
+ if (IS_I945G(dev) || IS_I945GM(dev) || IS_I915G(dev) ||
+ IS_I915GM(dev)) {
+ u16 gcfgc;
@@ -678,6 +705,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
+ int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B;
+ int dpll = I915_READ(dpll_reg);
+
++ if (!i915_lvdsclock)
++ return;
++
+ if (!HAS_PIPE_CXSR(dev) && (dpll & DISPLAY_RATE_SELECT_FPA1)) {
+ DRM_DEBUG("upclocking LVDS\n");
+
@@ -708,6 +738,9 @@ diff -ur linux-2.6.30.noarch.orig/driver
+ int dpll_reg = (pipe == 0) ? DPLL_A : DPLL_B;
+ int dpll = I915_READ(dpll_reg);
+
++ if (!i915_lvdsclock)
++ return;
++
+ /*
+ * Since this is called by a timer, we should never get here in
+ * the manual case.
@@ -808,7 +841,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
static void intel_crtc_destroy(struct drm_crtc *crtc)
{
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-@@ -2869,6 +3241,10 @@
+@@ -2869,6 +3256,10 @@
intel_crtc->mode_set.crtc = &intel_crtc->base;
intel_crtc->mode_set.connectors = (struct drm_connector **)(intel_crtc + 1);
intel_crtc->mode_set.num_connectors = 0;
@@ -819,7 +852,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
if (i915_fbpercrtc) {
-@@ -3143,6 +3519,7 @@
+@@ -3143,6 +3534,7 @@
void intel_modeset_init(struct drm_device *dev)
{
@@ -827,7 +860,7 @@ diff -ur linux-2.6.30.noarch.orig/driver
int num_pipe;
int i;
-@@ -3174,15 +3551,38 @@
+@@ -3174,15 +3566,38 @@
DRM_DEBUG("%d display pipe%s available.\n",
num_pipe, num_pipe > 1 ? "s" : "");
@@ -866,12 +899,10 @@ diff -ur linux-2.6.30.noarch.orig/driver
drm_mode_config_cleanup(dev);
}
-Only in linux-2.6.30.noarch/drivers/gpu/drm/i915: intel_display.c~
-Only in linux-2.6.30.noarch/drivers/gpu/drm/i915: intel_display.c.orig
-Only in linux-2.6.30.noarch/drivers/gpu/drm/i915: intel_display.c.rej
+Only in linux-2.6.30.noarch.orig/drivers/gpu/drm/i915: intel_display.c.orig
diff -ur linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_drv.h linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_drv.h
---- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_drv.h 2009-07-27 02:59:58.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_drv.h 2009-07-27 03:11:18.000000000 +0100
+--- linux-2.6.30.noarch.orig/drivers/gpu/drm/i915/intel_drv.h 2009-07-30 21:32:05.000000000 +0100
++++ linux-2.6.30.noarch/drivers/gpu/drm/i915/intel_drv.h 2009-07-30 21:29:34.000000000 +0100
@@ -98,6 +98,9 @@
struct intel_framebuffer *fbdev_fb;
/* a mode_set for fbdev users on this crtc */
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1675
retrieving revision 1.1676
diff -u -p -r1.1675 -r1.1676
--- kernel.spec 30 Jul 2009 15:48:44 -0000 1.1675
+++ kernel.spec 30 Jul 2009 20:43:31 -0000 1.1676
@@ -1933,6 +1933,11 @@ fi
# and build.
%changelog
+* Thu Jul 30 2009 Matthew Garrett <mjg at redhat.com>
+- drm-intel-pm.patch: Don't reclock external outputs. Increase the reduced
+ clock slightly to avoid upsetting some hardware. Disable renderclock
+ adjustment for the moment - it's breaking on some hardware.
+
* Thu Jul 30 2009 Ben Skeggs <bskeggs at redhat.com>
- nouveau: another DCB 1.5 entry, G80 corruption fixes, small <G80 KMS fix
- Previous message (by thread): rpms/device-mapper-multipath/devel select_lib.patch, NONE, 1.1 device-mapper-multipath.spec, 1.60, 1.61 redhatification.patch, 1.4, 1.5 lib64_multipath.patch, 1.2, NONE
- Next message (by thread): rpms/PyOpenGL/devel PyOpenGL.spec,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list