[PARPORT] [patch] parport-arca-16 (fwd)


Andrea Arcangeli (andrea@e-mind.com)
Fri, 9 Oct 1998 20:59:54 +0200 (CEST)


This is the latest parport stuff developed mainly by mine and some merged
stuff by Tim [PARPORT_DEV_EXCL - LURK-TRAN parport_share update] and Phil
if I remeber correctly. You find it described below. The only not needed
thing in the patch is the spinlock improvement (that I consider as a code
cleanup and I couldn' t resist to do it). If you' ll ask me I' ll remove
it from the patch.

The new patch also fix the new joystick parport stuff. It was not checking
for the parport_register_device() retval and the joystick stuff need to
register the port in exclusive mode (a simply a cat /dev/js0 & would stall
all other pardevices right now). I am pretty sure the exclusive access is
the right thing to do for a joy device that can' t have an high latency to
be useful (it' s not a background job like a printing).

Patch against 2.1.125:

 drivers/char/hfmodem/main.c | 12 ---
 drivers/char/joystick/joy-console.c | 4 -
 drivers/char/joystick/joy-db9.c | 4 -
 drivers/char/joystick/joy-turbografx.c | 4 -
 drivers/char/lp.c | 2
 drivers/misc/parport_arc.c | 7 +
 drivers/misc/parport_ax.c | 29 +++----
 drivers/misc/parport_pc.c | 28 ++-----
 drivers/misc/parport_procfs.c | 39 ++++++----
 drivers/misc/parport_share.c | 127 ++++++++++++++++++++-------------
 drivers/net/hamradio/baycom_epp.c | 12 ---
 drivers/net/hamradio/baycom_par.c | 12 ---
 drivers/net/plip.c | 5 +
 drivers/pnp/parport_probe.c | 2
 drivers/scsi/Config.in | 2
 drivers/scsi/imm.c | 23 ++++-
 drivers/scsi/ppa.c | 17 ++++
 include/linux/lp.h | 6 -
 include/linux/parport.h | 37 +++++++--
 include/linux/parport_pc.h | 2
 20 files changed, 221 insertions, 153 deletions

begin 664 parport-arca-2.1.125-18.diff.gz
M'XL("$%2'C8"`W!A<G!O<G0M87)C82TR+C$N,3(U+3$X+F1I9F8`S%QK=]LV
MTOXL_PK$W2221<FZ^=[DQ'645*>.[;6=7K;;HT-)D,6:(EF2LNQM\_[V=V8`
MD.!5<N)T-SG'DD!<!H-GK@`Q<";\_I#9EK.XWY[XUAWW@^WQS/2W;:\YWIA8
MTREK+(J>'[:;]'_5\V:GV=YH-!JKZE7>^18['X>,=5C[X+#3/6QWX<O!_D:]
M7B]JG&K4/3AL]T2C-V]88V]WW]AC=?'QYLT&J]C>,#1'-O_5\7]K3O@=>\4\
MT_=</QSZ_,8*0NX/H=@:\RH6&FS3]C8-!BWI'V,,>O!\SN<>/#S[>'IJ))]9
M#G3A+_#I1B-Z<'%\>7%^>3U\V_]Q>'UY?&9LU*-G+;V'ZIUK3=A6C;W0*:T=
M015KRJI9\E\1$37LPN?APG=8^VAC4+BPL^G<G?#Y]MRTG/(E3M8L6^S\FF7+
MGM\B!P#[I0!(=I.%0J<=0Z'=VS<`&G7\W"4L?#/A4\OA[.IB",L#K1)%'P9O
M!ZRW`8NXO<4:3_*/;6UO-#8:06B&UI@!4`AZ8:CP)-=^9CH3F]<V&G\"@&#P
M)6=CTW'<D/D<F/#'M)6=CTW'<D/D<F/#'P@IF+)QQA@"%;NC[W)I`(^9.F>DPU^,^C.$Z-**&B\8G
M((`]U82P=Y`,.1\B7DYH:=[RA9>:#ZW"WJZQ#XL``KDO!++B>2B#7N.UP^]#
MA?-GGJ=#MA?-GGJ=#N@6DB_(J@+[Q&L=P%V$3AELAPY[!)$J&$__.,>?<2''=2!(=BRV*
MHY#PA/B>?KS\P6#0?ZU6`RE^,JK$2&E:ZJ6T]'\^.8UH2;"+::O./I4HA-_=
MAP"6[Q:_-,:N$[@V+U<,^2W*%$1)BTZS4Z0DRL>)I?V`M?<.>^W#=KM46>1W
ME^@&E,9>PG[T=G?1?N#'@82KXBLN++*Y\FF#$&,Y4[=)$EF^[IN*#E:51-0V
MU>+_'@QE600`\:`EOH`9J'_ED;+MU>+_'@QE600`\:`EOH`9J'_ED;+HT@9&J$>CUPB;:6[0XZ4)1G`"Y+7BLD7`
M5<':<)R,#AX!1:J]M5<':<)R,#AX!1:J]-@SCVNM",-'_E\&/NBJ'7G?_`*&''U\!>D!``@SP^XDA
MMWJ$KP`U8,@WW`[XN@"##D?NC6].[Q^!,[W1VG#+-%H7=7FC?1GX]![+,=AI
M[R$&\>,K8#"F(P&4\.:)D;CN./]%U3>M[R$&\>,K8#"F(P&4\.:)D;CN./]%U3>W@O&VFH[ICPO1F*U8@,#M[R$&\>,K8#"F(P&4\.:)D;CN./]%U3>W@O&VFH[ICPO1F*U8@,#BB@5^>7&#
MK%O>+8S+LKWD>.5=3<MUP1FOPU\`,`(,7-/CRQ/T=U^BNVM.V-1WY^3A3LS0
M9+89CF<&"USTBN>+(&3(7!,*IB$;N]Y#DYQ2Z9(NG,"Z<6`Y4`M9+89CF<&"USTBN>+(&3(7!,*IB$;N]Y#DYQ2Z9(NG,"Z<6`Y4`BH@R'M9+89CF<&"USTBN>+(&3(7!,*IB$;N]Y#DYQ2Z9(NG,"Z<6`Y4`BH@R'6@878
MJ.M>*Q`:QVU5=,PM_P]#/-L"4`VM"8P9^@N8AD=X"]@MJ.M>*Q`:QVU5=,PM_P]#/-L"4`VM"8P9^@N8AD=X"]@6_@4@_`E84!.^X0[W
M+>C+_Z-*/515(U$!XSK5'34';'W:J"==:"1FZ5LA'R+!F1X`KMEI@?/W)Z`K
MFB'`#;\?"9^[W4(I;K=W9!`,-7$0[F`DB<0:LF1B!7%10U2Z-^<0$8FB>B7!
M*2/JRG+&0U@(&'OAA%%O/%&X!O#OU\3]_9JPOW\DZN^?`O3WJS"_TS+:+5:'
MCX-$''IR?O9N\/Z[2J5UWVNUX_(^/+B^/#^E\@ZJ6PTN&XUXX*&SL&U<'G\X
M73CC1P(Y'<;)/C]3+I@,7E&%,J2&PM$&>^OR@$$L.[.<&Q35+Q(>AL9'L(',
M58N\]4Y+`?U/&4U"<`D]LF>O(AT_N/SG\.S\K%^C.A5MOIH,5+T:QIV5*02*
MXC?UH]N%S".O)OT0,`\V-P'^:)U<!RN,X"?4:+P.K/_P**4#OS$2#-B+B+H/
MYV_[PXN3_LEE3=KA`U208(CWC?8.34VC>&R;UAR&"=R%/^9!5F-([0"K\6[P
M\X<^J`T.=C&<F:AB92M0.YSA;$3*8#77&F@`_UCP($S.OPB-!H75C/)=R(,X
MZ!5,UAK&BDFNP">,LP%]`$MZ!5,UAK&BDFNP">,LP%]`$3@MZ!5,UAK&BDFNP">,LP%]`$3@N@RZ2\A3%KL*#4`5KJ!3TV=U%6JGR/1J-1RH
ME3#\@II*A1Q.+"^>0IWP(*@HP$,TVKK`8)6"+NNH)X#ZKMXEP6B_;;0[`*/]
MGDR!Q0D#%J$#[2<Y=<"7A';13$$>QBA=E=^?2#N1G"89KQD(2A814LDOV-FA
MZ&>G$]NL7/8:R0<I"Y9/O:%IG>3ZIX;)F#5]I,=:-V]-K\Y;TZGS'NG3>4_A
MTGGY'IT6,[0-3++"'MTGGY'IT6,[0-3++"'U@U3)V>NLN&S>^XC2MOVC:W&P09WUV$L!X!F[H^NS@!
MF_9@<P8.S60)JJBY45^W[7YG9Z>!N)_D=</8%J,_QXMPYOK!(;N863;[SE[`
M@MDV^Q9_6EY3%;SQW)$+)MR=OZ9FT;]K:\Y^,A<W,_9M:,W?C!]&'#3\;7/"
MYZX#]9N+V]<"NAVCW07H=F2&$SHQQ]"?"QX9!ZUK!405IDX;WP#"[,6$LV\%
MSX-P`D:_.7N=?12:P6U`3_1G9C#?]D+?'/-4(MSX-P`D:_.7N=?12:P6U`3_1G9C#?]D+?'/-4(WQ@N:(^2_<%M"QL:E'/4`#&
M88)/,HV`.^9#[A.0'L?-?1*)%CX5"37T]WMMR9MT_5ON.]S.[6H.Z^^.Z9%.
M=3S/>K:-1&UN?QJBJ4_RS+M=3S/>K:-1&UN?QJBJ4_RS+K@DL6.&?P#(^G$VO?X9P9>4+;W6E,LJ/+85(.+
M$VPSQ.]7C.VG7#<6D_#TGILW_F+/#4C2/;?)U_'<=(I%V,,];XVH1^TG="FV
MV6M).Y'N,O;"5KE'JWR*SW($G\@))%N?UU-DZZ6);^\+?NPK#-/,E.NTUB37
M=)PRH#6RCIUTFEC*85I_A"]RS?XG7*Y>1WCNH/*2+E>C?W9^]<M5@>.E,^$I
M_*XD4W/=+M"04]!?#";\\;0O3%F;T-1M[66],&]<X(5YXR(OS!L7>6'>N,@+
M\\;%7ICW&3D&SW?'TV!-3TS67<L;2]5=RR-+M?E\KTQV5.Z9=2"(!..+'UVY
MF@I.T!X6S8<5#?T'MH609N)@`>;*&OP>UL9)`ND++-81HE+;!8=V4O4C(0KC
M4PL<N2W\:S#<JPJ%XM\:+:93[AMREY;%=L%VP3`)("@J*#567Z]:I"I!ENY,
M&^;?Z`_.?CP^/9+E#E^BWLRJ3:R0$4S<U<[:09&5$_VY]D3TYPG-AY%NDLJI
M;=X$N`(@U>1(_D1'`<"]O4-/DL,J`:4PA3$L6'`HCKRTC&Z+U7?WC%Y/*!Q4
M;&JL5W(6I,MNW-!EX$K3&E<"SW*&X&+=HG`&,$+U!1*&)8:@)%:34$XEFIY\
M=WK\?GAR_N$XT?70O27Z*QI3O_MX]8L(XV%6]0I,ZWMPI3&A.W&=EPP9#0S`
ME"^2C&A'!\2=,J00R0G8B(_-!47=T)J.0DA4VNY2!`S85!P\\$6>&,]/`("<
M&^(<<&QBB.90"?/),Q.]&^:"^^:#H841808"E3AFM:::T<^(EB9U(O;H&Z8_
M-NDW>D>8O19-B8^JI<P&*#9",5G=B&$+ZA;M)&:612^B+-M/9.\$=[&$_"KJ
M7<(U/WW#1/Y&KHENA44SHT#.I=B1%;XZ'@[.KON7EQ\M7<(U/WW#1/Y&KHENA44SHT#.I=B1%;XZ'@[.KON7EQ\OK@M7<(U/WW#1/Y&KHENA44SHT#.I=B1%;XZ'@[.KON7EQ\OK@UQ@D//Z=17#0`-
M7"\`Z.<9^9;>HR><*9J6Z)-XEF5:0V1C8A$F.2=:_I3^02D[L_RD5%[,5"E'
M*QU$42_7052/Q*0(*"EB%7B*Z-R0DG6(ME!Z<TJP4;<V8I8<*L$6/Y$`\(1#
M%^0M5[RIZ\/82U&,6&M%^0M5[RIZ\/82U&,6&U8@QG&VVO955EU';.:JKJ.54TU^6RC*OM985/W,)[M
M*/^H.)K6GV',&NF/9!!.X:S_1]2$/#*Q,3#\`3RSG)`9'%857>_L&&T,8'<Q
MS:<[MS:<[FS@AVPI"&MS:<[FS@AVPI"&7@UGLJ21V?4RH)%"(Y!2$2&V7,MVA^=D<:?0>`(C(<N*-3&
M,HNT,,#?CM0W)M,HNT,,#?CM0W)GG@X5P$V<*GS9C;]%8P_JHFK:GP_:/IX9?)W)2'+M,HNT,,#?CM0W)GG@X5P$V<*GS9C;]%8P_JHFK:GP_:/IX9?)W)2'+T5@D>QV
M&)VC@_F"JI(^0GKL<.XIDXX%SF*./M&)VC@_F"JI(^0GKL<.XIDXX%SF*./X6S@OJKS*XC[TXH'8^S-,$3XW>6NPCL
M!Z:F`HTHS0"5\0S8^77_$&WET@*.0Y\HRJ@`T(S!=!AH*M!Z:F`HTHS0"5\0S8^77_$&WET@*.0Y\HRJ@`T(S!=!AH*7@ZM>"GWIW<"6Q3
M=-C:4?OY0#MI8=`?\/=(E<`<1ASC,VU"<SX/>`M=-C:4?OY0#MI8=`?\/=(E<`<1ASC,VU"<SX/>`AJ@VJ`IS8"?>9,78K[,)P"
M"YUR>.2&/%6K429?<S(<*^HL4L#)Q_)I0D7GUEB:%L%[135Q+@\)DO5P`7"%
M8**W(K]4;>\8[/V[B^$/_<NS_FGD\3RCF$XFI]N=CCA*BMLQDI&!YP,`IE5A
ML#8E`YY/ML#8E`YY/-@W%PUK,73&DP`83`G0R,^5)3N&#DV'S&<ZJ*;9D,OX9:G`Q3#3W
M6)/'SE59SU1#5+N>@>A%$ARY3/["$5OPX';J/I78@=<<-NF+N6QL<T`^UG7%
ML$`82//)Q<<F2WI(T8RR$XE=354:FI9-KF6B1)P:!69*(4P\C(O%D5+Y+-&+
MJE-F)DN8K#7*GX1:\UA>FF/;#`(MC#@Y/;ZZ&I[VWQ^?_'+$,("'YXNY\%.7
MK@]$8FJ@$D%]AN<BB&[Q6\Y5A&OBK'.+3ME&>=:$OE\X22V9T:5TPB57U7F%
MNNS1^'SD^F/H0H2)#5M*(6EKB%\%%FJ)(_$90&A,$EM,[9U=]6Z`\!U)D&]9
M%37`\*?CR[/!V7OJBBS$YG.R:Z"N%Z!A+6%:29B>_=N1PJXEE3Y]-6!%W,EB
M:TC#(\VWM*-;M:TC#(\VWM*-;6JVPJ_G4ESG6@QU"T\$N:CUY#(R1_21ZE:>@SGFGD"-4KC23
M6?0(0UC7:,B-+/%`%JX]>-)X1LAA_![<H`#\-B8'`/45F\RFT#"5Q&*^A=#S
M/:[@(?H8<UP$T19\$U#^2S[!)11;N?HRQG&60`]&62J&2Q.K3HAK.'WF3=E?
M?[%GMU-9**D21`W.WIT+FGP^7>`N5NA&$V'VPK_%?+N<8_5Y4`/+'\[`2X=8
MU+9')H3#*>`9+)V`Q#W?W@'F!6023S,XP#;MU+9')H3#*>`9+)V`Q#W?W@'F!6023S,XP#;7@2%)4UL)78/>0R0R!0).HRKP
MIBS/?]FD"$"G;;XZ/I"W<!K(8CA*B,AR73!9\2"52/:(DYCLXIER69#%J(B#
M"13RS8\;W\0D?H1Y<PPDB?W/35E;0N1Y(1RT^%;AF$Y65'2Q^^M55NYBQ`OW
M15C<!'>26D2Q3!G:J"3"E&:NHX?KF.(\N"559?Z"4/SNC(?*!HK<=RVF068B
M],RXDJ#=#ITJVM^3&?PB8RI/GV8U'[Z?46!/Z>QH<7@@`\!H/_'X\OCL?/!6
M,EM__TNZIIV]`SPA5.^VNI%K*A==GDM:2Y`35JB<L8H2:7UQO.A7M-SB]1CX
MGFB`!7$#_!6!*^H"&]`!FS24DI76QHS*<]1C,@HU05HV7KQB_Y<G'&MB$`6(
MA%\,JW2"5DB4B6.Q=/"ZN[L3^2;4!KT]-`?B-#$MA%\,JW2"5DB4B6.Q=/"ZN[L3^2;4!KT]-`?B-#$6@R:_-F\YNO0!M^^`+V@:
M(!0CYQ&J"Z5NWN`K<B*`KCP"`"55$T&7GB&..8M5HD6N)(K$-WVUU>\CY8D)
M3O1VC<X!L&*O9W34*V.51(.X4[TKA;8(/968;.D+INHV*H\#47UE_6(6)89.
M<R#>>B&!K:O,(P3"[,4+J7@+TI!8X9FH2W4HIU,3;A/^!8,ZF,I<R](,E`WV
MN#-!8`%>`G`N[`F;N1[X([;]`/;9@\>R\8A/<8;2CI`9U\ZZU6)[+`UR13\)
MIPBO)=/_QZ11P2UPB(38)MIPBO)=/_QZ11P2UPB(38)0@PFR'3^U*98F*)'`0\]VV%:?L?VZ`R_A"W$\Q)
MG/I,D$G.TIF[%+Z)V`00VP@@9$H7Y0?H1;")=Q72-56J0\=*]$3`I%C7E0]7
M6#UG3)&2N%J:'LT7>!>M2%,['UK&9WE$-(G<#"Y%)>WPA.K2B.J"=W0G%&6C
MDCIR&E=>N5F1VJO0G*/X!.HG17`2'B4TQFV+"$MT54B/,&1$CC2%VIP_T0'8
MA@#BI=0P8_#9?=>.`H5`N.V:+R-7>4AF1K[+GK([]#.T*!GUNS6=6NC'D=)%
M+Z+%ZKW6+GZ2TF44\7'L%NP(N?84.H""D,$3>:-*(@*;<X_$V1&-(\^+3BN[
M_G`M_G`DMM5@I3&]ZP:<`AMF,O%63A0XR+-52:N"/;]@'8RK9!M_G`DMM5@I3&]ZP:<`AMF,O%63A0XR+-52:N"/;]@'8RK9!FVD6OU-Y@W32AC
M!PR-#-IC]6KVC7AEF]/91/6>-@=''M!PR-#-IC]6KVC7AEF]/91/6>-@=''E@NY>CQ)N?S;8[8+@O]AR%Y`^KM+3&A
M$,$+,CX,>#@<66&U9;`7.KLIK])2?F;W@)(GO4XG<E`JGUAD:C5;*Y-5><97
M4O`WVMU/^OF;X_?'@S/:$:&3B3MMVCSI[<5)777>:!-W*BAV=9<.]S,!5B2_
M@M&ZO_VWF(5$A/[U[()NLR^Y,M@M&ZO_VWF(5$A/[U[()NLR^Y,.S1W@-$[V!$QV"H1:[YCCOAPD3_(?(MH.9R
M9MERVQY)!PV"M#^5%2_P-63&XPK%>[7B1,87:\V&L(T7N(\EMK4"=\Z7Y$_-
M3']N0UB^KHW$6>39FCQ3D[4+GV$*U[.$:K][FUQ%TWD8N9,'7"JI"0RQNX1Q
MQG+FOL33&-R1+B7&KQSC#6<BU'Z(DH/:F;;PV,)KLNJ9&W)*P2&\$!DX%<OG
MDQHR+G>KV>'AMH?GM(LVF.,*!=O*V0H%F\G9BMDMY%:O:`LY;IVS<;RK;1SW
M1%8!TW,M[6S=M1%8!TW,M[6S=BHLC1@EG`0>*KK&0E\B(0O5F*_W(7DE3<*'%D;QN`G?TY&]U
MPX4@K:;E0O$`(S07XI67T00E*0_O"(65F_2\D`?[A<4T0_;\FZY];X![C\!`
MS_,Y966U:1<C9&;.?7-BN=LC\V'LSO$D<2E@<NN7X*>T?@F<2MOEW'K3+D-7
M;F<Y8-O3WLEHM5MBQQ*_[$JX/>TU,/JU-D!2R9TVZHV*)[C:1G65NN&F\913
M:R1?S\M:R1?S\6YY5YO@PZ@^B?S?%H"4#L-J$IKHJ7<C6KMB3V[UF[TXHC\1Y<:@`F=
M1IOPU1>CL3BI/-=VWZM1(>VUJ^;M1IOPU1>CL3BI/-=VWZM1(>VUJ^;B@AI\YJV^E493+MHB&MJL48>PQ_[#YIH6
M*KI.!U/L7TJV>)<_06_]*>G5K]S1EUS]T]4<6%FF9_&C;1V5``9]U[I_;M^3
MAAN-M2N*Y,%RU)SI?['^_7EP?J3C9&W%".,_2C%2_4<HQD3]1RC&1+LO58S4
M6;EB[.[LD5[$SZ^O%H&@@]V_^;*OKZD*Q7R^@C+L'M`M8=W]Z):P3X_2?:R"
M/V<@M/V<@37@75Q/"61_?O7O%#G9;VE5BCU<NB14T$@S0KOL3Q6OJN\J7*;H4"?5U
M2$BKL.2&-"FM6(365%ZZPM)=1*&BBNX]\1Q/?XEA5'R`-*=M2$BKL.2&-"FM6(365%ZZPM)=1*&BBNX]\1Q/?XEA5'R`-*=F@M2$BKL.2&-"FM6(365%ZZPM)=1*&BBNX]\1Q/?XEA5'R`-*=F@3XJJ5F@B4I:
MY)P>[13IH)QNLMJGVXJUSP&=QJ._0O4D7OS!'G+/YAC)%R&HE<T=^>9>[O;C
MZELN!_U^G[4[^SU&`T<7Y>A_,Y=84H9(;!1^O5%;T3`L>D$MZELN!_U^G[4[^SU&`T<7Y>A_,Y=84H9(;!1^O5%;T3`L>D$C6-BAV@3+!58P
M#JSM$]>96C=-RRG`5+)2`9SR*Q4@*;]R%D2=5A&(DCWDX*>C721";V?17\0/
M*))?V>8_Y&EAN5B;F'C8=#;9;T<4BZ-:GG!O&/H6I338R\'YA_[[M*))?V>8_Y&EAN5B;F'C8=#;9;T<4BZ-:GG!O&/H6I338R\'YA_[[XS@0NT"@
M_6MPP8@D=G5R-6#!PL,5>ZF.(F/A\.+BF/U#*V"IH3>$%Z?1I)IEB"*/$I>6
MO63L@D\P1SIF_8N+!MU5`:$@E*<''WY__&-_>-%_>WQV/3@!#K585_AZ(]>U
MOZ`K)'QJ%7(*>7-A+X*5#!I\^+""03!*,7RM^;Q0'<85RF";J%`&V43%'+AV
M2^%*K<NAVMZ31V;ALW,@U5WDZL_GPYD;A,&OEKS4-NGTEF5#-J%QI#:P(VD*
M2X*4(F467[VK$X3J;457K9*V:OOV67J2E$K!;"3PD]-&HQ87G^`F";EZHP5F
M&'%?UN?@`(TP8[G$FUOD=J3<D11938UM6W&&LPDB>')]25G:_LD%^TVOMIT,
M%)%*;R0V::I6K99D(V5O1:5H*MX02'RH9?E-[SXL;%ZM':EI_<3I)8#`G'*D
M7-40;P-$F=\,#>)5*.PC>4[&<9?ZSI6H4D:CJ$'GN#3J*FM11J3)L=AK&KO.
MNEO?_ZL6O5V4&_X!(<\GAVQJ`ED3<MNEO?_ZL6O5V4&_X!(<\GAVQJ`ED3<9@-UU99=/DF&S/E.2[<;8BM*.ZP+6E7
M/`H!Z&T(UR4.X$;2L^C,(BZA2.%I46(M/`H!Z&T(UR4.X$;2L^C,(BZA2.%I46(K.N8E0D3YAE@D6MX(6`B*:OC=\54?
MN`V_TD@%QY2RQ.C>:>'F<MN`V_TD@%QY2RQ.C>:>'F<C@.?7!*00A;]ZUQ[:A$E7F>6:[*J$*9*DM4*%-E
MB8J/MKS4>H4JP]OJ4)7!9Z3**M`PH\,J*Y47M(J4%_80*2]<SM5Z2A]4)F_S
M5%*J6J22TC1G55+E2W119842JL3[NDC)YX@\TT4^,9VTR+._4>2!D/]!D:\(
M64=O)Y;U-`12LEY9(>3R7;1M\<OVFK.4D&<KI(2\N$+JAM3BBFDA[QSV,D*>
M;5WYX#JBU0YKM0[;G<.6MCW3HQLIZSW]8LIK<1!)VZX(/#X.F`E,]+D3V@\`
MI@=QKYK8#<-#S`$"8,3%/4"LN0,K/Q8'\^11*I0(<XJ!-2XX!%(8.3)V!21S
MV0_B=&G9$_N!ND$6<QP19&WN+MV0_B=&G9$_N!ND$6<QP19&WN+6@74YV>MV0_B=&G9$_N!ND$6<QP19&WN+6@74YV>H@D:;""OT(0*G"T\=;3"X_Z4CT,P
MUEOXYOB"&R#4,`\:"TA:NOXM0':)-R/AD6U`AH`W#B'IE<?/#>ID\!+?0G.L
MT#+_O[.KZVD;AJ+/W:\PD]`:ND+3%FD#)(0&#MT#+_O[.KZVD;AJ+/W:\PD]`:ND+3%FD#)(0&#T@30Q/2-*$IS6A:(DK#DJ*)
M_?K=+]\ZCIN5\5*UL6\<?]Q<7Y]S6.1_R`8\[F`?8B:Y`WF,F0&_FS-S8EX4
M#!5Y*9X)Q359/2^SQ9,Y@/D'0W-J^K_-Z81-?(<RR'A/%V`&Z6=R`M#!5Y*9X)Q359/2^SQ9,Y@/D'0W-J^K_-Z81-?(<RR'A/%V`&Z6=R`S3Y@C0F
M:M:9W@DZCS'7DET>/Y?)U<7EW>)-_.+F_,X$TO^/MP(-D_BVW!X4@?$0I,>,K\
M,=.QY="_I'&L+$%1V[(J:)CN4*N4.O^>ST=M`3PRI;T[3ITL+66*H.+!`JD+
M>.P*#]>VU%1[J'6]:2E9*L.M2K6OO(9-7XQX='08MR\_->&NP?C#T3`^&CMK
M,!ZRELUPM%8?H7=:=V]]T!\U-1:.U^4<6%^P8)_R"6!O+4L2+->S!C6C%B%/
MUC)?FNQ8R59H+0=7'K'DBMO*+'2YIFBI^O-\0P$"D$*L1M<X#57_0"8H_X<&
MEJ\@3N<Q090DF0S3R_1I9DZ6[S"Y/)&'AF\*:21XR,I850+GISK"V;M8P^!X
MURRT!,$W(F]A@@Q>!Z:1(L'=\[^R&.?PJ.`BIM,2.1'=?,9]-QH3B&TXLIT7
MOH\%EF;MOH\%EF;PE@8#O,93AU4$`<T2G":_RE/#J2OTVK3*5^`KV5>P>!FBX=!+J>]_
M@+@!UC2YRZ>9=2R20\:TO3)DNH_P^@`_P)JIQ`=>E2G$/^CJ>4`C,M@+@!UC2YRZ>9=2R20\:TO3)DNH_P^@`_P)JIQ`=>E2G$/^CJ>4`C,O.@9C!@
M[#M[#M@N>UL]%[?E&6A?".N_YHVU"ICIUG`BS6ARTK)0"$;6JKB;OB"X$,4[%"6
M%$]Z?&%`52)307-2F2#D<WC0Y&V1X[2"8J7PTDL>_'D&3AV+2/0F3=<'K-C*
M@4M#MVG/3>%^.)$KNCQCUHCZ>/A^%-=Y^V'0I*1#"1R.@"Q#4HGNPJ],`KV0
M4-N9Y"49JO4HK0KMAO)71:];"'I%ZB=)8+&B1TSJ=)>:U)MET@>?S4))3)MP
MMJN14@.=D<]5UJ[(I/2",BDU.*8'"`O\MMJN14@.=D<]5UJ[(I/2",BDU.*8'"`O\S@MMJN14@.=D<]5UJ[(I/2",BDU.*8'"`O\S@IUS@7QI6M%;A5T#1[E0O7=J6#B
M,53"P$JG,\W6MS8>)^M,53"P$JG,\W6MS8>)^0@7M^%>5:AU]MI0`?]UEBNEG$U/'P]D$97$3L+E;^(
MIV)9A/D4%GT^>^%-FKHTA-`S1,W7*[1[3-MZC/GA3W(W[R#X4U^RV0`><-4-
MQ#;Y@^N4F9D;[]P9T-Z,:;=F9\><7UQ_O?AT=G-QCM\VU:6;=KKQR<D@^B\#
M>";&!F(R<(4:1#[?;M^+*QO:1YU.W#3O7.4&;BCB-P&_6Y?F,5O!_X0TN>"S
MHB"FXNC$E<VZ_:':%Q"7WU(B0&RXQTYYEF5X(),L\Y\8.>&9:E(\-/R7I\?8
MOC%TM3:W"5BI8.M&,530RPK]NT)@XSC>*G(E*X$LD0NY(OW7'GY88$&@MU$1
M[^Y)Q,_8MP>4+M[^Y)Q,_8MP>4+SGF@RT#GW8G=-PW7]W+E>[>;!D%!DAC4ZH3>31M5]CM58*#
:I-X6G'U!:<'CC9/54^^SQ?\"#J-QI)5P````
`
end

Andrea[s] Arcangeli

PS. BTW, did you seen my smart-mmap-sync patch on the list? (you can find
it in the thread with subject "Re: [patch] Re: Shared mmap write-out (was:
Re: patch cow-swapin)-- 2.0, 2.1 at , least]") If you agree with the patch
I think it would be nice to have it in 2.2 also since Solaris and FreeBSD
handle that smartly too (at least according to Ion Badulescu).

---------- Forwarded message ----------
Date: Mon, 5 Oct 1998 02:02:16 +0200 (CEST)
From: Andrea Arcangeli <andrea@e-mind.com>
To: linux-kernel@vger.rutgers.edu, linux-parport@torque.net
Cc: Tim Waugh <tim@cyberelk.demon.co.uk>,
    Philip Blundell <Philip.Blundell@pobox.com>
Subject: [patch] parport-arca-16

I am going to send to Linus the latest parport stuff developed by mine +
some stuff merged by Tim (Waugh) and Philip (Blundell).

(my latest stuff can be downloaded at ftp://e-mind.com/pub/linux/parport/
btw).

This is not only a patch-bugfix and if Linus will ask I' ll divide
the patch in two parts: needed-bugfix and cleanup.

The code should be just well tested and repored working fine but I ask
people that is using parport to try it now.

All the changes are backwards compatible with the last parport code.

The patch include:

o New way to handle the pardevice irq. Now the parport_lowlevel
        driver will implement the hard irq handler so it will be able
        to check if it' s been the alien parallel port that has generated
        the IRQ and ACK the irq in an alien way or return if needed. Then
        it will probably (it' s not forced) reacall port->cad->irq_func .
        For do this task safely I implemented an inline function in
        parport.h called parport_generic_irq() that every parport_lowlevel
        driver can use (note that parport_pc/ax/arc_interrupt() will only
        recall parport_generic_irq()).

        This change is needed to support alien parallel port (aka Amiga
        one) without having to hack the pardevice code. This way the
        pardevice must know nothing about parallel port internals.

        The good side effect of this change is that now all the time
        parport has an irq handler requested so it will end in a more
        robust design. Now I also avoid irq to happens using
        disable_irq() if the cad will haven' t an irq_func registered
        (note that some pardevice could generate irq even if they are not
        irq driven due how the parallel port generates the irq).

        This code has never got one problem so far.

o I fine-grined the parport spinlock stuff. Before my patch
        there was only 1 spinlock used to assure atomicity playing
        with the parport waitlist, the pardevice list and the
        changing of the port->cad and worse all spinlock was managed
        with the spin_[un]lock_irqsave functions even if not needed
        (for example parport_register_device has to be run only
        at insmod/rmmod or bootup time). Also the port->cad could be
        accessed at the same time of the parport waitlist.

        Now there are 3 parport spinlock used with more efficient
        spinlock functions.

o The PARPORT_DEV_LURK flag is obsolete since January. Using
        it make no differences how parport will manage the parport
        scheduling (since just now we handle the scheduling in round robin
        using a waitlist). I would like to add a printk(KERN_DEBUG) as
        first suggested and implemented by Tim, to make aware the
        pardevice developer that the LURK flag is obsolete if he was still
        using it but other parport developers didn' t agreed because
        using LURK won' t hurt so now parport continue to accept the LURK
        flag quitely (but it' s clear specifyed in parport.h that
        LURK and TRAN are obsolete). Right now every device should
        use 0x0 as flag if it doesn' t need special things.

        As a side effect of LURK obsolete also TRAN is obsolete.

        In the patch I put in sync all pardevice in the kernel with the
        new semantical changes.

o The new PARPORT_DEV_EXCL. This new pardevice flag tells parport
        if a device is not able to preempt the port after a rasonable
        amount of time.

        This flag is needed because without it there could be a parport
        starvation because many pardevice could wait for a
        parport_release() that could never happens.

        This new flag must be used only when _needed_.

        I just put in sync the soundmodem and baycom hamradio
        pardevice with the new flag. These pardevices raised the issue on
        linux-parport that convinced Tim to implement the new EXCL flag.

        Note that this is not really a bugfix but this flag will
        help sysadmin to avoid mistakes.

o I fixed all pardevices that was not checking for the
        parport_register_device() retval. Now with the new
        EXCL flag it' s a must to check the retval (it should
        be a must also before the patch though ;-).

o PPA config.in fix (read the patch ;-).

o ppa and imm now will not hang in ppa_detect if during
        that stage another pardevice is owning the port for more than
        3*HZ. This should be not needed right now due the
        EXCL flag but it' s more safe to add it anyway.

o I changed LP_INIT_WAIT from 0 to 20. This is the number
        of times we decrease a variable before remove the strobe
        from the bus.

        Everybody can change this value at runtime using tunelp. For
        example I add in my /etc/conf.modules (I need 30 because
        my printer is old):

andrea@dragon:~$ grep tunelp /etc/conf.modules
post-install lp /usr/sbin/tunelp /dev/lp0 -c 1 -w 30

        Using tunelp xxx -w ? you can reset this value to 0 as it' s now.
        I increased it because machines are always faster and it' s likely
        to have a safe default.

The patch is against 2.1.123 but seems to apply clean also against 124.

Andrea[s] Arcangeli

*last patch snipped from the forward*

-- To unsubscribe, send mail to: linux-parport-request@torque.net --
-- with the single word "unsubscribe" in the body of the message. --



This archive was generated by hypermail 2.0b3 on Wed 30 Dec 1998 - 10:18:33 EST