Rev 3120 | Rev 3764 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3120 | Rev 3192 | ||
---|---|---|---|
Line 1024... | Line 1024... | ||
1024 | printk(KERN_WARNING "radeon: No suitable DMA available.\n"); |
1024 | printk(KERN_WARNING "radeon: No suitable DMA available.\n"); |
1025 | } |
1025 | } |
Line 1026... | Line 1026... | ||
1026 | 1026 | ||
1027 | /* Registers mapping */ |
1027 | /* Registers mapping */ |
- | 1028 | /* TODO: block userspace mapping of io register */ |
|
1028 | /* TODO: block userspace mapping of io register */ |
1029 | spin_lock_init(&rdev->mmio_idx_lock); |
1029 | rdev->rmmio_base = pci_resource_start(rdev->pdev, 2); |
1030 | rdev->rmmio_base = pci_resource_start(rdev->pdev, 2); |
1030 | rdev->rmmio_size = pci_resource_len(rdev->pdev, 2); |
1031 | rdev->rmmio_size = pci_resource_len(rdev->pdev, 2); |
1031 | rdev->rmmio = ioremap(rdev->rmmio_base, rdev->rmmio_size); |
1032 | rdev->rmmio = ioremap(rdev->rmmio_base, rdev->rmmio_size); |
1032 | if (rdev->rmmio == NULL) { |
1033 | if (rdev->rmmio == NULL) { |
Line 1049... | Line 1050... | ||
1049 | 1050 | ||
1050 | r = radeon_init(rdev); |
1051 | r = radeon_init(rdev); |
1051 | if (r) |
1052 | if (r) |
Line -... | Line 1053... | ||
- | 1053 | return r; |
|
- | 1054 | ||
- | 1055 | // r = radeon_ib_ring_tests(rdev); |
|
- | 1056 | // if (r) |
|
1052 | return r; |
1057 | // DRM_ERROR("ib ring test failed (%d).\n", r); |
1053 | 1058 | ||
1054 | if (rdev->flags & RADEON_IS_AGP && !rdev->accel_working) { |
1059 | if (rdev->flags & RADEON_IS_AGP && !rdev->accel_working) { |
1055 | /* Acceleration not working on AGP card try again |
1060 | /* Acceleration not working on AGP card try again |
1056 | * with fallback to PCI or PCIE GART |
1061 | * with fallback to PCI or PCIE GART |
Line 1124... | Line 1129... | ||
1124 | ring_sizes[i], ring_data[i]); |
1129 | ring_sizes[i], ring_data[i]); |
1125 | ring_sizes[i] = 0; |
1130 | ring_sizes[i] = 0; |
1126 | ring_data[i] = NULL; |
1131 | ring_data[i] = NULL; |
1127 | } |
1132 | } |
Line 1128... | Line 1133... | ||
1128 | 1133 | ||
1129 | r = radeon_ib_ring_tests(rdev); |
1134 | // r = radeon_ib_ring_tests(rdev); |
1130 | if (r) { |
1135 | // if (r) { |
1131 | dev_err(rdev->dev, "ib ring test failed (%d).\n", r); |
1136 | // dev_err(rdev->dev, "ib ring test failed (%d).\n", r); |
1132 | if (saved) { |
1137 | // if (saved) { |
1133 | saved = false; |
1138 | // saved = false; |
1134 | radeon_suspend(rdev); |
1139 | // radeon_suspend(rdev); |
1135 | goto retry; |
1140 | // goto retry; |
1136 | } |
1141 | // } |
1137 | } |
1142 | // } |
1138 | } else { |
1143 | } else { |
1139 | for (i = 0; i < RADEON_NUM_RINGS; ++i) { |
1144 | for (i = 0; i < RADEON_NUM_RINGS; ++i) { |
1140 | kfree(ring_data[i]); |
1145 | kfree(ring_data[i]); |
1141 | } |
1146 | } |
Line 1150... | Line 1155... | ||
1150 | // up_write(&rdev->exclusive_lock); |
1155 | // up_write(&rdev->exclusive_lock); |
1151 | return r; |
1156 | return r; |
1152 | } |
1157 | } |
Line 1153... | Line -... | ||
1153 | - | ||
1154 | 1158 | ||
1155 | 1159 | ||
1156 | /* |
1160 | /* |
1157 | * Driver load/unload |
1161 | * Driver load/unload |
1158 | */ |
1162 | */ |
Line 1432... | Line 1436... | ||
1432 | if( cmdline && *cmdline ) |
1436 | if( cmdline && *cmdline ) |
1433 | parse_cmdline(cmdline, &usermode, log, &radeon_modeset); |
1437 | parse_cmdline(cmdline, &usermode, log, &radeon_modeset); |
Line 1434... | Line 1438... | ||
1434 | 1438 | ||
1435 | if(!dbg_open(log)) |
1439 | if(!dbg_open(log)) |
1436 | { |
1440 | { |
Line 1437... | Line 1441... | ||
1437 | strcpy(log, "/RD/1/DRIVERS/atikms.log"); |
1441 | strcpy(log, "/TMP1/1/atikms.log"); |
1438 | 1442 | ||
1439 | if(!dbg_open(log)) |
1443 | if(!dbg_open(log)) |
1440 | { |
1444 | { |
1441 | printf("Can't open %s\nExit\n", log); |
1445 | printf("Can't open %s\nExit\n", log); |
1442 | return 0; |
1446 | return 0; |
1443 | }; |
1447 | }; |
Line 1444... | Line 1448... | ||
1444 | } |
1448 | } |
Line 1445... | Line 1449... | ||
1445 | dbgprintf("Radeon RC12 preview 1 cmdline %s\n", cmdline); |
1449 | dbgprintf("Radeon RC13 cmdline %s\n", cmdline); |
Line 1489... | Line 1493... | ||
1489 | if( class == PCI_CLASS_DISPLAY_VGA) |
1493 | if( class == PCI_CLASS_DISPLAY_VGA) |
1490 | ret = 1; |
1494 | ret = 1; |
1491 | } |
1495 | } |
1492 | return ret; |
1496 | return ret; |
1493 | }><>>><>><>>>>>=>><>><>>><>>>=>><>>>>>>>> |
1497 | } |
- | 1498 | ||
- | 1499 | unsigned int hweight32(unsigned int w) |
|
- | 1500 | { |
|
- | 1501 | unsigned int res = w - ((w >> 1) & 0x55555555); |
|
- | 1502 | res = (res & 0x33333333) + ((res >> 2) & 0x33333333); |
|
- | 1503 | res = (res + (res >> 4)) & 0x0F0F0F0F; |
|
- | 1504 | res = res + (res >> 8); |
|
- | 1505 | return (res + (res >> 16)) & 0x000000FF; |
|
- | 1506 | }><>>><>><>>>>>=>><>><>>><>>>=>><>>>>>>>> |
|
- | 1507 |