[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cover close
濱嶋です。
>>> MQ200の修正はどうでしょうか?
>>
>> こちらは問題が出ました。消している間にremoteからloginして画面を表示さ
>> せるようなことをすると何かが起こります。
>> MQ200_POWERSTATE_D1とMQ200_POWERSTATE_D2では表示しようとした瞬間にその
>> ままOSが固まってしまいました。
>> MQ200_POWERSTATE_D3ではvrpciuが"bad addr"とたくさん言います。考えてみ
>> ればそこにいるはずのMQ200が止まってしまったので当然なのですが。そうい
>> うことをした後にふたを開くと画面が崩れます。
>
> それはLCDやバックライトを消す操作ではなく、MQ200を止める操作ですね。
> MQ200が止まった結果、LCDやバックライトが消えている状態なのですね。
> POWERSTATEはいじらない方が良さそうです。
MediaQのweb siteでMQ200のマニュアルが見つけられなかったので
mq200_hardpower()を真似ただけで、実際の動作は(予想はついているけど)理
解しないでやってます。
どなかたMQ200のマニュアルがまだ入手可能な場所を知っていたら教えてくだ
さい。
>>> あと、Vrc4173 PIU の修正はどうしましょうか?
>>
>> 動作としては問題なく動いていますが、同一のバイナリで10bitと12bitを共存
>> させる方法がいまのところ思いついていない状態です。
>
> ここへパッチを投げて下さい。暇をみつけてやっておきます。
すいません。MLにも投げたつもりでいましたが、mxの変更に遭遇して届かず
某宣教者に個人宛てで送っただけでした。
10bitから12bitに増えているのはPIUPBとPIUABです。
Sigmarion2の画面解像度はそれまでの機種と変わっていないから10bitの精度
で足りているので、入力値を12bit拾って2bit右シフトしているだけです。
理想としては12bit値を画面座標系に変換すべきなのでしょうが、動作するこ
とを優先したのでこんなふうになってます。
Index: vrpiu.c
===================================================================
RCS file: /home/hamajima/cvs/current/arch/hpcmips/vr/vrpiu.c,v
retrieving revision 1.1.1.1.2.7
diff -u -r1.1.1.1.2.7 vrpiu.c
--- vrpiu.c 17 Oct 2002 23:48:10 -0000 1.1.1.1.2.7
+++ vrpiu.c 27 Nov 2002 15:14:19 -0000
@@ -557,9 +557,12 @@
if (intrstat & PIUINT_PADADPINTR) {
for (i = 0; i < 3; i++) {
- if (sc->sc_battery.value[i] & PIUAB_VALID)
+ if (sc->sc_battery.value[i] & PIUAB_VALID) {
sc->sc_battery.value[i] &= PIUAB_PADDATA_MASK;
- else
+#ifdef SIGMARION2_HACK
+ sc->sc_battery.value[i] >>= 2;
+#endif
+ } else
sc->sc_battery.value[i] = 0;
}
vrpiu_calc_powerstate(sc);
@@ -646,6 +649,12 @@
tpx1 &= PIUPB_PADDATA_MASK;
tpy0 &= PIUPB_PADDATA_MASK;
tpy1 &= PIUPB_PADDATA_MASK;
+#ifdef SIGMARION2_HACK
+ tpx0 >>= 2;
+ tpx1 >>= 2;
+ tpy0 >>= 2;
+ tpy1 >>= 2;
+#endif
#define ISVALID(n, c, m) ((c) - (m) < (n) && (n) < (c) + (m))
if (ISVALID(tpx0 + tpx1, 1024, 200) &&
ISVALID(tpy0 + tpy1, 1024, 200)) {
Index: vrpiureg.h
===================================================================
RCS file: /home/hamajima/cvs/current/arch/hpcmips/vr/vrpiureg.h,v
retrieving revision 1.1.1.1.2.2
diff -u -r1.1.1.1.2.2 vrpiureg.h
--- vrpiureg.h 17 Oct 2002 12:42:58 -0000 1.1.1.1.2.2
+++ vrpiureg.h 27 Nov 2002 15:14:19 -0000
@@ -148,8 +148,13 @@
(PIUPB00_REG_W + (page) * 8 + (n) * 2) : \
(PIUPB04_REG_W + (page) * 2))
#define PIUPB_VALID (1<<15)
+#ifdef SIGMARION2_HACK
+#define PIUPB_PADDATA_MASK 0xFFF
+#define PIUPB_PADDATA_MAX 0xFFF
+#else
#define PIUPB_PADDATA_MASK 0x3FF
#define PIUPB_PADDATA_MAX 0x3FF
+#endif
#define PIUAB0_REG_W (PIUB_REG_OFFSSET+0x10) /* PIU A/D scan Buffer 0 reg */
#define PIUAB1_REG_W (PIUB_REG_OFFSSET+0x12) /* PIU A/D scan Buffer 1 reg */
@@ -157,4 +162,8 @@
#define PIUAB3_REG_W (PIUB_REG_OFFSSET+0x16) /* PIU A/D scan Buffer 3 reg */
#define PIUAB(n) (PIUAB0_REG_W+(n)*2)
#define PIUAB_VALID (1<<15)
+#ifdef SIGMARION2_HACK
+#define PIUAB_PADDATA_MASK 0xFFF
+#else
#define PIUAB_PADDATA_MASK 0x3FF
+#endif