Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Jul 2009 23:51:09 +0400 (MSD)
From:      Eygene Ryabinkin <rea-fbsd@codelabs.ru>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   usb/137191: [usb][patch] export ums(4) output report parser data to the userspace
Message-ID:  <20090727195109.E4574B8079@phoenix.codelabs.ru>
Resent-Message-ID: <200907272010.n6RKA3Bk035238@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         137191
>Category:       usb
>Synopsis:       [usb][patch] export ums(4) output report parser data to the userspace
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 27 20:10:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Eygene Ryabinkin
>Release:        FreeBSD 8.0-BETA2 amd64
>Organization:
Code Labs
>Environment:

System: FreeBSD 8.0-BETA2 amd64

>Description:

It is sometimes useful to see how various mouse functions are recognized
by the ums(4) driver.  One can recompile the kernel with USB_DEBUG, but
that's not always viable.  Another way to proceed is to create sysctl
node that will show parser's data.

>How-To-Repeat:

Try to understand how bits in the output report descriptors are mapped
to the buttons and mouse movements by the ums(4) driver with the stock
FreeBSD kernel.

>Fix:

The following patch adds sysctl named 'dev.ums.<unit>.parseinfo' that
dumps parser internal state in the human-readable form.
--- 0006-ums-4-add-sysctl-node-to-give-away-mouse-report-pars.patch begins here ---
begin 644 0006-ums-4-add-sysctl-node-to-give-away-mouse-report-pars.patch
M1G)O;2`T.#`V9C<X.30X-68U8F1D8V)A9&(S.3-D.#0R8V-C96(U-S1A-6$R
M($UO;B!397`@,3<@,#`Z,#`Z,#`@,C`P,0I&<F]M.B!%>6=E;F4@4GEA8FEN
M:VEN(#QR96$M9F)S9$!C;V1E;&%B<RYR=3X*1&%T93H@36]N+"`R-R!*=6P@
M,C`P.2`Q-3HT,SHR,B`K,#0P,`I3=6)J96-T.B!;4$%40T@@-B\W72!U;7,H
M-"DZ(&%D9"!S>7-C=&P@;F]D92!T;R!G:79E(&%W87D@;6]U<V4@<F5P;W)T
M('!A<G-I;F<@9&%T80H*36]S=&QY(&1E8G5G9VEN9R!S='5F9CH@:70@:7,@
M<V]M971I;65S(&1E<VER86)L92!T;R!U;F1E<G-T86YD(&AO=R!T:&4*9&%T
M82!T:&%T(&-O;65S('9I82!T:&4@55-"(')E<&]R=',@:7,@<&%R<V5D+B`@
M5V4@8V%N(')E8F]O="!T:&4@:V5R;F5L"G=I=&@@=&AE('9E<F)O<V4@8F]O
M="!F;&%G+"!B=70@<V]M971I;65S(&ET(&ES(&YO="!V:6%B;&4Z(&9O<B!E
M>&%M<&QE+`IW:&5N('5S97(@<F5P;W)T<R!S;VUE('=E:7)D(&)E:&%V:6]U
M<B!O9B!H:7,@;6]U<V4L(&)U="!I<VXG="!G;VEN9R!T;PID;R!T:&4@9G5L
M;"!D96)U9R!A;F0@<F5B;V]T(&AI<R!H;W-T+@H*06YD+"!T;R!T96QL('1H
M92!T<G5T:"P@:70@:7,@<VEM<&QI97(@=&\@='EP92`G<WES8W1L("UB"F1E
M=BYU;7,N,"YP87)S96EN9F\G('1H86X@=&\@8W)A=VP@;W9E<B!T:&4@9&UE
M<V<@;W5T<'5T+@H*4VEG;F5D+6]F9BUB>3H@17EG96YE(%)Y86)I;FMI;B`\
M<F5A+69B<V1`8V]D96QA8G,N<G4^"BTM+0H@<WES+V1E=B]U<V(O:6YP=70O
M=6US+F,@?"`@(#<Q("LK*RLK*RLK*RLK*RLK*RLK*RLK*RLK*RLK*RLK*RLK
M*RLK*RLK*RLK*RLK*RLK"B`Q(&9I;&5S(&-H86YG960L(#<Q(&EN<V5R=&EO
M;G,H*RDL(#`@9&5L971I;VYS*"TI"@ID:69F("TM9VET(&$O<WES+V1E=B]U
M<V(O:6YP=70O=6US+F,@8B]S>7,O9&5V+W5S8B]I;G!U="]U;7,N8PII;F1E
M>"!F-C,W86,Q+BXR,&)C9#,S(#$P,#8T-`HM+2T@82]S>7,O9&5V+W5S8B]I
M;G!U="]U;7,N8PHK*RL@8B]S>7,O9&5V+W5S8B]I;G!U="]U;7,N8PI`0"`M
M-C,L-B`K-C,L-R!`0"!?7T9"4T1)1"@B)$9R965"4T0D(BD["B`C:6YC;'5D
M92`\<WES+W!R:78N:#X*("-I;F-L=61E(#QS>7,O8V]N9BYH/@H@(VEN8VQU
M9&4@/'-Y<R]F8VYT;"YH/@HK(VEN8VQU9&4@/'-Y<R]S8G5F+F@^"B`*("-I
M;F-L=61E(#QD978O=7-B+W5S8BYH/@H@(VEN8VQU9&4@/&1E=B]U<V(O=7-B
M9&DN:#X*0$`@+3$V-"PV("LQ-C4L."!`0"!S=&%T:6,@=7-B7V9I9F]?:6]C
M=&Q?="!U;7-?:6]C=&P["B`*('-T871I8R!V;VED('5M<U]P=71?<75E=64H
M<W1R=6-T('5M<U]S;V9T8R`J<V,L(&EN=#,R7W0@9'@L(&EN=#,R7W0@9'DL
M(&EN=#,R7W0@9'HL(&EN=#,R7W0@9'0L(&EN=#,R7W0@8G5T=&]N<RD["B`*
M*W-T871I8R!I;G0@=6US7W-Y<V-T;%]H86YD;&5R7W!A<G-E:6YF;RA365-#
M5$Q?2$%.1$Q%4E]!4D=3*3L**PH@<W1A=&EC('-T<G5C="!U<V)?9FEF;U]M
M971H;V1S('5M<U]F:69O7VUE=&AO9',@/2!["B`)+F9?;W!E;B`]("9U;7-?
M;W!E;BP*(`DN9E]C;&]S92`]("9U;7-?8VQO<V4L"D!`("TV,S`L-B`K-C,S
M+#$Q($!`('5M<U]A='1A8V@H9&5V:6-E7W0@9&5V*0H@"2\J(%-Y<V-T;"!S
M='5F9B`J+PH@"6AI9%]I;G-T86QL7VAI9&1E<V-?<WES8W1L7VAA;F1L97(H
M9&5V+`H@"2`@("!S8RT^:&ED7W)D97-C+"!S8RT^:&ED7W)S:7IE*3L**PE3
M65-#5$Q?041$7U!23T,H9&5V:6-E7V=E=%]S>7-C=&Q?8W1X*&1E=BDL"BL)
M("`@(%-94T-43%]#2$E,1%)%3BAD979I8V5?9V5T7W-Y<V-T;%]T<F5E*&1E
M=BDI+`HK"2`@("!/241?05543RP@(G!A<G-E:6YF;R(L($-43%194$5?4U12
M24Y'?$-43$9,04=?4D0L"BL)("`@('-C+"`P+"!U;7-?<WES8W1L7VAA;F1L
M97)?<&%R<V5I;F9O+`HK"2`@("`B3R(L(")535,@<F5P;W)T('!A<G-I;F<@
M:6YF;W)M871I;VXB*3L*(`H@"7)E='5R;B`H,"D["B`*0$`@+3@X-"PV("LX
M.3(L-CD@0$`@9&]N93H*(`ER971U<FX@*&5R<F]R*3L*('T*(`HK<W1A=&EC
M(&EN="!U;7-?<WES8W1L7VAA;F1L97)?<&%R<V5I;F9O*%-94T-43%](04Y$
M3$527T%21U,I"BM["BL):6YT(&DL(&HL(&5R<CL**PES=')U8W0@<V)U9B`J
M<V(["BL)<W1R=6-T('5M<U]S;V9T8R`J<V,@/2!A<F<Q.PHK"7-T<G5C="!U
M;7-?:6YF;R`J:6YF;SL**PHK"4M!4U-%4E0H87)G,2`A/2!.54Q,+"`H(E5-
M4R!S;V9T8R!P;VEN=&5R(&ES($Y53$P@(@HK"2`@(FEN<VED92`G<&%R<V5I
M;F9O)R!S>7-C=&P@:&%N9&QE<B(I*3L**PHK"7-B(#T@<V)U9E]N97=?875T
M;R@I.PHK"69O<B`H:2`](#`[(&D@/"!535-?24Y&3U]-05@[(&DK*RD@>PHK
M"0EI;F9O(#T@)G-C+3YS8U]I;F9O6VE=.PHK"BL)"2\J($1O;B=T(&5M:70@
M96UP='D@:6YF;R`J+PHK"0EI9B`H*&EN9F\M/G-C7V9L86=S("8**PD)("`@
M("A535-?1DQ!1U]87T%825,@?"!535-?1DQ!1U]97T%825,@?"!535-?1DQ!
M1U]:7T%825,@?`HK"0D@("`@(%5-4U]&3$%'7U1?05A)4R!\(%5-4U]&3$%'
M7U=?05A)4RDI(#T](#`@)B8**PD)("`@(&EN9F\M/G-C7V)U='1O;G,@/3T@
M,"D**PD)"6-O;G1I;G5E.PHK"BL)"7-B=69?<')I;G1F*'-B+"`B:25D.B(L
M(&D@*R`Q*3L**PD):68@*"AI;F9O+3YS8U]F;&%G<R`F(%5-4U]&3$%'7UA?
M05A)4RDI"BL)"0ES8G5F7W!R:6YT9BAS8BP@(B!8.G(E9"P@<"5D+"!S)60[
M(BP**PD)"2`@("`H:6YT*6EN9F\M/G-C7VEI9%]X+`HK"0D)("`@("AI;G0I
M:6YF;RT^<V-?;&]C7W@N<&]S+`HK"0D)("`@("AI;G0I:6YF;RT^<V-?;&]C
M7W@N<VEZ92D["BL)"6EF("@H:6YF;RT^<V-?9FQA9W,@)B!535-?1DQ!1U]9
M7T%825,I*0HK"0D)<V)U9E]P<FEN=&8H<V(L("(@63IR)60L('`E9"P@<R5D
M.R(L"BL)"0D@("`@*&EN="EI;F9O+3YS8U]I:61?>2P**PD)"2`@("`H:6YT
M*6EN9F\M/G-C7VQO8U]Y+G!O<RP**PD)"2`@("`H:6YT*6EN9F\M/G-C7VQO
M8U]Y+G-I>F4I.PHK"0EI9B`H*&EN9F\M/G-C7V9L86=S("8@54U37T9,04=?
M6E]!6$E3*2D**PD)"7-B=69?<')I;G1F*'-B+"`B(%HZ<B5D+"!P)60L(',E
M9#LB+`HK"0D)("`@("AI;G0I:6YF;RT^<V-?:6ED7WHL"BL)"0D@("`@*&EN
M="EI;F9O+3YS8U]L;V-?>BYP;W,L"BL)"0D@("`@*&EN="EI;F9O+3YS8U]L
M;V-?>BYS:7IE*3L**PD):68@*"AI;F9O+3YS8U]F;&%G<R`F(%5-4U]&3$%'
M7U1?05A)4RDI"BL)"0ES8G5F7W!R:6YT9BAS8BP@(B!4.G(E9"P@<"5D+"!S
M)60[(BP**PD)"2`@("`H:6YT*6EN9F\M/G-C7VEI9%]T+`HK"0D)("`@("AI
M;G0I:6YF;RT^<V-?;&]C7W0N<&]S+`HK"0D)("`@("AI;G0I:6YF;RT^<V-?
M;&]C7W0N<VEZ92D["BL)"6EF("@H:6YF;RT^<V-?9FQA9W,@)B!535-?1DQ!
M1U]77T%825,I*0HK"0D)<V)U9E]P<FEN=&8H<V(L("(@5SIR)60L('`E9"P@
M<R5D.R(L"BL)"0D@("`@*&EN="EI;F9O+3YS8U]I:61?=RP**PD)"2`@("`H
M:6YT*6EN9F\M/G-C7VQO8U]W+G!O<RP**PD)"2`@("`H:6YT*6EN9F\M/G-C
M7VQO8U]W+G-I>F4I.PHK"BL)"69O<B`H:B`](#`[(&H@/"!I;F9O+3YS8U]B
M=71T;VYS.R!J*RLI('L**PD)"7-B=69?<')I;G1F*'-B+"`B($(E9#IR)60L
M('`E9"P@<R5D.R(L(&H@*R`Q+`HK"0D)("`@("AI;G0I:6YF;RT^<V-?:6ED
M7V)T;EMJ72P**PD)"2`@("`H:6YT*6EN9F\M/G-C7VQO8U]B=&Y;:ETN<&]S
M+`HK"0D)("`@("AI;G0I:6YF;RT^<V-?;&]C7V)T;EMJ72YS:7IE*3L**PD)
M?0HK"0ES8G5F7W!R:6YT9BAS8BP@(EQN(BD["BL)?0HK"7-B=69?9FEN:7-H
M*'-B*3L**PEE<G(@/2!365-#5$Q?3U54*')E<2P@<V)U9E]D871A*'-B*2P@
M<V)U9E]L96XH<V(I("L@,2D["BL)<V)U9E]D96QE=&4H<V(I.PHK"BL)<F5T
M=7)N(&5R<CL**WT**PH@<W1A=&EC(&1E=F-L87-S7W0@=6US7V1E=F-L87-S
M.PH@"B!S=&%T:6,@9&5V:6-E7VUE=&AO9%]T('5M<U]M971H;V1S6UT@/2![
."BTM(`HQ+C8N,RXQ"@H`
`
end
--- 0006-ums-4-add-sysctl-node-to-give-away-mouse-report-pars.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090727195109.E4574B8079>