# HG changeset patch # User nick # Date 1007053672 0 # Node ID 5eae8189517191d7a02b7a73eb84af80aad7aed4 # Parent 9440d478e10dfd41151dece8839a75bd695ad9b0 Probably ugly attempt to fix Rage128 problems diff -r 9440d478e10d -r 5eae81895171 drivers/radeon/radeon_vid.c --- a/drivers/radeon/radeon_vid.c Thu Nov 29 17:06:58 2001 +0000 +++ b/drivers/radeon/radeon_vid.c Thu Nov 29 17:07:52 2001 +0000 @@ -74,7 +74,11 @@ MODULE_AUTHOR("Nick Kurshev "); -MODULE_DESCRIPTION("Accelerated YUV BES driver for Rage128/Radeons. Version: "RADEON_VID_VERSION); +#ifdef RAGE128 +MODULE_DESCRIPTION("Accelerated YUV BES driver for Rage128. Version: "RADEON_VID_VERSION); +#else +MODULE_DESCRIPTION("Accelerated YUV BES driver for Radeons. Version: "RADEON_VID_VERSION); +#endif #ifdef MODULE_LICENSE MODULE_LICENSE("GPL"); #endif @@ -85,6 +89,9 @@ #else #define RVID_MSG "radeon_vid: " #define X_ADJUST 8 +#ifndef RADEON +#define RADEON +#endif #endif typedef struct bes_registers_s @@ -211,11 +218,16 @@ case IMGFMT_I420: return("Planar I420"); case IMGFMT_IYUV: return("Planar IYUV"); case IMGFMT_CLPL: return("Planar CLPL"); + case IMGFMT_Y800: return("Planar Y800"); + case IMGFMT_Y8: return("Planar Y8"); + case IMGFMT_IUYV: return("Packed IUYV"); + case IMGFMT_IY41: return("Packed IY41"); case IMGFMT_IYU1: return("Packed IYU1"); case IMGFMT_IYU2: return("Packed IYU2"); case IMGFMT_UYVY: return("Packed UYVY"); case IMGFMT_UYNV: return("Packed UYNV"); case IMGFMT_cyuv: return("Packed CYUV"); + case IMGFMT_Y422: return("Packed Y422"); case IMGFMT_YUY2: return("Packed YUY2"); case IMGFMT_YUNV: return("Packed YUNV"); case IMGFMT_YVYU: return("Packed YVYU"); @@ -228,7 +240,7 @@ case IMGFMT_CLJR: return("Packed CLJR"); case IMGFMT_YUVP: return("Packed YUVP"); case IMGFMT_UYVP: return("Packed UYVP"); -/* case IMGFMT_MPEGPES: return("Mpeg PES");*/ + case IMGFMT_MPEGPES: return("Mpeg PES"); } return("Unknown"); } @@ -307,7 +319,7 @@ OUTREG(OV0_P1_X_START_END, besr.p1_x_start_end); OUTREG(OV0_P2_X_START_END, besr.p2_x_start_end); OUTREG(OV0_P3_X_START_END, besr.p3_x_start_end); -#if 1 +#if 0 OUTREG(OV0_BASE_ADDR, besr.base_addr); #endif OUTREG(OV0_VID_BUF0_BASE_ADRS, besr.vid_buf0_base_adrs); @@ -326,6 +338,9 @@ SCALER_ADAPTIVE_DEINT | SCALER_SMART_SWITCH | SCALER_HORZ_PICK_NEAREST; +#ifdef RAGE128 + bes_flags |= SCALER_BURST_PER_PLANE; +#endif switch(besr.fourcc) { case IMGFMT_RGB15: @@ -482,7 +497,7 @@ else { besr.vid_buf0_base_adrs = radeon_overlay_off; - besr.vid_buf0_base_adrs += ((left & ~7) << 1)&0xfffffff0; + besr.vid_buf0_base_adrs += ((left & ~7) << 1)&VIF_BUF0_BASE_ADRS_MASK; besr.vid_buf1_base_adrs = besr.vid_buf0_base_adrs; besr.vid_buf2_base_adrs = besr.vid_buf0_base_adrs; } @@ -587,7 +602,6 @@ return -EFAULT; } - /* FIXME: Fake of G400 ;) or would be better G200 ??? */ radeon_config.card_type = 0; radeon_config.ram_size = radeon_ram_size; radeon_overlay_off = radeon_ram_size*0x100000 - radeon_config.frame_size*radeon_config.num_frames; @@ -694,12 +708,12 @@ { PCI_DEVICE_ID_ATI_RAGE128_RN, "R128 RN" }, { PCI_DEVICE_ID_ATI_RAGE128_RO, "R128 RO" }, /* Rage128 M3 */ - { PCI_DEVICE_ID_ATI_RAGE128_LE, "R128 LE" }, - { PCI_DEVICE_ID_ATI_RAGE128_LF, "R128 LF" }, + { PCI_DEVICE_ID_ATI_RAGE128_LE, "R128 M3 LE" }, + { PCI_DEVICE_ID_ATI_RAGE128_LF, "R128 M3 LF" }, /* Rage128 Pro Ultra */ - { PCI_DEVICE_ID_ATI_RAGE128_U1, "R128 U1" }, - { PCI_DEVICE_ID_ATI_RAGE128_U2, "R128 U2" }, - { PCI_DEVICE_ID_ATI_RAGE128_U3, "R128 U3" } + { PCI_DEVICE_ID_ATI_RAGE128_U1, "R128Pro U1" }, + { PCI_DEVICE_ID_ATI_RAGE128_U2, "R128Pro U2" }, + { PCI_DEVICE_ID_ATI_RAGE128_U3, "R128Pro U3" } #else /* Radeons (indeed: Rage 256 Pro ;) */ { PCI_DEVICE_ID_RADEON_QD, "Radeon QD " }, diff -r 9440d478e10d -r 5eae81895171 drivers/radeon/radeon_vid.h --- a/drivers/radeon/radeon_vid.h Thu Nov 29 17:06:58 2001 +0000 +++ b/drivers/radeon/radeon_vid.h Thu Nov 29 17:07:52 2001 +0000 @@ -67,14 +67,19 @@ #define IMGFMT_I420 0x30323449 #define IMGFMT_IYUV 0x56555949 #define IMGFMT_CLPL 0x4C504C43 +#define IMGFMT_Y800 0x30303859 +#define IMGFMT_Y8 0x20203859 /* Packed YUV Formats */ +#define IMGFMT_IUYV 0x56595549 +#define IMGFMT_IY41 0x31435949 #define IMGFMT_IYU1 0x31555949 #define IMGFMT_IYU2 0x32555949 #define IMGFMT_UYVY 0x59565955 #define IMGFMT_UYNV 0x564E5955 #define IMGFMT_cyuv 0x76757963 +#define IMGFMT_Y422 0x32323459 #define IMGFMT_YUY2 0x32595559 #define IMGFMT_YUNV 0x564E5559 #define IMGFMT_YVYU 0x55595659 @@ -88,10 +93,14 @@ #define IMGFMT_YUVP 0x50565559 #define IMGFMT_UYVP 0x50565955 +/* Compressed Formats. Mplayer's extensions!!! */ +#define IMGFMT_MPEGPES (('M'<<24)|('P'<<16)|('E'<<8)|('S')) + + #define MGA_VID_CONFIG _IOR('J', 1, mga_vid_config_t) #define MGA_VID_ON _IO ('J', 2) #define MGA_VID_OFF _IO ('J', 3) -#define MGA_VID_FSEL _IOR('J', 4, int) +#define MGA_VID_FSEL _IOR('J', 4, int) #define MGA_VID_VERSION 0x0201