rpms/kernel/devel drm-modesetting-radeon.patch, 1.8, 1.9 kernel.spec, 1.863, 1.864

Dave Airlie (airlied) fedora-extras-commits at redhat.com
Fri Aug 8 04:54:19 UTC 2008


Author: airlied

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3953

Modified Files:
	drm-modesetting-radeon.patch kernel.spec 
Log Message:
* Fri Aug 08 2008 Dave Airlie <airlied at redhat.com>
- attempt to fix oops in drm_open


drm-modesetting-radeon.patch:

Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- drm-modesetting-radeon.patch	6 Aug 2008 06:20:55 -0000	1.8
+++ drm-modesetting-radeon.patch	8 Aug 2008 04:53:49 -0000	1.9
@@ -8187,7 +8187,7 @@
 +}
 +
 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
-index 851a53f..9a50462 100644
+index 851a53f..db1a27d 100644
 --- a/drivers/gpu/drm/drm_fops.c
 +++ b/drivers/gpu/drm/drm_fops.c
 @@ -44,10 +44,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
@@ -8234,7 +8234,7 @@
  	dev->context_flag = 0;
  	dev->interrupt_flag = 0;
  	dev->dma_flag = 0;
-@@ -147,10 +133,18 @@ int drm_open(struct inode *inode, struct file *filp)
+@@ -147,10 +133,20 @@ int drm_open(struct inode *inode, struct file *filp)
  		spin_lock(&dev->count_lock);
  		if (!dev->open_count++) {
  			spin_unlock(&dev->count_lock);
@@ -8246,15 +8246,17 @@
  	}
 +out:
 +	mutex_lock(&dev->struct_mutex);
-+	BUG_ON((dev->dev_mapping != NULL) &&
-+	       (dev->dev_mapping != inode->i_mapping));
-+	if (dev->dev_mapping == NULL)
-+		dev->dev_mapping = inode->i_mapping;
++	if (minor->type == DRM_MINOR_LEGACY) {
++		BUG_ON((dev->dev_mapping != NULL) &&
++	       		(dev->dev_mapping != inode->i_mapping));
++		if (dev->dev_mapping == NULL)
++			dev->dev_mapping = inode->i_mapping;
++	}
 +	mutex_unlock(&dev->struct_mutex);
  
  	return retcode;
  }
-@@ -255,6 +249,10 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
+@@ -255,6 +251,10 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
  	priv->lock_count = 0;
  
  	INIT_LIST_HEAD(&priv->lhead);
@@ -8265,7 +8267,7 @@
  
  	if (dev->driver->open) {
  		ret = dev->driver->open(dev, priv);
-@@ -262,10 +260,42 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
+@@ -262,10 +262,42 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
  			goto out_free;
  	}
  
@@ -8281,7 +8283,7 @@
 +			ret = -ENOMEM;
 +			goto out_free;
 +		}
-+
+ 
 +		priv->is_master = 1;
 +		/* take another reference for the copy in the local file priv */
 +		priv->master = drm_master_get(priv->minor->master);
@@ -8305,12 +8307,12 @@
 +		priv->master = drm_master_get(priv->minor->master);
 +		mutex_unlock(&dev->struct_mutex);
 +	}
- 
++
 +	mutex_lock(&dev->struct_mutex);
  	list_add(&priv->lhead, &dev->filelist);
  	mutex_unlock(&dev->struct_mutex);
  
-@@ -345,60 +375,67 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -345,60 +377,67 @@ int drm_release(struct inode *inode, struct file *filp)
  		  (long)old_encode_dev(file_priv->minor->device),
  		  dev->open_count);
  
@@ -8424,7 +8426,7 @@
  
  	drm_fasync(-1, filp, 0);
  
-@@ -423,13 +460,30 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -423,13 +462,30 @@ int drm_release(struct inode *inode, struct file *filp)
  	}
  	mutex_unlock(&dev->ctxlist_mutex);
  
@@ -8458,7 +8460,7 @@
  	list_del(&file_priv->lhead);
  	mutex_unlock(&dev->struct_mutex);
  
-@@ -444,9 +498,9 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -444,9 +500,9 @@ int drm_release(struct inode *inode, struct file *filp)
  	atomic_inc(&dev->counts[_DRM_STAT_CLOSES]);
  	spin_lock(&dev->count_lock);
  	if (!--dev->open_count) {
@@ -18720,7 +18722,7 @@
 +
 +#endif /* _I915_REG_H_ */
 diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile
-index feb521e..d562350 100644
+index feb521e..d4c5bdd 100644
 --- a/drivers/gpu/drm/radeon/Makefile
 +++ b/drivers/gpu/drm/radeon/Makefile
 @@ -3,7 +3,10 @@
@@ -18731,7 +18733,7 @@
 +radeon-y := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o \
 +	    radeon_gem.o radeon_buffer.o radeon_fence.o radeon_cs.o \
 +	    radeon_i2c.o radeon_fb.o radeon_encoders.o radeon_connectors.o radeon_display.o \
-+	    atombios_crtc.o atom.o radeon_atombios.o radeon_combios.o
++	    atombios_crtc.o atom.o radeon_atombios.o radeon_combios.o radeon_legacy_crtc.o
  
  radeon-$(CONFIG_COMPAT) += radeon_ioc32.o
  
@@ -26746,10 +26748,10 @@
 +}
 diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
 new file mode 100644
-index 0000000..e2b768c
+index 0000000..8a1dd8b
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_combios.c
-@@ -0,0 +1,381 @@
+@@ -0,0 +1,420 @@
 +/*
 + * Copyright 2004 ATI Technologies Inc., Markham, Ontario
 + * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26927,6 +26929,45 @@
 +	return true;
 +}
 +
++bool radeon_combios_get_tmds_info(struct radeon_encoder *encoder)
++{
++	struct drm_device *dev = encoder->base.dev;
++	struct drm_radeon_private *dev_priv = dev->dev_private;
++	uint16_t tmp;
++	int i, n;
++	uint8_t ver;
++
++	tmp = radeon_bios16(dev_priv, dev_priv->bios_header_start + 0x34);
++	if (!tmp) {
++		DRM_INFO("No TMDS info found in BIOS\n");
++		return false;
++	}
++
++	ver = radeon_bios8(dev_priv, tmp);
++	DRM_INFO("DFP table revision: %d\n", ver);
++	if (ver == 3) {
++		n = radeon_bios8(dev_priv, tmp + 5) + 1;
++		if (n > 4) n = 4;
++		for (i = 0; i < n; i++) {
++			encoder->tmds_pll[i].value = radeon_bios32(dev_priv, tmp+i*10+0x08);
++			encoder->tmds_pll[i].freq = radeon_bios16(dev_priv, tmp+i*10+0x10);	
++		}
++		return true;
++	} else if (ver == 4) {
++		int stride = 0;
++		n = radeon_bios8(dev_priv, tmp + 5) + 1;
++		if (n > 4) n = 4;
++		for (i = 0; i < n; i++) {
++			encoder->tmds_pll[i].value = radeon_bios32(dev_priv, tmp+stride+0x08);
++			encoder->tmds_pll[i].freq = radeon_bios16(dev_priv, tmp+stride+0x10);
++			if (i == 0) stride += 10;
++			else stride += 6;
++		}
++		return true;
++	}
++	return false;
++}
++
 +static void radeon_apply_legacy_quirks(struct drm_device *dev, int bios_index)
 +{
 +	struct drm_radeon_private *dev_priv = dev->dev_private;
@@ -29288,10 +29329,10 @@
 +}
 diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
 new file mode 100644
-index 0000000..7a7b585
+index 0000000..1e5233d
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_display.c
-@@ -0,0 +1,725 @@
+@@ -0,0 +1,695 @@
 +/*
 + * Copyright 2007-8 Advanced Micro Devices, Inc.
 + * Copyright 2008 Red Hat Inc.
@@ -29410,39 +29451,8 @@
 +	radeon_crtc->lut_b[regno] = blue >> 8;
 +}
 +
-+void radeon_crtc_dpms(struct drm_crtc *crtc, int mode)
-+{
-+}
-+
 +
 +
-+static bool radeon_crtc_mode_fixup(struct drm_crtc *crtc,
-+				   struct drm_display_mode *mode,
-+				   struct drm_display_mode *adjusted_mode)
-+{
-+	return true;
-+}
-+
-+static void radeon_crtc_mode_set(struct drm_crtc *crtc,
-+				 struct drm_display_mode *mode,
-+				 struct drm_display_mode *adjusted_mode,
-+				 int x, int y)
-+{
-+
-+}
-+
-+void radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y)
-+{
-+}
-+
-+static void radeon_crtc_prepare(struct drm_crtc *crtc)
-+{
-+}
-+
-+static void radeon_crtc_commit(struct drm_crtc *crtc)
-+{
-+}
-+
 +static void avivo_lock_cursor(struct drm_crtc *crtc, bool lock)
 +{
 +	struct drm_radeon_private *dev_priv = crtc->dev->dev_private;
@@ -29557,15 +29567,6 @@
 +	kfree(radeon_crtc);
 +}
 +
-+static const struct drm_crtc_helper_funcs radeon_helper_funcs = {
-+	.dpms = radeon_crtc_dpms,
-+	.mode_fixup = radeon_crtc_mode_fixup,
-+	.mode_set = radeon_crtc_mode_set,
-+	.mode_set_base = radeon_crtc_set_base,
-+	.prepare = radeon_crtc_prepare,
-+	.commit = radeon_crtc_commit,
-+};
-+
 +static const struct drm_crtc_funcs radeon_crtc_funcs = {
 +	.cursor_set = radeon_crtc_cursor_set,
 +	.cursor_move = radeon_crtc_cursor_move,
@@ -29603,7 +29604,7 @@
 +	if (dev_priv->is_atom_bios && dev_priv->chip_family > CHIP_RS690)
 +		radeon_atombios_init_crtc(dev, radeon_crtc);
 +	else
-+		drm_crtc_helper_add(&radeon_crtc->base, &radeon_helper_funcs);
++		radeon_legacy_init_crtc(dev, radeon_crtc);
 +}
 +
 +bool radeon_legacy_setup_enc_conn(struct drm_device *dev)
@@ -29654,8 +29655,14 @@
 +		if ((mode_info->bios_connector[i].connector_type == CONNECTOR_DVI_I) ||
 +		    (mode_info->bios_connector[i].connector_type == CONNECTOR_DVI_A) ||
 +		    (mode_info->bios_connector[i].connector_type == CONNECTOR_VGA)) {
-+			if (radeon_is_avivo(dev_priv))
++			if (radeon_is_avivo(dev_priv)) {
 +				encoder = radeon_encoder_atom_dac_add(dev, i, mode_info->bios_connector[i].dac_type, 0);
++			} else {
++				if (mode_info->bios_connector[i].dac_type == DAC_PRIMARY)
++					encoder = radeon_encoder_legacy_primary_dac_add(dev, i, 0);
++//				else if (mode_info->bios_connector[i].dac_type == DAC_TVDAC)
++//					encoder radeon_encoder_legacy_secondary_dac_add(dev, i, 0);
++			}
 +			if (encoder)
 +				drm_mode_connector_attach_encoder(connector, encoder);
 +		}
@@ -29665,6 +29672,10 @@
 +		    (mode_info->bios_connector[i].connector_type == CONNECTOR_DVI_D)) {
 +			if (radeon_is_avivo(dev_priv))
 +				encoder = radeon_encoder_atom_tmds_add(dev, i, mode_info->bios_connector[i].dac_type);
++			else {
++				if (mode_info->bios_connector[i].tmds_type == TMDS_INT)
++					encoder = radeon_encoder_legacy_tmds_int_add(dev, i);
++			}
 +			if (encoder)
 +				drm_mode_connector_attach_encoder(connector, encoder);
 +		}
@@ -30018,7 +30029,7 @@
 +}
 +
 diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
-index 349ac3d..fdc559c 100644
+index 637bd7f..dfe95db 100644
 --- a/drivers/gpu/drm/radeon/radeon_drv.c
 +++ b/drivers/gpu/drm/radeon/radeon_drv.c
 @@ -37,10 +37,17 @@
@@ -30740,10 +30751,10 @@
  #endif				/* __RADEON_DRV_H__ */
 diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
 new file mode 100644
-index 0000000..1b75bd6
+index 0000000..9d07c77
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_encoders.c
-@@ -0,0 +1,962 @@
+@@ -0,0 +1,1099 @@
 +/*
 + * Copyright 2007-8 Advanced Micro Devices, Inc.
 + * Copyright 2008 Red Hat Inc.
@@ -31677,6 +31688,7 @@
 +	.destroy = radeon_enc_destroy,
 +};
 +
++
 +struct drm_encoder *radeon_encoder_legacy_lvds_add(struct drm_device *dev, int bios_index)
 +{
 +	struct drm_radeon_private *dev_priv = dev->dev_private;
@@ -31706,6 +31718,142 @@
 +
 +	return encoder;
 +}
++
++static bool radeon_legacy_primary_dac_mode_fixup(struct drm_encoder *encoder,
++						 struct drm_display_mode *mode,
++						 struct drm_display_mode *adjusted_mode)
++{
++
++}
++
++static void radeon_legacy_primary_dac_dpms(struct drm_encoder *encoder, int mode)
++{
++
++
++}
++
++static void radeon_legacy_primary_dac_prepare(struct drm_encoder *encoder)
++{
++	radeon_legacy_primary_dac_dpms(encoder, DRM_MODE_DPMS_OFF);
++}
++
++static void radeon_legacy_primary_dac_commit(struct drm_encoder *encoder)
++{
++	radeon_legacy_primary_dac_dpms(encoder, DRM_MODE_DPMS_ON);
++}
++
++static void radeon_legacy_primary_dac_mode_set(struct drm_encoder *encoder,
++				  struct drm_display_mode *mode,
++				  struct drm_display_mode *adjusted_mode)
++{
++
++
++}
++
++static const struct drm_encoder_helper_funcs radeon_legacy_primary_dac_helper_funcs = {
++	.dpms = radeon_legacy_primary_dac_dpms,
++	.mode_fixup = radeon_legacy_primary_dac_mode_fixup,
++	.prepare = radeon_legacy_primary_dac_prepare,
++	.mode_set = radeon_legacy_primary_dac_mode_set,
++	.commit = radeon_legacy_primary_dac_commit,
++};
++
++
++static const struct drm_encoder_funcs radeon_legacy_primary_dac_enc_funcs = {
++	.destroy = radeon_enc_destroy,
++};
++
++struct drm_encoder *radeon_encoder_legacy_primary_dac_add(struct drm_device *dev, int bios_index, int has_tv)
++{
++	struct drm_radeon_private *dev_priv = dev->dev_private;
++	struct radeon_mode_info *mode_info = &dev_priv->mode_info;
++	struct radeon_encoder *radeon_encoder;
++	struct drm_encoder *encoder;
++	radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
++	if (!radeon_encoder) {
++		return NULL;
++	}
++
++	encoder = &radeon_encoder->base;
++
++	encoder->possible_crtcs = 0x3;
++	encoder->possible_clones = 0;
++	drm_encoder_init(dev, encoder, &radeon_legacy_primary_dac_enc_funcs,
++			 DRM_MODE_ENCODER_DAC);
++
++	drm_encoder_helper_add(encoder, &radeon_legacy_primary_dac_helper_funcs);
++
++	return encoder;
++}
++
++
++static bool radeon_legacy_tmds_int_mode_fixup(struct drm_encoder *encoder,
++						 struct drm_display_mode *mode,
++						 struct drm_display_mode *adjusted_mode)
++{
++
++}
++
++static void radeon_legacy_tmds_int_dpms(struct drm_encoder *encoder, int mode)
++{
++	/* dfp1 */
++
++}
++
++static void radeon_legacy_tmds_int_prepare(struct drm_encoder *encoder)
++{
++	radeon_legacy_tmds_int_dpms(encoder, DRM_MODE_DPMS_OFF);
++}
++
++static void radeon_legacy_tmds_int_commit(struct drm_encoder *encoder)
++{
++	radeon_legacy_tmds_int_dpms(encoder, DRM_MODE_DPMS_ON);
++}
++
++static void radeon_legacy_tmds_int_mode_set(struct drm_encoder *encoder,
++				  struct drm_display_mode *mode,
++				  struct drm_display_mode *adjusted_mode)
++{
++	
++
++}
++
++static const struct drm_encoder_helper_funcs radeon_legacy_tmds_int_helper_funcs = {
++	.dpms = radeon_legacy_tmds_int_dpms,
++	.mode_fixup = radeon_legacy_tmds_int_mode_fixup,
++	.prepare = radeon_legacy_tmds_int_prepare,
++	.mode_set = radeon_legacy_tmds_int_mode_set,
++	.commit = radeon_legacy_tmds_int_commit,
++};
++
++
++static const struct drm_encoder_funcs radeon_legacy_tmds_int_enc_funcs = {
++	.destroy = radeon_enc_destroy,
++};
++
++struct drm_encoder *radeon_encoder_legacy_tmds_int_add(struct drm_device *dev, int bios_index)
++{
++	struct drm_radeon_private *dev_priv = dev->dev_private;
++	struct radeon_mode_info *mode_info = &dev_priv->mode_info;
++	struct radeon_encoder *radeon_encoder;
++	struct drm_encoder *encoder;
++	radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
++	if (!radeon_encoder) {
++		return NULL;
++	}
++
++	encoder = &radeon_encoder->base;
++
++	encoder->possible_crtcs = 0x3;
++	encoder->possible_clones = 0;
++	drm_encoder_init(dev, encoder, &radeon_legacy_tmds_int_enc_funcs,
++			 DRM_MODE_ENCODER_TMDS);
++
++	drm_encoder_helper_add(encoder, &radeon_legacy_tmds_int_helper_funcs);
++
++	radeon_combios_get_tmds_info(radeon_encoder);
++	return encoder;
++}
 diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
 new file mode 100644
 index 0000000..2da5cc0
@@ -33807,12 +33955,97 @@
  	DRM_INIT_WAITQUEUE(&dev_priv->swi_queue);
  
  	radeon_enable_interrupt(dev);
+diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
+new file mode 100644
+index 0000000..3fe01fa
+--- /dev/null
++++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
+@@ -0,0 +1,79 @@
++/*
++ * Copyright 2007-8 Advanced Micro Devices, Inc.
++ * Copyright 2008 Red Hat Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Authors: Dave Airlie
++ *          Alex Deucher
++ */
++#include "drmP.h"
++#include "radeon_drm.h"
++#include "radeon_drv.h"
++
++#include "drm_crtc_helper.h"
++
++void radeon_crtc_dpms(struct drm_crtc *crtc, int mode)
++{
++}
++
++
++
++static bool radeon_crtc_mode_fixup(struct drm_crtc *crtc,
++				   struct drm_display_mode *mode,
++				   struct drm_display_mode *adjusted_mode)
++{
++	return true;
++}
++
++static void radeon_crtc_mode_set(struct drm_crtc *crtc,
++				 struct drm_display_mode *mode,
++				 struct drm_display_mode *adjusted_mode,
++				 int x, int y)
++{
++
++}
++
++void radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y)
++{
++}
++
++static void radeon_crtc_prepare(struct drm_crtc *crtc)
++{
++}
++
++static void radeon_crtc_commit(struct drm_crtc *crtc)
++{
++}
++
++static const struct drm_crtc_helper_funcs legacy_helper_funcs = {
++	.dpms = radeon_crtc_dpms,
++	.mode_fixup = radeon_crtc_mode_fixup,
++	.mode_set = radeon_crtc_mode_set,
++	.mode_set_base = radeon_crtc_set_base,
++	.prepare = radeon_crtc_prepare,
++	.commit = radeon_crtc_commit,
++};
++
++
++void radeon_legacy_init_crtc(struct drm_device *dev,
++			       struct radeon_crtc *radeon_crtc)
++{
++	drm_crtc_helper_add(&radeon_crtc->base, &legacy_helper_funcs);
++}
 diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
 new file mode 100644
-index 0000000..f75e827
+index 0000000..2a588a3
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_mode.h
-@@ -0,0 +1,255 @@
+@@ -0,0 +1,266 @@
 +/*
 + * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
 + *                VA Linux Systems Inc., Fremont, California.
@@ -33930,6 +34163,11 @@
 +	int igp_lane_info;
 +};
 +
++struct radeon_tmds_pll {
++    uint32_t freq;
++    uint32_t value;
++};
++
 +#define RADEON_MAX_BIOS_CONNECTOR 16
 +	
 +#define RADEON_PLL_USE_BIOS_DIVS   (1 << 0)
@@ -34000,6 +34238,7 @@
 +	uint32_t vblank;
 +	uint32_t panel_pwr_delay;
 +	uint32_t dotclock;
++	struct radeon_tmds_pll tmds_pll[4];
 +};
 +
 +struct radeon_connector {
@@ -34036,6 +34275,8 @@
 +struct drm_encoder *radeon_encoder_atom_dac_add(struct drm_device *dev, int bios_index, int dac_id, int with_tv);
 +struct drm_encoder *radeon_encoder_atom_tmds_add(struct drm_device *dev, int bios_index, int tmds_type);
 +struct drm_encoder *radeon_encoder_legacy_lvds_add(struct drm_device *dev, int bios_index);
++struct drm_encoder *radeon_encoder_legacy_primary_dac_add(struct drm_device *dev, int bios_index, int with_tv);
++struct drm_encoder *radeon_encoder_legacy_tmds_int_add(struct drm_device *dev, int bios_index);
 +
 +extern void radeon_crtc_load_lut(struct drm_crtc *crtc);
 +extern void atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y);
@@ -34048,6 +34289,7 @@
 +extern bool radeon_combios_get_clock_info(struct drm_device *dev);
 +extern void radeon_get_lvds_info(struct radeon_encoder *encoder);
 +extern bool radeon_combios_get_lvds_info(struct radeon_encoder *encoder);
++extern bool radeon_combios_get_tmds_info(struct radeon_encoder *encoder);
 +extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
 +				     u16 blue, int regno);
 +struct drm_framebuffer *radeon_user_framebuffer_create(struct drm_device *dev,
@@ -34060,6 +34302,8 @@
 +bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev);
 +void radeon_atombios_init_crtc(struct drm_device *dev,
 +			       struct radeon_crtc *radeon_crtc);
++void radeon_legacy_init_crtc(struct drm_device *dev,
++			     struct radeon_crtc *radeon_crtc);
 +void avivo_i2c_do_lock(struct radeon_connector *radeon_connector, int lock_state);
 +
 +void radeon_atom_static_pwrmgt_setup(struct drm_device *dev, int enable);
@@ -43565,7 +43809,7 @@
   * Error values that may be returned by PCI functions.
   */
 diff --git a/mm/shmem.c b/mm/shmem.c
-index c1e5a3b..7166ff3 100644
+index 04fb4f1..174d99c 100644
 --- a/mm/shmem.c
 +++ b/mm/shmem.c
 @@ -77,14 +77,6 @@


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.863
retrieving revision 1.864
diff -u -r1.863 -r1.864
--- kernel.spec	7 Aug 2008 23:35:59 -0000	1.863
+++ kernel.spec	8 Aug 2008 04:53:49 -0000	1.864
@@ -1727,6 +1727,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Fri Aug 08 2008 Dave Airlie <airlied at redhat.com>
+- attempt to fix oops in drm_open
+
 * Thu Aug 07 2008 Dave Jones <davej at redhat.com>
 - include/asm needs to be called such, not asm-x86.
 




More information about the fedora-extras-commits mailing list