rpms/kernel/devel kernel.spec, 1.489, 1.490 linux-2.6-drm-i915-modeset.patch, 1.2, 1.3
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Tue Mar 11 05:15:10 UTC 2008
- Previous message (by thread): rpms/telepathy-mission-control/devel .cvsignore, 1.7, 1.8 sources, 1.7, 1.8 telepathy-mission-control.spec, 1.9, 1.10
- Next message (by thread): rpms/perl-Class-Inspector/F-8 .cvsignore, 1.8, 1.9 perl-Class-Inspector.spec, 1.13, 1.14 sources, 1.8, 1.9
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20746
Modified Files:
kernel.spec linux-2.6-drm-i915-modeset.patch
Log Message:
* Tue Mar 11 2008 Dave Airlie <airlied at redhat.com>
- fix i965 cursor support in drm modesetting
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.489
retrieving revision 1.490
diff -u -r1.489 -r1.490
--- kernel.spec 11 Mar 2008 00:40:59 -0000 1.489
+++ kernel.spec 11 Mar 2008 05:14:35 -0000 1.490
@@ -1751,6 +1751,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
%changelog
+* Tue Mar 11 2008 Dave Airlie <airlied at redhat.com>
+- fix i965 cursor support in drm modesetting
+
* Mon Mar 10 2008 John W. Linville <linville at redhat.com>
- Use correct "Dual BSD/GPL" license tag for iwlcore.ko
linux-2.6-drm-i915-modeset.patch:
Index: linux-2.6-drm-i915-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-drm-i915-modeset.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-drm-i915-modeset.patch 7 Mar 2008 07:03:34 -0000 1.2
+++ linux-2.6-drm-i915-modeset.patch 11 Mar 2008 05:14:35 -0000 1.3
@@ -7830,7 +7830,7 @@
}
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h
-index 0ec2447..e7b27c5 100644
+index 0ec2447..9e4631a 100644
--- a/drivers/char/drm/i915_drv.h
+++ b/drivers/char/drm/i915_drv.h
@@ -60,7 +60,7 @@
@@ -7872,16 +7872,18 @@
void *hw_status_page;
dma_addr_t dma_status_page;
uint32_t counter;
-@@ -120,6 +129,8 @@ typedef struct drm_i915_private {
+@@ -120,6 +129,10 @@ typedef struct drm_i915_private {
uint32_t irq_enable_reg;
int irq_enabled;
+ struct workqueue_struct *wq;
+
++ bool cursor_needs_physical;
++
uint32_t flush_sequence;
uint32_t flush_flags;
uint32_t flush_pending;
-@@ -127,11 +138,17 @@ typedef struct drm_i915_private {
+@@ -127,11 +140,17 @@ typedef struct drm_i915_private {
void *agp_iomap;
unsigned int max_validate_buffers;
struct mutex cmdbuf_mutex;
@@ -7899,7 +7901,7 @@
/* DRI2 sarea */
struct drm_buffer_object *sarea_bo;
struct drm_bo_kmap_obj sarea_kmap;
-@@ -222,16 +239,25 @@ typedef struct drm_i915_private {
+@@ -222,16 +241,25 @@ typedef struct drm_i915_private {
u8 saveDACMASK;
u8 saveDACDATA[256*3]; /* 256 3-byte colors */
u8 saveCR[36];
@@ -7926,7 +7928,7 @@
extern void i915_driver_preclose(struct drm_device *dev,
struct drm_file *file_priv);
extern int i915_driver_device_is_agp(struct drm_device * dev);
-@@ -240,8 +266,7 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd,
+@@ -240,8 +268,7 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd,
extern void i915_emit_breadcrumb(struct drm_device *dev);
extern void i915_dispatch_flip(struct drm_device * dev, int pipes, int sync);
extern int i915_emit_mi_flush(struct drm_device *dev, uint32_t flush);
@@ -7936,7 +7938,7 @@
/* i915_irq.c */
extern int i915_irq_emit(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -259,11 +284,11 @@ extern int i915_vblank_pipe_set(struct drm_device *dev, void *data,
+@@ -259,11 +286,11 @@ extern int i915_vblank_pipe_set(struct drm_device *dev, void *data,
extern int i915_vblank_pipe_get(struct drm_device *dev, void *data,
struct drm_file *file_priv);
extern int i915_emit_irq(struct drm_device *dev);
@@ -7951,7 +7953,7 @@
/* i915_mem.c */
extern int i915_mem_alloc(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -296,6 +321,10 @@ void i915_flush_ttm(struct drm_ttm *ttm);
+@@ -296,6 +323,10 @@ void i915_flush_ttm(struct drm_ttm *ttm);
extern void intel_init_chipset_flush_compat(struct drm_device *dev);
extern void intel_fini_chipset_flush_compat(struct drm_device *dev);
@@ -7962,7 +7964,7 @@
#define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg))
#define I915_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, (reg), (val))
#define I915_READ16(reg) DRM_READ16(dev_priv->mmio_map, (reg))
-@@ -332,8 +361,31 @@ extern void intel_fini_chipset_flush_compat(struct drm_device *dev);
+@@ -332,8 +363,31 @@ extern void intel_fini_chipset_flush_compat(struct drm_device *dev);
I915_WRITE(LP_RING + RING_TAIL, outring); \
} while(0)
@@ -7994,7 +7996,7 @@
/* Extended config space */
#define LBB 0xf4
-@@ -400,6 +452,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -400,6 +454,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define BB1_UNPROTECTED (0<<0)
#define BB2_END_ADDR_MASK (~0x7)
@@ -8003,7 +8005,7 @@
/* Framebuffer compression */
#define FBC_CFB_BASE 0x03200 /* 4k page aligned */
#define FBC_LL_BASE 0x03204 /* 4k page aligned */
-@@ -444,12 +498,102 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -444,12 +500,102 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define I915REG_INT_ENABLE_R 0x020a0
#define I915REG_INSTPM 0x020c0
@@ -8106,7 +8108,7 @@
#define SRX_INDEX 0x3c4
#define SRX_DATA 0x3c5
#define SR01 1
-@@ -458,6 +602,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -458,6 +604,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define PPCR 0x61204
#define PPCR_ON (1<<0)
@@ -8115,7 +8117,7 @@
#define DVOB 0x61140
#define DVOB_ON (1<<31)
#define DVOC 0x61160
-@@ -619,8 +765,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -619,8 +767,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|4)
#define XY_SRC_COPY_BLT_CMD ((2<<29)|(0x53<<22)|6)
@@ -8130,7 +8132,7 @@
#define MI_BATCH_BUFFER ((0x30<<23)|1)
#define MI_BATCH_BUFFER_START (0x31<<23)
-@@ -739,6 +891,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -739,6 +893,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define BCLRPAT_B 0x61020
#define VSYNCSHIFT_B 0x61028
@@ -8145,7 +8147,7 @@
#define PP_STATUS 0x61200
# define PP_ON (1 << 31)
/**
-@@ -1011,6 +1171,579 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -1011,6 +1173,579 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
# define LVDS_B0B3_POWER_DOWN (0 << 2)
# define LVDS_B0B3_POWER_UP (3 << 2)
@@ -8725,7 +8727,7 @@
#define PIPEACONF 0x70008
#define PIPEACONF_ENABLE (1<<31)
#define PIPEACONF_DISABLE 0
-@@ -1102,13 +1835,17 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -1102,13 +1837,17 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
*/
#define SWF0 0x71410
@@ -8780,10 +8782,10 @@
int ret;
diff --git a/drivers/char/drm/i915_init.c b/drivers/char/drm/i915_init.c
new file mode 100644
-index 0000000..b82a46b
+index 0000000..c59067a
--- /dev/null
+++ b/drivers/char/drm/i915_init.c
-@@ -0,0 +1,401 @@
+@@ -0,0 +1,409 @@
+/*
+ * Copyright (c) 2007 Intel Corporation
+ * Jesse Barnes <jesse.barnes at intel.com>
@@ -8916,6 +8918,14 @@
+ dev->types[8] = _DRM_STAT_SECONDARY;
+ dev->types[9] = _DRM_STAT_DMA;
+
++ if (IS_MOBILE(dev) || IS_I9XX(dev))
++ dev_priv->cursor_needs_physical = true;
++ else
++ dev_priv->cursor_needs_physical = false;
++
++ if (IS_I965G(dev) || IS_G33(dev))
++ dev_priv->cursor_needs_physical = false;
++
+ if (IS_I9XX(dev)) {
+ pci_read_config_dword(dev->pdev, 0x5C, &dev_priv->stolen_base);
+ DRM_DEBUG("stolen base %p\n", (void*)dev_priv->stolen_base);
@@ -9801,10 +9811,10 @@
+}
diff --git a/drivers/char/drm/intel_display.c b/drivers/char/drm/intel_display.c
new file mode 100644
-index 0000000..4b48a0b
+index 0000000..fa2b9be
--- /dev/null
+++ b/drivers/char/drm/intel_display.c
-@@ -0,0 +1,1366 @@
+@@ -0,0 +1,1370 @@
+/*
+ * Copyright © 2006-2007 Intel Corporation
+ *
@@ -10814,7 +10824,7 @@
+ uint32_t control = (pipe == 0) ? CURSOR_A_CONTROL : CURSOR_B_CONTROL;
+ uint32_t base = (pipe == 0) ? CURSOR_A_BASE : CURSOR_B_BASE;
+ uint32_t temp;
-+ size_t adder;
++ size_t addr;
+
+ DRM_DEBUG("\n");
+
@@ -10846,17 +10856,21 @@
+ return -ENOMEM;
+ }
+
-+ adder = dev_priv->stolen_base + bo->offset;
-+ intel_crtc->cursor_adder = adder;
++ if (dev_priv->cursor_needs_physical)
++ addr = dev_priv->stolen_base + bo->offset;
++ else
++ addr = bo->offset;
++
++ intel_crtc->cursor_addr = addr;
+ temp = 0;
+ /* set the pipe for the cursor */
+ temp |= (pipe << 28);
+ temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;
+
-+ DRM_DEBUG("cusror base %x\n", adder);
++ DRM_DEBUG("cusror base %x\n", addr);
+
+ I915_WRITE(control, temp);
-+ I915_WRITE(base, adder);
++ I915_WRITE(base, addr);
+
+ return 0;
+}
@@ -10882,7 +10896,7 @@
+ temp |= ((x & CURSOR_POS_MASK) << CURSOR_X_SHIFT);
+ temp |= ((y & CURSOR_POS_MASK) << CURSOR_Y_SHIFT);
+
-+ adder = intel_crtc->cursor_adder;
++ adder = intel_crtc->cursor_addr;
+ I915_WRITE((pipe == 0) ? CURSOR_A_POSITION : CURSOR_B_POSITION, temp);
+ I915_WRITE((pipe == 0) ? CURSOR_A_BASE : CURSOR_B_BASE, adder);
+
@@ -11048,7 +11062,7 @@
+ intel_crtc->lut_b[i] = i;
+ }
+
-+ intel_crtc->cursor_adder = 0;
++ intel_crtc->cursor_addr = 0;
+
+ crtc->driver_private = intel_crtc;
+}
@@ -11173,7 +11187,7 @@
+}
diff --git a/drivers/char/drm/intel_drv.h b/drivers/char/drm/intel_drv.h
new file mode 100644
-index 0000000..72ba01d
+index 0000000..a36fd3f
--- /dev/null
+++ b/drivers/char/drm/intel_drv.h
@@ -0,0 +1,89 @@
@@ -11235,7 +11249,7 @@
+struct intel_crtc {
+ int pipe;
+ int plane;
-+ uint32_t cursor_adder;
++ uint32_t cursor_addr;
+ u8 lut_r[256], lut_g[256], lut_b[256];
+};
+
- Previous message (by thread): rpms/telepathy-mission-control/devel .cvsignore, 1.7, 1.8 sources, 1.7, 1.8 telepathy-mission-control.spec, 1.9, 1.10
- Next message (by thread): rpms/perl-Class-Inspector/F-8 .cvsignore, 1.8, 1.9 perl-Class-Inspector.spec, 1.13, 1.14 sources, 1.8, 1.9
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list