patch for i810switch to avoid flickering on i855
# 一部書き直して再投稿しております
Linux上で、i810系ビデオカードのCRT出力をON/OFFする、i810switchというユー
ティリティがあるのですが(http://vorlon.cwru.edu/~ames/i810switch/、現在
最新は0.6.2)、手元のThinkPad X40(i855らしい)でこれを使うと、CRT出力がフ
リッカを起こしてしまったり、CRTによっては信号がサポート外ということで表
示されなかったりします。CRT出力のリフレッシュレートがちゃんと制御できて
いないようです。さりとて、Fn+F7ではCRTとLCDのどちらか一方しかONにできま
せん。
短いパッチですが、下記の修正で正常にCRTをONにできるように見えるので投
稿します。なぜこれでうまくいくのかはわかりません。また、手元の環境でうま
くいくように見えるだけで、実はとんでもない問題点があるのかも知れません。
他のマシンではこのパッチでかえってうまく動かなくなってしまうこともある
かも知れません。また、CRTをOFFに戻すには、Fn+F7を使う方が安全かも知れま
せん。
diff -ru i810switch-0.6.2.orig/i810switch.c i810switch-0.6.2/i810switch.c
--- i810switch-0.6.2.orig/i810switch.c Thu Feb 5 14:14:42 2004
+++ i810switch-0.6.2/i810switch.c Sun Jun 13 02:18:17 2004
@@ -288,6 +288,10 @@
} else {
printf("Enabling CRT display...\n");
i830_adpa = (i830_adpa | 0x80000000 | (pipe<<30)) & ~0xc00;
+#if 1 /* Nide Local */
+ i830_adpa &= ~0x40000000;
+ i810_writel(par.mmio, I830_DSPACTRL, dspactrl | 0x80000000);
+#endif
}
i810_writel(par.mmio, I830_ADPA, i830_adpa);
}
余談ながら、素のi810switch 0.6.2は、i830やi855ではLCDのON/OFFをサポー
トしていませんが、それができるようにするパッチを少し前にネットで見つけて、
手元ではそれも当てています。ところが、そのパッチを今検索してみると見当た
りません。どこへ行っちゃったんだろう… どこで見つけたのかメモしておけば
よかった。
nide@ics.nara-wu.ac.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735