Lines Matching +full:0 +full:xf100
67 module_param_named(first, sisusb_first_vc, int, 0);
68 module_param_named(last, sisusb_last_vc, int, 0);
79 for (i = 0; i < NUMOBUFS; i++) { in sisusb_free_buffers()
91 for (i = 0; i < NUMOBUFS; i++) { in sisusb_free_urbs()
99 /* Level 0: USB transport layer */
105 /* Return 1 if all free, 0 otherwise */
110 for (i = 0; i < sisusb->numobufs; i++) { in sisusb_all_free()
113 return 0; in sisusb_all_free()
128 for (i = 0; i < sisusb->numobufs; i++) { in sisusb_kill_all_busy()
136 /* Return 1 if ok, 0 if error (not all complete within timeout) */
151 for (i = 0; i < sisusb->numobufs; i++) { in sisusb_outurb_available()
153 if ((sisusb->urbstatus[i] & (SU_URB_BUSY|SU_URB_ALLOC)) == 0) in sisusb_outurb_available()
166 ((i = sisusb_outurb_available(sisusb)) >= 0), timeout); in sisusb_get_free_outbuf()
177 if (i >= 0) in sisusb_alloc_outbuf()
185 if ((index >= 0) && (index < sisusb->numobufs)) in sisusb_free_outbuf()
218 int retval, byteswritten = 0; in sisusb_bulkout_msg()
221 urb->transfer_flags = 0; in sisusb_bulkout_msg()
228 urb->actual_length = 0; in sisusb_bulkout_msg()
240 /* If OK, and if timeout > 0, wait for completion */ in sisusb_bulkout_msg()
241 if ((retval == 0) && timeout) { in sisusb_bulkout_msg()
282 int retval, readbytes = 0; in sisusb_bulkin_msg()
284 urb->transfer_flags = 0; in sisusb_bulkin_msg()
290 urb->actual_length = 0; in sisusb_bulkin_msg()
292 sisusb->completein = 0; in sisusb_bulkin_msg()
294 if (retval == 0) { in sisusb_bulkin_msg()
326 * (return 0 on success)
333 int result = 0, retry, count = len; in sisusb_send_bulk_msg()
334 int passsize, thispass, transferred_len = 0; in sisusb_send_bulk_msg()
335 int fromuser = (userbuffer != NULL) ? 1 : 0; in sisusb_send_bulk_msg()
336 int fromkern = (kernbuffer != NULL) ? 1 : 0; in sisusb_send_bulk_msg()
340 (*bytes_written) = 0; in sisusb_send_bulk_msg()
357 async = 0; in sisusb_send_bulk_msg()
365 if (index < 0) in sisusb_send_bulk_msg()
368 if (index < 0) in sisusb_send_bulk_msg()
395 async ? 0 : 5 * HZ, tflags); in sisusb_send_bulk_msg()
406 if ((result == 0) && !async && transferred_len) { in sisusb_send_bulk_msg()
425 } while (count > 0); in sisusb_send_bulk_msg()
438 return ((*bytes_written) == len) ? 0 : -EIO; in sisusb_send_bulk_msg()
454 int result = 0, retry, count = len; in sisusb_recv_bulk_msg()
459 (*bytes_read) = 0; in sisusb_recv_bulk_msg()
476 while (count > 0) { in sisusb_recv_bulk_msg()
523 return ((*bytes_read) == len) ? 0 : -EIO; in sisusb_recv_bulk_msg()
530 ssize_t bytes_transferred = 0; in sisusb_send_packet()
534 packet->data = 0; in sisusb_send_packet()
546 (char *)packet, NULL, 0, &bytes_transferred, 0, 0); in sisusb_send_packet()
548 if ((ret == 0) && (len == 6)) { in sisusb_send_packet()
554 (char *)&tmp, NULL, &bytes_transferred, 0); in sisusb_send_packet()
566 ssize_t bytes_transferred = 0; in sisusb_send_bridge_packet()
570 packet->data = 0; in sisusb_send_bridge_packet()
582 (char *)packet, NULL, 0, &bytes_transferred, tflags, 0); in sisusb_send_bridge_packet()
584 if ((ret == 0) && (len == 6)) { in sisusb_send_bridge_packet()
590 (char *)&tmp, NULL, &bytes_transferred, 0); in sisusb_send_bridge_packet()
598 /* access video memory and mmio (return 0 on success) */
625 int ret = 0; in sisusb_write_memio_word()
630 case 0: in sisusb_write_memio_word()
631 packet.header = (type << 6) | 0x0003; in sisusb_write_memio_word()
636 packet.header = (type << 6) | 0x0006; in sisusb_write_memio_word()
641 packet.header = (type << 6) | 0x000c; in sisusb_write_memio_word()
646 packet.header = (type << 6) | 0x0008; in sisusb_write_memio_word()
649 packet.header = (type << 6) | 0x0001; in sisusb_write_memio_word()
662 int ret = 0; in sisusb_write_memio_24bit()
667 case 0: in sisusb_write_memio_24bit()
668 packet.header = (type << 6) | 0x0007; in sisusb_write_memio_24bit()
669 packet.data = data & 0x00ffffff; in sisusb_write_memio_24bit()
673 packet.header = (type << 6) | 0x000e; in sisusb_write_memio_24bit()
678 packet.header = (type << 6) | 0x000c; in sisusb_write_memio_24bit()
681 packet.header = (type << 6) | 0x0001; in sisusb_write_memio_24bit()
683 packet.data = (data >> 16) & 0x00ff; in sisusb_write_memio_24bit()
687 packet.header = (type << 6) | 0x0008; in sisusb_write_memio_24bit()
690 packet.header = (type << 6) | 0x0003; in sisusb_write_memio_24bit()
692 packet.data = (data >> 8) & 0xffff; in sisusb_write_memio_24bit()
703 int ret = 0; in sisusb_write_memio_long()
708 case 0: in sisusb_write_memio_long()
709 packet.header = (type << 6) | 0x000f; in sisusb_write_memio_long()
714 packet.header = (type << 6) | 0x000e; in sisusb_write_memio_long()
717 packet.header = (type << 6) | 0x0001; in sisusb_write_memio_long()
723 packet.header = (type << 6) | 0x000c; in sisusb_write_memio_long()
726 packet.header = (type << 6) | 0x0003; in sisusb_write_memio_long()
732 packet.header = (type << 6) | 0x0008; in sisusb_write_memio_long()
735 packet.header = (type << 6) | 0x0007; in sisusb_write_memio_long()
759 int ret = 0; in sisusb_write_mem_bulk()
761 u8 swap8, fromkern = kernbuffer ? 1 : 0; in sisusb_write_mem_bulk()
772 (*bytes_written = 0); in sisusb_write_mem_bulk()
774 length &= 0x00ffffff; in sisusb_write_mem_bulk()
783 swap8 = kernbuffer[0]; in sisusb_write_mem_bulk()
813 swap32 = (buf[0] << 16) | in sisusb_write_mem_bulk()
819 buf[0]; in sisusb_write_mem_bulk()
823 swap32 = (kernbuffer[0] << 16) | in sisusb_write_mem_bulk()
829 kernbuffer[0]; in sisusb_write_mem_bulk()
855 if ((length & ~3) > 0x10000) { in sisusb_write_mem_bulk()
857 packet.header = 0x001f; in sisusb_write_mem_bulk()
858 packet.address = 0x000001d4; in sisusb_write_mem_bulk()
861 &packet, 0); in sisusb_write_mem_bulk()
862 packet.header = 0x001f; in sisusb_write_mem_bulk()
863 packet.address = 0x000001d0; in sisusb_write_mem_bulk()
866 &packet, 0); in sisusb_write_mem_bulk()
867 packet.header = 0x001f; in sisusb_write_mem_bulk()
868 packet.address = 0x000001c0; in sisusb_write_mem_bulk()
869 packet.data = flag | 0x16; in sisusb_write_mem_bulk()
871 &packet, 0); in sisusb_write_mem_bulk()
876 NULL, userbuffer, 0, in sisusb_write_mem_bulk()
877 bytes_written, 0, 1); in sisusb_write_mem_bulk()
883 kernbuffer, NULL, 0, in sisusb_write_mem_bulk()
884 bytes_written, 0, 1); in sisusb_write_mem_bulk()
891 bytes_written, 0, 1); in sisusb_write_mem_bulk()
898 packet.header = 0x001f; in sisusb_write_mem_bulk()
899 packet.address = 0x00000194; in sisusb_write_mem_bulk()
902 &packet, 0); in sisusb_write_mem_bulk()
903 packet.header = 0x001f; in sisusb_write_mem_bulk()
904 packet.address = 0x00000190; in sisusb_write_mem_bulk()
907 &packet, 0); in sisusb_write_mem_bulk()
908 if (sisusb->flagb0 != 0x16) { in sisusb_write_mem_bulk()
909 packet.header = 0x001f; in sisusb_write_mem_bulk()
910 packet.address = 0x00000180; in sisusb_write_mem_bulk()
911 packet.data = flag | 0x16; in sisusb_write_mem_bulk()
913 10, &packet, 0); in sisusb_write_mem_bulk()
914 sisusb->flagb0 = 0x16; in sisusb_write_mem_bulk()
920 NULL, userbuffer, 0, in sisusb_write_mem_bulk()
921 bytes_written, 0, 1); in sisusb_write_mem_bulk()
927 kernbuffer, NULL, 0, in sisusb_write_mem_bulk()
928 bytes_written, 0, 1); in sisusb_write_mem_bulk()
935 bytes_written, 0, 1); in sisusb_write_mem_bulk()
960 return ret ? -EIO : 0; in sisusb_write_mem_bulk()
985 int ret = 0; in sisusb_read_memio_word()
992 case 0: in sisusb_read_memio_word()
993 packet.header = (type << 6) | 0x0003; in sisusb_read_memio_word()
998 packet.header = (type << 6) | 0x0006; in sisusb_read_memio_word()
1003 packet.header = (type << 6) | 0x000c; in sisusb_read_memio_word()
1008 packet.header = (type << 6) | 0x0008; in sisusb_read_memio_word()
1011 packet.header = (type << 6) | 0x0001; in sisusb_read_memio_word()
1024 int ret = 0; in sisusb_read_memio_24bit()
1029 case 0: in sisusb_read_memio_24bit()
1030 packet.header = (type << 6) | 0x0007; in sisusb_read_memio_24bit()
1032 *data = packet.data & 0x00ffffff; in sisusb_read_memio_24bit()
1035 packet.header = (type << 6) | 0x000e; in sisusb_read_memio_24bit()
1040 packet.header = (type << 6) | 0x000c; in sisusb_read_memio_24bit()
1043 packet.header = (type << 6) | 0x0001; in sisusb_read_memio_24bit()
1046 *data |= ((packet.data & 0xff) << 16); in sisusb_read_memio_24bit()
1049 packet.header = (type << 6) | 0x0008; in sisusb_read_memio_24bit()
1052 packet.header = (type << 6) | 0x0003; in sisusb_read_memio_24bit()
1055 *data |= ((packet.data & 0xffff) << 8); in sisusb_read_memio_24bit()
1065 int ret = 0; in sisusb_read_memio_long()
1070 case 0: in sisusb_read_memio_long()
1071 packet.header = (type << 6) | 0x000f; in sisusb_read_memio_long()
1076 packet.header = (type << 6) | 0x000e; in sisusb_read_memio_long()
1079 packet.header = (type << 6) | 0x0001; in sisusb_read_memio_long()
1085 packet.header = (type << 6) | 0x000c; in sisusb_read_memio_long()
1088 packet.header = (type << 6) | 0x0003; in sisusb_read_memio_long()
1094 packet.header = (type << 6) | 0x0008; in sisusb_read_memio_long()
1097 packet.header = (type << 6) | 0x0007; in sisusb_read_memio_long()
1110 int ret = 0; in sisusb_read_mem_bulk()
1115 (*bytes_read = 0); in sisusb_read_mem_bulk()
1117 length &= 0x00ffffff; in sisusb_read_mem_bulk()
1123 addr, &buf[0]); in sisusb_read_mem_bulk()
1127 if (put_user(buf[0], (u8 __user *)userbuffer)) in sisusb_read_mem_bulk()
1130 kernbuffer[0] = buf[0]; in sisusb_read_mem_bulk()
1154 buf[0] = (swap32 >> 16) & 0xff; in sisusb_read_mem_bulk()
1155 buf[1] = (swap32 >> 8) & 0xff; in sisusb_read_mem_bulk()
1156 buf[2] = swap32 & 0xff; in sisusb_read_mem_bulk()
1158 buf[2] = (swap32 >> 16) & 0xff; in sisusb_read_mem_bulk()
1159 buf[1] = (swap32 >> 8) & 0xff; in sisusb_read_mem_bulk()
1160 buf[0] = swap32 & 0xff; in sisusb_read_mem_bulk()
1164 &buf[0], 3)) in sisusb_read_mem_bulk()
1167 kernbuffer[0] = buf[0]; in sisusb_read_mem_bulk()
1264 return sisusb_setidxregandor(sisusb, port, index, 0xff, myor); in sisusb_setidxregor()
1270 return sisusb_setidxregandor(sisusb, port, idx, myand, 0x00); in sisusb_setidxregand()
1292 NULL, 0, &dummy); in sisusb_copy_memory()
1310 static u8 srcbuffer[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; in sisusb_testreadwrite()
1320 for (j = 0; j < i; j++) { in sisusb_testreadwrite()
1329 /* access pci config registers (reg numbers 0, 4, 8, etc) */
1336 packet.header = 0x008f; in sisusb_write_pci_config()
1337 packet.address = regnum | 0x10000; in sisusb_write_pci_config()
1348 packet.header = 0x008f; in sisusb_read_pci_config()
1349 packet.address = (u32)regnum | 0x10000; in sisusb_read_pci_config()
1372 if (length <= 0) in sisusb_clear_vram()
1373 return 0; in sisusb_clear_vram()
1377 if (i < 0) in sisusb_clear_vram()
1380 memset(sisusb->obuf[i], 0, sisusb->obufsize); in sisusb_clear_vram()
1393 /* Initialize the graphics core (return 0 on success)
1415 ret = GETIREG(SISSR, 0x16, &tmp8); in sisusb_triggersr16()
1417 tmp8 &= 0x3f; in sisusb_triggersr16()
1418 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1419 tmp8 |= 0x80; in sisusb_triggersr16()
1420 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1422 tmp8 |= 0xc0; in sisusb_triggersr16()
1423 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1424 tmp8 &= 0x0f; in sisusb_triggersr16()
1425 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1426 tmp8 |= 0x80; in sisusb_triggersr16()
1427 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1428 tmp8 &= 0x0f; in sisusb_triggersr16()
1429 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1430 tmp8 |= 0xd0; in sisusb_triggersr16()
1431 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1432 tmp8 &= 0x0f; in sisusb_triggersr16()
1433 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1434 tmp8 |= 0xa0; in sisusb_triggersr16()
1435 ret |= SETIREG(SISSR, 0x16, tmp8); in sisusb_triggersr16()
1444 u8 ramtype, done = 0; in sisusb_getbuswidth()
1448 ret = GETIREG(SISSR, 0x3a, &ramtype); in sisusb_getbuswidth()
1451 ret |= SETIREG(SISSR, 0x13, 0x00); in sisusb_getbuswidth()
1454 ret |= SETIREG(SISSR, 0x14, 0x12); in sisusb_getbuswidth()
1455 ret |= SETIREGAND(SISSR, 0x15, 0xef); in sisusb_getbuswidth()
1457 ret |= SETIREG(SISSR, 0x14, 0x02); in sisusb_getbuswidth()
1461 ret |= WRITEL(ramptr + 0, 0x01234567); in sisusb_getbuswidth()
1462 ret |= WRITEL(ramptr + 4, 0x456789ab); in sisusb_getbuswidth()
1463 ret |= WRITEL(ramptr + 8, 0x89abcdef); in sisusb_getbuswidth()
1464 ret |= WRITEL(ramptr + 12, 0xcdef0123); in sisusb_getbuswidth()
1465 ret |= WRITEL(ramptr + 16, 0x55555555); in sisusb_getbuswidth()
1466 ret |= WRITEL(ramptr + 20, 0x55555555); in sisusb_getbuswidth()
1467 ret |= WRITEL(ramptr + 24, 0xffffffff); in sisusb_getbuswidth()
1468 ret |= WRITEL(ramptr + 28, 0xffffffff); in sisusb_getbuswidth()
1469 ret |= READL(ramptr + 0, &t0); in sisusb_getbuswidth()
1476 *chab = 0; *bw = 64; in sisusb_getbuswidth()
1478 if ((t3 != 0xcdef0123) || (t2 != 0x89abcdef)) { in sisusb_getbuswidth()
1479 if ((t1 == 0x456789ab) && (t0 == 0x01234567)) { in sisusb_getbuswidth()
1480 *chab = 0; *bw = 64; in sisusb_getbuswidth()
1481 ret |= SETIREGAND(SISSR, 0x14, 0xfd); in sisusb_getbuswidth()
1484 if ((t1 != 0x456789ab) || (t0 != 0x01234567)) { in sisusb_getbuswidth()
1486 ret |= SETIREGANDOR(SISSR, 0x14, 0xfc, 0x01); in sisusb_getbuswidth()
1489 ret |= WRITEL(ramptr + 0, 0x89abcdef); in sisusb_getbuswidth()
1490 ret |= WRITEL(ramptr + 4, 0xcdef0123); in sisusb_getbuswidth()
1491 ret |= WRITEL(ramptr + 8, 0x55555555); in sisusb_getbuswidth()
1492 ret |= WRITEL(ramptr + 12, 0x55555555); in sisusb_getbuswidth()
1493 ret |= WRITEL(ramptr + 16, 0xaaaaaaaa); in sisusb_getbuswidth()
1494 ret |= WRITEL(ramptr + 20, 0xaaaaaaaa); in sisusb_getbuswidth()
1497 if (t1 != 0xcdef0123) { in sisusb_getbuswidth()
1499 ret |= SETIREGOR(SISSR, 0x15, 0x10); in sisusb_getbuswidth()
1505 *chab = 0; *bw = 64; /* default: cha, bw = 64 */ in sisusb_getbuswidth()
1507 done = 0; in sisusb_getbuswidth()
1509 if (t1 == 0x456789ab) { in sisusb_getbuswidth()
1510 if (t0 == 0x01234567) { in sisusb_getbuswidth()
1511 *chab = 0; *bw = 64; in sisusb_getbuswidth()
1515 if (t0 == 0x01234567) { in sisusb_getbuswidth()
1516 *chab = 0; *bw = 32; in sisusb_getbuswidth()
1517 ret |= SETIREG(SISSR, 0x14, 0x00); in sisusb_getbuswidth()
1523 ret |= SETIREG(SISSR, 0x14, 0x03); in sisusb_getbuswidth()
1526 ret |= WRITEL(ramptr + 0, 0x01234567); in sisusb_getbuswidth()
1527 ret |= WRITEL(ramptr + 4, 0x456789ab); in sisusb_getbuswidth()
1528 ret |= WRITEL(ramptr + 8, 0x89abcdef); in sisusb_getbuswidth()
1529 ret |= WRITEL(ramptr + 12, 0xcdef0123); in sisusb_getbuswidth()
1530 ret |= WRITEL(ramptr + 16, 0x55555555); in sisusb_getbuswidth()
1531 ret |= WRITEL(ramptr + 20, 0x55555555); in sisusb_getbuswidth()
1532 ret |= WRITEL(ramptr + 24, 0xffffffff); in sisusb_getbuswidth()
1533 ret |= WRITEL(ramptr + 28, 0xffffffff); in sisusb_getbuswidth()
1534 ret |= READL(ramptr + 0, &t0); in sisusb_getbuswidth()
1537 if (t1 == 0x456789ab) { in sisusb_getbuswidth()
1538 if (t0 == 0x01234567) { in sisusb_getbuswidth()
1543 if (t0 == 0x01234567) { in sisusb_getbuswidth()
1545 ret |= SETIREG(SISSR, 0x14, 0x01); in sisusb_getbuswidth()
1555 int ret = 0; in sisusb_verify_mclk()
1559 ret |= WRITEB(ramptr, 0xaa); in sisusb_verify_mclk()
1560 ret |= WRITEB(ramptr + 16, 0x55); in sisusb_verify_mclk()
1563 if ((tmp1 != 0xaa) || (tmp2 != 0x55)) { in sisusb_verify_mclk()
1564 for (i = 0, j = 16; i < 2; i++, j += 16) { in sisusb_verify_mclk()
1565 ret |= GETIREG(SISSR, 0x21, &tmp1); in sisusb_verify_mclk()
1566 ret |= SETIREGAND(SISSR, 0x21, (tmp1 & 0xfb)); in sisusb_verify_mclk()
1567 ret |= SETIREGOR(SISSR, 0x3c, 0x01); /* not on 330 */ in sisusb_verify_mclk()
1568 ret |= SETIREGAND(SISSR, 0x3c, 0xfe); /* not on 330 */ in sisusb_verify_mclk()
1569 ret |= SETIREG(SISSR, 0x21, tmp1); in sisusb_verify_mclk()
1584 int ret = 0, ranksize; in sisusb_set_rank()
1587 *iret = 0; in sisusb_set_rank()
1589 if ((rankno == 2) && (dramtype[index][0] == 2)) in sisusb_set_rank()
1597 tmp = 0; in sisusb_set_rank()
1598 while ((ranksize >>= 1) > 0) in sisusb_set_rank()
1599 tmp += 0x10; in sisusb_set_rank()
1602 tmp |= ((bw / 64) & 0x02); in sisusb_set_rank()
1603 tmp |= (chab & 0x01); in sisusb_set_rank()
1605 ret = SETIREG(SISSR, 0x14, tmp); in sisusb_set_rank()
1606 ret |= sisusb_triggersr16(sisusb, 0); /* sic! */ in sisusb_set_rank()
1616 int ret = 0, i; in sisusb_check_rbc()
1619 *iret = 0; in sisusb_check_rbc()
1621 for (i = 0, j = 0; i < testn; i++) { in sisusb_check_rbc()
1626 for (i = 0, j = 0; i < testn; i++) { in sisusb_check_rbc()
1641 int ret = 0, i, i2ret; in sisusb_check_ranks()
1644 *iret = 0; in sisusb_check_ranks()
1647 inc = 1 << (rtype[idx][2] + rtype[idx][1] + rtype[idx][0] + in sisusb_check_ranks()
1671 int ret = 0, i2ret = 0, i, j; in sisusb_get_sdram_size()
1673 { 2, 12, 9, 64, 0x35 }, in sisusb_get_sdram_size()
1674 { 1, 13, 9, 64, 0x44 }, in sisusb_get_sdram_size()
1675 { 2, 12, 8, 32, 0x31 }, in sisusb_get_sdram_size()
1676 { 2, 11, 9, 32, 0x25 }, in sisusb_get_sdram_size()
1677 { 1, 12, 9, 32, 0x34 }, in sisusb_get_sdram_size()
1678 { 1, 13, 8, 32, 0x40 }, in sisusb_get_sdram_size()
1679 { 2, 11, 8, 16, 0x21 }, in sisusb_get_sdram_size()
1680 { 1, 12, 8, 16, 0x30 }, in sisusb_get_sdram_size()
1681 { 1, 11, 9, 16, 0x24 }, in sisusb_get_sdram_size()
1682 { 1, 11, 8, 8, 0x20 }, in sisusb_get_sdram_size()
1683 { 2, 9, 8, 4, 0x01 }, in sisusb_get_sdram_size()
1684 { 1, 10, 8, 4, 0x10 }, in sisusb_get_sdram_size()
1685 { 1, 9, 8, 2, 0x00 } in sisusb_get_sdram_size()
1690 for (i = 0; i < 13; i++) { in sisusb_get_sdram_size()
1691 ret |= SETIREGANDOR(SISSR, 0x13, 0x80, sdramtype[i][4]); in sisusb_get_sdram_size()
1692 for (j = 2; j > 0; j--) { in sisusb_get_sdram_size()
1701 *iret = 0; /* ram size found */ in sisusb_get_sdram_size()
1713 int ret = 0; in sisusb_setup_screen()
1729 for (i = 0; i < modex; i++) { in sisusb_setup_screen()
1732 address, 0xf100); in sisusb_setup_screen()
1735 address, 0xf100); in sisusb_setup_screen()
1737 for (i = 0; i < modey; i++) { in sisusb_setup_screen()
1740 address, 0xf100); in sisusb_setup_screen()
1743 address, 0xf100); in sisusb_setup_screen()
1756 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, in sisusb_set_default_mode()
1757 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, in sisusb_set_default_mode()
1758 0x01, 0x00, 0x00, 0x00 in sisusb_set_default_mode()
1761 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e, in sisusb_set_default_mode()
1762 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, in sisusb_set_default_mode()
1763 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3, in sisusb_set_default_mode()
1764 0xff in sisusb_set_default_mode()
1767 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, in sisusb_set_default_mode()
1768 0xff in sisusb_set_default_mode()
1771 0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e, in sisusb_set_default_mode()
1772 0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05, in sisusb_set_default_mode()
1773 0x00 in sisusb_set_default_mode()
1778 GETIREG(SISSR, 0x31, &sr31); in sisusb_set_default_mode()
1779 GETIREG(SISCR, 0x63, &cr63); in sisusb_set_default_mode()
1780 SETIREGOR(SISSR, 0x01, 0x20); in sisusb_set_default_mode()
1781 SETIREG(SISCR, 0x63, cr63 & 0xbf); in sisusb_set_default_mode()
1782 SETIREGOR(SISCR, 0x17, 0x80); in sisusb_set_default_mode()
1783 SETIREGOR(SISSR, 0x1f, 0x04); in sisusb_set_default_mode()
1784 SETIREGAND(SISSR, 0x07, 0xfb); in sisusb_set_default_mode()
1785 SETIREG(SISSR, 0x00, 0x03); /* seq */ in sisusb_set_default_mode()
1786 SETIREG(SISSR, 0x01, 0x21); in sisusb_set_default_mode()
1787 SETIREG(SISSR, 0x02, 0x0f); in sisusb_set_default_mode()
1788 SETIREG(SISSR, 0x03, 0x00); in sisusb_set_default_mode()
1789 SETIREG(SISSR, 0x04, 0x0e); in sisusb_set_default_mode()
1790 SETREG(SISMISCW, 0x23); /* misc */ in sisusb_set_default_mode()
1791 for (i = 0; i <= 0x18; i++) { /* crtc */ in sisusb_set_default_mode()
1794 for (i = 0; i <= 0x13; i++) { /* att */ in sisusb_set_default_mode()
1800 SETREG(SISAR, 0x14); in sisusb_set_default_mode()
1801 SETREG(SISAR, 0x00); in sisusb_set_default_mode()
1803 SETREG(SISAR, 0x20); in sisusb_set_default_mode()
1805 for (i = 0; i <= 0x08; i++) { /* grc */ in sisusb_set_default_mode()
1808 SETIREGAND(SISGR, 0x05, 0xbf); in sisusb_set_default_mode()
1809 for (i = 0x0A; i <= 0x0E; i++) { /* clr ext */ in sisusb_set_default_mode()
1810 SETIREG(SISSR, i, 0x00); in sisusb_set_default_mode()
1812 SETIREGAND(SISSR, 0x37, 0xfe); in sisusb_set_default_mode()
1813 SETREG(SISMISCW, 0xef); /* sync */ in sisusb_set_default_mode()
1814 SETIREG(SISCR, 0x11, 0x00); /* crtc */ in sisusb_set_default_mode()
1815 for (j = 0x00, i = 0; i <= 7; i++, j++) in sisusb_set_default_mode()
1818 for (j = 0x10; i <= 10; i++, j++) in sisusb_set_default_mode()
1821 for (j = 0x15; i <= 12; i++, j++) in sisusb_set_default_mode()
1824 for (j = 0x0A; i <= 15; i++, j++) in sisusb_set_default_mode()
1827 SETIREG(SISSR, 0x0E, (crtcdata[16] & 0xE0)); in sisusb_set_default_mode()
1828 SETIREGANDOR(SISCR, 0x09, 0x5f, ((crtcdata[16] & 0x01) << 5)); in sisusb_set_default_mode()
1829 SETIREG(SISCR, 0x14, 0x4f); in sisusb_set_default_mode()
1831 SETIREGANDOR(SISSR, 0x0e, 0xf0, ((du >> 8) & 0x0f)); in sisusb_set_default_mode()
1832 SETIREG(SISCR, 0x13, (du & 0xff)); in sisusb_set_default_mode()
1835 SETIREG(SISSR, 0x10, tmp8); in sisusb_set_default_mode()
1836 SETIREG(SISSR, 0x31, 0x00); /* VCLK */ in sisusb_set_default_mode()
1837 SETIREG(SISSR, 0x2b, 0x1b); in sisusb_set_default_mode()
1838 SETIREG(SISSR, 0x2c, 0xe1); in sisusb_set_default_mode()
1839 SETIREG(SISSR, 0x2d, 0x01); in sisusb_set_default_mode()
1840 SETIREGAND(SISSR, 0x3d, 0xfe); /* FIFO */ in sisusb_set_default_mode()
1841 SETIREG(SISSR, 0x08, 0xae); in sisusb_set_default_mode()
1842 SETIREGAND(SISSR, 0x09, 0xf0); in sisusb_set_default_mode()
1843 SETIREG(SISSR, 0x08, 0x34); in sisusb_set_default_mode()
1844 SETIREGOR(SISSR, 0x3d, 0x01); in sisusb_set_default_mode()
1845 SETIREGAND(SISSR, 0x1f, 0x3f); /* mode regs */ in sisusb_set_default_mode()
1846 SETIREGANDOR(SISSR, 0x06, 0xc0, 0x0a); in sisusb_set_default_mode()
1847 SETIREG(SISCR, 0x19, 0x00); in sisusb_set_default_mode()
1848 SETIREGAND(SISCR, 0x1a, 0xfc); in sisusb_set_default_mode()
1849 SETIREGAND(SISSR, 0x0f, 0xb7); in sisusb_set_default_mode()
1850 SETIREGAND(SISSR, 0x31, 0xfb); in sisusb_set_default_mode()
1851 SETIREGANDOR(SISSR, 0x21, 0x1f, 0xa0); in sisusb_set_default_mode()
1852 SETIREGAND(SISSR, 0x32, 0xf3); in sisusb_set_default_mode()
1853 SETIREGANDOR(SISSR, 0x07, 0xf8, 0x03); in sisusb_set_default_mode()
1854 SETIREG(SISCR, 0x52, 0x6c); in sisusb_set_default_mode()
1856 SETIREG(SISCR, 0x0d, 0x00); /* adjust frame */ in sisusb_set_default_mode()
1857 SETIREG(SISCR, 0x0c, 0x00); in sisusb_set_default_mode()
1858 SETIREG(SISSR, 0x0d, 0x00); in sisusb_set_default_mode()
1859 SETIREGAND(SISSR, 0x37, 0xfe); in sisusb_set_default_mode()
1861 SETIREG(SISCR, 0x32, 0x20); in sisusb_set_default_mode()
1862 SETIREGAND(SISSR, 0x01, 0xdf); /* enable display */ in sisusb_set_default_mode()
1863 SETIREG(SISCR, 0x63, (cr63 & 0xbf)); in sisusb_set_default_mode()
1864 SETIREG(SISSR, 0x31, (sr31 & 0xfb)); in sisusb_set_default_mode()
1867 SETIREG(SISSR, 0x20, 0xa1); /* enable engines */ in sisusb_set_default_mode()
1868 SETIREGOR(SISSR, 0x1e, 0x5a); in sisusb_set_default_mode()
1870 SETIREG(SISSR, 0x26, 0x01); /* disable cmdqueue */ in sisusb_set_default_mode()
1871 SETIREG(SISSR, 0x27, 0x1f); in sisusb_set_default_mode()
1872 SETIREG(SISSR, 0x26, 0x00); in sisusb_set_default_mode()
1875 SETIREG(SISCR, 0x34, 0x44); /* we just set std mode #44 */ in sisusb_set_default_mode()
1880 int ret = 0, i, j, bw, chab, iret, retry = 3; in sisusb_init_gfxcore()
1884 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1885 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1886 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1887 0x3b, 0x22, 0x01, 143 in sisusb_init_gfxcore()
1890 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1891 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1892 0x3b, 0x22, 0x01, 143, in sisusb_init_gfxcore()
1893 0x3b, 0x22, 0x01, 143 in sisusb_init_gfxcore()
1896 0x00, 0x04, 0x60, 0x60, in sisusb_init_gfxcore()
1897 0x0f, 0x0f, 0x1f, 0x1f, in sisusb_init_gfxcore()
1898 0xba, 0xba, 0xba, 0xba, in sisusb_init_gfxcore()
1899 0xa9, 0xa9, 0xac, 0xac, in sisusb_init_gfxcore()
1900 0xa0, 0xa0, 0xa0, 0xa8, in sisusb_init_gfxcore()
1901 0x00, 0x00, 0x02, 0x02, in sisusb_init_gfxcore()
1902 0x30, 0x30, 0x40, 0x40 in sisusb_init_gfxcore()
1905 0x77, 0x77, 0x44, 0x44, in sisusb_init_gfxcore()
1906 0x77, 0x77, 0x44, 0x44, in sisusb_init_gfxcore()
1907 0x00, 0x00, 0x00, 0x00, in sisusb_init_gfxcore()
1908 0x5b, 0x5b, 0xab, 0xab, in sisusb_init_gfxcore()
1909 0x00, 0x00, 0xf0, 0xf8 in sisusb_init_gfxcore()
1916 ret |= SETREG(SISVGAEN, (tmp8 | 0x01)); in sisusb_init_gfxcore()
1920 ret |= SETREG(SISMISCW, (tmp8 | 0x01)); in sisusb_init_gfxcore()
1926 ret |= SETIREGAND(SISCR, 0x5b, 0xdf); in sisusb_init_gfxcore()
1927 ret |= SETIREG(SISSR, 0x05, 0x86); in sisusb_init_gfxcore()
1928 ret |= SETIREGOR(SISSR, 0x20, 0x01); in sisusb_init_gfxcore()
1930 ret |= SETREG(SISMISCW, 0x67); in sisusb_init_gfxcore()
1932 for (i = 0x06; i <= 0x1f; i++) in sisusb_init_gfxcore()
1933 ret |= SETIREG(SISSR, i, 0x00); in sisusb_init_gfxcore()
1935 for (i = 0x21; i <= 0x27; i++) in sisusb_init_gfxcore()
1936 ret |= SETIREG(SISSR, i, 0x00); in sisusb_init_gfxcore()
1938 for (i = 0x31; i <= 0x3d; i++) in sisusb_init_gfxcore()
1939 ret |= SETIREG(SISSR, i, 0x00); in sisusb_init_gfxcore()
1941 for (i = 0x12; i <= 0x1b; i++) in sisusb_init_gfxcore()
1942 ret |= SETIREG(SISSR, i, 0x00); in sisusb_init_gfxcore()
1944 for (i = 0x79; i <= 0x7c; i++) in sisusb_init_gfxcore()
1945 ret |= SETIREG(SISCR, i, 0x00); in sisusb_init_gfxcore()
1950 ret |= SETIREG(SISCR, 0x63, 0x80); in sisusb_init_gfxcore()
1952 ret |= GETIREG(SISSR, 0x3a, &ramtype); in sisusb_init_gfxcore()
1953 ramtype &= 0x03; in sisusb_init_gfxcore()
1955 ret |= SETIREG(SISSR, 0x28, mclktable[ramtype * 4]); in sisusb_init_gfxcore()
1956 ret |= SETIREG(SISSR, 0x29, mclktable[(ramtype * 4) + 1]); in sisusb_init_gfxcore()
1957 ret |= SETIREG(SISSR, 0x2a, mclktable[(ramtype * 4) + 2]); in sisusb_init_gfxcore()
1959 ret |= SETIREG(SISSR, 0x2e, eclktable[ramtype * 4]); in sisusb_init_gfxcore()
1960 ret |= SETIREG(SISSR, 0x2f, eclktable[(ramtype * 4) + 1]); in sisusb_init_gfxcore()
1961 ret |= SETIREG(SISSR, 0x30, eclktable[(ramtype * 4) + 2]); in sisusb_init_gfxcore()
1963 ret |= SETIREG(SISSR, 0x07, 0x18); in sisusb_init_gfxcore()
1964 ret |= SETIREG(SISSR, 0x11, 0x0f); in sisusb_init_gfxcore()
1969 for (i = 0x15, j = 0; i <= 0x1b; i++, j++) { in sisusb_init_gfxcore()
1973 for (i = 0x40, j = 0; i <= 0x44; i++, j++) { in sisusb_init_gfxcore()
1978 ret |= SETIREG(SISCR, 0x49, 0xaa); in sisusb_init_gfxcore()
1980 ret |= SETIREG(SISSR, 0x1f, 0x00); in sisusb_init_gfxcore()
1981 ret |= SETIREG(SISSR, 0x20, 0xa0); in sisusb_init_gfxcore()
1982 ret |= SETIREG(SISSR, 0x23, 0xf6); in sisusb_init_gfxcore()
1983 ret |= SETIREG(SISSR, 0x24, 0x0d); in sisusb_init_gfxcore()
1984 ret |= SETIREG(SISSR, 0x25, 0x33); in sisusb_init_gfxcore()
1986 ret |= SETIREG(SISSR, 0x11, 0x0f); in sisusb_init_gfxcore()
1988 ret |= SETIREGOR(SISPART1, 0x2f, 0x01); in sisusb_init_gfxcore()
1990 ret |= SETIREGAND(SISCAP, 0x3f, 0xef); in sisusb_init_gfxcore()
1995 ret |= SETIREG(SISPART1, 0x00, 0x00); in sisusb_init_gfxcore()
1997 ret |= GETIREG(SISSR, 0x13, &tmp8); in sisusb_init_gfxcore()
2000 ret |= SETIREG(SISPART1, 0x02, 0x00); in sisusb_init_gfxcore()
2001 ret |= SETIREG(SISPART1, 0x2e, 0x08); in sisusb_init_gfxcore()
2003 ret |= sisusb_read_pci_config(sisusb, 0x50, &tmp32); in sisusb_init_gfxcore()
2004 tmp32 &= 0x00f00000; in sisusb_init_gfxcore()
2005 tmp8 = (tmp32 == 0x100000) ? 0x33 : 0x03; in sisusb_init_gfxcore()
2006 ret |= SETIREG(SISSR, 0x25, tmp8); in sisusb_init_gfxcore()
2007 tmp8 = (tmp32 == 0x100000) ? 0xaa : 0x88; in sisusb_init_gfxcore()
2008 ret |= SETIREG(SISCR, 0x49, tmp8); in sisusb_init_gfxcore()
2010 ret |= SETIREG(SISSR, 0x27, 0x1f); in sisusb_init_gfxcore()
2011 ret |= SETIREG(SISSR, 0x31, 0x00); in sisusb_init_gfxcore()
2012 ret |= SETIREG(SISSR, 0x32, 0x11); in sisusb_init_gfxcore()
2013 ret |= SETIREG(SISSR, 0x33, 0x00); in sisusb_init_gfxcore()
2018 ret |= SETIREG(SISCR, 0x83, 0x00); in sisusb_init_gfxcore()
2020 sisusb_set_default_mode(sisusb, 0); in sisusb_init_gfxcore()
2022 ret |= SETIREGAND(SISSR, 0x21, 0xdf); in sisusb_init_gfxcore()
2023 ret |= SETIREGOR(SISSR, 0x01, 0x20); in sisusb_init_gfxcore()
2024 ret |= SETIREGOR(SISSR, 0x16, 0x0f); in sisusb_init_gfxcore()
2029 ret |= SETIREGAND(SISSR, 0x17, 0xf8); in sisusb_init_gfxcore()
2030 ret |= SETIREGOR(SISSR, 0x19, 0x03); in sisusb_init_gfxcore()
2040 ret |= SETIREG(SISSR, 0x14, 0x31); in sisusb_init_gfxcore()
2046 ret |= SETIREG(SISSR, 0x14, 0x31); in sisusb_init_gfxcore()
2051 ret |= SETIREG(SISSR, 0x16, ramtypetable1[4 + ramtype]); in sisusb_init_gfxcore()
2052 ret |= SETIREG(SISSR, 0x17, ramtypetable1[8 + ramtype]); in sisusb_init_gfxcore()
2053 ret |= SETIREG(SISSR, 0x19, ramtypetable1[16 + ramtype]); in sisusb_init_gfxcore()
2055 ret |= SETIREGOR(SISSR, 0x21, 0x20); in sisusb_init_gfxcore()
2057 ret |= SETIREG(SISSR, 0x22, 0xfb); in sisusb_init_gfxcore()
2058 ret |= SETIREG(SISSR, 0x21, 0xa5); in sisusb_init_gfxcore()
2060 if (ret == 0) in sisusb_init_gfxcore()
2080 int bw = 0; in sisusb_get_ramconfig()
2088 sisusb_getidxreg(sisusb, SISSR, 0x14, &tmp8); in sisusb_get_ramconfig()
2089 sisusb_getidxreg(sisusb, SISSR, 0x15, &tmp82); in sisusb_get_ramconfig()
2090 sisusb_getidxreg(sisusb, SISSR, 0x3a, &ramtype); in sisusb_get_ramconfig()
2091 sisusb->vramsize = (1 << ((tmp8 & 0xf0) >> 4)) * 1024 * 1024; in sisusb_get_ramconfig()
2092 ramtype &= 0x03; in sisusb_get_ramconfig()
2093 switch ((tmp8 >> 2) & 0x03) { in sisusb_get_ramconfig()
2094 case 0: in sisusb_get_ramconfig()
2096 if (tmp82 & 0x10) in sisusb_get_ramconfig()
2099 bw = busSDR[(tmp8 & 0x03)]; in sisusb_get_ramconfig()
2105 bw = busSDR[(tmp8 & 0x03)]; in sisusb_get_ramconfig()
2110 bw = busDDRA[(tmp8 & 0x03)]; in sisusb_get_ramconfig()
2115 bw = busDDR[(tmp8 & 0x03)]; in sisusb_get_ramconfig()
2132 packet.header = 0x001f; in sisusb_do_init_gfxdevice()
2133 packet.address = 0x00000324; in sisusb_do_init_gfxdevice()
2134 packet.data = 0x00000004; in sisusb_do_init_gfxdevice()
2135 ret = sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2137 packet.header = 0x001f; in sisusb_do_init_gfxdevice()
2138 packet.address = 0x00000364; in sisusb_do_init_gfxdevice()
2139 packet.data = 0x00000004; in sisusb_do_init_gfxdevice()
2140 ret |= sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2142 packet.header = 0x001f; in sisusb_do_init_gfxdevice()
2143 packet.address = 0x00000384; in sisusb_do_init_gfxdevice()
2144 packet.data = 0x00000004; in sisusb_do_init_gfxdevice()
2145 ret |= sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2147 packet.header = 0x001f; in sisusb_do_init_gfxdevice()
2148 packet.address = 0x00000100; in sisusb_do_init_gfxdevice()
2149 packet.data = 0x00000700; in sisusb_do_init_gfxdevice()
2150 ret |= sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2152 packet.header = 0x000f; in sisusb_do_init_gfxdevice()
2153 packet.address = 0x00000004; in sisusb_do_init_gfxdevice()
2154 ret |= sisusb_send_bridge_packet(sisusb, 6, &packet, 0); in sisusb_do_init_gfxdevice()
2155 packet.data |= 0x17; in sisusb_do_init_gfxdevice()
2156 ret |= sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2158 /* Init BAR 0 (VRAM) */ in sisusb_do_init_gfxdevice()
2159 ret |= sisusb_read_pci_config(sisusb, 0x10, &tmp32); in sisusb_do_init_gfxdevice()
2160 ret |= sisusb_write_pci_config(sisusb, 0x10, 0xfffffff0); in sisusb_do_init_gfxdevice()
2161 ret |= sisusb_read_pci_config(sisusb, 0x10, &tmp32); in sisusb_do_init_gfxdevice()
2162 tmp32 &= 0x0f; in sisusb_do_init_gfxdevice()
2164 ret |= sisusb_write_pci_config(sisusb, 0x10, tmp32); in sisusb_do_init_gfxdevice()
2167 ret |= sisusb_read_pci_config(sisusb, 0x14, &tmp32); in sisusb_do_init_gfxdevice()
2168 ret |= sisusb_write_pci_config(sisusb, 0x14, 0xfffffff0); in sisusb_do_init_gfxdevice()
2169 ret |= sisusb_read_pci_config(sisusb, 0x14, &tmp32); in sisusb_do_init_gfxdevice()
2170 tmp32 &= 0x0f; in sisusb_do_init_gfxdevice()
2172 ret |= sisusb_write_pci_config(sisusb, 0x14, tmp32); in sisusb_do_init_gfxdevice()
2175 ret |= sisusb_read_pci_config(sisusb, 0x18, &tmp32); in sisusb_do_init_gfxdevice()
2176 ret |= sisusb_write_pci_config(sisusb, 0x18, 0xfffffff0); in sisusb_do_init_gfxdevice()
2177 ret |= sisusb_read_pci_config(sisusb, 0x18, &tmp32); in sisusb_do_init_gfxdevice()
2178 tmp32 &= 0x0f; in sisusb_do_init_gfxdevice()
2180 ret |= sisusb_write_pci_config(sisusb, 0x18, tmp32); in sisusb_do_init_gfxdevice()
2183 ret |= sisusb_read_pci_config(sisusb, 0x04, &tmp32); in sisusb_do_init_gfxdevice()
2184 tmp32 |= 0x3; in sisusb_do_init_gfxdevice()
2185 ret |= sisusb_write_pci_config(sisusb, 0x04, tmp32); in sisusb_do_init_gfxdevice()
2187 if (ret == 0) { in sisusb_do_init_gfxdevice()
2189 packet.header = 0x001f; in sisusb_do_init_gfxdevice()
2190 packet.address = 0x00000050; in sisusb_do_init_gfxdevice()
2191 packet.data = 0x000000ff; in sisusb_do_init_gfxdevice()
2192 ret |= sisusb_send_bridge_packet(sisusb, 10, &packet, 0); in sisusb_do_init_gfxdevice()
2198 /* Initialize the graphics device (return 0 on success)
2205 int ret = 0, test = 0; in sisusb_init_gfxdevice()
2210 ret |= sisusb_read_pci_config(sisusb, 0x10, &tmp32); in sisusb_init_gfxdevice()
2214 if ((tmp32 & 0xfffffff0) == SISUSB_PCI_MEMBASE) in sisusb_init_gfxdevice()
2217 ret |= sisusb_read_pci_config(sisusb, 0x14, &tmp32); in sisusb_init_gfxdevice()
2221 if ((tmp32 & 0xfffffff0) == SISUSB_PCI_MMIOBASE) in sisusb_init_gfxdevice()
2224 ret |= sisusb_read_pci_config(sisusb, 0x18, &tmp32); in sisusb_init_gfxdevice()
2228 if ((tmp32 & 0xfffffff0) == SISUSB_PCI_IOPORTBASE) in sisusb_init_gfxdevice()
2233 if ((sisusb->devinit == 0) || (test != 3)) { in sisusb_init_gfxdevice()
2237 if (ret == 0) in sisusb_init_gfxdevice()
2244 if (sisusb_init_gfxcore(sisusb) == 0) { in sisusb_init_gfxdevice()
2259 * - Set text mode (0x03)
2266 int ret = 0, slot = sisusb->font_slot, i; in sisusb_reset_text_mode()
2279 sisusb->SiS_Pr->IOAddress = SISUSB_PCI_IOPORTBASE + 0x30; in sisusb_reset_text_mode()
2282 /* Set mode 0x03 */ in sisusb_reset_text_mode()
2283 SiSUSBSetMode(sisusb->SiS_Pr, 0x03); in sisusb_reset_text_mode()
2293 for (i = 0; i < 256; i++) in sisusb_reset_text_mode()
2297 ret = sisusbcon_do_font_op(sisusb, 1, 0, tempbuf, 8192, in sisusb_reset_text_mode()
2298 0, 1, NULL, 16, 0); in sisusb_reset_text_mode()
2306 sisusb->font_backup_height, 0); in sisusb_reset_text_mode()
2308 sisusbcon_do_font_op(sisusb, 1, 0, NULL, 0, 0, 1, in sisusb_reset_text_mode()
2309 NULL, 16, 0); in sisusb_reset_text_mode()
2320 *(tempbufb++) = 0x0720; in sisusb_reset_text_mode()
2322 i = 0; in sisusb_reset_text_mode()
2325 *(tempbufb++) = 0x0700 | bootlogo[i++]; in sisusb_reset_text_mode()
2330 i = 0; in sisusb_reset_text_mode()
2333 *(tempbufb++) = 0x0700 | bootstring[i++]; in sisusb_reset_text_mode()
2347 if (sisusb->sisusb_cursor_size_from >= 0 && in sisusb_reset_text_mode()
2348 sisusb->sisusb_cursor_size_to >= 0) { in sisusb_reset_text_mode()
2349 sisusb_setidxreg(sisusb, SISCR, 0x0a, in sisusb_reset_text_mode()
2351 sisusb_setidxregandor(sisusb, SISCR, 0x0b, 0xe0, in sisusb_reset_text_mode()
2354 sisusb_setidxreg(sisusb, SISCR, 0x0a, 0x2d); in sisusb_reset_text_mode()
2355 sisusb_setidxreg(sisusb, SISCR, 0x0b, 0x0e); in sisusb_reset_text_mode()
2360 if (slot < 0) in sisusb_reset_text_mode()
2361 slot = 0; in sisusb_reset_text_mode()
2368 sisusb_setidxreg(sisusb, SISCR, 0x0c, (sisusb->cur_start_addr >> 8)); in sisusb_reset_text_mode()
2369 sisusb_setidxreg(sisusb, SISCR, 0x0d, (sisusb->cur_start_addr & 0xff)); in sisusb_reset_text_mode()
2371 sisusb->textmodedestroyed = 0; in sisusb_reset_text_mode()
2411 if (sisusb_init_gfxdevice(sisusb, 0)) { in sisusb_open()
2434 return 0; in sisusb_open()
2471 sisusb->isopen = 0; in sisusb_release()
2479 return 0; in sisusb_release()
2486 ssize_t bytes_read = 0; in sisusb_read()
2487 int errno = 0; in sisusb_read()
2586 (*ppos) <= SISUSB_PCI_PSEUDO_PCIBASE + 0x5c) { in sisusb_read()
2622 int errno = 0; in sisusb_write()
2623 ssize_t bytes_written = 0; in sisusb_write()
2703 count, buffer, 0, &bytes_written); in sisusb_write()
2721 count, buffer, 0, &bytes_written); in sisusb_write()
2844 retval = 0; in sisusb_handle_command()
2851 case 0: in sisusb_handle_command()
2852 retval = sisusb_reset_text_mode(sisusb, 0); in sisusb_handle_command()
2867 retval = 0; in sisusb_handle_command()
2869 sisusb->SiS_Pr->IOAddress = SISUSB_PCI_IOPORTBASE + 0x30; in sisusb_handle_command()
2882 retval = 0; in sisusb_handle_command()
2884 sisusb->SiS_Pr->IOAddress = SISUSB_PCI_IOPORTBASE + 0x30; in sisusb_handle_command()
2897 if (retval > 0) in sisusb_handle_command()
2908 long retval = 0; in sisusb_ioctl()
2944 x.sisusb_fbdevactive = 0; in sisusb_ioctl()
2946 x.sisusb_conactive = sisusb->haveconsole ? 1 : 0; in sisusb_ioctl()
2948 x.sisusb_conactive = 0; in sisusb_ioctl()
2950 memset(x.sisusb_reserved, 0, sizeof(x.sisusb_reserved)); in sisusb_ioctl()
3016 int retval = 0, i; in sisusb_probe()
3057 sisusb->numobufs = 0; in sisusb_probe()
3059 for (i = 0; i < NUMOBUFS; i++) { in sisusb_probe()
3062 if (i == 0) { in sisusb_probe()
3072 sisusb->sisurbin = usb_alloc_urb(0, GFP_KERNEL); in sisusb_probe()
3079 for (i = 0; i < sisusb->numobufs; i++) { in sisusb_probe()
3080 sisusb->sisurbout[i] = usb_alloc_urb(0, GFP_KERNEL); in sisusb_probe()
3087 sisusb->urbstatus[i] = 0; in sisusb_probe()
3115 if (sisusb_first_vc > 0 && sisusb_last_vc > 0 && in sisusb_probe()
3118 initscreen = 0; in sisusb_probe()
3140 return 0; in sisusb_probe()
3176 sisusb->present = 0; in sisusb_disconnect()
3177 sisusb->ready = 0; in sisusb_disconnect()
3186 { USB_DEVICE(0x0711, 0x0550) },
3187 { USB_DEVICE(0x0711, 0x0900) },
3188 { USB_DEVICE(0x0711, 0x0901) },
3189 { USB_DEVICE(0x0711, 0x0902) },
3190 { USB_DEVICE(0x0711, 0x0903) },
3191 { USB_DEVICE(0x0711, 0x0918) },
3192 { USB_DEVICE(0x0711, 0x0920) },
3193 { USB_DEVICE(0x0711, 0x0950) },
3194 { USB_DEVICE(0x0711, 0x5200) },
3195 { USB_DEVICE(0x182d, 0x021c) },
3196 { USB_DEVICE(0x182d, 0x0269) },