Skip to content

Commit

Permalink
x11-drivers/xf86-video-ast: restore functionality on 12
Browse files Browse the repository at this point in the history
AST video which works on 11-, doesn't on 12-, restored by
pulling in some Linux DRM patches and then massaging it to
avoid device-tree madness, from darius@dons.net.au

PR:		240294
Approved by:	zeising (x11@)
  • Loading branch information
DanielO authored and Adriaan de Groot committed Jul 9, 2021
1 parent 8bec1ad commit b6eed3f
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion x11-drivers/xf86-video-ast/Makefile
@@ -1,6 +1,6 @@
PORTNAME= xf86-video-ast
PORTVERSION= 1.1.5
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= x11-drivers

MAINTAINER= x11@FreeBSD.org
Expand Down
33 changes: 33 additions & 0 deletions x11-drivers/xf86-video-ast/files/patch-ast_vgatool.c
@@ -0,0 +1,33 @@
--- src/ast_vgatool.c.orig 2015-08-19 01:24:48.000000000 +0000
+++ src/ast_vgatool.c 2020-09-17 14:19:18.843298000 +0000
@@ -432,11 +432,27 @@
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000;
*(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1;

+ /* 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;
- do {
- ;
- } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) != 0x01);
+ 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 */

0 comments on commit b6eed3f

Please sign in to comment.