mirror of
https://github.com/X11Libre/xf86-video-ast.git
synced 2026-03-24 01:24:41 +00:00
Do not hang if P2A is disabled, using sensible defaults instead.
Based on Linux DRM https://patchwork.kernel.org/patch/9578793/
This commit is contained in:
committed by
Alan Coopersmith
parent
773f703d92
commit
0e0fd56d9f
@@ -432,11 +432,27 @@ ASTGetDRAMInfo(ScrnInfoPtr pScrn)
|
||||
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000;
|
||||
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1;
|
||||
|
||||
*(ULONG *) (pAST->MMIOVirtualAddr + 0x10000) = 0xFC600309;
|
||||
do {
|
||||
;
|
||||
} while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) != 0x01);
|
||||
/* Based on the Linux DRM driver we might not be able to access this
|
||||
* If we can't just use some sane defaults.
|
||||
*
|
||||
* See drm/drivers/gpu/drm/ast/ast_main.c line 295.
|
||||
*/
|
||||
|
||||
*(ULONG *) (pAST->MMIOVirtualAddr + 0x10000) = 0xFC600309;
|
||||
for (ulData = 10000; ulData > 0; ulData--)
|
||||
if (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) == 0x01)
|
||||
break;
|
||||
|
||||
if (ulData == 0) {
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Unable to read DRAM information, using defaults\n");
|
||||
pAST->ulDRAMBusWidth = 16;
|
||||
pAST->jDRAMType = DRAMTYPE_1Gx16;
|
||||
if (pAST->jChipType == AST2500)
|
||||
pAST->ulMCLK = 800;
|
||||
else
|
||||
pAST->ulMCLK = 396;
|
||||
return;
|
||||
}
|
||||
ulData = *(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10004);
|
||||
|
||||
/* Get BusWidth */
|
||||
|
||||
Reference in New Issue
Block a user