rpms/kernel/devel drm-modesetting-radeon.patch, 1.66, 1.67 drm-next.patch, 1.11, 1.12 kernel.spec, 1.1440, 1.1441

Dave Airlie airlied at fedoraproject.org
Wed Mar 18 06:47:18 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13173

Modified Files:
	drm-modesetting-radeon.patch drm-next.patch kernel.spec 
Log Message:
* Wed Mar 18 2009 Dave Airlie <airlied at redhat.com>
- drm-next.patch: fix rs600 GART setup
- drm-modesetting-radeon.patch: allocator fixups


drm-modesetting-radeon.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.66 -r 1.67 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- drm-modesetting-radeon.patch	13 Mar 2009 04:46:38 -0000	1.66
+++ drm-modesetting-radeon.patch	18 Mar 2009 06:47:16 -0000	1.67
@@ -1,4 +1,163 @@
-commit 784e2287e60f91c16814fbb757ea316b3027ddd1
+commit 4a90f1edefee2cba39d135f2866e1bacc1ac647e
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Mar 19 00:16:00 2009 +1000
+
+    drm/ttm: re-org the whole cached/uncached allocator yet again.
+    
+    This removes the allocator type, and instead tracks when pages
+    were allocated from which pool and frees them back into that pool
+
+commit c8ae93fa4ac69112f4fc16477f73e0a98bba2765
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Sun Mar 15 18:26:42 2009 +1000
+
+    ttm: prefetch pages on pagefault
+
+commit f4df0e7870378ec40c268b95fb4b5d13533095fd
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Mon Mar 16 03:52:13 2009 -0400
+
+    radeon: make sure to free connector priv when done
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 96d923793eb924750b26e8ab2a4264131e17cd5b
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Mon Mar 16 03:36:16 2009 -0400
+
+    radeon: fix combios asic init
+    
+    - igp chips don't have asic_init3/4 or ram reset tables
+    - write out the detected ram size to the CONFIG_MEMSIZE register
+    - some r1xx chips require ram detection rather than reading size
+      from bios tables
+    - asic_init5 table isn't needed
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 68f14af742eda9fd28c920776ce5396e304f8a82
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Mon Mar 16 03:16:35 2009 -0400
+
+    radeon: rework bios scratch regsiter handling
+    
+    split bios scratch reg handling into 3 functions:
+    
+    - connected/active
+    - crtc to encoder mapping
+    - encoder dpms state
+    
+    Hook the functions in at the appropriate places in
+    the driver. DVI-I is a bit messy since we need to know
+    digital vs analog so we have to update the scratch regs
+    twice: once in detect() and again after we know digital/analog
+    in get_modes().
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 3ba04861b4d399a7c6e21f0a7279d5f087fc4a8c
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Sat Mar 14 16:43:14 2009 -0400
+
+    radeon: rework combios encoder/connector setup
+    
+    - along the same lines as atom
+    - re-enable atom and legacy paths for r4xx cards
+    - remove bios_connector struct
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 2ed15179f72e66a020a7f318cc4c3fa57865e4ba
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 12 16:02:01 2009 -0400
+
+    radeon: fix misleading messages
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit cb917ec2b585f5ac873ab2e6938da9a3b730c0a1
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 12 14:27:06 2009 -0400
+
+    atom: fix up encoder routines to deal with connector setup
+    
+    often times the links or lanes used are dependant on the
+    connector rather than the encoder.
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit abe11890fc272189712f2e6268a8751e25b7b7b5
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 12 13:43:03 2009 -0400
+
+    atom: re-enable quirks
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 6a45dbd73c14735711f1803e8a3dd1063b7b3021
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 12 13:21:32 2009 -0400
+
+    object table: don't add ddc for tv/cv
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 6fb018a3740510f140bcd5b6b89904e9d3167811
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 12 13:10:50 2009 -0400
+
+    radeon: major restructuring of atom output/connector setup
+    
+    - add connectors and encoders while parsing the bios tables.
+    - pull in fixed up object header parsing for r6xx+
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 034267381be779a1bbdb5f6f97c1471fb8538a04
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Wed Mar 4 13:02:26 2009 -0500
+
+    RS600 doesn't have DFP quirk in connector table
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit b7936094db13c736e4bee7494c2b99a8e5ced042
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Thu Mar 5 16:37:57 2009 -0500
+
+    R6xx/R7xx: don't mess with RADEON_HOST_PATH_CNTL
+    
+    these chips don't have this reg at this location.
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit a1fdbf2f4de3988f5e3319ee9f267f7b27e8fc6e
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Wed Mar 11 16:50:19 2009 -0400
+
+    radeon: make sure to free enc_priv when done
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit d54586a52852497d82f322c536515d223697fdf4
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Wed Mar 11 15:43:16 2009 -0400
+
+    radeon: restructure encoders
+    
+    move encoder specific data into encoder specific structs
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 0215044d42faded71b8591a79550c0bf04908458
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Wed Mar 11 11:23:16 2009 -0400
+
+    radeon: atom modesetting updates
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+
+commit 121d45a2e9562836138c658224def839bb166f68
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Mar 12 11:39:05 2009 +1000
 
@@ -17,7 +176,7 @@
     
     Signed-off-by: Tom "spot" Callaway <tcallawa at redhat.com>
 
-commit 42a73c53bce752bca305c4ec40bff9873042ba6d
+commit 36bbbdea9a2e77c1d1da7504bc5f03267d0e0d6c
 Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
 Date:   Thu Mar 12 10:58:05 2009 +1000
 
@@ -26,7 +185,7 @@
     This makes the IB get routine a lot smarter and hopefully
     fixes some cases where it exits
 
-commit 64e61a039f5e28b5d288fd2b50d44d3d42327976
+commit 5047f54c5cf7cbd48c4894ba4950dbad158c3184
 Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
 Date:   Thu Mar 12 10:57:17 2009 +1000
 
@@ -38,7 +197,7 @@
     
     only happens on r300 hw for me
 
-commit a446cfcfdb7d6c4b23796d6bd1fccba058543ad0
+commit 1ab7dd4499309c36936a1b56806a09d2687d604e
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Wed Mar 11 18:50:06 2009 +1000
 
[...9461 lines suppressed...]
++	struct radeon_native_mode native_mode;
++};
 +
-+	/* legacy primary dac */
-+	uint32_t ps2_pdac_adj;
-+
++struct radeon_encoder_tv_dac {
 +	/* legacy tv dac */
 +	uint32_t ps2_tvdac_adj;
 +	uint32_t ntsc_tvdac_adj;
 +	uint32_t pal_tvdac_adj;
++
 +	enum radeon_tv_std tv_std;
++};
 +
++struct radeon_encoder_int_tmds {
 +	/* legacy int tmds */
 +	struct radeon_tmds_pll tmds_pll[4];
 +};
 +
++struct radeon_encoder_atom_dig {
++	/* atom dig */
++	uint32_t transmitter_config;
++	bool coherent_mode;
++	/* atom lvds */
++	uint32_t lvds_misc;
++	uint16_t panel_pwr_delay;
++	/* panel mode */
++	struct radeon_native_mode native_mode;
++};
++
++struct radeon_encoder {
++	struct drm_encoder base;
++	uint32_t encoder_id;
++	uint32_t devices;
++	uint32_t flags;
++	enum radeon_rmx_type rmx_type;
++	struct radeon_native_mode native_mode;
++	void *enc_priv;
++};
++
++struct radeon_connector_atom_dig {
++	uint32_t igp_lane_info;
++	bool linkb;
++};
++
 +struct radeon_connector {
 +	struct drm_connector base;
++	uint32_t connector_id;
++	uint32_t devices;
 +	struct radeon_i2c_chan *ddc_bus;
 +	int use_digital;
++	void *con_priv;
 +};
 +
 +struct radeon_framebuffer {
@@ -29798,16 +31447,14 @@
 +			       uint32_t *post_div_p,
 +			       int flags);
 +
-+struct drm_encoder *radeon_encoder_lvtma_add(struct drm_device *dev, int bios_index);
-+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_tv_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);
 +struct drm_encoder *radeon_encoder_legacy_tmds_ext_add(struct drm_device *dev, int bios_index);
-+extern void atombios_ext_tmds_setup(struct drm_encoder *encoder,
-+				    struct drm_display_mode *mode);
++extern void atombios_external_tmds_setup(struct drm_encoder *encoder,
++					 struct drm_display_mode *mode);
++extern int atombios_get_encoder_mode(struct drm_encoder *encoder);
 +
 +extern void radeon_crtc_load_lut(struct drm_crtc *crtc);
 +extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y,
@@ -29833,18 +31480,31 @@
 +
 +extern bool radeon_atom_get_clock_info(struct drm_device *dev);
 +extern bool radeon_combios_get_clock_info(struct drm_device *dev);
-+extern void radeon_atombios_get_lvds_info(struct radeon_encoder *encoder);
-+extern void radeon_atombios_get_tmds_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 struct radeon_encoder_atom_dig *
++radeon_atombios_get_lvds_info(struct radeon_encoder *encoder);
++extern struct radeon_encoder_int_tmds *
++radeon_atombios_get_tmds_info(struct radeon_encoder *encoder);
++extern struct radeon_encoder_lvds *
++radeon_combios_get_lvds_info(struct radeon_encoder *encoder);
++extern struct radeon_encoder_int_tmds *
++radeon_combios_get_tmds_info(struct radeon_encoder *encoder);
 +extern void radeon_combios_get_ext_tmds_info(struct radeon_encoder *encoder);
-+extern bool radeon_combios_get_tv_info(struct radeon_encoder *encoder);
-+extern bool radeon_combios_get_tv_dac_info(struct radeon_encoder *encoder);
-+extern bool radeon_combios_get_primary_dac_info(struct radeon_encoder *encoder);
++extern struct radeon_encoder_tv_dac *
++radeon_combios_get_tv_dac_info(struct radeon_encoder *encoder);
++extern struct radeon_encoder_primary_dac *
++radeon_combios_get_primary_dac_info(struct radeon_encoder *encoder);
 +extern void radeon_combios_output_lock(struct drm_encoder *encoder, bool lock);
 +extern void radeon_combios_initialize_bios_scratch_regs(struct drm_device *dev);
 +extern void radeon_atom_output_lock(struct drm_encoder *encoder, bool lock);
 +extern void radeon_atom_initialize_bios_scratch_regs(struct drm_device *dev);
++extern void
++radeon_atombios_encoder_crtc_scratch_regs(struct drm_encoder *encoder, int crtc);
++extern void
++radeon_atombios_encoder_dpms_scratch_regs(struct drm_encoder *encoder, bool on);
++extern void
++radeon_combios_encoder_crtc_scratch_regs(struct drm_encoder *encoder, int crtc);
++extern void
++radeon_combios_encoder_dpms_scratch_regs(struct drm_encoder *encoder, bool on);
 +extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
 +				     u16 blue, int regno);
 +struct drm_framebuffer *radeon_framebuffer_create(struct drm_device *dev,
@@ -29865,7 +31525,9 @@
 +void radeon_atom_dyn_clk_setup(struct drm_device *dev, int enable);
 +void radeon_combios_dyn_clk_setup(struct drm_device *dev, int enable);
 +void radeon_get_clock_info(struct drm_device *dev);
-+extern bool radeon_get_atom_connector_info_from_bios_connector_table(struct drm_device *dev);
++
++extern bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev);
++extern bool radeon_get_atom_connector_info_from_supported_devices_table(struct drm_device *dev);
 +
 +void radeon_rmx_mode_fixup(struct drm_encoder *encoder,
 +			   struct drm_display_mode *mode,
@@ -30145,10 +31807,10 @@
 +
 diff --git a/drivers/gpu/drm/radeon/radeon_reg.h b/drivers/gpu/drm/radeon/radeon_reg.h
 new file mode 100644
-index 0000000..9ccf839
+index 0000000..0edb592
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/radeon_reg.h
-@@ -0,0 +1,5337 @@
+@@ -0,0 +1,5344 @@
 +/*
 + * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
 + *                VA Linux Systems Inc., Fremont, California.
@@ -30328,6 +31990,13 @@
 +#       define RADEON_CV1_CRTC_SHIFT        13
 +#       define RADEON_DFP2_CRTC_MASK        (1 << 14)
 +#       define RADEON_DFP2_CRTC_SHIFT       14
++#       define RADEON_ACC_REQ_LCD1          (1 << 16)
++#       define RADEON_ACC_REQ_CRT1          (1 << 17)
++#       define RADEON_ACC_REQ_TV1           (1 << 18)
++#       define RADEON_ACC_REQ_DFP1          (1 << 19)
++#       define RADEON_ACC_REQ_CRT2          (1 << 21)
++#       define RADEON_ACC_REQ_TV2           (1 << 22)
++#       define RADEON_ACC_REQ_DFP2          (1 << 23)
 +#define RADEON_BIOS_6_SCRATCH               0x0028
 +#       define RADEON_ACC_MODE_CHANGE       (1 << 2)
 +#       define RADEON_EXT_DESKTOP_MODE      (1 << 3)
@@ -35933,7 +37602,7 @@
  #endif
 diff --git a/include/drm/drm_objects.h b/include/drm/drm_objects.h
 new file mode 100644
-index 0000000..60016d6
+index 0000000..686a6c4
 --- /dev/null
 +++ b/include/drm/drm_objects.h
 @@ -0,0 +1,913 @@
@@ -36385,7 +38054,7 @@
 +extern void drm_ttm_fixup_caching(struct drm_ttm *ttm);
 +extern struct page *drm_ttm_get_page(struct drm_ttm *ttm, int index);
 +extern void drm_ttm_cache_flush(struct page *pages[], unsigned long num_pages);
-+extern int drm_ttm_populate(struct drm_ttm *ttm);
++extern int drm_ttm_populate(struct drm_ttm *ttm, int cached);
 +extern int drm_ttm_set_user(struct drm_ttm *ttm,
 +			    struct task_struct *tsk,
 +			    unsigned long start,
@@ -36452,6 +38121,10 @@
 + * intent was.
 + */
 +#define DRM_TTM_PAGE_USER_DMA   (1 << 8)
++/*
++ * The pages in this TTM were allocated cached
++ */
++#define DRM_TTM_PAGE_ALLOC_CACHED   (1 << 9)
 +
 +/***************************************************
 + * Buffer objects. (drm_bo.c, drm_bo_move.c)
@@ -36600,9 +38273,6 @@
 +#define _DRM_FLAG_MEMTYPE_CMA       0x00000010	/* Can't map aperture */
 +#define _DRM_FLAG_MEMTYPE_CSELECT   0x00000020	/* Select caching */
 +
-+#define _DRM_BM_ALLOCATOR_CACHED 0x0
-+#define _DRM_BM_ALLOCATOR_UNCACHED 0x1
-+
 +struct drm_buffer_manager {
 +	struct drm_bo_lock bm_lock;
 +	struct mutex evict_mutex;
@@ -36617,7 +38287,6 @@
 +	unsigned long cur_pages;
 +	atomic_t count;
 +	struct page *dummy_read_page;
-+	int allocator_type;
 +};
 +
 +struct drm_bo_driver {

drm-next.patch:

Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-next.patch,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- drm-next.patch	13 Mar 2009 04:46:39 -0000	1.11
+++ drm-next.patch	18 Mar 2009 06:47:16 -0000	1.12
@@ -1,3 +1,14 @@
+commit 41f13fe81dd1b08723ab9f3fc3c7f29cfa81f1a5
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Mon Mar 16 15:37:02 2009 -0400
+
+    drm/radeon: fix logic in r600_page_table_init() to match ati_gart
+    
+    This fixes page table init on rs600.
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
 commit 06f0a488c1b642d3cd7769da66600e5148c3fad8
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Fri Mar 13 09:35:32 2009 +1000
@@ -3949,7 +3960,7 @@
  	cmdbuf->bufsz -= sizeof(u64);
 diff --git a/drivers/gpu/drm/radeon/r600_cp.c b/drivers/gpu/drm/radeon/r600_cp.c
 new file mode 100644
-index 0000000..76eb0d5
+index 0000000..9d14eee
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/r600_cp.c
 @@ -0,0 +1,2253 @@
@@ -4127,7 +4138,6 @@
 +		if (entry->busaddr[i] == 0) {
 +			DRM_ERROR("unable to map PCIGART pages!\n");
 +			r600_page_table_cleanup(dev, gart_info);
-+			ret = -EINVAL;
 +			goto done;
 +		}
 +		entry_addr = entry->busaddr[i];
@@ -4146,6 +4156,7 @@
 +			entry_addr += ATI_PCIGART_PAGE_SIZE;
 +		}
 +	}
++	ret = 1;
 +done:
 +	return ret;
 +}
@@ -6050,7 +6061,7 @@
 +			  dev_priv->gart_info.addr,
 +			  dev_priv->pcigart_offset);
 +
-+		if (r600_page_table_init(dev)) {
++		if (!r600_page_table_init(dev)) {
 +			DRM_ERROR("Failed to init GART table\n");
 +			r600_do_cleanup_cp(dev);
 +			return -EINVAL;


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1440
retrieving revision 1.1441
diff -u -r1.1440 -r1.1441
--- kernel.spec	18 Mar 2009 05:04:17 -0000	1.1440
+++ kernel.spec	18 Mar 2009 06:47:17 -0000	1.1441
@@ -1822,6 +1822,10 @@
 # and build.
 
 %changelog
+* Wed Mar 18 2009 Dave Airlie <airlied at redhat.com>
+- drm-next.patch: fix rs600 GART setup
+- drm-modesetting-radeon.patch: allocator fixups
+
 * Wed Mar 18 2009 Ben Skeggs <bskeggs at redhat.com>
 - enable CONFIG_MMIOTRACE on x86/x86_64
 




More information about the fedora-extras-commits mailing list