090512

|



なんとかXも使えるようになり、P2048も認識できたので、使えるようになりま
した。仕上げにモリモリpkgsrcからインストール中です。

今年はどうも岡山には行けなさそう(日程的に体力がもたない)なのであまり使 う機会はないかな。C2山手トンネル開通当初は、流れの読みに筑波の帰りから も使っていたけれど、もう流れはわかったし。

これでPORTEGE3440CTは、お役目終了。いいキーボードだったのに。

SA5続き。xpmだとハングするのをいろいろ試したところ、透過色があるとハン
グすることがわかった。
追ってみると、xf86-video-geode/src/cim/cim_gp.cの
void
gp_wait_until_idle(void)
{
    unsigned long temp;

    while (((temp = READ_GP32(GP3_BLT_STATUS)) & GP3_BS_BLT_BUSY) ||
        !(temp & GP3_BS_CB_EMPTY)) {
        ;
    }
}

これが帰ってこない。BitBLTの終了を待っているのだけど、いつまでたっても
コマンドキューに入りっぱなしで終了しない。

これはEXAで使われるので、Option "NoAccel"にすると、これはSegmentation
fault.これはlx_memory.cの簡単なバグを修正すればいい。

diff -ur src.orig/lx_memory.c src/lx_memory.c
--- src.orig/lx_memory.c	2009-02-17 03:46:00.000000000 +0900
+++ src/lx_memory.c	2009-05-12 17:28:10.000000000 +0900
@@ -287,7 +287,7 @@
 	xf86DrvMsg(pScrni->scrnIndex, X_INFO, " Cursor: 0x%x bytes\n",
 	    LX_CURSOR_HW_WIDTH * 4 * LX_CURSOR_HW_HEIGHT);
 
-    if (pGeode->pExa->offScreenBase)
+    if (!pGeode->NoAccel && pGeode->pExa && pGeode->pExa->offScreenBase)
 	xf86DrvMsg(pScrni->scrnIndex, X_INFO, " EXA: 0x%x bytes\n",
 	    (unsigned int)(pGeode->pExa->memorySize -
 		pGeode->pExa->offScreenBase));

これでやっとXが使えるようになりました。アクセラレーションは効かないけど、
効いたところでたかがしれてるので問題ない。

FOMA P2048。これはやっぱり
RCS file: /cvsroot/src/sys/dev/cardbus/rbus.c,v
retrieving revision 1.27
diff -u -r1.27 rbus.c
--- rbus.c	14 Mar 2009 21:04:19 -0000	1.27
+++ rbus.c	12 May 2009 11:48:34 -0000
@@ -82,6 +82,10 @@
 	DPRINTF(("rbus_space_alloc: addr %lx, size %lx, mask %lx, align %lx\n",
 	    (u_long)addr, (u_long)size, (u_long)mask, (u_long)align));
 
+#if 1 //-uch P2048
+	if (addr == 0x2e8)
+	  mask = 0;
+#endif
 	addr += rbt->rb_offset;
 
 	if (mask == 0) {

これ入れないとだめだった。