Messages in this thread | | | Date | Fri, 9 Oct 1998 20:59:54 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | [patch] parport-arca-16 (fwd) |
| |
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/#'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=#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;+HT@9&J$>CUPB;:6[0XZ4)1G`"Y+7BLD7` 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>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`BH@R'6@878 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%]`$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++"'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(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+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\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&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:<[FS@AVPI"&7@UGLJ21V?4RH)%"(Y!2$2&V7,MVA^=D<:?0>`(C(<N*-3& M,HNT,,#?CM0W)GG@X5P$V<*GS9C;]%8P_JHFK:GP_:/IX9?)W)2'+T5@D>QV 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*7@ZM>"GWIW<"6Q3 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/-@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*-;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#;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-#$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)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`DMM5@I3&]ZP:<`AMF,O%63A0XR+-52:N"/;]@'8RK9!FVD6OU-Y@W32AC 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,.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=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\6YY5YO@PZ@^B?S?%H"4#L-J$IKHJ7<C6KMB3V[UF[TXHC\1Y<:@`F= 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<@37@75Q/"61_?O7O%#G9;VE5BCU<NB14T$@S0KOL3Q6OJN\J7*;H4"?5U 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$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_[[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<9@-UU99=/DF&S/E.2[<;8BM*.ZP+6E7 M/`H!Z&T(UR4.X$;2L^C,(BZA2.%I46(K.N8E0D3YAE@D6MX(6`B*:OC=\54? 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+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&#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`S3Y@C0F 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;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,O.@9C!@ 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\S@IUS@7QI6M%;A5T#1[E0O7=J6#B 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+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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |