Line 0
Link Here
|
|
|
1 |
--- src/ast_vgatool.c.orig 2015-08-19 01:24:48.000000000 +0000 |
2 |
+++ src/ast_vgatool.c 2020-09-17 14:19:18.843298000 +0000 |
3 |
@@ -432,11 +432,27 @@ |
4 |
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000; |
5 |
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1; |
6 |
|
7 |
+ /* Based on the Linux DRM driver we might not be able to access this |
8 |
+ * If we can't just use some sane defaults. |
9 |
+ * |
10 |
+ * See drm/drivers/gpu/drm/ast/ast_main.c line 295. |
11 |
+ */ |
12 |
+ |
13 |
*(ULONG *) (pAST->MMIOVirtualAddr + 0x10000) = 0xFC600309; |
14 |
- do { |
15 |
- ; |
16 |
- } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) != 0x01); |
17 |
+ for (ulData = 10000; ulData > 0; ulData--) |
18 |
+ if (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) == 0x01) |
19 |
+ break; |
20 |
|
21 |
+ if (ulData == 0) { |
22 |
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Unable to read DRAM information, using defaults\n"); |
23 |
+ pAST->ulDRAMBusWidth = 16; |
24 |
+ pAST->jDRAMType = DRAMTYPE_1Gx16; |
25 |
+ if (pAST->jChipType == AST2500) |
26 |
+ pAST->ulMCLK = 800; |
27 |
+ else |
28 |
+ pAST->ulMCLK = 396; |
29 |
+ return; |
30 |
+ } |
31 |
ulData = *(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10004); |
32 |
|
33 |
/* Get BusWidth */ |