To whom it may concern:
The patch contains the modification on the header files for the VIA
UniChrome DRM modules based on 2.6.28-rc9. The modified header files are
1. via_drv.h
2. via_drm.h
Thanks and Best Regards
=================================================
Bruce C. Chang(張祖明)
Email: [email protected]
Signed-off-by: Bruce Chang<[email protected]>
diff -Nur ./drivers/gpu/drm/via/via_drv.h ./drivers/gpu/drm/via/via_drv.h
--- ./drivers/gpu/drm/via/via_drv.h 2009-01-03 07:18:48.000000000 +0800
+++ ./drivers/gpu/drm/via/via_drv.h 2009-01-03 07:57:49.000000000 +0800
@@ -62,6 +62,7 @@
drm_local_map_t *sarea;
drm_local_map_t *fb;
drm_local_map_t *mmio;
+ enum drm_agp_type agptype;
unsigned long agpAddr;
wait_queue_head_t decoder_queue[VIA_NR_XVMC_LOCKS];
char *dma_ptr;
@@ -94,7 +95,13 @@
unsigned long vram_offset;
unsigned long agp_offset;
drm_via_blitq_t blit_queues[VIA_NUM_BLIT_ENGINES];
+ struct drm_map video_agp_address_map[3];
+ enum {
+ CR_FOR_RINGBUFFER,
+ CR_FOR_VIDEO
+ } cr_status;
uint32_t dma_diff;
+ int initialize;
} drm_via_private_t;
enum via_family {
@@ -120,6 +127,8 @@
extern int via_agp_init(struct drm_device *dev, void *data, struct drm_file
*file_priv);
extern int via_map_init(struct drm_device *dev, void *data, struct drm_file
*file_priv);
extern int via_decoder_futex(struct drm_device *dev, void *data, struct
drm_file *file_priv);
+extern int via_get_drm_info(struct drm_device *dev, void *data,
+ struct drm_file *file_priv);
extern int via_wait_irq(struct drm_device *dev, void *data, struct drm_file
*file_priv);
extern int via_dma_blit_sync( struct drm_device *dev, void *data, struct
drm_file *file_priv );
extern int via_dma_blit( struct drm_device *dev, void *data, struct drm_file
*file_priv );
@@ -154,4 +163,7 @@
extern void via_dmablit_handler(struct drm_device *dev, int engine, int
from_irq);
extern void via_init_dmablit(struct drm_device *dev);
+extern int via_drm_resume(struct pci_dev *dev);
+extern int via_drm_suspend(struct pci_dev *dev, pm_message_t state);
+
#endif
diff -Nur ./include/drm/via_drm.h ./include/drm/via_drm.h
--- ./include/drm/via_drm.h 2009-01-03 07:18:23.000000000 +0800
+++ ./include/drm/via_drm.h 2009-01-03 07:57:49.000000000 +0800
@@ -51,6 +51,12 @@
#define VIA_LOG_MIN_TEX_REGION_SIZE 16
#endif
+struct drm_via_info {
+ unsigned long AgpHandle;
+ unsigned long AgpSize;
+ unsigned long RegHandle;
+ unsigned long RegSize;
+} ;
#define VIA_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
#define VIA_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
#define VIA_UPLOAD_CTX 0x4
@@ -67,7 +73,7 @@
#define DRM_VIA_FB_INIT 0x03
#define DRM_VIA_MAP_INIT 0x04
#define DRM_VIA_DEC_FUTEX 0x05
-#define NOT_USED
+#define DRM_VIA_GET_INFO 0x06
#define DRM_VIA_DMA_INIT 0x07
#define DRM_VIA_CMDBUFFER 0x08
#define DRM_VIA_FLUSH 0x09
@@ -77,6 +83,9 @@
#define DRM_VIA_WAIT_IRQ 0x0d
#define DRM_VIA_DMA_BLIT 0x0e
#define DRM_VIA_BLIT_SYNC 0x0f
+#define DRM_VIA_AUTH_MAGIC 0x11
+#define DRM_VIA_FLUSH_VIDEO 0x12
+#define DRM_VIA_INIT_JUDGE 0x16
#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM,
drm_via_mem_t)
#define DRM_IOCTL_VIA_FREEMEM DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_FREEMEM,
drm_via_mem_t)
@@ -84,6 +93,8 @@
#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT,
drm_via_fb_t)
#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT,
drm_via_init_t)
#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW( DRM_COMMAND_BASE +
DRM_VIA_DEC_FUTEX, drm_via_futex_t)
+#define DRM_IOCTL_VIA_GET_INFO DRM_IOR(DRM_COMMAND_BASE + \
+ DRM_VIA_GET_INFO, struct drm_via_info)
#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT,
drm_via_dma_init_t)
#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE +
DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t)
#define DRM_IOCTL_VIA_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_VIA_FLUSH)
@@ -91,8 +102,14 @@
#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR( DRM_COMMAND_BASE +
DRM_VIA_CMDBUF_SIZE, \
drm_via_cmdbuf_size_t)
#define DRM_IOCTL_VIA_WAIT_IRQ DRM_IOWR( DRM_COMMAND_BASE +
DRM_VIA_WAIT_IRQ, drm_via_irqwait_t)
+#define DRM_IOCTL_VIA_FLUSH_VIDEO DRM_IOW(DRM_COMMAND_BASE + \
+ DRM_VIA_FLUSH_VIDEO, struct drm_via_video_agp_cmd)
#define DRM_IOCTL_VIA_DMA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DMA_BLIT,
drm_via_dmablit_t)
#define DRM_IOCTL_VIA_BLIT_SYNC DRM_IOW(DRM_COMMAND_BASE +
DRM_VIA_BLIT_SYNC, drm_via_blitsync_t)
+#define DRM_IOCTL_VIA_AUTH_MAGIC DRM_IOW(DRM_COMMAND_BASE + \
+ DRM_VIA_AUTH_MAGIC, drm_auth_t)
+#define DRM_IOCTL_VIA_INIT_JUDGE DRM_IOR(DRM_COMMAND_BASE + \
+ DRM_VIA_INIT_JUDGE, int)
/* Indices into buf.Setup where various bits of state are mirrored per
* context and per buffer. These can be fired at the card as a unit,
@@ -112,6 +129,13 @@
#define VIA_MEM_SYSTEM 2
#define VIA_MEM_MIXED 3
#define VIA_MEM_UNKNOWN 4
+#define VIA_MEM_VIDEO_SAVE 2 /*For video memory need to be saved in ACPI
*/
+
+enum drm_agp_type {
+ AGP_RING_BUFFER,
+ AGP_DOUBLE_BUFFER,
+ DISABLED
+};
typedef struct {
uint32_t offset;
@@ -141,6 +165,8 @@
unsigned long fb_offset;
unsigned long mmio_offset;
unsigned long agpAddr;
+ unsigned long agp_offset;
+ enum drm_agp_type agp_type;
} drm_via_init_t;
typedef struct _drm_via_futex {
@@ -245,6 +271,12 @@
struct drm_wait_vblank_reply reply;
} drm_via_irqwait_t;
+struct drm_via_video_agp_cmd {
+ u32 offset;
+ u32 cmd_size;
+ u32 buffer_size;
+} ;
+
typedef struct drm_via_blitsync {
uint32_t sync_handle;
unsigned engine;
@@ -272,4 +304,13 @@
drm_via_blitsync_t sync;
} drm_via_dmablit_t;
+struct drm_via_video_save_head {
+ void *pvideomem;
+ void *psystemmem;
+ int size;
+ /* token used to identify this video memory */
+ unsigned long token;
+ void *next;
+} ;
+extern struct drm_via_video_save_head *via_video_save_head;
#endif /* _VIA_DRM_H_ */
------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel