Lines Matching refs:pTseng
101 tseng_terminate_acl(TsengPtr pTseng)
119 tseng_recover_timeout(TsengPtr pTseng)
121 if (pTseng->ChipType == ET4000) {
123 MMIO_OUT32(pTseng->tsengCPU2ACLBase,0,0L); /* try unlocking the bus when CPU-to-accel gets stuck */
135 TsengPtr pTseng = TsengPTR(pScrn);
142 pTseng->scratchMemBase = pTseng->FbBase + pTseng->AccelColorBufferOffset;
149 pTseng->tsengCPU2ACLBase = pTseng->FbBase + 0x200000; /* MMU aperture 2 */
152 ErrorF("MMioBase = 0x%x, scratchMemBase = 0x%x\n", pTseng->MMioBase, pTseng->scratchMemBase);
159 tseng_terminate_acl(pTseng);
166 if (pTseng->ChipType == ET6000) {
185 ACL_DESTINATION_Y_OFFSET(pScrn->displayWidth * pTseng->Bytesperpixel - 1);
190 if (pTseng->ChipType == ET4000) {
210 if ((pTseng->ChipRev == REV_A) || (pTseng->ChipRev == REV_B)) {
211 MMIO_OUT32(pTseng->MMioBase, 0x00<<0, 0x200000L);
212 MMIO_OUT32(pTseng->MMioBase, 0x04<<0, 0x280000L);
214 MMIO_OUT32(pTseng->MMioBase, 0x00<<0, 0x0L);
215 MMIO_OUT32 (pTseng->MMioBase, 0x04<<0, 0x100000L);
240 if (pTseng->ChipType == ET6000) \
253 TsengPtr pTseng = TsengPTR(pScrn);
255 if (pTseng->ChipType == ET4000) {
257 pTseng->acl_colexp_width_dwords = (MULBPP(pTseng, w) + 31) >> 5;
258 pTseng->acl_colexp_width_bytes = (MULBPP(pTseng, w) + 7) >> 3;
261 pTseng->acl_ColorExpandDst = FBADDR(pTseng, x, y);
262 pTseng->acl_skipleft = skipleft;
264 wait_acl_queue(pTseng);
271 SET_XY(pTseng, w, 1);
278 TsengPtr pTseng = TsengPTR(pScrn);
280 wait_acl_queue(pTseng);
282 ACL_MIX_ADDRESS((pTseng->AccelColorExpandBufferOffsets[bufno] << 3) + pTseng->acl_skipleft);
283 START_ACL(pTseng, pTseng->acl_ColorExpandDst);
286 pTseng->acl_ColorExpandDst += pTseng->line_width;
310 TsengPtr pTseng = TsengPTR(pScrn);
311 pointer dest = pTseng->tsengCPU2ACLBase;
315 i = pTseng->acl_colexp_width_bytes;
316 bufptr = (CARD8 *) (pTseng->XAAScanlineColorExpandBuffers[bufno]);
318 wait_acl_queue(pTseng);
319 START_ACL (pTseng, pTseng->acl_ColorExpandDst);
321 /* *((LongP) (MMioBase + 0x08)) = (CARD32) pTseng->acl_ColorExpandDst;*/
322 /* MMIO_OUT32(tsengCPU2ACLBase,0, (CARD32)pTseng->acl_ColorExpandDst); */
330 pTseng->acl_ColorExpandDst += pTseng->line_width;
341 TsengPtr pTseng = TsengPTR(pScrn);
342 pointer dest = pTseng->tsengCPU2ACLBase;
347 i = pTseng->acl_colexp_width_dwords * 2;
348 bufptr = (CARD8 *) (pTseng->XAAScanlineColorExpandBuffers[bufno]);
350 wait_acl_queue(pTseng);
351 START_ACL(pTseng, pTseng->acl_ColorExpandDst);
355 bits16 = pTseng->ColExpLUT[*bufptr++];
361 pTseng->acl_ColorExpandDst += pTseng->line_width;
372 TsengPtr pTseng = TsengPTR(pScrn);
373 pointer dest = pTseng->tsengCPU2ACLBase;
378 i = pTseng->acl_colexp_width_dwords * 4;
379 bufptr = (CARD8 *) (pTseng->XAAScanlineColorExpandBuffers[bufno]);
381 wait_acl_queue(pTseng);
382 START_ACL(pTseng, pTseng->acl_ColorExpandDst);
385 bits24 = pTseng->ColExpLUT[*bufptr++];
390 bits24 = pTseng->ColExpLUT[*bufptr++];
397 pTseng->acl_ColorExpandDst += pTseng->line_width;
408 TsengPtr pTseng = TsengPTR(pScrn);
409 pointer dest = pTseng->tsengCPU2ACLBase;
414 i = pTseng->acl_colexp_width_dwords;
416 bufptr = (CARD8 *) (pTseng->XAAScanlineColorExpandBuffers[bufno]);
418 wait_acl_queue(pTseng);
419 START_ACL(pTseng, pTseng->acl_ColorExpandDst);
423 bits32 = pTseng->ColExpLUT[*bufptr++];
431 pTseng->acl_ColorExpandDst += pTseng->line_width;
442 TsengPtr pTseng = TsengPTR(pScrn);
446 PINGPONG(pTseng);
448 wait_acl_queue(pTseng);
455 SET_FG_BG_COLOR(pTseng, fg, bg);
477 TsengPtr pTseng = TsengPTR(pScrn);
478 int destaddr = FBADDR(pTseng, x, y);
489 SET_XY(pTseng, w, h);
490 START_ACL(pTseng, destaddr);
498 TsengPtr pTseng = TsengPTR(pScrn);
502 PINGPONG(pTseng);
504 wait_acl_queue(pTseng);
509 SET_FG_BG_COLOR(pTseng, fg, bg);
520 TsengPtr pTseng = TsengPTR(pScrn);
521 int destaddr = FBADDR(pTseng, x, y);
523 /* int srcaddr = FBADDR(pTseng, srcx, srcy); */
525 wait_acl_queue(pTseng);
527 SET_XY(pTseng, w, h);
531 ACL_MIX_Y_OFFSET(pTseng->line_width << 3);
533 START_ACL(pTseng, destaddr);
543 TsengPtr pTseng = TsengPTR(pScrn);
544 XAAInfoRecPtr pXAAInfo = pTseng->AccelInfoRec;
570 if ((pTseng->ChipType == ET6000) || (pScrn->bitsPerPixel == 8)) {
594 if (pTseng->ChipType == ET4000) {
595 pTseng->XAAScanlineColorExpandBuffers[0] =
596 xnfalloc(((pScrn->virtualX + 31)/32) * 4 * pTseng->Bytesperpixel);
597 if (pTseng->XAAScanlineColorExpandBuffers[0] == NULL) {
602 pXAAInfo->ScanlineColorExpandBuffers = pTseng->XAAScanlineColorExpandBuffers;
630 pTseng->ColExpLUT = xnfalloc(sizeof(CARD32)*256);
631 if (pTseng->ColExpLUT == NULL) {
638 r <<= pTseng->Bytesperpixel;
640 r |= (1 << pTseng->Bytesperpixel) - 1;
642 pTseng->ColExpLUT[i] = r;
652 pTseng->XAAColorExpandBuffers;
662 pTseng->XAAColorExpandBuffers[i] =
663 pTseng->FbBase + pTseng->AccelColorExpandBufferOffsets[i];
666 pXAAInfo->ScanlineColorExpandBuffers = pTseng->XAAColorExpandBuffers;
707 pXAAInfo->ColorExpandBase = (CARD8 *)pTseng->tsengCPU2ACLBase;
708 /* ErrorF("tsengCPU2ACLBase = 0x%x\n", pTseng->tsengCPU2ACLBase); */
739 TsengPtr pTseng = TsengPTR(pScrn);
753 TsengPtr pTseng = TsengPTR(pScrn);
764 PINGPONG(pTseng);
766 wait_acl_queue(pTseng);
775 if ((planemask & pTseng->planemask_mask) != pTseng->planemask_mask) {
777 SET_BG_COLOR(pTseng, planemask);
781 SET_FG_COLOR(pTseng, color);
799 TsengPtr pTseng = TsengPTR(pScrn);
800 int destaddr = FBADDR(pTseng, x, y);
802 wait_acl_queue(pTseng);
815 ACL_SOURCE_ADDRESS(pTseng->AccelColorBufferOffset + pTseng->tsengFg);
819 SET_XY_4(pTseng, w, h);
820 START_ACL(pTseng, destaddr);
827 TsengPtr pTseng = TsengPTR(pScrn);
828 int destaddr = FBADDR(pTseng, x, y);
830 wait_acl_queue(pTseng);
833 ACL_SOURCE_ADDRESS(pTseng->AccelColorBufferOffset + pTseng->tsengFg);
843 SET_XY_6(pTseng, w, h);
854 Tseng_setup_screencopy(TsengPtr pTseng,
858 wait_acl_queue(pTseng);
861 if ((pTseng->ChipType == ET6000) && (trans_color != -1)) {
869 if ((planemask & pTseng->planemask_mask) != pTseng->planemask_mask) {
871 SET_BG_COLOR(pTseng, planemask);
890 TsengPtr pTseng = TsengPTR(pScrn);
895 pTseng->acl_blitxdir = xdir;
896 pTseng->acl_blitydir = ydir;
903 Tseng_setup_screencopy(pTseng, rop, planemask, trans_color, blit_dir);
906 ACL_SOURCE_Y_OFFSET(pTseng->line_width - 1);
926 TsengPtr pTseng = TsengPTR(pScrn);
938 x1 = MULBPP(pTseng, x1);
939 x2 = MULBPP(pTseng, x2);
946 if (pTseng->acl_blitydir == -1) {
947 srcaddr = (y1 + h - 1) * pTseng->line_width;
948 destaddr = (y2 + h - 1) * pTseng->line_width;
950 srcaddr = y1 * pTseng->line_width;
951 destaddr = y2 * pTseng->line_width;
953 if (pTseng->acl_blitxdir == -1) {
958 int eol = MULBPP(pTseng, w);
967 wait_acl_queue(pTseng);
969 SET_XY(pTseng, w, h);
971 START_ACL(pTseng, destaddr);
981 TsengPtr pTseng = TsengPTR(pScrn);
983 pat_src_addr = FBADDR(pTseng, patx, paty);
987 Tseng_setup_screencopy(pTseng, rop, planemask, trans_color, 0);
989 switch (pTseng->Bytesperpixel) {
1012 TsengPtr pTseng = TsengPTR(pScrn);
1013 int destaddr = FBADDR(pTseng, x, y);
1014 int srcaddr = pat_src_addr + MULBPP(pTseng, paty * 8 + patx);
1016 wait_acl_queue(pTseng);
1020 SET_XY(pTseng, w, h);
1021 START_ACL(pTseng, destaddr);
1034 TsengPtr pTseng = TsengPTR(pScrn);
1038 Tseng_setup_screencopy(pTseng, rop, planemask, trans_color, 0);
1041 ACL_SOURCE_Y_OFFSET(pTseng->line_width - 1);
1048 TsengPtr pTseng = TsengPTR(pScrn);
1052 pTseng->acl_iw_dest = y * pTseng->line_width + MULBPP(pTseng, x);
1053 pTseng->acl_skipleft = MULBPP(pTseng, skipleft);
1055 wait_acl_queue(pTseng);
1056 SET_XY(pTseng, w, 1);
1063 TsengPtr pTseng = TsengPTR(pScrn);
1067 wait_acl_queue(pTseng);
1069 ACL_SOURCE_ADDRESS(pTseng->AccelImageWriteBufferOffsets[bufno]
1070 + pTseng->acl_skipleft);
1071 START_ACL(pTseng, pTseng->acl_iw_dest);
1072 pTseng->acl_iw_dest += pTseng->line_width;
1106 TsengPtr pTseng = TsengPTR(pScrn);
1107 int destaddr = FBADDR(pTseng, x, y);
1108 int xydir = pTseng->BresenhamTable[octant];
1114 wait_acl_queue(pTseng);
1117 SET_X_YRAW(pTseng, len, 0xFFF);
1119 SET_XY_RAW(pTseng,0xFFF, len - 1);
1127 destaddr += pTseng->Bytesperpixel - 1;
1128 ACL_SOURCE_ADDRESS(pTseng->AccelColorBufferOffset
1129 + pTseng->tsengFg + pTseng->neg_x_pixel_offset);
1131 ACL_SOURCE_ADDRESS(pTseng->AccelColorBufferOffset + pTseng->tsengFg);
1135 START_ACL(pTseng, destaddr);
1194 destaddr = FBADDR(pTseng, left, ytop);
1204 wait_acl_queue(pTseng);
1212 destaddr += pTseng->Bytesperpixel;
1249 SET_XY_6(pTseng, xcount, height);
1273 TsengPtr pTseng = TsengPTR(pScrn);
1278 pTseng->AccelInfoRec = pXAAinfo = XAACreateInfoRec();
1294 if (pTseng->ChipType == ET4000)
1295 pTseng->need_wait_acl = TRUE;
1297 pTseng->need_wait_acl = FALSE;
1299 pTseng->line_width = pScrn->displayWidth * pTseng->Bytesperpixel;
1317 if (pTseng->ChipType == ET6000)
1323 if (pTseng->ChipType == ET6000)
1339 if (pTseng->ChipType == ET4000)
1362 if (pTseng->AccelImageWriteBufferOffsets[0]) {
1375 pTseng->XAAScanlineImageWriteBuffers[i] =
1376 pTseng->FbBase + pTseng->AccelImageWriteBufferOffsets[i];
1379 pXAAinfo->ScanlineImageWriteBuffers = pTseng->XAAScanlineImageWriteBuffers;
1394 if (pTseng->ChipType == ET6000)
1454 pTseng->BresenhamTable = xnfalloc(8);
1455 if (pTseng->BresenhamTable == NULL) {
1461 pTseng->BresenhamTable[i] = 0xA0; /* command=linedraw, use error term */
1462 if (i & XDECREASING) pTseng->BresenhamTable[i] |= 0x01;
1463 if (i & YDECREASING) pTseng->BresenhamTable[i] |= 0x02;
1464 if (!(i & YMAJOR)) pTseng->BresenhamTable[i] |= 0x04;
1465 if ((1 << i) & zerolinebias) pTseng->BresenhamTable[i] |= 0x10;
1466 /* ErrorF("BresenhamTable[%d]=0x%x\n", i, pTseng->BresenhamTable[i]); */
1496 switch (pTseng->Bytesperpixel) { /* for MULBPP optimization */
1498 pTseng->powerPerPixel = 0;
1499 pTseng->planemask_mask = 0x000000FF;
1500 pTseng->neg_x_pixel_offset = 0;
1503 pTseng->powerPerPixel = 1;
1504 pTseng->planemask_mask = 0x0000FFFF;
1505 pTseng->neg_x_pixel_offset = 1;
1508 pTseng->powerPerPixel = 1;
1509 pTseng->planemask_mask = 0x00FFFFFF;
1510 pTseng->neg_x_pixel_offset = 2; /* is this correct ??? */
1513 pTseng->powerPerPixel = 2;
1514 pTseng->planemask_mask = 0xFFFFFFFF;
1515 pTseng->neg_x_pixel_offset = 3;
1523 pTseng->tsengFg = 0;
1524 pTseng->tsengBg = 16;
1525 pTseng->tsengPat = 32;
1528 pTseng->tseng_old_dir = -1;
1529 pTseng->old_x = 0;
1530 pTseng->old_y = 0;
1543 (pScrn->displayWidth * pTseng->Bytesperpixel);