CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: martin Date: Sun Mar 22 10:18:19 UTC 2020 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_accel.c Log Message: PR 48569: avoid unaligned access. OK mrg@ To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c:1.2 Wed Aug 17 00:06:59 2016 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_accel.c Sun Mar 22 10:18:19 2020 @@ -960,7 +960,30 @@ void RADEONCopySwap(uint8_t *dst, uint8_ return; } case RADEON_HOST_DATA_SWAP_32BIT: -{ + if (((uintptr_t)dst & 1) || ((uintptr_t)src & 1)) { + uint8_t *d = (uint8_t *)dst; + uint8_t *s = (uint8_t *)src; + unsigned int nwords = size >> 2; + + for (; nwords > 0; --nwords, d+=4, s+=4) { + d[0] = s[3]; + d[1] = s[2]; + d[2] = s[1]; + d[3] = s[0]; + } + return; +} else if (((uintptr_t)dst & 3) || ((uintptr_t)src & 3)) { + /* copy 16bit wise */ + uint16_t *d = (uint16_t *)dst; + uint16_t *s = (uint16_t *)src; + unsigned int nwords = size >> 2; + + for (; nwords > 0; --nwords, d+=2, s+=2) { + d[0] = ((s[1] >> 8) & 0xff) | ((s[1] & 0xff) << 8); + d[1] = ((s[0] >> 8) & 0xff) | ((s[0] & 0xff) << 8); + } + return; + } else { unsigned int *d = (unsigned int *)dst; unsigned int *s = (unsigned int *)src; unsigned int nwords = size >> 2;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Thu Jan 31 20:40:59 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_vip.c Log Message: explicitly continue. To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c:1.1.1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c:1.1.1.3 Sun Sep 23 15:49:09 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_vip.c Thu Jan 31 15:40:59 2019 @@ -302,7 +302,8 @@ static Bool RADEONVIP_fifo_write(GENERIC { OUTREG(VIPH_REG_DATA, *(uint32_t*)(buffer + i)); write_mem_barrier(); - while(VIP_BUSY == (status = RADEONVIP_fifo_idle(b, 0x0f))); + while(VIP_BUSY == (status = RADEONVIP_fifo_idle(b, 0x0f))) + continue; if(VIP_IDLE != status) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "cannot write to VIPH_REG_DATA\n");
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Thu Jan 31 20:41:19 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_dri.c Log Message: fix wrong printf format. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.9 xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.10 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.9 Sun Sep 23 16:06:02 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Thu Jan 31 15:41:19 2019 @@ -1070,7 +1070,7 @@ static Bool RADEONDRIPciInit(RADEONInfoP return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] ring handle = 0x%08lx, size = 0x%08lx\n", info->dri->ringHandle, info->dri->ringMapSize); + "[pci] ring handle = 0x%08lx, size = 0x%08x\n", info->dri->ringHandle, info->dri->ringMapSize); if ((ret = drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize, &info->dri->ring)) < 0) {
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Thu Jan 31 20:40:16 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_crtc.c Log Message: Taking the abs() of the difference of two unsigned numbers is probably not what it was intended here :-) To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c:1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c:1.4 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c:1.3 Mon Dec 31 19:34:52 2018 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c Thu Jan 31 15:40:16 2019 @@ -245,17 +245,18 @@ RADEONComputePLL_old(RADEONPLLPtr pll, tmp += (CARD64)pll->reference_freq * 1000 * frac_feedback_div; current_freq = RADEONDiv(tmp, ref_div * post_div); +#define RD_ABS(a, b) ((a) > (b) ? (a) - (b) : (b) - (a)) if (flags & RADEON_PLL_PREFER_CLOSEST_LOWER) { error = freq - current_freq; error = (int32_t)error < 0 ? 0x : error; } else - error = abs(current_freq - freq); - vco_diff = abs(vco - best_vco); + error = RD_ABS(current_freq, freq); + vco_diff = RD_ABS(vco, best_vco); if ((best_vco == 0 && error < best_error) || (best_vco != 0 && (error < best_error - 100 || - (abs(error - best_error) < 100 && vco_diff < best_vco_diff { + (RD_ABS(error, best_error) < 100 && vco_diff < best_vco_diff { best_post_div = post_div; best_ref_div = ref_div; best_feedback_div = feedback_div;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Thu Jan 31 20:41:38 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_modes.c Log Message: using abs on floating point values... To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c:1.2 Mon Dec 31 19:34:52 2018 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_modes.c Thu Jan 31 15:41:37 2019 @@ -408,7 +408,7 @@ RADEONUpdatePanelSize(xf86OutputPtr outp float refresh = (float)p->Clock * 1000.0 / p->HTotal / p->VTotal; - if (abs((float)ddc->timings2[j].refresh - refresh) < 1.0) { + if (fabsf((float)ddc->timings2[j].refresh - refresh) < 1.0) { /* Is this good enough? */ native_mode->PanelXRes = ddc->timings2[j].hsize; native_mode->PanelYRes = ddc->timings2[j].vsize;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Thu Jan 31 20:40:42 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_video.c Log Message: shifting negative values is not portable. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c:1.2 Tue Aug 16 20:06:59 2016 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_video.c Thu Jan 31 15:40:41 2019 @@ -2681,7 +2681,7 @@ RADEONDisplayVideo( * prevent the buffer offsets from exceeding the hardware limit of 128 MB. * The base address must be aligned to a multiple of 4 MB. */ -base_offset = ((info->fbLocation + base_offset) & (~0 << 22)) - +base_offset = ((info->fbLocation + base_offset) & (~0U << 22)) - info->fbLocation; offset1 -= base_offset;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios
Module Name:xsrc Committed By: mrg Date: Fri Jan 4 00:09:11 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Log Message: redo previous slightly: restore packed attribute. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.7 xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.8 --- xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.7 Wed Jan 2 18:51:58 2019 +++ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Fri Jan 4 00:09:11 2019 @@ -215,8 +215,10 @@ VOID IndirectIOCommand_CLEAR(PARSER_TEMP pParserTempData->IndirectData &= ~((0x >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]); } -/* Avoid conflicts with older versions of compiler.h */ +/* from xorg-server 1.18 compiler.h */ +struct local__una_u32 { uint32_t x __attribute__((packed)); }; +/* Avoid conflicts with older versions of compiler.h */ #define ldw_u xldw_u #define ldl_u xldl_u #define stl_u xstl_u @@ -224,20 +226,21 @@ VOID IndirectIOCommand_CLEAR(PARSER_TEMP static __inline__ uint16_t ldw_u(uint16_t *p) { uint16_t ret; - memmove(&ret, p, sizeof(ret)); + memmove(&ret, p, sizeof(*p)); return ret; } static __inline__ uint32_t ldl_u(uint32_t *p) { uint32_t ret; - memmove(&ret, p, sizeof(ret)); + memmove(&ret, p, sizeof(*p)); return ret; } static __inline__ void stl_u(uint32_t val, uint32_t *p) { - memmove(p, &val, sizeof(*p)); + struct local__una_u32 *ptr = (struct local__una_u32 *) p; + ptr->x = val; } UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Fri Jan 4 00:09:24 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: theatre.h Log Message: minor style fix for previous. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xf86-video-ati/dist/src/theatre.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/theatre.h diff -u xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.2 xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.2 Tue Jan 1 05:29:40 2019 +++ xsrc/external/mit/xf86-video-ati/dist/src/theatre.h Fri Jan 4 00:09:24 2019 @@ -11,9 +11,9 @@ typedef struct { int theatre_num; uint32_t theatre_id; int mode; - const char*microc_path; - const char*microc_type; - + const char* microc_path; + const char* microc_type; + uint16_t video_decoder_type; uint32_t wStandard; uint32_t wConnector;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios
Module Name:xsrc Committed By: christos Date: Wed Jan 2 18:51:58 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Log Message: make this work with both the old and the new version of compiler.h To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.6 xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.7 --- xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.6 Wed Jan 2 10:54:24 2019 +++ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Wed Jan 2 13:51:58 2019 @@ -215,28 +215,29 @@ VOID IndirectIOCommand_CLEAR(PARSER_TEMP pParserTempData->IndirectData &= ~((0x >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]); } -/* from xorg-server 1.18 compiler.h */ -struct __una_u64 { uint64_t x __attribute__((packed)); }; -struct __una_u32 { uint32_t x __attribute__((packed)); }; +/* Avoid conflicts with older versions of compiler.h */ + +#define ldw_u xldw_u +#define ldl_u xldl_u +#define stl_u xstl_u static __inline__ uint16_t ldw_u(uint16_t *p) { uint16_t ret; - memmove(&ret, p, sizeof(*p)); + memmove(&ret, p, sizeof(ret)); return ret; } static __inline__ uint32_t ldl_u(uint32_t *p) { uint32_t ret; - memmove(&ret, p, sizeof(*p)); + memmove(&ret, p, sizeof(ret)); return ret; } static __inline__ void stl_u(uint32_t val, uint32_t *p) { - struct __una_u32 *ptr = (struct __una_u32 *) p; - ptr->x = val; + memmove(p, &val, sizeof(*p)); } UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios
Module Name:xsrc Committed By: christos Date: Wed Jan 2 15:54:24 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Log Message: put back compatibility code for now; needed for sparc (from martin@) To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.5 xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.6 --- xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.5 Tue Jan 1 21:58:48 2019 +++ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Wed Jan 2 10:54:24 2019 @@ -215,6 +215,30 @@ VOID IndirectIOCommand_CLEAR(PARSER_TEMP pParserTempData->IndirectData &= ~((0x >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]); } +/* from xorg-server 1.18 compiler.h */ +struct __una_u64 { uint64_t x __attribute__((packed)); }; +struct __una_u32 { uint32_t x __attribute__((packed)); }; + +static __inline__ uint16_t ldw_u(uint16_t *p) +{ + uint16_t ret; + memmove(&ret, p, sizeof(*p)); + return ret; +} + +static __inline__ uint32_t ldl_u(uint32_t *p) +{ + uint32_t ret; + memmove(&ret, p, sizeof(*p)); + return ret; +} + +static __inline__ void stl_u(uint32_t val, uint32_t *p) +{ + struct __una_u32 *ptr = (struct __una_u32 *) p; + ptr->x = val; +} + UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { // if ((pParserTempData->IndirectData & 0x7f)==INDIRECT_IO_MM) pParserTempData->IndirectData|=pParserTempData->CurrentPortID;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios
Module Name:xsrc Committed By: christos Date: Wed Jan 2 02:58:48 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Log Message: Remove compatibility code. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.4 xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.5 --- xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.4 Mon Dec 31 19:34:52 2018 +++ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Tue Jan 1 21:58:48 2019 @@ -215,30 +215,6 @@ VOID IndirectIOCommand_CLEAR(PARSER_TEMP pParserTempData->IndirectData &= ~((0x >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]); } -/* from xorg-server 1.18 compiler.h */ -struct __una_u64 { uint64_t x __attribute__((packed)); }; -struct __una_u32 { uint32_t x __attribute__((packed)); }; - -static __inline__ uint16_t ldw_u(uint16_t *p) -{ - uint16_t ret; - memmove(&ret, p, sizeof(*p)); - return ret; -} - -static __inline__ uint32_t ldl_u(uint32_t *p) -{ - uint32_t ret; - memmove(&ret, p, sizeof(*p)); - return ret; -} - -static __inline__ void stl_u(uint32_t val, uint32_t *p) -{ - struct __una_u32 *ptr = (struct __una_u32 *) p; - ptr->x = val; -} - UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { // if ((pParserTempData->IndirectData & 0x7f)==INDIRECT_IO_MM) pParserTempData->IndirectData|=pParserTempData->CurrentPortID;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: christos Date: Tue Jan 1 05:29:40 UTC 2019 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon.h theatre.h Log Message: add missing const To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon.h cvs rdiff -u -r1.1.1.1 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/theatre.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon.h diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon.h:1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon.h:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon.h:1.2 Tue Aug 16 20:06:59 2016 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon.h Tue Jan 1 00:29:40 2019 @@ -924,8 +924,8 @@ typedef struct { int RageTheatreCompositePort; int RageTheatreSVideoPort; int tunerType; -char* RageTheatreMicrocPath; -char* RageTheatreMicrocType; +const char* RageTheatreMicrocPath; +const char* RageTheatreMicrocType; Bool MM_TABLE_valid; struct { uint8_t table_revision; Index: xsrc/external/mit/xf86-video-ati/dist/src/theatre.h diff -u xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.1.1.1 xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/theatre.h:1.1.1.1 Sat Aug 2 01:10:42 2008 +++ xsrc/external/mit/xf86-video-ati/dist/src/theatre.h Tue Jan 1 00:29:40 2019 @@ -11,8 +11,8 @@ typedef struct { int theatre_num; uint32_t theatre_id; int mode; - char*microc_path; - char*microc_type; + const char*microc_path; + const char*microc_type; uint16_t video_decoder_type; uint32_t wStandard;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Fri Aug 11 20:55:49 UTC 2017 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_output.c Log Message: add voodoo to get the Mac model name from OpenFirmware so the driver can automatically enable model specific workarounds Now X works out of the box on my Mini To generate a diff of this commit: cvs rdiff -u -r1.1.1.10 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c:1.1.1.10 xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c:1.1.1.10 Sun Sep 23 19:49:36 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_output.c Fri Aug 11 20:55:49 2017 @@ -33,7 +33,10 @@ #include #include #include - +#ifdef __NetBSD__ +#include +#include +#endif /* X and server generic header files */ #include "xf86.h" #include "xf86_OSproc.h" @@ -2731,6 +2734,25 @@ static RADEONMacModel RADEONDetectMacMod if (f != NULL) { while (fgets(cpuline, sizeof cpuline, f)) { if (!strncmp(cpuline, "machine", strlen ("machine"))) { +#elif defined(__NetBSD__) +char cpuline[50]; +int of; +struct ofiocdesc ofio; + +of = open("/dev/openfirm", O_RDONLY); +if (of > 0) { + ofio.of_nodeid = 0; +ofio.of_name = "/"; + ofio.of_namelen = 1; + if (ioctl(of, OFIOCFINDDEVICE, &ofio) != -1) { + ofio.of_name = "model"; + ofio.of_namelen = 5; + ofio.of_buf = cpuline; + ofio.of_buflen = sizeof(cpuline); + while (ioctl(of, OFIOCGET, &ofio) != -1) { + cpuline[49] = 0; + xf86Msg(X_ERROR, "model %s\n", cpuline); +#endif if (strstr(cpuline, "PowerBook5,1") || strstr(cpuline, "PowerBook5,2") || strstr(cpuline, "PowerBook5,3") || @@ -2767,6 +2789,7 @@ static RADEONMacModel RADEONDetectMacMod ret = RADEON_MAC_MINI_EXTERNAL; /* external tmds */ break; } +#ifdef __linux__ } else if (!strncmp(cpuline, "detected as", strlen("detected as"))) { if (strstr(cpuline, "iBook")) { ret = RADEON_MAC_IBOOK; @@ -2781,19 +2804,25 @@ static RADEONMacModel RADEONDetectMacMod ret = RADEON_MAC_EMAC; break; } - +#endif /* No known PowerMac model detected */ break; } } +#ifdef __linux__ fclose (f); } else xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Cannot detect PowerMac model because /proc/cpuinfo not " "readable.\n"); - -#endif /* __linux */ +#elif defined(__NetBSD__) + close(of); +} else + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Cannot detect PowerMac model because /dev/openfirm not " + "readable.\n"); +#endif #ifdef __OpenBSD__ char model[32];
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sun Mar 5 03:18:38 UTC 2017 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: compat-api.h r600_shader.c Log Message: un-merge the new ati driver from the old location. To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h cvs rdiff -u -r1.1.1.8 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h diff -u xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h:1.1.1.2 xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h:1.1.1.2 Sun Mar 5 03:02:38 2017 +++ xsrc/external/mit/xf86-video-ati/dist/src/compat-api.h Sun Mar 5 03:18:38 2017 @@ -73,13 +73,8 @@ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv -#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0) -#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout -#define BLOCKHANDLER_ARGS arg, pTimeout -#else #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask -#endif #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen #define CLOSE_SCREEN_ARGS pScreen Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c:1.1.1.8 xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c:1.1.1.8 Sun Mar 5 03:02:38 2017 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_shader.c Sun Mar 5 03:18:38 2017 @@ -2318,10 +2318,9 @@ int R600_comp_ps(RADEONChipFamily ChipSe int i = 0; /* 0 */ -/* call fetch-mask if boolean1 == true */ -shader[i++] = CF_DWORD0(ADDR(10)); +shader[i++] = CF_DWORD0(ADDR(3)); shader[i++] = CF_DWORD1(POP_COUNT(0), -CF_CONST(1), +CF_CONST(0), COND(SQ_CF_COND_BOOL), I_COUNT(0), CALL_COUNT(0), @@ -2331,10 +2330,9 @@ int R600_comp_ps(RADEONChipFamily ChipSe WHOLE_QUAD_MODE(0), BARRIER(0)); /* 1 */ -/* call read-constant-mask if boolean1 == false */ -shader[i++] = CF_DWORD0(ADDR(12)); +shader[i++] = CF_DWORD0(ADDR(7)); shader[i++] = CF_DWORD1(POP_COUNT(0), -CF_CONST(1), +CF_CONST(0), COND(SQ_CF_COND_NOT_BOOL), I_COUNT(0), CALL_COUNT(0), @@ -2344,36 +2342,33 @@ int R600_comp_ps(RADEONChipFamily ChipSe WHOLE_QUAD_MODE(0), BARRIER(0)); /* 2 */ -/* call fetch-src if boolean0 == true */ -shader[i++] = CF_DWORD0(ADDR(6)); +shader[i++] = CF_DWORD0(ADDR(0)); shader[i++] = CF_DWORD1(POP_COUNT(0), CF_CONST(0), -COND(SQ_CF_COND_BOOL), +COND(SQ_CF_COND_ACTIVE), I_COUNT(0), CALL_COUNT(0), -END_OF_PROGRAM(0), +END_OF_PROGRAM(1), VALID_PIXEL_MODE(0), -CF_INST(SQ_CF_INST_CALL), +CF_INST(SQ_CF_INST_NOP), WHOLE_QUAD_MODE(0), -BARRIER(0)); +BARRIER(1)); -/* 3 */ -/* call read-constant-src if boolean0 == false */ -shader[i++] = CF_DWORD0(ADDR(8)); +/* 3 - mask sub */ +shader[i++] = CF_DWORD0(ADDR(14)); shader[i++] = CF_DWORD1(POP_COUNT(0), CF_CONST(0), - COND(SQ_CF_COND_NOT_BOOL), - I_COUNT(0), + COND(SQ_CF_COND_ACTIVE), + I_COUNT(2), CALL_COUNT(0), END_OF_PROGRAM(0), VALID_PIXEL_MODE(0), - CF_INST(SQ_CF_INST_CALL), + CF_INST(SQ_CF_INST_TEX), WHOLE_QUAD_MODE(0), - BARRIER(0)); + BARRIER(1)); /* 4 */ -/* src IN mask (GPR0 := GPR1 .* GPR0) */ -shader[i++] = CF_ALU_DWORD0(ADDR(14), +shader[i++] = CF_ALU_DWORD0(ADDR(10), KCACHE_BANK0(0), KCACHE_BANK1(0), KCACHE_MODE0(SQ_CF_KCACHE_NOP)); @@ -2387,10 +2382,9 @@ int R600_comp_ps(RADEONChipFamily ChipSe BARRIER(1)); /* 5 */ -/* export pixel data */ shader[i++] = CF_ALLOC_IMP_EXP_DWORD0(ARRAY_BASE(CF_PIXEL_MRT0), TYPE(SQ_EXPORT_PIXEL), - RW_GPR(0), + RW_GPR(2), RW_REL(ABSOLUTE), INDEX_GPR(0), ELEM_SIZE(1)); @@ -2400,57 +2394,55 @@ int R600_co
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: wiz Date: Fri Dec 11 15:37:44 UTC 2015 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_dri2.c Log Message: Initialize a variable, for clang. To generate a diff of this commit: cvs rdiff -u -r1.1.1.8 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:1.1.1.8 xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c:1.1.1.8 Sun Sep 23 19:49:02 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri2.c Fri Dec 11 15:37:44 2015 @@ -590,7 +590,7 @@ static void radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer data, pointer calldata) { DRI2ClientEventsPtr pClientEventsPriv; -DRI2FrameEventPtr ref; +DRI2FrameEventPtr ref = NULL; NewClientInfoRec *clientinfo = calldata; ClientPtr pClient = clientinfo->client; pClientEventsPriv = GetDRI2ClientEvents(pClient);
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Tue Jul 29 21:55:23 UTC 2014 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r600_exa.c r600_textured_videofuncs.c r6xx_accel.c radeon_exa.c radeon_exa_funcs.c radeon_textured_video.c Log Message: make sure all the KMS code is only ever run when in KMS mode. fixes problems with the UMS (aka existing) driver type when KMS is enabled. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c cvs rdiff -u -r1.1.1.9 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/r600_textured_videofuncs.c cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c cvs rdiff -u -r1.1.1.10 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa.c cvs rdiff -u -r1.9 -r1.10 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.5 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.6 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.5 Sun Sep 23 20:06:02 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Tue Jul 29 21:55:23 2014 @@ -246,7 +246,8 @@ R600PrepareSolid(PixmapPtr pPix, int alu cb_conf.base = accel_state->dst_obj.offset; cb_conf.bo = accel_state->dst_obj.bo; #ifdef XF86DRM_MODE -cb_conf.surface = accel_state->dst_obj.surface; +if (info->cs) +cb_conf.surface = accel_state->dst_obj.surface; #endif if (accel_state->dst_obj.bpp == 8) { @@ -428,7 +429,8 @@ R600DoPrepareCopy(ScrnInfoPtr pScrn) tex_res.bo = accel_state->src_obj[0].bo; tex_res.mip_bo = accel_state->src_obj[0].bo; #ifdef XF86DRM_MODE -tex_res.surface = accel_state->src_obj[0].surface; +if (info->cs) +tex_res.surface = accel_state->src_obj[0].surface; #endif if (accel_state->src_obj[0].bpp == 8) { tex_res.format = FMT_8; @@ -475,7 +477,8 @@ R600DoPrepareCopy(ScrnInfoPtr pScrn) cb_conf.base = accel_state->dst_obj.offset; cb_conf.bo = accel_state->dst_obj.bo; #ifdef XF86DRM_MODE -cb_conf.surface = accel_state->dst_obj.surface; +if (info->cs) +cb_conf.surface = accel_state->dst_obj.surface; #endif if (accel_state->dst_obj.bpp == 8) { cb_conf.format = COLOR_8; @@ -626,15 +629,10 @@ R600PrepareCopy(PixmapPtr pSrc, Pixmap if (accel_state->same_surface == TRUE) { #if defined(XF86DRM_MODE) - unsigned long size = accel_state->dst_obj.surface->bo_size; - unsigned long align = accel_state->dst_obj.surface->bo_alignment; -#else - unsigned height = pDst->drawable.height; - unsigned long size = height * accel_state->dst_obj.pitch * pDst->drawable.bitsPerPixel/8; -#endif - -#if defined(XF86DRM_MODE) if (info->cs) { + unsigned long size = accel_state->dst_obj.surface->bo_size; + unsigned long align = accel_state->dst_obj.surface->bo_alignment; + if (accel_state->copy_area_bo) { radeon_bo_unref(accel_state->copy_area_bo); accel_state->copy_area_bo = NULL; @@ -656,6 +654,9 @@ R600PrepareCopy(PixmapPtr pSrc, Pixmap } else #endif { + unsigned height = pDst->drawable.height; + unsigned long size = height * accel_state->dst_obj.pitch * pDst->drawable.bitsPerPixel/8; + if (accel_state->copy_area) { exaOffscreenFree(pDst->drawable.pScreen, accel_state->copy_area); accel_state->copy_area = NULL; @@ -978,7 +979,8 @@ static Bool R600TextureSetup(PicturePtr tex_res.bo = accel_state->src_obj[unit].bo; tex_res.mip_bo = accel_state->src_obj[unit].bo; #ifdef XF86DRM_MODE -tex_res.surface = accel_state->src_obj[unit].surface; +if (info->cs) +tex_res.surface = accel_state->src_obj[unit].surface; #endif tex_res.request_size= 1; @@ -1447,7 +1449,8 @@ static Bool R600PrepareComposite(int op, cb_conf.format = dst_format; cb_conf.bo = accel_state->dst_obj.bo; #ifdef XF86DRM_MODE -cb_conf.surface = accel_state->dst_obj.surface; +if (info->cs) +cb_conf.surface = accel_state->dst_obj.surface; #endif switch (pDstPicture->format) { @@ -1899,9 +1902,7 @@ R600UploadToScreenCS(PixmapPtr pDst, int src_obj.domain = RADEON_GEM_DOMAIN_GTT; src_obj.bo = scratch; src_obj.tiling_flags = 0; -#ifdef XF86DRM_MODE src_obj.surface = NULL; -#endif dst_obj.pitch = dst_pitch_hw; dst_obj.width = pDst->drawable.width; @@ -1911,9 +1912,7 @@ R600UploadToScreenCS(PixmapPtr pDst, int dst_obj.domain = RADEON_GEM_DOMAIN_VRAM; dst_obj.bo = radeon_get_pixm
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Nov 6 19:00:58 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_exa_render.c Log Message: fix xrender ops with a solid source without an actual pixmap for R2xx and R3xx on big endian hardware as well tested on macppc To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.2 Tue Oct 29 01:06:03 2013 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c Wed Nov 6 19:00:58 2013 @@ -1025,7 +1025,7 @@ static Bool FUNC_NAME(R200PrepareComposi RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch)); if (!pSrc) { - pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); + pSrc = RADEONSolidPixmap(pScreen, pSrcPicture->pSourcePict->solidFill.color); if (!pSrc) RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); } @@ -1034,7 +1034,7 @@ static Bool FUNC_NAME(R200PrepareComposi return FALSE; if (pMaskPicture && !pMask) { - pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); + pMask = RADEONSolidPixmap(pScreen, pMaskPicture->pSourcePict->solidFill.color); if (!pMask) { if (!pSrcPicture->pDrawable) pScreen->DestroyPixmap(pSrc); @@ -1533,7 +1533,7 @@ static Bool FUNC_NAME(R300PrepareComposi RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch)); if (!pSrc) { - pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); + pSrc = RADEONSolidPixmap(pScreen, pSrcPicture->pSourcePict->solidFill.color); if (!pSrc) RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); } @@ -1542,7 +1542,7 @@ static Bool FUNC_NAME(R300PrepareComposi return FALSE; if (pMaskPicture && !pMask) { - pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); + pMask = RADEONSolidPixmap(pScreen, pMaskPicture->pSourcePict->solidFill.color); if (!pMask) { if (!pSrcPicture->pDrawable) pScreen->DestroyPixmap(pSrc);
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Tue Oct 29 01:06:03 UTC 2013 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_exa_render.c Log Message: Don't endian-twiddle solid source colours in composite operations on R1xx Now gtk2-rendered text looks right again with EXA and xrender acceleration enabled. Probably needs similar fixes for R2xx, also needs testing on little-endian hardware. To generate a diff of this commit: cvs rdiff -u -r1.1.1.10 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.1.1.10 xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c:1.1.1.10 Sun Sep 23 19:49:35 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_render.c Tue Oct 29 01:06:03 2013 @@ -649,7 +649,7 @@ static Bool FUNC_NAME(R100PrepareComposi CHECK_OFFSET(pDst, 0x0f, "destination"); if (!pSrc) { - pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); + pSrc = RADEONSolidPixmap(pScreen, pSrcPicture->pSourcePict->solidFill.color); if (!pSrc) RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); } @@ -661,7 +661,7 @@ static Bool FUNC_NAME(R100PrepareComposi return FALSE; if (pMaskPicture && !pMask) { - pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); + pMask = RADEONSolidPixmap(pScreen, pMaskPicture->pSourcePict->solidFill.color); if (!pMask) { if (!pSrcPicture->pDrawable) pScreen->DestroyPixmap(pSrc);
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: veego Date: Sun Sep 23 20:10:25 UTC 2012 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: atombios_crtc.c atombios_output.c radeon_crtc.c Log Message: Disable a lot of debug output which would show up if you change from the xserver to another console and back To generate a diff of this commit: cvs rdiff -u -r1.1.1.8 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c cvs rdiff -u -r1.1.1.10 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/atombios_output.c cvs rdiff -u -r1.1.1.9 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_crtc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c:1.1.1.8 xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c:1.1.1.8 Sun Sep 23 19:49:10 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/atombios_crtc.c Sun Sep 23 20:10:25 2012 @@ -87,7 +87,7 @@ atombios_lock_crtc(atomBiosHandlePtr ato data.exec.pspace = &crtc_data; if (RHDAtomBiosFunc(atomBIOS->pScrn, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("%s CRTC %d success\n", lock? "Lock":"Unlock", crtc); +/* ErrorF("%s CRTC %d success\n", lock? "Lock":"Unlock", crtc); */ return ATOM_SUCCESS ; } @@ -110,7 +110,7 @@ atombios_enable_crtc(atomBiosHandlePtr a data.exec.pspace = &crtc_data; if (RHDAtomBiosFunc(atomBIOS->pScrn, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("%s CRTC %d success\n", state? "Enable":"Disable", crtc); +/* ErrorF("%s CRTC %d success\n", state? "Enable":"Disable", crtc); */ return ATOM_SUCCESS ; } @@ -133,7 +133,7 @@ atombios_enable_crtc_memreq(atomBiosHand data.exec.pspace = &crtc_data; if (RHDAtomBiosFunc(atomBIOS->pScrn, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("%s CRTC memreq %d success\n", state? "Enable":"Disable", crtc); +/* ErrorF("%s CRTC memreq %d success\n", state? "Enable":"Disable", crtc); */ return ATOM_SUCCESS ; } @@ -157,7 +157,7 @@ atombios_blank_crtc(atomBiosHandlePtr at data.exec.pspace = &crtc_data; if (RHDAtomBiosFunc(atomBIOS->pScrn, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("%s CRTC %d success\n", state? "Blank":"Unblank", crtc); +/* ErrorF("%s CRTC %d success\n", state? "Blank":"Unblank", crtc); */ return ATOM_SUCCESS ; } @@ -231,7 +231,7 @@ atombios_set_crtc_timing(xf86CrtcPtr crt data.exec.pspace = ¶m; if (RHDAtomBiosFunc(info->atomBIOS->pScrn, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("Set CRTC Timing success\n"); +/* ErrorF("Set CRTC Timing success\n"); */ return ATOM_SUCCESS ; } @@ -282,7 +282,7 @@ atombios_set_crtc_dtd_timing(xf86CrtcPtr data.exec.pspace = ¶m; if (RHDAtomBiosFunc(info->atomBIOS->pScrn, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { - ErrorF("Set DTD CRTC Timing success\n"); +/* ErrorF("Set DTD CRTC Timing success\n"); */ return ATOM_SUCCESS ; } @@ -336,7 +336,7 @@ atombios_pick_pll(xf86CrtcPtr crtc) } else radeon_crtc->pll_id = radeon_crtc->crtc_id; -ErrorF("Picked PLL %d\n", radeon_crtc->pll_id); +/*ErrorF("Picked PLL %d\n", radeon_crtc->pll_id); */ for (o = 0; o < xf86_config->num_output; o++) { output = xf86_config->output[o]; @@ -449,11 +449,11 @@ static uint32_t atombios_adjust_pll(xf86 args.v1.ucTransmitterID = radeon_encoder->encoder_id; args.v1.ucEncodeMode = atombios_get_encoder_mode(output); - ErrorF("before %d\n", args.v1.usPixelClock); +/* ErrorF("before %d\n", args.v1.usPixelClock); */ if (RHDAtomBiosFunc(info->atomBIOS->pScrn, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { adjusted_clock = le16_to_cpu(args.v1.usPixelClock) * 10; } - ErrorF("after %d\n", args.v1.usPixelClock); +/* ErrorF("after %d\n", args.v1.usPixelClock); */ break; case 3: args.v3.sInput.usPixelClock = cpu_to_le16(adjusted_clock / 10); @@ -467,7 +467,7 @@ static uint32_t atombios_adjust_pll(xf86 // if SS //args.v3.sInput.ucDispPllConfig |= DISPPLL_CONFIG_SS_ENABLE; - ErrorF("before %d 0x%x\n", args.v3.sInput.usPixelClock, args.v3.sInput.ucDispPllConfig); +/* ErrorF("before %d 0x%x\n", args.v3.sInput.usPixelClock, args.v3.sInput.ucDispPllConfig); */ if (RHDAtomBiosFunc(info->atomBIOS->pScrn, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { adjusted_clock = args.v3.sOutput.ulDispPllFreq * 10; if (args.v3.sOutput.ucRefDiv) { @@ -478,8 +478,8 @@ static uint32_t atombios_adjust_pll(xf86 pll_flags |= RADEON_PLL_USE_POST_DIV; info->pll.post_div = args.v3.sOutput.ucPostDiv; } - ErrorF("after %d %d %d\n", args.v3.sOutput.ulDispPllFreq, - args.v
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: veego Date: Sun Sep 23 20:06:03 UTC 2012 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: legacy_crtc.c r600_exa.c radeon_accelfuncs.c radeon_cursor.c radeon_dri.c radeon_driver.c radeon_exa_funcs.c radeon_textured_video.c Log Message: merge xf86-video-ati 6.14.6 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c \ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c cvs rdiff -u -r1.8 -r1.9 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c cvs rdiff -u -r1.11 -r1.12 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.4 xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.5 --- xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.4 Sat Jul 17 06:34:13 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c Sun Sep 23 20:06:02 2012 @@ -854,7 +854,7 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RAD /*** NOTE: r3/4xx will need sarea and drm pageflip updates to handle the xytile regs for *** pageflipping! ***/ - pSAREAPriv = DRIGetSAREAPrivate(screenInfo.screens[pScrn->scrnIndex]); + pSAREAPriv = DRIGetSAREAPrivate(xf86ScrnToScreen(pScrn)); /* can't get at sarea in a semi-sane way? */ pSAREA = (void *)((char*)pSAREAPriv - sizeof(XF86DRISAREARec)); @@ -1075,7 +1075,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RA /*** NOTE: r3/4xx will need sarea and drm pageflip updates to handle the xytile regs for *** pageflipping! ***/ - pSAREAPriv = DRIGetSAREAPrivate(screenInfo.screens[pScrn->scrnIndex]); + pSAREAPriv = DRIGetSAREAPrivate(xf86ScrnToScreen(pScrn)); /* can't get at sarea in a semi-sane way? */ pSAREA = (void *)((char*)pSAREAPriv - sizeof(XF86DRISAREARec)); @@ -1886,10 +1886,10 @@ legacy_crtc_mode_set(xf86CrtcPtr crtc, D /* need to redraw front buffer, I guess this can be considered a hack ? */ /* if this is called during ScreenInit() we don't have pScrn->pScreen yet */ if (pScrn->pScreen) - xf86EnableDisableFBAccess(pScrn->scrnIndex, FALSE); + xf86EnableDisableFBAccess(XF86_ENABLEDISABLEFB_ARG(pScrn), FALSE); RADEONChangeSurfaces(pScrn); if (pScrn->pScreen) - xf86EnableDisableFBAccess(pScrn->scrnIndex, TRUE); + xf86EnableDisableFBAccess(XF86_ENABLEDISABLEFB_ARG(pScrn), TRUE); /* xf86SetRootClip would do, but can't access that here */ } Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.4 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.5 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.4 Sun Jun 3 16:42:22 2012 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Sun Sep 23 20:06:02 2012 @@ -168,7 +168,7 @@ R600SetAccelState(ScrnInfoPtr pScrn, static Bool R600PrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg) { -ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; +ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; cb_config_t cb_conf; @@ -323,7 +323,7 @@ R600PrepareSolid(PixmapPtr pPix, int alu static void R600DoneSolid(PixmapPtr pPix) { -ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; +ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; @@ -339,7 +339,7 @@ R600DoneSolid(PixmapPtr pPix) static void R600Solid(PixmapPtr pPix, int x1, int y1, int x2, int y2) { -ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; +ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; float *vb; @@ -517,7 +517,7 @@ R600DoCopy(ScrnInfoPtr pScrn) static void R600DoCopyVline(PixmapPtr pPix) { -ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; +ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; @@ -566,7 +566,7 @@ R600PrepareCopy(PixmapPtr pSrc, Pixmap int rop, Pixel planemask) {
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: rjs Date: Sun Jun 3 16:42:23 UTC 2012 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r600_exa.c r6xx_accel.c radeon_dri.c radeon_driver.c radeon_exa_funcs.c radeon_textured_video.c Log Message: merge xf86-video-ati 6.14.4 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c cvs rdiff -u -r1.5 -r1.6 \ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c cvs rdiff -u -r1.7 -r1.8 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c cvs rdiff -u -r1.10 -r1.11 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.3 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.4 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.3 Sat Jul 23 08:27:24 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Sun Jun 3 16:42:22 2012 @@ -62,15 +62,11 @@ R600SetAccelState(ScrnInfoPtr pScrn, memcpy(&accel_state->src_obj[0], src0, sizeof(struct r600_accel_object)); accel_state->src_size[0] = src0->pitch * src0->height * (src0->bpp/8); #if defined(XF86DRM_MODE) - if (info->cs) { - pitch_align = drmmode_get_pitch_align(pScrn, - accel_state->src_obj[0].bpp / 8, - accel_state->src_obj[0].tiling_flags) - 1; - base_align = drmmode_get_base_align(pScrn, - accel_state->src_obj[0].bpp / 8, - accel_state->src_obj[0].tiling_flags) - 1; + if (info->cs && src0->surface) { + accel_state->src_size[0] = src0->surface->bo_size; } #endif + /* bad pitch */ if (accel_state->src_obj[0].pitch & pitch_align) RADEON_FALLBACK(("Bad src pitch 0x%08x\n", accel_state->src_obj[0].pitch)); @@ -88,15 +84,11 @@ R600SetAccelState(ScrnInfoPtr pScrn, memcpy(&accel_state->src_obj[1], src1, sizeof(struct r600_accel_object)); accel_state->src_size[1] = src1->pitch * src1->height * (src1->bpp/8); #if defined(XF86DRM_MODE) - if (info->cs) { - pitch_align = drmmode_get_pitch_align(pScrn, - accel_state->src_obj[1].bpp / 8, - accel_state->src_obj[1].tiling_flags) - 1; - base_align = drmmode_get_base_align(pScrn, - accel_state->src_obj[1].bpp / 8, - accel_state->src_obj[1].tiling_flags) - 1; + if (info->cs && src1->surface) { + accel_state->src_size[1] = src1->surface->bo_size; } #endif + /* bad pitch */ if (accel_state->src_obj[1].pitch & pitch_align) RADEON_FALLBACK(("Bad src pitch 0x%08x\n", accel_state->src_obj[1].pitch)); @@ -113,15 +105,13 @@ R600SetAccelState(ScrnInfoPtr pScrn, memcpy(&accel_state->dst_obj, dst, sizeof(struct r600_accel_object)); accel_state->dst_size = dst->pitch * dst->height * (dst->bpp/8); #if defined(XF86DRM_MODE) - if (info->cs) { - pitch_align = drmmode_get_pitch_align(pScrn, - accel_state->dst_obj.bpp / 8, - accel_state->dst_obj.tiling_flags) - 1; - base_align = drmmode_get_base_align(pScrn, - accel_state->dst_obj.bpp / 8, - accel_state->dst_obj.tiling_flags) - 1; - } + if (info->cs && dst->surface) { + accel_state->dst_size = dst->surface->bo_size; + } else #endif + { + accel_state->dst_obj.tiling_flags = 0; + } if (accel_state->dst_obj.pitch & pitch_align) RADEON_FALLBACK(("Bad dst pitch 0x%08x\n", accel_state->dst_obj.pitch)); @@ -132,6 +122,11 @@ R600SetAccelState(ScrnInfoPtr pScrn, accel_state->dst_size = 0; } +#ifdef XF86DRM_MODE +if (info->cs && CS_FULL(info->cs)) + radeon_cs_flush_indirect(pScrn); +#endif + accel_state->rop = rop; accel_state->planemask = planemask; @@ -170,9 +165,6 @@ R600SetAccelState(ScrnInfoPtr pScrn, return TRUE; } -static void -R600DoneSolid(PixmapPtr pPix); - static Bool R600PrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg) { @@ -195,6 +187,7 @@ R600PrepareSolid(PixmapPtr pPix, int alu dst.offset = 0; dst.bo = radeon_get_pixmap_bo(pPix); dst.tiling_flags = radeon_get_pixmap_tiling(pPix); + dst.surface = radeon_get_pixmap_surface(pPix); } else #endif { @@ -252,6 +245,9 @@ R600PrepareSolid(PixmapPtr pPix, int alu cb_conf.h = accel_state->dst_obj.height; cb_conf.base = accel_state->dst_obj.offset; cb_conf.bo = accel_state->dst_obj.bo; +#ifdef XF86DRM_MODE +cb_conf.surface = accel_state->dst_obj.surface; +#endif if (accel_state->dst_obj.bpp == 8) { cb_conf.format = COLOR_8; @@ -282,7 +278,7 @@ R600PrepareSolid(PixmapPtr pPix, int alu cb_conf.pmask |= 8; /* A */ cb_conf.rop = accel_state->rop; if (accel_state->dst_obj.tiling_flags == 0) - cb_conf.array_mode = 1; +
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Aug 24 22:40:56 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_driver.c Log Message: now that xrender acceleration on R1xx works again there is no reason not to enable it by default To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.9 xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.10 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.9 Sun Mar 20 07:08:58 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Wed Aug 24 22:40:56 2011 @@ -178,7 +178,7 @@ { OPTION_SCALER_WIDTH,"ScalerWidth", OPTV_INTEGER, {0}, FALSE }, #endif #ifdef RENDER -{ OPTION_RENDER_ACCEL, "RenderAccel", OPTV_BOOLEAN, {0}, FALSE }, +{ OPTION_RENDER_ACCEL, "RenderAccel", OPTV_BOOLEAN, {0}, TRUE }, { OPTION_SUBPIXEL_ORDER, "SubPixelOrder",OPTV_ANYSTR, {0}, FALSE }, #endif { OPTION_CLOCK_GATING, "ClockGating", OPTV_BOOLEAN, {0}, FALSE },
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sat Jul 23 08:27:24 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r600_exa.c Log Message: merge xf86-video-ati 6.14.2 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.2 Sun Mar 20 10:40:24 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Sat Jul 23 08:27:24 2011 @@ -53,7 +53,6 @@ { RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; -uint32_t pitch = 0; uint32_t pitch_align = 0x7, base_align = 0xff; #if defined(XF86DRM_MODE) int ret; @@ -64,11 +63,6 @@ accel_state->src_size[0] = src0->pitch * src0->height * (src0->bpp/8); #if defined(XF86DRM_MODE) if (info->cs) { - ret = radeon_bo_get_tiling(accel_state->src_obj[0].bo, - &accel_state->src_obj[0].tiling_flags, - &pitch); - if (ret) - RADEON_FALLBACK(("src0 radeon_bo_get_tiling failed\n")); pitch_align = drmmode_get_pitch_align(pScrn, accel_state->src_obj[0].bpp / 8, accel_state->src_obj[0].tiling_flags) - 1; @@ -95,11 +89,6 @@ accel_state->src_size[1] = src1->pitch * src1->height * (src1->bpp/8); #if defined(XF86DRM_MODE) if (info->cs) { - ret = radeon_bo_get_tiling(accel_state->src_obj[1].bo, - &accel_state->src_obj[1].tiling_flags, - &pitch); - if (ret) - RADEON_FALLBACK(("src1 radeon_bo_get_tiling failed\n")); pitch_align = drmmode_get_pitch_align(pScrn, accel_state->src_obj[1].bpp / 8, accel_state->src_obj[1].tiling_flags) - 1; @@ -125,11 +114,6 @@ accel_state->dst_size = dst->pitch * dst->height * (dst->bpp/8); #if defined(XF86DRM_MODE) if (info->cs) { - ret = radeon_bo_get_tiling(accel_state->dst_obj.bo, - &accel_state->dst_obj.tiling_flags, - &pitch); - if (ret) - RADEON_FALLBACK(("dst radeon_bo_get_tiling failed\n")); pitch_align = drmmode_get_pitch_align(pScrn, accel_state->dst_obj.bpp / 8, accel_state->dst_obj.tiling_flags) - 1; @@ -210,6 +194,7 @@ if (info->cs) { dst.offset = 0; dst.bo = radeon_get_pixmap_bo(pPix); + dst.tiling_flags = radeon_get_pixmap_tiling(pPix); } else #endif { @@ -589,6 +574,8 @@ dst_obj.offset = 0; src_obj.bo = radeon_get_pixmap_bo(pSrc); dst_obj.bo = radeon_get_pixmap_bo(pDst); + dst_obj.tiling_flags = radeon_get_pixmap_tiling(pDst); + src_obj.tiling_flags = radeon_get_pixmap_tiling(pSrc); if (radeon_get_pixmap_bo(pSrc) == radeon_get_pixmap_bo(pDst)) accel_state->same_surface = TRUE; } else @@ -1269,6 +1256,8 @@ dst_obj.offset = 0; src_obj.bo = radeon_get_pixmap_bo(pSrc); dst_obj.bo = radeon_get_pixmap_bo(pDst); + dst_obj.tiling_flags = radeon_get_pixmap_tiling(pDst); + src_obj.tiling_flags = radeon_get_pixmap_tiling(pSrc); } else #endif { @@ -1295,6 +1284,7 @@ if (info->cs) { mask_obj.offset = 0; mask_obj.bo = radeon_get_pixmap_bo(pMask); + mask_obj.tiling_flags = radeon_get_pixmap_tiling(pMask); } else #endif { @@ -1784,7 +1774,7 @@ Bool r; int i; struct r600_accel_object src_obj, dst_obj; -uint32_t tiling_flags = 0, pitch = 0, height, base_align; +uint32_t height, base_align; if (bpp < 8) return FALSE; @@ -1793,14 +1783,10 @@ if (!driver_priv || !driver_priv->bo) return FALSE; -ret = radeon_bo_get_tiling(driver_priv->bo, &tiling_flags, &pitch); -if (ret) - ErrorF("radeon_bo_get_tiling failed\n"); - /* If we know the BO won't be busy, don't bother with a scratch */ copy_dst = driver_priv->bo; copy_pitch = pDst->devKind; -if (!(tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { +if (!(driver_priv->tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { if (!radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) { flush = FALSE; if (!radeon_bo_is_busy(driver_priv->bo, &dst_domain)) @@ -1824,6 +1810,7 @@ src_obj.bpp = bpp; src_obj.domain = RADEON_GEM_DOMAIN_GTT; src_obj.bo = scratch; +src_obj.tiling_flags = 0; dst_obj.pitch = dst_pitch_hw; dst_obj.width = pDst->drawable.width; @@ -1832,6 +1819,7 @@ dst_obj.bpp = bpp; dst_obj.domain = RADEON_GEM_DOMAIN_VRAM; dst_obj.bo = radeon_get_pixmap_bo(pDst); +dst_obj.tiling_flags = radeon_get_pixmap_tiling(pDst); if (!R600SetAccelState(pScrn, &src_obj, @@ -1901,7 +1889,7 @@ Bool flush = FALSE; Bool r; struct r600_accel_object src_obj, dst_obj; -uin
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sat Jul 23 08:19:19 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_exa_funcs.c Log Message: merge xf86-video-ati 6.14.2. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.6 xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.7 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.6 Mon Feb 21 00:58:49 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c Sat Jul 23 08:19:19 2011 @@ -474,7 +474,6 @@ Bool flush = TRUE; Bool r; int i; -uint32_t tiling_flags = 0, pitch = 0; if (bpp < 8) return FALSE; @@ -483,10 +482,6 @@ if (!driver_priv || !driver_priv->bo) return FALSE; -ret = radeon_bo_get_tiling(driver_priv->bo, &tiling_flags, &pitch); -if (ret) - ErrorF("radeon_bo_get_tiling failed\n"); - #if X_BYTE_ORDER == X_BIG_ENDIAN switch (bpp) { case 32: @@ -501,7 +496,7 @@ /* If we know the BO won't be busy, don't bother with a scratch */ copy_dst = driver_priv->bo; copy_pitch = pDst->devKind; -if (!(tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { +if (!(driver_priv->tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { if (!radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) { flush = FALSE; if (!radeon_bo_is_busy(driver_priv->bo, &dst_domain)) @@ -580,7 +575,6 @@ int ret; Bool flush = FALSE; Bool r; -uint32_t tiling_flags = 0, pitch = 0; if (bpp < 8) return FALSE; @@ -589,10 +583,6 @@ if (!driver_priv || !driver_priv->bo) return FALSE; -ret = radeon_bo_get_tiling(driver_priv->bo, &tiling_flags, &pitch); -if (ret) - ErrorF("radeon_bo_get_tiling failed\n"); - #if X_BYTE_ORDER == X_BIG_ENDIAN switch (bpp) { case 32: @@ -607,7 +597,7 @@ /* If we know the BO won't end up in VRAM anyway, don't bother with a scratch */ copy_src = driver_priv->bo; copy_pitch = pSrc->devKind; -if (!(tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { +if (!(driver_priv->tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO))) { if (radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) { src_domain = radeon_bo_get_src_domain(driver_priv->bo); if ((src_domain & (RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM)) ==
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Jul 6 03:59:55 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_accelfuncs.c Log Message: xrender acceleration with XAA works again on r1xx and didn't seem to be broken on r2xx so don't disable it anymore To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c:1.1.1.4 xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c:1.1.1.4 Sat Jul 17 06:31:48 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_accelfuncs.c Wed Jul 6 03:59:54 2011 @@ -1332,7 +1332,6 @@ #endif #ifdef RENDER -info->RenderAccel = FALSE; if (info->RenderAccel && info->xaaReq.minorversion >= 2) { a->CPUToScreenAlphaTextureFlags = XAA_RENDER_POWER_OF_2_TILE_ONLY;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: macallan Date: Wed Jul 6 03:43:41 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_render.c Log Message: make Xrender acceleration work again on R1xx tested on a Sun XVR-100 To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c:1.1.1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c:1.1.1.3 Sun May 23 06:09:25 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_render.c Wed Jul 6 03:43:41 2011 @@ -409,6 +409,9 @@ dst_pitch = RADEON_ALIGN(width * tex_bytepp, 64); size = dst_pitch * height; +info->accel_state->texW[0] = width; +info->accel_state->texH[0] = height; + if ((flags & XAA_RENDER_REPEAT) && (height != 1) && (RADEON_ALIGN(width * tex_bytepp, 32) != dst_pitch)) return FALSE; @@ -432,7 +435,7 @@ txformat |= ATILog2(width) << RADEON_TXFORMAT_WIDTH_SHIFT; txformat |= ATILog2(height) << RADEON_TXFORMAT_HEIGHT_SHIFT; } else { - tex_size = (height << 16) | width; + tex_size = ((height - 1) << 16) | (width - 1); txformat |= RADEON_TXFORMAT_NON_POWER2; } @@ -462,7 +465,6 @@ if (info->accel_state->accel->NeedToSync) info->accel_state->accel->Sync(pScrn); - while (height--) { memcpy(dst, src, width * tex_bytepp); src += src_pitch; @@ -633,10 +635,10 @@ r = width + l; b = height + t; -fl = srcx; -fr = srcx + width; -ft = srcy; -fb = srcy + height; +fl = (float)srcx / info->accel_state->texW[0]; +fr = (float)(srcx + width) / info->accel_state->texW[0]; +ft = (float)srcy / info->accel_state->texH[0]; +fb = (float)(srcy + height) / info->accel_state->texH[0]; #ifdef ACCEL_CP BEGIN_RING(25);
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sun Mar 20 10:40:24 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r600_exa.c radeon_textured_video.c Log Message: avoid drmmode_get_height_align() in non XF86MODE (KMS) code. fixes this on r6xx/r7xx. (other cards wouldn't have called into the path that failed.) To generate a diff of this commit: cvs rdiff -u -r1.1.1.7 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c cvs rdiff -u -r1.1.1.6 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.1.1.7 xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c:1.1.1.7 Sun Mar 20 07:08:03 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/r600_exa.c Sun Mar 20 10:40:24 2011 @@ -621,8 +621,12 @@ return FALSE; if (accel_state->same_surface == TRUE) { +#if defined(XF86DRM_MODE) unsigned height = RADEON_ALIGN(pDst->drawable.height, drmmode_get_height_align(pScrn, accel_state->dst_obj.tiling_flags)); +#else + unsigned height = pDst->drawable.height; +#endif unsigned long size = height * accel_state->dst_obj.pitch * pDst->drawable.bitsPerPixel/8; #if defined(XF86DRM_MODE) Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c:1.1.1.6 xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c:1.1.1.6 Sun Mar 20 07:08:03 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_textured_video.c Sun Mar 20 10:40:24 2011 @@ -248,7 +248,11 @@ BoxRec dstBox; int dst_width = width, dst_height = height; int aligned_height; +#ifdef XF86DRM_MODE int h_align = drmmode_get_height_align(pScrn, 0); +#else +int h_align = 1; +#endif /* make the compiler happy */ s2offset = s3offset = srcPitch2 = 0;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sun Mar 20 07:08:58 UTC 2011 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r6xx_accel.c radeon_driver.c Log Message: merge xf86-video-ati 6.14.1 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c cvs rdiff -u -r1.8 -r1.9 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.4 xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.5 --- xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.4 Mon Feb 21 00:58:48 2011 +++ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c Sun Mar 20 07:08:58 2011 @@ -41,6 +41,25 @@ #include "radeon_vbo.h" #include "radeon_exa_shared.h" +static const uint32_t R600_ROP[16] = { +RADEON_ROP3_ZERO, /* GXclear*/ +RADEON_ROP3_DSa, /* Gxand */ +RADEON_ROP3_SDna, /* GXandReverse */ +RADEON_ROP3_S,/* GXcopy */ +RADEON_ROP3_DSna, /* GXandInverted */ +RADEON_ROP3_D,/* GXnoop */ +RADEON_ROP3_DSx, /* GXxor */ +RADEON_ROP3_DSo, /* GXor */ +RADEON_ROP3_DSon, /* GXnor */ +RADEON_ROP3_DSxn, /* GXequiv*/ +RADEON_ROP3_Dn, /* GXinvert */ +RADEON_ROP3_SDno, /* GXorReverse*/ +RADEON_ROP3_Sn, /* GXcopyInverted */ +RADEON_ROP3_DSno, /* GXorInverted */ +RADEON_ROP3_DSan, /* GXnand */ +RADEON_ROP3_ONE, /* GXset */ +}; + /* we try and batch operations together under KMS - but it doesn't work yet without misrendering */ #define KMS_MULTI_OP 1 @@ -203,7 +222,7 @@ void r600_set_render_target(ScrnInfoPtr pScrn, drmBufPtr ib, cb_config_t *cb_conf, uint32_t domain) { -uint32_t cb_color_info; +uint32_t cb_color_info, cb_color_control; int pitch, slice, h; RADEONInfoPtr info = RADEONPTR(pScrn); @@ -276,6 +295,21 @@ RELOC_BATCH(cb_conf->bo, 0, domain); END_BATCH(); +BEGIN_BATCH(9); +EREG(ib, CB_TARGET_MASK, (cb_conf->pmask << TARGET0_ENABLE_shift)); +cb_color_control = R600_ROP[cb_conf->rop] | + (cb_conf->blend_enable << TARGET_BLEND_ENABLE_shift); +if (info->ChipFamily == CHIP_FAMILY_R600) { + /* no per-MRT blend on R600 */ + EREG(ib, CB_COLOR_CONTROL,cb_color_control); + EREG(ib, CB_BLEND_CONTROL,cb_conf->blendcntl); +} else { + if (cb_conf->blend_enable) + cb_color_control |= PER_MRT_BLEND_bit; + EREG(ib, CB_COLOR_CONTROL,cb_color_control); + EREG(ib, CB_BLEND0_CONTROL, cb_conf->blendcntl); +} +END_BATCH(); } static void @@ -385,6 +419,21 @@ } void +r600_set_spi(ScrnInfoPtr pScrn, drmBufPtr ib, int vs_export_count, int num_interp) +{ +RADEONInfoPtr info = RADEONPTR(pScrn); + +BEGIN_BATCH(8); +/* Interpolator setup */ +EREG(ib, SPI_VS_OUT_CONFIG, (vs_export_count << VS_EXPORT_COUNT_shift)); +PACK0(ib, SPI_PS_IN_CONTROL_0, 3); +E32(ib, (num_interp << NUM_INTERP_shift)); +E32(ib, 0); +E32(ib, 0); +END_BATCH(); +} + +void r600_fs_setup(ScrnInfoPtr pScrn, drmBufPtr ib, shader_config_t *fs_conf, uint32_t domain) { RADEONInfoPtr info = RADEONPTR(pScrn); @@ -1002,7 +1051,7 @@ for (i = 0; i < PA_SC_VPORT_SCISSOR_0_TL_num; i++) r600_set_vport_scissor(pScrn, ib, i, 0, 0, 8192, 8192); -BEGIN_BATCH(42); +BEGIN_BATCH(49); PACK0(ib, PA_SC_MPASS_PS_CNTL, 2); E32(ib, 0); if (info->ChipFamily < CHIP_FAMILY_RV770) @@ -1046,6 +1095,19 @@ else EREG(ib, R7xx_SPI_THREAD_GROUPING,(1 << PS_GROUPING_shift)); +/* default Interpolator setup */ +EREG(ib, SPI_VS_OUT_ID_0, ((0 << SEMANTIC_0_shift) | + (1 << SEMANTIC_1_shift))); +PACK0(ib, SPI_PS_INPUT_CNTL_0 + (0 << 2), 2); +/* SPI_PS_INPUT_CNTL_0 maps to GPR[0] - load with semantic id 0 */ +E32(ib, ((0<< SEMANTIC_shift) | + (0x01 << DEFAULT_VAL_shift) | + SEL_CENTROID_bit)); +/* SPI_PS_INPUT_CNTL_1 maps to GPR[1] - load with semantic id 1 */ +E32(ib, ((1<< SEMANTIC_shift) | + (0x01 << DEFAULT_VAL_shift) | + SEL_CENTROID_bit)); + PACK0(ib, SPI_INPUT_Z, 4); E32(ib, 0); // SPI_INPUT_Z E32(ib, 0); // SPI_FOG_CNTL @@ -1122,7 +1184,11 @@ BEGIN_BATCH(8 + count); EREG(ib, VGT_PRIMITIVE_TYPE, draw_conf->prim_type); PACK3(ib, IT_INDEX_TYPE, 1); +#if X_BYTE_ORDER == X_BIG_ENDIAN +E32(ib, IT_INDEX_TYPE_SWAP_MODE(ENDIAN_8IN32) | draw_conf->index_type); +#else E32(ib, draw_conf->index_type); +#endif PACK3(ib, IT_NUM_INSTANCES, 1); E32(ib, draw_conf->num_instances); @@ -1152,7 +1218,11 @@ BEGIN_BATCH(10); EREG(ib, VGT_PRIMITIVE_TYPE, draw_conf->prim_type); PACK3(ib, IT_INDEX_TYPE,
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sat Nov 20 10:02:15 UTC 2010 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: r6xx_accel.c radeon_cursor.c radeon_exa_funcs.c xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Removed Files: xsrc/external/mit/xf86-video-ati/dist/src: local_xf86Rename.h xsrc/external/mit/xf86-video-ati/dist/src/modes: xf86Crtc.c xf86Crtc.h xf86Cursors.c xf86DiDGA.c xf86EdidModes.c xf86Modes.c xf86Modes.h xf86RandR12.c xf86RandR12.h xf86Rename.h xf86Rotate.c xf86cvt.c xsrc/external/mit/xf86-video-ati/dist/src/parser: xf86Optrec.h xf86Parser.h Log Message: merge xf86-video-ati 6.12.2. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/local_xf86Rename.h cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c cvs rdiff -u -r1.2 -r1.3 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c cvs rdiff -u -r1.1.1.5 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Crtc.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Cursors.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86EdidModes.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Modes.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86RandR12.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Rotate.c cvs rdiff -u -r1.1.1.4 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Crtc.h \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Modes.h cvs rdiff -u -r1.1.1.3 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86DiDGA.c \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86RandR12.h cvs rdiff -u -r1.1.1.2 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86Rename.h \ xsrc/external/mit/xf86-video-ati/dist/src/modes/xf86cvt.c cvs rdiff -u -r1.1.1.3 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/parser/xf86Optrec.h cvs rdiff -u -r1.1.1.4 -r0 \ xsrc/external/mit/xf86-video-ati/dist/src/parser/xf86Parser.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.2 xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.3 --- xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c:1.2 Sat Jul 17 07:55:34 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/r6xx_accel.c Sat Nov 20 10:02:14 2010 @@ -39,6 +39,7 @@ #include "radeon_drm.h" #include "radeon_vbo.h" +#include "radeon_exa_shared.h" /* we try and batch operations together under KMS - but it doesn't work yet without misrendering */ @@ -85,34 +86,9 @@ void R600IBDiscard(ScrnInfoPtr pScrn, drmBufPtr ib) { #if defined(XF86DRM_MODE) -int ret; RADEONInfoPtr info = RADEONPTR(pScrn); if (info->cs) { - if (info->accel_state->ib_reset_op) { - /* if we have data just reset the CS and ignore the operation */ - info->cs->cdw = info->accel_state->ib_reset_op; - info->accel_state->ib_reset_op = 0; - return; - } - if (info->accel_state->vb_ptr) { - info->accel_state->vb_ptr = NULL; - } - - info->accel_state->vb_offset = 0; - info->accel_state->vb_start_op = -1; - - if (CS_FULL(info->cs)) { - radeon_cs_flush_indirect(pScrn); - return; - } - radeon_cs_erase(info->cs); - ret = radeon_cs_space_check(info->cs); - if (ret) - ErrorF("space check failed in flush\n"); - if (info->dri2.enabled) { - info->accel_state->XInited3D = FALSE; - info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; - } +radeon_ib_discard(pScrn); } #endif if (!ib) return; @@ -282,19 +258,24 @@ EREG(ib, (CB_COLOR0_FRAG + (4 * cb_conf->id)), (0 >> 8)); // FMASK per-tile data base/256 RELOC_BATCH(cb_conf->bo, 0, domain); END_BATCH(); -BEGIN_BATCH(12); +BEGIN_BATCH(9); // pitch only for ARRAY_LINEAR_GENERAL, other tiling modes require addrlib EREG(ib, (CB_COLOR0_SIZE + (4 * cb_conf->id)), ((pitch << PITCH_TILE_MAX_shift) | (slice << SLICE_TILE_MAX_shift))); EREG(ib, (CB_COLOR0_VIEW + (4 * cb_conf->id)), ((0<< SLICE_START_shift) | (0<< SLICE_MAX_shift))); -EREG(ib, (CB_COLOR0_INFO + (4 * cb_conf->id)), cb_color_info); EREG(ib, (CB_COLOR0_MASK + (4 * cb_conf->id)), ((0<< CMASK_BLOCK_MAX_shift) | (0<< FMASK_TILE_MAX_shift))); END_BATCH(); + +BEGIN_BATCH(3 + 2); +EREG(ib, (CB_COLOR0_INFO + (4 * cb_conf->id)), cb_color_info); +RELOC_BATCH(cb_conf->bo, 0, domain); +END_BATCH(); + } -void +static void cp_set_surface_sync(ScrnInfoPtr pScrn, drmB
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios
Module Name:xsrc Committed By: mrg Date: Tue Aug 10 02:57:44 UTC 2010 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios: CD_Operations.c Log Message: pull across a patch from git 11005146d6defa876a988daad587ae558f04ecbb: From: Alex Deucher Date: Tue, 10 Aug 2010 02:18:53 + Subject: atom: upstream parser update fixes digital output problems on evergreen asics To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.1.1.3 xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c:1.1.1.3 Sun May 23 06:09:26 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/AtomBios/CD_Operations.c Tue Aug 10 02:57:44 2010 @@ -505,13 +505,16 @@ VOID ProcessMask(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { +UINT8 src; pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); +src = pParserTempData->CD_Mask.SrcAlignment; pParserTempData->SourceData32=GetParametersDirect(pParserTempData); pParserTempData->Index=GetSource[pParserTempData->ParametersType.Source](pParserTempData); pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]; pParserTempData->SourceData32 |= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]); pParserTempData->DestData32 &= pParserTempData->SourceData32; +pParserTempData->Index>>= SourceAlignmentShift[src]; pParserTempData->Index&= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment]; pParserTempData->Index<<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]; pParserTempData->DestData32 |= pParserTempData->Index;
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sat Jul 17 06:34:14 UTC 2010 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: legacy_crtc.c radeon_cursor.c radeon_dri.c radeon_driver.c radeon_exa_funcs.c Log Message: merge xf86-video-ati 6.13.1 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c cvs rdiff -u -r1.6 -r1.7 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c cvs rdiff -u -r1.5 -r1.6 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.3 xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.4 --- xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c:1.3 Sun May 23 06:10:16 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/legacy_crtc.c Sat Jul 17 06:34:13 2010 @@ -1185,10 +1185,12 @@ /* Define PLL registers for requested video mode */ static void -RADEONInitPLLRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save, +RADEONInitPLLRegisters(xf86CrtcPtr crtc, RADEONSavePtr save, RADEONPLLPtr pll, DisplayModePtr mode, int flags) { +RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +ScrnInfoPtr pScrn = crtc->scrn; RADEONInfoPtr info = RADEONPTR(pScrn); uint32_t feedback_div = 0; uint32_t frac_fb_div = 0; @@ -1224,7 +1226,13 @@ return; } -RADEONComputePLL(pScrn, pll, mode->Clock, &freq, &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); +if (xf86ReturnOptValBool(info->Options, OPTION_NEW_PLL, FALSE)) + radeon_crtc->pll_algo = RADEON_PLL_NEW; +else + radeon_crtc->pll_algo = RADEON_PLL_OLD; + +RADEONComputePLL(crtc, pll, mode->Clock, &freq, + &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); for (post_div = &post_divs[0]; post_div->divider; ++post_div) { if (post_div->divider == post_divider) @@ -1268,10 +1276,12 @@ /* Define PLL2 registers for requested video mode */ static void -RADEONInitPLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save, +RADEONInitPLL2Registers(xf86CrtcPtr crtc, RADEONSavePtr save, RADEONPLLPtr pll, DisplayModePtr mode, int flags) { +RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; +ScrnInfoPtr pScrn = crtc->scrn; RADEONInfoPtr info = RADEONPTR(pScrn); uint32_t feedback_div = 0; uint32_t frac_fb_div = 0; @@ -1305,7 +1315,13 @@ return; } -RADEONComputePLL(pScrn, pll, mode->Clock, &freq, &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); +if (xf86ReturnOptValBool(info->Options, OPTION_NEW_PLL, FALSE)) + radeon_crtc->pll_algo = RADEON_PLL_NEW; +else + radeon_crtc->pll_algo = RADEON_PLL_OLD; + +RADEONComputePLL(crtc, pll, mode->Clock, &freq, + &feedback_div, &frac_fb_div, &reference_div, &post_divider, flags); for (post_div = &post_divs[0]; post_div->divider; ++post_div) { if (post_div->divider == post_divider) @@ -1797,7 +1813,7 @@ dot_clock = adjusted_mode->Clock / 1000.0; if (dot_clock) { ErrorF("init pll1\n"); - RADEONInitPLLRegisters(pScrn, info->ModeReg, &info->pll, adjusted_mode, pll_flags); + RADEONInitPLLRegisters(crtc, info->ModeReg, &info->pll, adjusted_mode, pll_flags); } else { info->ModeReg->ppll_ref_div = info->SavedReg->ppll_ref_div; info->ModeReg->ppll_div_3 = info->SavedReg->ppll_div_3; @@ -1811,7 +1827,7 @@ dot_clock = adjusted_mode->Clock / 1000.0; if (dot_clock) { ErrorF("init pll2\n"); - RADEONInitPLL2Registers(pScrn, info->ModeReg, &info->pll, adjusted_mode, pll_flags); + RADEONInitPLL2Registers(crtc, info->ModeReg, &info->pll, adjusted_mode, pll_flags); } break; } Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.4 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.3 Sun May 23 06:10:16 2010 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c Sat Jul 17 06:34:13 2010 @@ -343,7 +343,7 @@ ScrnInfoPtr pScrn = crtc->scrn; RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; RADEONInfoPtr info = RADEONPTR(pScrn); -uint32_t *pixels = (uint32_t *)(pointer)(info->FB + radeon_crtc->cursor_offset); +uint32_t *pixels = (uint32_t *)(pointer)(info->FB + pScrn->fbOffset + radeon_crtc->cursor_offset); intpixel, i; CURSOR_SWAPPING_DECL_MMIO @@ -386,7 +386,7 @@ RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; RADEONInfo
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Mon Nov 9 00:54:21 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_dri.c radeon_driver.c Log Message: merge xf86-video-ati 6.12.4 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.4 xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.5 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.4 Wed Jun 10 09:21:30 2009 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Mon Nov 9 00:54:21 2009 @@ -747,6 +747,8 @@ { PCI_VENDOR_INTEL,0x2570, PCI_VENDOR_ATI,0x4a4e, PCI_VENDOR_DELL,0x5106, 4 }, /* Intel 82865G/PE/P DRAM Controller/Host-Hub / RV280 [Radeon 9200 SE] Needs AGPMode 4 (lp #300304) */ { PCI_VENDOR_INTEL,0x2570, PCI_VENDOR_ATI,0x5964, 0x148c,0x2073, 4 }, +/* Intel 82855PM host bridge / Mobility M7 LW Needs AGPMode 4 (lp: #353996) */ +{ PCI_VENDOR_INTEL,0x3340, PCI_VENDOR_ATI,0x4c57, PCI_VENDOR_IBM,0x0530,4 }, /* Intel 82855PM Processor to I/O Controller / Mobility M6 LY Needs AGPMode 1 (deb #467235) */ { PCI_VENDOR_INTEL,0x3340, PCI_VENDOR_ATI,0x4c59, PCI_VENDOR_IBM,0x052f, 1 }, /* Intel 82855PM host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (lp #195051) */ @@ -769,6 +771,16 @@ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, PCI_VENDOR_ASUS,0x1942, 1 }, /* Intel 82852/82855 host bridge / Mobility 9600/9700 Needs AGPMode 1 (deb #510208) */ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x10cf,0x127f, 1 }, +/* Intel 82443BX/ZX/DX Host bridge / RV280 [Radeon 9200] Needs AGPMode 1 (lp #370205) */ +{ PCI_VENDOR_INTEL,0x7190, PCI_VENDOR_ATI,0x5961, 0x174b,0x7c13, 1 }, + +/* Ali Corp M1671 Super P4 Northbridge / Mobility M6 LY Needs AGPMode 1 (lp #146303)*/ +{ 0x10b9,0x1671, PCI_VENDOR_ATI,0x4c59, 0x103c,0x0027, 1 }, + +/* SiS Host Bridge 655 / R420 [Radeon X800] Needs AGPMode 4 (lp #371296) */ +{ 0x1039,0x0655,PCI_VENDOR_ATI,0x4a4b, PCI_VENDOR_ATI,0x4422, 4 }, +/* SiS Host Bridge / RV280 Needs AGPMode 4 */ +{ 0x1039,0x0741,PCI_VENDOR_ATI,0x5964, 0x148c,0x2073, 4 }, /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (lp #133192) */ { 0x1849,0x3189,PCI_VENDOR_ATI,0x5960, 0x1787,0x5960, 4 }, @@ -789,6 +801,10 @@ { PCI_VENDOR_VIA,0x3189,PCI_VENDOR_ATI,0x5960, 0x1462,0x0380, 4 }, /* VIA VT8377 Host Bridge / RV280 Needs AGPMode 4 (ati ML) */ { PCI_VENDOR_VIA,0x3189,PCI_VENDOR_ATI,0x5964, 0x148c,0x2073, 4 }, +/* VIA VT8377 Host Bridge / RV280 Needs AGPMode 4 (fdo #12544) */ +{ PCI_VENDOR_VIA,0x3189,PCI_VENDOR_ATI,0x5964, PCI_VENDOR_ASUS,0xc008, 4 }, +/* VIA VT8377 Host Bridge / RV280 Needs AGPMode 4 (deb #545040) */ +{ PCI_VENDOR_VIA,0x3189,PCI_VENDOR_ATI,0x5960, PCI_VENDOR_ASUS,0x004c, 4 }, /* ATI Host Bridge / RV280 [M9+] Needs AGPMode 1 (phoronix forum) */ { PCI_VENDOR_ATI,0xcbb2,PCI_VENDOR_ATI,0x5c61, PCI_VENDOR_SONY,0x8175, 1 }, @@ -796,6 +812,9 @@ /* HP Host Bridge / R300 [FireGL X1] Needs AGPMode 2 (fdo #7770) */ { PCI_VENDOR_HP,0x122e,PCI_VENDOR_ATI,0x4e47, PCI_VENDOR_ATI,0x0152,2 }, +/* nVidia Host Bridge / R420 [X800 Pro] Needs AGPMode 4 (fdo #22726) */ +{ 0x10de,0x00e1, PCI_VENDOR_ATI,0x4a49, PCI_VENDOR_ATI,0x0002,4 }, + { 0, 0, 0, 0, 0, 0, 0 }, }; @@ -1373,7 +1392,7 @@ if (!xf86LoaderCheckSymbol("drmAvailable"))return FALSE; if (!xf86LoaderCheckSymbol("DRIQueryVersion")) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "[dri] RADEONDRIGetVersion failed (libdri.a too old)\n" + "[dri] RADEONDRIGetVersion failed (libdri too old)\n" "[dri] Disabling DRI.\n"); return FALSE; } @@ -1397,7 +1416,7 @@ info->dri->pLibDRMVersion = drmGetLibVersion(info->dri->drmFD); if (info->dri->pLibDRMVersion == NULL) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "[dri] RADEONDRIGetVersion failed because libDRM is really " + "[dri] RADEONDRIGetVersion failed because libdrm is really " "way to old to even get a version number out of it.\n" "[dri] Disabling DRI.\n"); return FALSE; @@ -1408,7 +1427,7 @@ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[dri] RADEONDRIGetVersion failed because of a " "version mismatch.\n" - "[dri] libdrm.a module version is %d.%d.%d but " + "[dri] libdrm module version is %d.%d.%d but " "version 1.2.x is n
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Fri Jun 12 05:05:48 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_exa_funcs.c Log Message: pkgsrc patch-ab: Fix coordinate limits off-by-one error causing hardware freezes: http://bugs.freedesktop.org/show_bug.cgi?id=21598 To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.1.1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c:1.1.1.2 Wed Jun 10 09:00:45 2009 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_exa_funcs.c Fri Jun 12 05:05:48 2009 @@ -532,11 +532,11 @@ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting EXA maxPitchBytes\n"); info->accel_state->exa->maxPitchBytes = 16320; -info->accel_state->exa->maxX = 8192; +info->accel_state->exa->maxX = 8191; #else info->accel_state->exa->maxX = 16320 / 4; #endif -info->accel_state->exa->maxY = 8192; +info->accel_state->exa->maxY = 8191; if (xf86ReturnOptValBool(info->Options, OPTION_EXA_VSYNC, FALSE)) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA VSync enabled\n");
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Fri Jun 12 05:05:28 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_cursor.c Log Message: pkgsrc patch-aa: Accumulated cursor fixes from 6.12 branch. Should fix cursor corruption issues: http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=0ea75453 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=f2aaa708 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=998fd244 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=666b0ff9 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=fbb04716 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=cb8081a8 http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=b6cd47ec http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?h=6.12-branch&id=f2c0fa5e To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.1.1.2 xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c:1.1.1.2 Wed Jun 10 09:00:45 2009 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_cursor.c Fri Jun 12 05:05:28 2009 @@ -73,14 +73,17 @@ #define CURSOR_SWAPPING_DECL_MMIO unsigned char *RADEONMMIO = info->MMIO; #define CURSOR_SWAPPING_START() \ do { \ + if (info->ChipFamily < CHIP_FAMILY_R600) \ OUTREG(RADEON_SURFACE_CNTL, \ (info->ModeReg->surface_cntl | \ RADEON_NONSURF_AP0_SWP_32BPP | RADEON_NONSURF_AP1_SWP_32BPP) & \ ~(RADEON_NONSURF_AP0_SWP_16BPP | RADEON_NONSURF_AP1_SWP_16BPP)); \ } while (0) -#define CURSOR_SWAPPING_END() (OUTREG(RADEON_SURFACE_CNTL, \ - info->ModeReg->surface_cntl)) - +#define CURSOR_SWAPPING_END() \ + do { \ + if (info->ChipFamily < CHIP_FAMILY_R600) \ + OUTREG(RADEON_SURFACE_CNTL, info->ModeReg->surface_cntl); \ + } while (0) #else #define CURSOR_SWAPPING_DECL_MMIO @@ -97,13 +100,14 @@ RADEONInfoPtr info = RADEONPTR(crtc->scrn); unsigned char *RADEONMMIO = info->MMIO; -OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset, 0); +/* always use the same cursor mode even if the cursor is disabled, + * otherwise you may end up with cursor curruption bands + */ +OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset, (AVIVO_D1CURSOR_MODE_24BPP << AVIVO_D1CURSOR_MODE_SHIFT)); if (enable) { OUTREG(AVIVO_D1CUR_SURFACE_ADDRESS + radeon_crtc->crtc_offset, info->fbLocation + radeon_crtc->cursor_offset + pScrn->fbOffset); - OUTREG(AVIVO_D1CUR_SIZE + radeon_crtc->crtc_offset, - ((CURSOR_WIDTH - 1) << 16) | (CURSOR_HEIGHT - 1)); OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset, AVIVO_D1CURSOR_EN | (AVIVO_D1CURSOR_MODE_24BPP << AVIVO_D1CURSOR_MODE_SHIFT)); } @@ -138,9 +142,6 @@ if (IS_AVIVO_VARIANT) { avivo_lock_cursor(crtc, TRUE); - OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset, - INREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset) - | AVIVO_D1CURSOR_EN); avivo_setup_cursor(crtc, TRUE); avivo_lock_cursor(crtc, FALSE); } else { @@ -171,9 +172,6 @@ if (IS_AVIVO_VARIANT) { avivo_lock_cursor(crtc, TRUE); - OUTREG(AVIVO_D1CUR_CONTROL+ radeon_crtc->crtc_offset, - INREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset) - & ~(AVIVO_D1CURSOR_EN)); avivo_setup_cursor(crtc, FALSE); avivo_lock_cursor(crtc, FALSE); } else { @@ -196,6 +194,7 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y) { ScrnInfoPtr pScrn = crtc->scrn; +RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; int crtc_id = radeon_crtc->crtc_id; RADEONInfoPtr info = RADEONPTR(pScrn); @@ -210,15 +209,38 @@ if (yorigin >= CURSOR_HEIGHT) yorigin = CURSOR_HEIGHT - 1; if (IS_AVIVO_VARIANT) { + int w = CURSOR_WIDTH; + /* avivo cursor spans the full fb width */ if (crtc->rotatedData == NULL) { x += crtc->x; y += crtc->y; } + + if (pRADEONEnt->Controller[0]->enabled && + pRADEONEnt->Controller[1]->enabled) { + int cursor_end, frame_end; + + cursor_end = x - xorigin + w; + frame_end = crtc->x + mode->CrtcHDisplay; + + if (cursor_end >= frame_end) { + w = w - (cursor_end - frame_end); + if (!(frame_end & 0x7f)) + w--; + } else { + if (!(cursor_end & 0x7f)) + w--; + } + if (w <= 0) + w = 1; + } + avivo_lock_cursor(crtc, TRUE); OUTREG(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offs
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Wed Jun 10 09:21:30 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_dri.c Log Message: fix merge errors To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.3 xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.4 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.3 Wed Jun 10 09:07:50 2009 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Wed Jun 10 09:21:30 2009 @@ -1084,7 +1084,7 @@ } xf86DrvMsg(pScreen->myNum, X_INFO, "[pci] %d kB allocated with handle 0x%08lx\n", - info->gartSize*1024, info->pciMemHandle); + info->dri->gartSize*1024, info->dri->pciMemHandle); RADEONDRIInitGARTValues(info); @@ -1097,7 +1097,7 @@ xf86DrvMsg(pScreen->myNum, X_INFO, "[pci] ring handle = 0x%08lx, size = 0x%08lx\n", info->dri->ringHandle, info->dri->ringMapSize); -if ((ret = drmMap(info->drmFD, info->dri->ringHandle, info->dri->ringMapSize, +if ((ret = drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize, &info->dri->ring)) < 0) { xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring: ret %d\n", ret); return FALSE; @@ -1117,7 +1117,7 @@ } xf86DrvMsg(pScreen->myNum, X_INFO, "[pci] ring read ptr handle = 0x%08lx\n", - info->ringReadPtrHandle); + info->dri->ringReadPtrHandle); if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize, &info->dri->ringReadPtr) < 0) { @@ -1140,7 +1140,7 @@ } xf86DrvMsg(pScreen->myNum, X_INFO, "[pci] vertex/indirect buffers handle = 0x%08lx\n", - info->bufHandle); + info->dri->bufHandle); if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize, &info->dri->buf) < 0) {
CVS commit: xsrc/external/mit/xf86-video-ati/dist/src
Module Name:xsrc Committed By: mrg Date: Sun Mar 29 16:56:31 UTC 2009 Modified Files: xsrc/external/mit/xf86-video-ati/dist/src: radeon_dri.c radeon_driver.c Log Message: use %lx instead of %x for a few varaiables that may be 64 bit. also match plain old PCI cards. with this, an older PCI radeo 9250 now works with drm. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c \ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.1.1.1 xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c:1.1.1.1 Sat Aug 2 05:10:33 2008 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_dri.c Sun Mar 29 16:56:31 2009 @@ -40,6 +40,8 @@ #include #include +#include +#include /* Driver data structures */ #include "radeon.h" @@ -973,7 +975,7 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] %d kB allocated with handle 0x%08x\n", + "[pci] %d kB allocated with handle 0x%08lx\n", info->gartSize*1024, info->pciMemHandle); RADEONDRIInitGARTValues(info); @@ -985,11 +987,11 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] ring handle = 0x%08x\n", info->ringHandle); + "[pci] ring handle = 0x%08lx, size = 0x%08lx\n", info->ringHandle, info->ringMapSize); -if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize, - &info->ring) < 0) { - xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n"); +if ((ret = drmMap(info->drmFD, info->ringHandle, info->ringMapSize, + &info->ring)) < 0) { + xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring: ret %d\n", ret); return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, @@ -1006,7 +1008,7 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] ring read ptr handle = 0x%08x\n", + "[pci] ring read ptr handle = 0x%08lx\n", info->ringReadPtrHandle); if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize, @@ -1029,7 +1031,7 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] vertex/indirect buffers handle = 0x%08x\n", + "[pci] vertex/indirect buffers handle = 0x%08lx\n", info->bufHandle); if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize, @@ -1052,7 +1054,7 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[pci] GART texture map handle = 0x%08x\n", + "[pci] GART texture map handle = 0x%08lx\n", info->gartTexHandle); if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize, @@ -1080,7 +1082,7 @@ return FALSE; } xf86DrvMsg(pScreen->myNum, X_INFO, - "[drm] register handle = 0x%08x\n", info->registerHandle); + "[drm] register handle = 0x%08lx\n", info->registerHandle); return TRUE; } Index: xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c diff -u xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.1.1.1 xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.2 --- xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c:1.1.1.1 Sat Aug 2 05:10:41 2008 +++ xsrc/external/mit/xf86-video-ati/dist/src/radeon_driver.c Sun Mar 29 16:56:31 2009 @@ -3494,7 +3494,8 @@ /* DRI finalisation */ #ifdef XF86DRI -if (info->directRenderingEnabled && info->cardType==CARD_PCIE && +if (info->directRenderingEnabled && + (info->cardType==CARD_PCIE || info->cardType==CARD_PCI) && info->pKernelDRMVersion->version_minor >= 19) { if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->pciGartOffset) < 0)