From owner-acpi-jp@jp.freebsd.org  Sat Oct 28 18:14:36 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id SAA80894;
	Sat, 28 Oct 2000 18:14:36 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from shidahara1.planet.sci.kobe-u.ac.jp (shidahara1.planet.sci.kobe-u.ac.jp [133.30.50.200])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id SAA80889
	for <acpi-jp@jp.freebsd.org>; Sat, 28 Oct 2000 18:14:36 +0900 (JST)
	(envelope-from takawata@shidahara1.planet.sci.kobe-u.ac.jp)
Received: from shidahara1.planet.sci.kobe-u.ac.jp (localhost [127.0.0.1])
	by shidahara1.planet.sci.kobe-u.ac.jp (8.9.3/8.9.3) with ESMTP id SAA87438
	for <acpi-jp@jp.freebsd.org>; Sat, 28 Oct 2000 18:14:14 +0900 (JST)
	(envelope-from takawata@shidahara1.planet.sci.kobe-u.ac.jp)
Message-Id: <200010280914.SAA87438@shidahara1.planet.sci.kobe-u.ac.jp>
To: acpi-jp@jp.freebsd.org
In-reply-to: Your message of "Fri, 20 Oct 2000 23:16:58 JST."
             <200010201416.XAA16939@libr.scitec.kobe-u.ac.jp>
Date: Sat, 28 Oct 2000 18:14:14 +0900
From: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: acpi-jp 891
Subject: [acpi-jp 891] Re: Can we call tsleep in taskqueue_swi task?
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: takawata@shidahara1.planet.sci.kobe-u.ac.jp

In message <200010201416.XAA16939@libr.scitec.kobe-u.ac.jp>, takawata $B$5$s$$$o(B
$B$/(B:
>So I try to convert EC driver to use interrupt while it read or write.
>I modified ACPICA to call EC handler without queueing.
>But when I modified EC driver to use tsleep() the machine will hangup.
>
>I noticed that taskqueue_swi task is called with Giant lock held.
>(in intr_soft()@kern_intr.c) 
>Is it permitted to call tsleep in taskqueue_swi?
>Does it stop heartbeat of system?
>
>Do we need acpi task thread to use tsleep context?

I converted acpi task queue implementing of itsown thread.
This enable us drive  Embedded controller by interrupt.
This is based on acpica-bsd-20001008.

I modified acpica so that it call installed handler directly.

Takanori Watanabe
<a href="http://www.planet.sci.kobe-u.ac.jp/~takawata/key.html">
Public Key</a>
Key fingerprint =  2C 51 E2 78 2C E1 C5 2D  0F F1 20 A3 11 3A 62 2A 

begin 644 tqdiff.tar.gz
M'XL("/"4^CD``W1Q9&EF9BYT87(`[3K[<]O&T?F5_"O63FN3(B3QH9>E.@U$
M0A(F%*D`H!5__3HL!!Q%5"!`XR%9D[A_>W?O#B#X$&4W3IK.\,860=S>[MZ^
M]X[Q8[SKLOM=VYEZCLT_ALF''>>;KS@:]?K!WAY\`]`XW*\7/_G8;S1:`(>-
MPP-\.MP_Q.G]UF'K&ZA_32:>&FF<V!'`-XE]9S_8B?T4W'/S_Z-C=VN[#%O0
M#J>/D7<[3J#B5*%9K]?!P@T'8>3!->XZL&\8P:F^#QPNAHC%++IG[@Z^IRF#
MN5Z<1-Y-FGAA`';@0AHS\`*(PS1R&']SXP5V]`BC,)K$"CQXR1C"B'^&:4)8
M)J'KC=`2"8<"=L1@RJ*)ER3,A6D4WGLN/B1C.\$_#/'X?OC@!;?@A('KT:*8
ML-"Z"4N.Z;FQL\!:#.$HX\D)781$&\#M)#;R2ECMF_">IJ1("`F.($P\ARD(
MX<7@(SY",R/+MS?/$Q)U?-N;L(AD!,UE1I!@02(9([A/-T7F?AM>0.Q28G)#
M)YVP(+$SI>VB/D*<CV!B)RSR;#^>"9XKC!`7MY$9@'6AFV#VSZQKU=``GZ^,
M_CN]HW7@]#U.:J`.K(N^`6JO`^U^SS+TTX'5-TSXQS]4$^%?OZ8I;F6]]Z#]
M=&5HI@FX0+^\ZNJ(!O$::L_2-5,!O=?N#CIZ[UP!Q`*]O@5=_5*W$,SJ*T2.
M$"VOA/X97&I&^P*_JJ=Z5[?><X;.=*M'Y,Z(0;A2#4MO#[JJ`5<#XZIO<FRT
MK8YNMKNJ?JEU=@"90,*@O=-Z%I@7:K=;W";^F]OEJ88<JJ==CHJ3P5UV=$-K
M6[2=V5,;98;,=14PK[2V3@_:3QKN1#7>*Q*MJ?TX0""<)&P=]5(]Q[U5GI$*
M*J0],+1+XA?E8`Y.34NW!I8&Y_U^QR14B-[4C'=Z6S-/H-LWN<`&IJ8@$4OE
MY!$+2@NG\?ET8.I<;GK/T@QC<&7I_5Z5$%WTKU$PR*R*JSM<QOT>WS/*J&^\
M)[PD#ZX"!:XO-'QOD$BYU%22A8G2:UN$K0")5%&>5F&ST-/.N_JYUFMK--LG
M1->ZJ5518[I)`+J@?*V^YWL<\.V3KI`W\5@P785K%/0S4#OO=&)>`J,=F+JT
MF?X983('[0LI?>D%I3^=18R=FIT_X9?=<OE;+W#\%(/,7V+,M&F`?N/NC+];
M>#^U(WNR_/HFC9=??DA9RI9?X_]D!8H[%@7,7WZ?V/'=$YB\`/T^2J?)BJGI
M"E03&X.,LX)T,HZ8O;#;%;4&SI=C"D`.W(>>"_+]4"RO\'=;U9.5,"S@FU@/
MY`5>PB%P/@/`\)4Z"?Q<+LDGC'$.;-&2N^2D7$(A0)0&`<;.D_(G._F`2Y_F
MSDTGD\=J^6>Q+L;U#V//9Y5&%5^58G@+\=0?8P"O(`NE$J+;D<AQJD&O</YC
M)>:SN6J&"%.9?2/*'.`9?/4%?+M;IL_8%!KU20R5]I@Y=\`Q`KMGF'KX>TP*
MCHWI&O.(&X73*MHN<A+3PLJK`G[EZO\THZ^\M!W/]=E+I4$D/I4_E=>H!1-3
MPCXF<_+9W2J7*$"/*)=EDL:*P+YCZ12DY<#UF`79)$]J8YNRX=@.*#V&'(6D
MI8"7@,<W(MBF)ZP!QJ$+["-S1*HR0[BC.0$1"PR\G"`V**NET0W/<,A`C!DQ
M"07L#D&B3!9E[XTJ+PKB$?J>R5[L9TZ"7&#,C]D\*,EPO?&2^)8U+;ULZ.#?
MA%7FS5,!H@SB8T<8MV*<61>&IG84W!*.E_0Z^?`2F?A4+ENJ^0.FEH$V[&AG
M&-HY0F5!KPK4E3G^JH"K_]NE[&;\!R->W?^-OR:-9_J_YF&]6>C_#JC_VZO7
M-_W?[S$V_=^F_]OT?YO^;]/__5;]WRAPV0BPG'HW5-M7>EOE'T/KQ^'%$,K?
MXJ07L"?FY^LQ-#Q#%&34R'S+T-U'Y5]9=B&*4?QU4LF38WW^;S8.ZOM9_F^V
M]AHXW:PW-^>_O\L@_<-VE%+VH(A>+`;-](9.%=AD5[O'%!'O8K](#SO8/F/9
M^$4KRMO;VU]&HV1AA]K'SAQ:T-@[;M6/ZPU>F91KM=J7,U"RQBE'UW@#S>;Q
MWN'QWI%`]_WWL'U4WU>:#:C19Z,!WW]?YK:I(M;VQ&`^-H/L,L4N%BK<.R^M
MGX8\[IOHBB"`L:7=Y@\8WM/`X0GU`C.JC[FTPG9N=T!K5X]SF.VG1PZC\<95
M5`)>@);J^YB%1QGVL<2.3:IX%`6!V'&&9%<\>".HG$^9'HS"'<E55<S\+"%Q
M+`#,5K1E"W\B8#^5)8^X9Y"\7HI>.U\Z['[\J,!0^_@1-PW/;WH[!R*I:_>V
MG]IRZX1JES`)"PK]K+'GA:`31EB+3K'ZB4D27`3G5Q20YP1`+?><%`3#@M]J
MN;8HI/EI$)+*!,5Y[,49EZ>/`F[U:@5Z@VY7_"5S$1(DLWM3/U".T.K>'"B'
MN=&A!'[DQS.T=:EBK)7'GC.F`P[F\>K,#C*+L&^0\*)-Y*ARRZ-"VUX4H)C-
MY5NE.A1\*OP*AR8+@B0AT?;/;_RAW"[\#1]ZZ>2&17_/C>>77V:&M0[^"3U\
M_I)%W?#5Y*5GJM[%>D?@ZL=<JF=AI&4[@TK?[`RO#+UO8$X?HM$H,RR?,X2E
MJO%CX(REKR*7@CM%:+C9)`V_:3249FNFXL*HO-3N<5''BZ=VXHR/81!PC:(I
M?U@T`ZX>9!/^5O_XY_K13W___^#E"I9S254S<Q,F)WV7B_B3](?*6MUDNJRB
M?&O\N(@+%ED8=C'^=8=Z[ZR?A8T3"8)!03P\$PESH'5!(0?Z5;$PQW(M6DTA
M6FR,9E.[V09YS%>=#ZD7/1WS!6PFLK?KA'@RA_BY9")@Y<>JH$V**!)?%ZP%
MED^8H6KR0>H'I#AZN69<LJMX3:3F&5RFW='NR/-9_*\\1S?J4-\_KE->7<K1
M$KAD8JPFV.81@A^WF@@^2\#-QKYR`#7Z$)%P\5`*0SQOV3&3AU/2N.V#F%^&
MI0`YL?W/`N7MN5-:@JRM^E7$,AA\6X#KQR[]/TWCR]OH&>H2ML-NTMO/`]6"
M>R\*@XDH9Q87Y(7<\D+3&3,W]9FLV]8!<"6O`RA69?6CX[TWQZT%C:]=/6\#
M^XVY(JQUJ#1:4!,?9`-/W3/!FKNLPMS$=L;86^TZN.R.YFK/W4-A)<>=8PLL
M"A[XSP;?2Q*?CF`F4Y\.IM!3W)2)2@/SKNTDH@QY8!`P.IP*X2;U?#<[A`DX
MOA%VA8CLM;QM(I9?\VC.D$G^E1#(\W7*N%1,8KAB_!"-'[FPD9WZ8JFX$(H?
M/)#G\;%'-R(>G1ZAE![!#5D<O$[H#(=R^0,RR/'QH/_`7D=,K$0N_3"XY0<[
M&`H+%.>NG>;)F->ZO*$!QP[HXB21=R0\C*(0+]5NM]_.KA`N>4=+G:PB;QL0
M^4M\IM>T+X8%G,M)TBT$K\</,0S4^%\RA%+$DC0**JHV/%4Q8ZN&>JE9FC&K
MID`DMQG;V174G+@4J!04`%M5FT?)YU;R.Y"52SGU&7/]'^@=<;/*';FA,6?9
M#?.)1??+)TIF&@BW(W\Y;NP?HXL\Y7:%505W.SS&?WL',W=K'!Q0R*6/H[PR
MN4GC(18B#AN*+#I,2LP9.G$DO^?=CA<DI1+-D7,Q5TJ1KO<6!\),6>"B**/'
M]6!(A@IJ(O*)$\I.1[3V$.WIAZ&E7VK]@55JX!Y*NUO0F,1D<3QX'#7(9%I'
M+6DSI`4HW*B5MS4',Z3,EO)J,DN5Y1J?_)%X?`(BJS"E%4@A#^-PE#BEK=C!
M(J"R:@Y-1>*0YC+0>]81RJYC)[:P]CU1).XU]Y264`6_E9Y&E0]8D^.R4K$E
MZM_\DSE))7:VOT,:8]EB?*!N:U6?41,I'W2X"\('_(@8JB).H(NUD0_80=_>
M8HAPL"P)TBFO@T3IP:OF-KZ.>"^=$;R=LALO47CEPJL6J@:K\`)K(.X`LNB8
M1JCD$1:WBW(]GJ&$,QLK`Q>+V,P+)56-E\!?EVP!YS)=X<+X!>55O(5=:S)4
MB:W6.+>&7.LU?NL],^X:F2[QR^^_M3;E&>%%BJQNDTC<!="/$E@<(QL&1MO=
MZ\C#`OC!QC@?!O[CCL#!=YEKE:^[H6N3P,WJ6U[;HF@U1X^[G!!*M2HJR8PM
M9!B][%RSAFW3H&GBDQ;E`*\(0(C>;.LD\%))*B?W;_%S!K%P8>595ST?HO->
M#:SAZ>#L#*.WK&1_^05>K`+6>P58P6U&,(-^6Y1J?MV>_1SDU0*TV!.J.+N`
MK]&O(T2SG9E+UJAPF96D/:[H'5>TCK(N7S(])3.9F;6*S63&6@3FO3_=V,S9
MJ.2ZS$]>LJC&?<&T5&M@EI&J26';1$.>BK;B0NUUNAH8[);?I5'8:37SADR!
M.7/.OFX)\&+4XQ'JL$6Y8K^^K[3VE\)KD1$,I-=HH-S/=#3D)V)B["BY.0$'
M%@[%!=B6R$JX*:20QH6TX<TBA1/Z;N;WPH&A0+S"27#,)[-3A1<+/B"78_;T
M,.=)A4BSP9=8I"SL!TL>WGC*.TOT7G+=%X58DC&]RJ-$++;"$*CL^FL6;+$0
MK'AOZR?>7QKXIU:K2DD(GBLB:+U].W/`.3\:GE'`AU>O^&8J.?VGW(XVO5"S
M2&K/4"TZY%"[O++>$U4*92]649WWWR>)+CBI^%U+SD@E^Q'2`AC]!N6EUK8,
MM6?2SY#(M[3K_J#;.:52@7M801,+JW,">2#(8-^NU-GLV*28+\B9-</H&R)Q
MY*ECP3$+)OG9OI!5&ZM\@1QR?^^-TL!ZYZ!11\<LUL@":N6Q=,>+^=$2&BT&
MK">/HE?!YS\*C*%"!P55[&C""82.DT;\?EE\\#.7)+*#V';$V6&&*VNHW!#K
M.>S/L1NBO&;-8"M5WG#Y<9CYV,TCSX>"W1Q3=M*#I?(#1^1R-I'\;L2V62">
M"RLYVC0))Z0<:H\64.6$>#_2#A%E?H\P.T:'^=-/*9M5-0H\7:1LE]9&&D,D
M\>(9H"MU,-O.CH@URR?P5RSB/R,@T#D=2(!=6<!BZ,*>LY*3V_ZN'4XF*(JJ
MC/;[1_PPYJ`U=QE"A\E:>YMR/T8_W\?H3W^QUJ!?P\EV%YTMQKB([6]66!(W
MI+X,AS>9,-?#.A;;5'O$NU/ZM=U,<5Y2X#@/W(N51C4[D/S2%+V<GC$X5%^\
MS<O(N3KR"NG)"FME8A8Q(0^::TOF-78!7VP75*]'RU8QQ\G39?0:5L@`**K0
M4<S!P7YV%B-L37-.TRA.!.**-KEAKLO<MKA4H-/)$W$`D(6N/)#R"-?N7UYB
M43*D7Q]F5TD\U<P2YF+^7I-Z"DS#SS-#68E,5")?A/!9E=CNL;0%7I*3:="!
M#JH#U9-5[N*41+A7IJ+E2"VM:$YN]'L+SK+JNA&B^D*!K:@0?IW`GD7XZP06
MDZ.YV!(_)R5NGZTW2K..]OEFCSZ_MGU>8\#0OK:!/AOZ/\N>'G@+.&]07]WT
M:^M9Y6WH?\CK[V/\OY,R;,'<'UP-\UQ^J0*VZ)CJCRG^0K3XH\K^<P(:;'XY
IOQF;L1F;L1F;L1F;L1F;L1F;L1F;L1F;L1F;L1F_Q?@W%`TGJ`!0```:
`
end

