Skip to main content

[xwin-commits] [solaris-x11~x-s11-update-clone:1338] 16448336 On T3-1 AST graphics causes PCIe bus lockup

  • From:
  • To:
  • Subject: [xwin-commits] [solaris-x11~x-s11-update-clone:1338] 16448336 On T3-1 AST graphics causes PCIe bus lockup
  • Date: Tue, 26 Mar 2013 18:32:04 +0000

Project:    solaris-x11
Repository: x-s11-update-clone
Revision:   1338
Author:     x-hg
Date:       2013-03-26 18:27:36 UTC
Link:       

Log Message:
------------
16448336 On T3-1 AST graphics causes PCIe bus lockup


Revisions:
----------
1338


Modified Paths:
---------------
open-src/driver/xf86-video-ast/Makefile


Added Paths:
------------
open-src/driver/xf86-video-ast/ast.patch
open-src/driver/xf86-video-ast/ast_vgatool.patch


Diffs:
------
diff -r fb91cf54879e -r 4337fec94eef open-src/driver/xf86-video-ast/Makefile
--- a/open-src/driver/xf86-video-ast/Makefile   Wed Mar 20 15:14:14 2013 -0700
+++ b/open-src/driver/xf86-video-ast/Makefile   Tue Mar 26 11:27:36 2013 -0700
@@ -38,7 +38,9 @@
 
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES += sparc-ast.patch,-p1 \
-                 7164238.patch
+                 7164238.patch \
+               ast.patch \
+               ast_vgatool.patch
 
 # Link in additional source files from sun-src directory
 ADDITIONAL_SOURCE_DIR=sun-src

diff -r fb91cf54879e -r 4337fec94eef open-src/driver/xf86-video-ast/ast.patch
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/driver/xf86-video-ast/ast.patch  Tue Mar 26 11:27:36 2013 -0700
@@ -0,0 +1,26 @@
+--- ./ast.h    Mon Mar 25 19:53:35 2013
++++ src/ast.h  Mon Mar 25 19:59:29 2013
+@@ -329,15 +329,21 @@
+         uint8_t         pad[100];
+ } vis_pci_cfg_t;

+-
+ #define VIS_SETIOREG                    (VIOC | 17)
+ #define VIS_GETIOREG                    (VIOC | 18)
++#define ASTIOC                  ('Y' << 8)
++#define AST_GET_INDEX          (ASTIOC | 14)
++#define AST_SET_INDEX          (ASTIOC | 15)
++#endif

+ typedef struct vis_io_reg {
+         uchar_t         offset;
+         uchar_t         value;
+-} vis_io_reg_t;
++#ifdef __sparc__
++        uchar_t         offset1;
++        uchar_t         value1;
+ #endif
++} vis_io_reg_t;


+ extern struct pci_device *ASTGetPciInfo(ASTRecPtr);

diff -r fb91cf54879e -r 4337fec94eef 
open-src/driver/xf86-video-ast/ast_vgatool.patch
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/driver/xf86-video-ast/ast_vgatool.patch  Tue Mar 26 11:27:36 
2013 -0700
@@ -0,0 +1,78 @@
+--- ./ast_vgatool.h    Mon Mar 25 19:53:35 2013
++++ src/ast_vgatool.h  Mon Mar 25 19:59:38 2013
+@@ -85,11 +85,10 @@
+ #define GetIndexReg(off, index, val)  do {                            \
+                       struct vis_io_reg   io_reg = {                  \
+                              .offset = off,                           \
+-                             .value = index                           \
+-                      };                                              \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
+-                      io_reg.offset = off+1;                          \
+-                      ioctl(pAST->fd, VIS_GETIOREG, &io_reg);         \
++                             .value = index,                          \
++                              .offset1 = off+1                         \
++                       };                                              \
++                       ioctl(pAST->fd, AST_GET_INDEX, &io_reg);        \
+                       val = io_reg.value;                             \
+                       } while (0)

+@@ -96,22 +95,20 @@
+ #define SetIndexReg(off, index, val) do {                             \
+                       struct vis_io_reg   io_reg = {                  \
+                              .offset = off,                           \
+-                             .value = index                           \
++                             .value = index,                          \
++                             .offset1 = off+1,                          \
++                                .value1 = val                           \
+                       };                                              \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
+-                      io_reg.offset = off+1;                          \
+-                      io_reg.value = val;                             \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
++                       ioctl(pAST->fd, AST_SET_INDEX, &io_reg);         \
+                       } while (0)

+ #define GetIndexRegMask(off, index, and, val) do {                    \
+                       struct vis_io_reg   io_reg = {                  \
+                              .offset = off,                           \
+-                             .value = index                           \
+-                      };                                              \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
+-                      io_reg.offset = off+1;                          \
+-                      ioctl(pAST->fd, VIS_GETIOREG, &io_reg);         \
++                             .value = index,                          \
++                                .offset1 = off+1                       \
++                       };                                              \
++                       ioctl(pAST->fd, AST_GET_INDEX, &io_reg);         \
+                       val = io_reg.value & and;                       \
+                       } while (0)

+@@ -119,18 +116,16 @@
+                       UCHAR __Temp;                                   \
+                       struct vis_io_reg   io_reg = {                  \
+                              .offset = off,                           \
+-                             .value = index                           \
+-                      };                                              \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
+-                      io_reg.offset = off + 1;                        \
+-                      ioctl(pAST->fd, VIS_GETIOREG, &io_reg);         \
+-                      __Temp = (io_reg.value & and) | val;            \
+-                      io_reg.offset = off;                            \
+-                      io_reg.value = index;                           \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
+-                      io_reg.offset = off+1;                          \
+-                      io_reg.value = __Temp;                          \
+-                      ioctl(pAST->fd, VIS_SETIOREG, &io_reg);         \
++                             .value = index,                          \
++                                .offset1 = off+1                        \
++                       };                                              \
++                       ioctl(pAST->fd, AST_GET_INDEX, &io_reg);         \
++                       __Temp = (io_reg.value & and) | val;            \
++                       io_reg.offset = off;                            \
++                       io_reg.value = index;                           \
++                       io_reg.offset1 = off+1;                          \
++                       io_reg.value1 = __Temp;                          \
++                       ioctl(pAST->fd, AST_SET_INDEX, &io_reg);         \
+                       } while (0)

+ #else /* !__sparc__ */






[xwin-commits] [solaris-x11~x-s11-update-clone:1338] 16448336 On T3-1 AST graphics causes PCIe bus lockup

x-hg 03/26/2013
 
 
Close
loading
Please Confirm
Close