From 1f925fef7cc42dcb9fa8e5ef9fa6ac99afb6a9f2 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 14 Mar 2022 20:18:17 +0100 Subject: [PATCH] tests: Test suspend/resume and sysfs attributes in synaptics --- tests/synaptics/custom.pcapng | Bin 42080 -> 31328 bytes tests/synaptics/custom.py | 41 ++++- tests/synaptics/device | 294 +++++++++++++++++----------------- 3 files changed, 186 insertions(+), 149 deletions(-) diff --git a/tests/synaptics/custom.pcapng b/tests/synaptics/custom.pcapng index 44e161cac646030dd8f9e9dbf87e3867226e935b..f6dc26ef7f1ca0fc74806632d63d687ec9088430 100644 GIT binary patch literal 31328 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 E02)AJK>z>% literal 42080 zcmb_l37izw(eIhr*=0H8QW06mDjCViJuC zg13;!>4Ey;fe>B96BLOD#$X515j7Wl|LXUuUw2LS%x=$DzhCuqzwY_ht5^S5 zUGsWow{f#(jW=1ARXMQRu?f5$){?aPTW8eF8b77%yso9?(`Jk>JHN7P>BIp&PVV3T zq*0~iBS)3mrM-Ke(yL9h@=^!@r%%@YMhil z924q;MLu{o?$SOmcE>~#K4gl6Ch5b&<&#Q=pq)Z;Xc!$9qW zha0gIhJWv;rvHpDdDQN{M46mDhl}C=gkmlNZA^7FVU<^iS9~eLCm2hQ@_Z~gj;}DM#Vo>Ox%a`m>F<_3? zx(4_N2YT1RuAB#NwVCYA1I9-TfN$o(h@C111mi=+krv&U!eQ7v_zX5|oFio$RY{9{ z@aFPF*r0iUCME7n=L7TVU{{XO`^RMBBL?JyHxDj+L-}Bk!uP`P{~LlY=fOPS`{!{( z=E2czC+D08%XR;A&x7z7bcGEYE|YpONX(}(@^aC7?E_uo7jNV!zz_#2WAGy%zCB#u zb5aWe_|NeekrQE(1^;wE{yE|JFXVy$h!5W~_e|obH$L6pR55O)`(9f}w{bo~qn-y2 zc4>TOK}jf2R31CI6lx@n~@dxcwF8WcU$c@4Ykwa!k`3w0DA=;mPRhQ> z9P*yFg-f!EgR>HUo)4dWk+Jx%9;??hdaWA^K0>32MVWHl<<~jwCzmwBF)8EAvD&p; zy@3#YsM?yr_r|Ii6Ey{k; zm6XRx=JFoD$;{=&{^~=-f$n)E#MxJYKNS0~v3UI|=Hh4iG=3zhrl0#eNtZxfN$pV zr4=d$1f!v_=M!HeVM`x|Ez9l0E3iR4<(i;2N8RCQ^W;Ny0H5#Cl#k399nkp1Ba(*j z^akJ$#d}E2eKVNv4(Tx>e71pIBYKSJE>ewF8Y6%0bkUttyxJ)$4!<3);!vO3>2Qm~ zjdm9P+OD zDm70oyn9N?RX8SPeCf;kXDeR_(TA#0@FIP2YY+N3Sd>mAZF-rnUKXYrfkk9r&L!)f zP(K4)udP&mG7pLCgy)IyllVwNbLj`bABufapP#@t`QSm|lMo_lhG_gEEYnrvr1YU{ zs1L!Myk7gj*mQ5_TNby`s{@tz%TAw~!3CL&cf@445vpt`R=Mf!=knD|!0-ku@GqeK7#OnaiiW zrbeD%e5g3mq8sU@8Y+D_?x-*yEb_ry_gV!T#8Zuk&rftVQyer&{A-TR#77Ls2XEc$ zyVnb>{eJvRXtyN{|C11W8G|c#sQ$;PO{_Nl{)g8lwHlx2Kttx)F~A=R??|I+le>UV zLR+=x9-57gamtsk{k6%gV`{=`lK_vt*{P6o*CvVN7s-VERl&Tc3k$GX0V;&mCOcu% zMh{7uyD~0ky`kd5bwh0fYLlni)r8e10iXK6rF_a=oAgV;liGiwuVL#h#U;6Yxf!-- zj`Y*FCFKhr0a(Y#!7j~_W%@e0AKiUPP01`Alk!-hHVOFBwmE_eAw<#)(fGwl?MtI3 zR`Q6Hm8KdcaYVvOH|vC8onzH~bO7_WxKj#CAXdt1*Qqcyz3;)Ymg9P!`CRu2xBa!R zeRK<~f;`y4YSk%;RT4IoI>IV#(kYE`vXVC*g;Hl>s)bdU?wqQ%u(V-WN8rllof63l zlk;7YqNz!zLRwWJgbtl(p&-2*7hQfVY31=H)=@{NtpsgwHfhzRN|M(8caI>ge7AYv zY|0vmH6F`e-GsEVrfJ}8fmMr@70cRz8^ex9m1BzoXVW-40nuGiNLtyrC~&sWT9-Iz zStCD7l2*1)1(PNEd={Uk|Rd2H}(Bg>}u*7m{KKFP|9lY#dZW63ZUa+)B`<0|KB1YWk!i zi}da0)`{I4TM63WtRAS9Z>KHNDNO@sg9Bwbfq_Z~2g+&`7^rk`psaR*p-2Y@$~q=^ zHaJk$MS+1z2M5Y}(Kk?qoth;Q1>jdALHt5}ovwA4(vsdWks0fA-f?NlU6?b+P23eZ zbKKfpit~=GBNNLopX7b(oJ&LJJbnE0KDY0}oNUNvUVl#RbXjOl2EMtsKh#3a`P@0# z%`W!H7DWXEu!KodE-WYC44XD4BPr(@y;LrEwn|H!E+*@Jyj#z#&L z`0`w9l4T0L_x~7l11r7 z^io`qv{HB~VfDuXvxQ`7St~Izq?YwKGCb+GMRcU(5ar;e^feP4>osv;E=bxmi|FHN zsq$Cyelz^WH5MuR4USO7=kflOBjfY_P2isgY*NO@xB}nsz7qH(_2E74FZSg2Nvl;F zw{UbajQ78*hff!4pW^WTW8j~G{*p%dG*C<h{Nkkc#pOMDPINCIUb;5PcC~&B z*)IL`+LFOICapd9z8mTLE>)?7yWZ4Me<#R6$0+9_)Rg8Th0YPS9Mj&A#;3mR>ip|j_LAMZ>w=4F*vc!vgX}*ZPT%>ny;dZwfD$MWS{(; zK+O>9#|rf0$Ji&eN3oy5SiP_Pq}i-yG|cflB=0e=+g0BI30K_{6!!QG^ij@{iLR;17pgQpT6@`b77?5iTLk5HDVb60MTf zRTFT5jK^R9X5vwMet0~(U9SAd9gk#WJlg%;j2GLH@wfzbNaDm}KnQ-7;J51!;zucqF6ZaoOi49vpX>%kCdj-*}`JQ6DBiC4ZlQ9UJYW zY)8i9OV}Za6OSQZ7<`_8G9C+@`19k)qB&kX7+=nh^RIQg@5UlWJW`93iEnwFmZ-P6 zdE~s}IVIz9Oj_s7^I*QZ<2vO>XIw)XC2J2AoLg!ohK=mqqnDN*z07XSw6W8w=itp` zU&gBr{jkwa%Keb>vgYC>BwHWoyaSc^XErwYe1DVi`YG_^=CcjJ9|pUmj4$K$7u|pA z8)=4^`BQK{PI9~)eIe!j@+QWQx+ms1^Rif=UIHG=#9TLKC zJM5N{3ha|Ie!0T8I_X-Y?d&vNj&D6Hbq}zS`0OM5L3IZS*(n=-i&xXw7X|Y&+bO$7 z)zfr)iMquQ-a05@lRXDYLN>004IBHeY8%Wcws9S7kYvNB^A1$vcR$nM*Ivv%xH)qm z<9DBuITnt-fW~Rw*&%*tPO+VNbCn-t z$1gJG4o*r=RUHiRLvX6<2Z}Ay4~g$yg;=xPL~ zM!*J198RtL+Tip2<2=Q&Sb4niAr7akZ*KAO6yr-ySshjXX{+{Jcg)6cs=z@j$Ab1r zh*O`#j*Wd%&WBZkQ=h|5+&p#rwZAZPLw_ccdFuAHimkag<<6i8PK~|p7hay?`x4hH z9FMWsM%du7VjD6~ZG;VyIGk#7y}{>NLUO9f!^(#^oVoz`73do&<4aCm0DKbK zsy+A6Yz(K6r@}ea{s!ZR#kGpyRQpGjAJT@*BMvMRw~4zX#MzmBZu9(Le95VqS2S|3 zmwrfmm6eSj{yf#S-)$bJxYm}O>N>7bUYwc^8#a1M$~GjYro#qF98UG^pNTIy)pxw| zAr7bJ0>1)%BQ^b3pGSD!%>_P*jD_1s8^fuBQHiFZd1~Rw#t)9U%u@@mQhtyfzsQ(7 zI7ytMR}$jXpux9$aj4VZO~-dC=)3h^JvC^0v2_UbntGSndT~jqHU}>f|63ovt-o7e zuD-kP;eQ)}?^()%|MC#ifBtQN#DDqf@c!2ae{Tpr|GtFdychU%pD=jd$aqb(<3Q#3 ztS=Agzy5s*lAGary@VEBD4(8!3IejPIcRu zi7z?TZJ+WX4ySGceg*nQYWg4K)J?!Ak+Ew&n z53=JInMWL)qHyJ-T=6vsCJ0oT(Kgf<>WXv6$l$;v+ z?A@Lpj4wG=uv&Fg`XTXMPQm3cP9-W9{$*C_sQa;4t)GFXtpl_t6|3OY&@o{)8=q;`oPDR#J z<=+`UqBxa0p!|r#sWXnf&+~)vWu7XgAAdpW#VK6JbA#?rBs4cpD!I>aDk4w)qfvg( zK4-v&4SS?!o(DPAr&#$Chf~cvWa3Lsz12AWv(FL0_c*1;h}S|mmp5+`9t(2W6~igi zQ=Pq7IQlfjVoj;>gJUl9)RoQRKl?oI`UgBe7+-R#)kMYCT%6)u9LA|$H#}fC6_KY7 z;(PJ=-1{Da4I5)eYUX*6Q`M7|FL5~a{*9UVl2a?D#D7k8S*?kM>3=X!wVxUu3v$^N z!>P!6s?`GH2gh7;>g}5N _TcrYiYTDNZGcDG)fLa@R(b!L|b4W}aVRO2J_drq|) zHf;2iG%8PxhYgZAoN~%C@g=89kBa}C>UrQ(Ek$bjALP^xz$c;k%X8Rm;Emx_frB=V z1?`hio*LcN_z}gawnsPYIThIzh*eeRnC8#d07nt2|~QzyQme94ASZ+D;+GkPVVv6}EvCcflU*)HWnoOb_d zOVwX}tQV&=KH2ftQwL#ZFxp6Y4)U`lt`#0%);O}X!v;wlPOS^U zmzpM6pIrY_54|#qtzO1L7JU@KxR^k&j3Flisr?yXg$Z#qmPc6J4zjgHPlO8gh(l&S< zoq78=*dU3+sV$Q;@g=9`UKD>FJvGI|A}UX92R=zXI2Bn>t(|K8;F!yL>Z*(5ucIGs zxjHAOUN{u)M<}NdtT0aPXuaBSDx#kHsg>V4daEN>8%{;!skdQ+Bo3!$AC-wOIdxJp z{yO@8;15IJNF(zU@JVR?@*H*>c;m}c4%#>tv`<3!@Lp|Zwn6tTCJtd5Y~!n617KPVvqb^L02+IgrNGfs)Wz4cNKH za7yGUw($&XkYvNB^A1$v|M87XeC8D6kGm%Rck{cyX<{Ms6yrYvd=eQ8)rzg*RAfE% z<}TxhCsVr}hkv|7>Oz@GH=DQqzA`qjUd{8xkH1dW$QD zQ>dp-^J3xX(-ezscN;&VI5l`^{AV)@_pJB)V0^Bp*pJlwl-r|RoZ?&@#;M!iUvD@S zk*8WN$Zs9}P1vx}Q&Ka}gPf{_4U#yVdhE9bzpm}GGu7{K-Ix#LvFf=n{yO^KfX|#_ ze6GC^wFn-jw*M8{lf3clQ7R6sj-&woC^Mmmvr_So8GLrN| z<|&s`2v!)U4$R-+ajLcr$HR@c#eP(GSATzo;+-w#QTM)67i{o2#WuJ`XB%5!gCrY1 zop+$}-nSzJU*@SZdng~`eD3SAaD!J*nf?d!)LP(^P~UhCyA8ZCoGNh8#<8G%63SC+ zV8_NjDaV{^bRMS@dMZCC=6;becW{#WL3T(8|D3W%a&l@H{;~^6E>2~ur`mUY#N!mt zL0(H>Kkk1gzh^UxV8cc~N!f7>cuH|#&e@u zyGh)AqvN9qtnk6@lUdslwHOB>$lQIAt>Lvrdh*dU3+sV$u|@nxPmb$9&Vr42p7 z#KQDHn5SL>K8cKl+ejP3Db!PEd9iTx1r&=>WyTMVxy)1Vy&eB|X{*aO=Hyi8&l|Zt zl77fMsJsp5)G0sS=y8hYpv+U7zsT>|%tqL-(Nj{kAvyKKgUXjUocem0!RI_EIW_ak z_|ImBRrq3|>ou9DUI9LdjD_1s8^fu{dg}h+#*e6bU;D4)Kb!e`hsQlmF}}=GQ|tL` z#^n@(6_%%NEPdQ?Dx#h`yd%G7Gv&uUZaAfFNKS3X^B6*y?)SkOKR<*8db`TU5e(VO8JP~3Z8)kRO_sZKPcYWV!jUN>Ap&1>Oe_otnPsg8~dbeLvrfag80At zIq719&v{UC>M7vIt*6!jzXE+HWqg^Z%F^Mnz+03UPDR#JGcPfIMBV$ohMl;a`pH{Q zdVVmz%v0aaso(ErRP|`)hQFRF|IL#gr?^&-_rC3O^ZVV*E3jc>WJ%eEAaLi>rb#ra}-_2b9 zSdndT+I2_&#CnPZt^(Ab5L?>@n!ivo0$t6HU^fIZAec28#YL? zyaCE$}3X>||$8^fu{da4d~Y`lk*>mA7{ zdrbUiGkd2#<#CGfC8sVq#{CH8a6;V%( zJy!V=hf^nBory0wwV|EzAz?*F#Wpxkv5m#BK@x{k&#pK4oCldxjQ@Sh_|Il~ZSciHuYYkp z#rV_lkN8MrEZj!g7*0jjQ};e>{NQ^N=P93hRtL2q$IoyP7V)Kk@=dFr!%#t)9U{9t^^sguuE z?8(I`Hy0yVoNueOo0Jcq_|s;OQ)Z3_^VFA>`8}IC<&(`Gr`U$%)SPpaFL5~a!k-O3 z=RwJ-!z1E9n>qDUUo1pD#hjWuGCUS~s70O%|NCz1J~MuBy(2mG>ACTr&Fm}O>T!zk zC8s(}Q+MuMoXU3Zd!f-*!zocu@pv7cp5Hq9F~wUAr$jx)HZHna`4Wdy2O4MMOHOr~ z8GjvpNE2Tyy#5FC)B@m>$XJAP%FJ&^UqJJFQ&XQGqMqV$`es)Ab@VsaJfD+O&6bCj$t$D774I3j%$~GjY{sbE&aq`r(cA5B+QyUk?U-Ntw z_*6@gn*Im#RMDdFSkPNs32-VrPt9#_{NR{NPHkBnf6epbJ=;A$7+-Sg_|wDJL?oxO z<*890Z1*^2=6Enq-8neF^{HoJ!^XgpvJJ_p?_q-^4yRt-Yw$S_N=_9GjlVwCEDfKO7tdtZ1xHF}@%gX9vHV_52$g+49ulGhQ*A z67>|@S)AwJ;P?PGY>YRlS>JJadm7vL05(YCaO#1xGVz&HjQ>C$e}m&Y;B%fb{a1O4 z@xKE;N&Pq#o~Jfd`uq^}6x-P}GyYma>qV~{KQzANRO=1lpEVkirzZZ->mH}f99MaY z{h0VjexLicz=n~Tu_$2k? zRCu0x{intczBh56Vmq(nKP1I{-gn!Yot__zFFAEvL%u(SV1=zEtXQ|x;}q8lTu-qd zEAssQ)IVXv#(0ym4aup0=JEZhT^lm-C8u`f@%^bD51Uw+{s;3^kKg3~xv%S^#t)9U zzeI z^3*Fne9nWCQ?FZyJBd!!`N56P))_0;Z3yA7uz>Z#qg<@dR-^W@!zQ{MWH%UiFW>U?|r&wcx+Wa3Ls z?Y|@b=e_|`eX;QRAIwt&mWIc|4G?XTymu(_*~}L;K0hKj^~JLIpZg9xeHE>a}MKr+5y^d*5rn&yQ38h7B7-O3F55p87Xzki^MT{WlwY&V!Ou{r}J~PAzeJ zqn^E95B%{sCS`n?r>+M+NoTF@fq!E-RWSMo_5UA6i!=tUiS~VAcgZ*$lX~|?{r7x1 zU-tcz^0OnZA&ru?htlIaIoVxYA`0GOF_b{N~i;ndQjeE421=GGYldHyXuHU9UOUIP9w^o=xXUFap? zlhFL-IqWv@#&9a_ppEA@?UT^_9@Hkp50R$^4T}H0rRjIQ=W)vOL+7ckdabe7^(q4S z)W+lPelL!?J+gJ`8Byl)(&OHX7=O5=O#y{eQ_}^RlHSjCY zH&VvuJjM9)fKMW0;WpC7a4NDk{?Wb056*|2r`XQFv>#;0FY?~x;3RR|fA4$d$vvJQ zjL&(B@vr%R_}j$M=^0^R&U|Ize)3 zYXiTxv_uDt^2hRL_LN+OV^YSKoVq}NZ>b9|A72KLNV9g}_H#3Btu{n)r= zPYKm6ZtWs|1Ign!?LqaurcStyG)mSUDx9CIL|=qAQy&}+LVY-UYvx$XSTqQY_qCi-$C=ovdcGnyw5p|FJt-V_f`Mv@j0h(VXi@hj~vSh*e9WJ z?C|{_?|)qL{Fd`>-(KZs8t);ElC_75R?#`am*cqsc5JkhvK<+(NgpbIv)RDgL*upY zp9Y`vt&GNJ`U75x(1uyML|+JDSA@mh!e zA5`7+J$#q`dxVTn|8GaFJaUVAb?_qNP=0?VKL5WR#$WiKFti{x9XU{n)f6ZR@o9U{ z!uAQP#44XQyJpt-88b_#&zSa;iPht)OUKSBt)4w~`nW5m(|-q|Ygdo0DM{)5&3In{ P_Lu9Md0PAjA+qs*a7xc- diff --git a/tests/synaptics/custom.py b/tests/synaptics/custom.py index 3e48341d..0a88ef80 100755 --- a/tests/synaptics/custom.py +++ b/tests/synaptics/custom.py @@ -1,10 +1,14 @@ #!/usr/bin/python3 +import os import gi gi.require_version('FPrint', '2.0') from gi.repository import FPrint, GLib -ctx = GLib.main_context_default() +import sys +import traceback +sys.excepthook = lambda *args : (traceback.print_exception(*args), sys.exit(1)) + c = FPrint.Context() c.enumerate() @@ -13,6 +17,24 @@ devices = c.get_devices() d = devices[0] del devices +usb_device = d.get_property('fpi-usb-device') +bus_num = usb_device.get_bus() +port = [] +while True: + parent = usb_device.get_parent() + if parent is None: + break + port.append(str(usb_device.get_port_number())) + usb_device = parent +port = '.'.join(port) + +persist = f'/sys/bus/usb/devices/{bus_num}-{port}/power/persist' +wakeup = f'/sys/bus/usb/devices/{bus_num}-{port}/power/wakeup' + +# may not have written anything +assert open(persist).read().strip() == "0" +assert open(wakeup).read().strip() == "disabled" + assert d.get_driver() == "synaptics" assert not d.has_feature(FPrint.DeviceFeature.CAPTURE) assert d.has_feature(FPrint.DeviceFeature.IDENTIFY) @@ -29,7 +51,7 @@ d.clear_storage_sync() template = FPrint.Print.new(d) def enroll_progress(*args): - assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED + #assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED print('enroll progress: ' + str(args)) # List, enroll, list, verify, delete, list @@ -41,6 +63,21 @@ print("enroll done") print("verifying") assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE + +# Inject a suspend/resume cycle into the verify +def suspend_resume(): + d.suspend_sync() + assert open(persist).read().strip() == "0" + assert open(wakeup).read().strip() == "enabled" + + assert open(persist, 'w').write('0\n') + d.resume_sync() + # This tests that libfprint doesn't write if the value is correct + # (i.e. the trailing \ would be lost inside umockdev if written) + assert open(persist).read() == "0\n" + assert open(wakeup).read().strip() == "disabled" + +GLib.idle_add(suspend_resume, priority=GLib.PRIORITY_HIGH) verify_res, verify_print = d.verify_sync(p) assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE print("verify done") diff --git a/tests/synaptics/device b/tests/synaptics/device index e56e37d9..f11a0dd2 100644 --- a/tests/synaptics/device +++ b/tests/synaptics/device @@ -1,14 +1,14 @@ P: /devices/pci0000:00/0000:00:14.0/usb1/1-9 -N: bus/usb/001/005 -E: DEVNAME=/dev/bus/usb/001/005 +N: bus/usb/001/004=12010002FF10FF08CB06BD0000000000010109022700010100A0320904000003FF000000070501024000000705810240000007058303080004 +E: DEVNAME=/dev/bus/usb/001/004 E: DEVTYPE=usb_device E: DRIVER=usb E: PRODUCT=6cb/bd/0 E: TYPE=255/16/255 E: BUSNUM=001 -E: DEVNUM=005 +E: DEVNUM=004 E: MAJOR=189 -E: MINOR=4 +E: MINOR=3 E: SUBSYSTEM=usb E: ID_VENDOR=06cb E: ID_VENDOR_ENC=06cb @@ -24,82 +24,82 @@ E: ID_USB_INTERFACES=:ff0000: E: ID_VENDOR_FROM_DATABASE=Synaptics, Inc. E: ID_AUTOSUSPEND=1 E: ID_MODEL_FROM_DATABASE=Prometheus MIS Touch Fingerprint Reader +E: ID_PERSIST=0 E: ID_PATH=pci-0000:00:14.0-usb-0:9 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_9 -E: LIBFPRINT_DRIVER=Synaptics Sensors -A: authorized=1\n -A: avoid_reset_quirk=0\n -A: bConfigurationValue=1\n -A: bDeviceClass=ff\n -A: bDeviceProtocol=ff\n -A: bDeviceSubClass=10\n -A: bMaxPacketSize0=8\n -A: bMaxPower=100mA\n -A: bNumConfigurations=1\n -A: bNumInterfaces= 1\n -A: bcdDevice=0000\n -A: bmAttributes=a0\n -A: busnum=1\n +A: authorized=1 +A: avoid_reset_quirk=0 +A: bConfigurationValue=1 +A: bDeviceClass=ff +A: bDeviceProtocol=ff +A: bDeviceSubClass=10 +A: bMaxPacketSize0=8 +A: bMaxPower=100mA +A: bNumConfigurations=1 +A: bNumInterfaces= 1 +A: bcdDevice=0000 +A: bmAttributes=a0 +A: busnum=1 A: configuration= H: descriptors=12010002FF10FF08CB06BD0000000000010109022700010100A0320904000003FF000000070501024000000705810240000007058303080004 -A: dev=189:4\n -A: devnum=5\n -A: devpath=9\n +A: dev=189:3 +A: devnum=4 +A: devpath=9 L: driver=../../../../../bus/usb/drivers/usb L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d/device:28 -A: idProduct=00bd\n -A: idVendor=06cb\n -A: ltm_capable=no\n -A: maxchild=0\n +A: idProduct=00bd +A: idVendor=06cb +A: ltm_capable=no +A: maxchild=0 L: port=../1-0:1.0/usb1-port9 -A: power/active_duration=82065\n -A: power/autosuspend=2\n -A: power/autosuspend_delay_ms=2000\n -A: power/connected_duration=4271349\n -A: power/control=auto\n -A: power/level=auto\n -A: power/persist=1\n -A: power/runtime_active_time=82975\n -A: power/runtime_status=suspended\n -A: power/runtime_suspended_time=4186597\n -A: power/wakeup=disabled\n -A: power/wakeup_abort_count=\n -A: power/wakeup_active=\n -A: power/wakeup_active_count=\n -A: power/wakeup_count=\n -A: power/wakeup_expire_count=\n -A: power/wakeup_last_time_ms=\n -A: power/wakeup_max_time_ms=\n -A: power/wakeup_total_time_ms=\n -A: quirks=0x0\n -A: removable=fixed\n -A: rx_lanes=1\n -A: serial=c087f7d72126\n -A: speed=12\n -A: tx_lanes=1\n -A: urbnum=618\n -A: version= 2.00\n +A: power/active_duration=9424964 +A: power/autosuspend=2 +A: power/autosuspend_delay_ms=2000 +A: power/connected_duration=866169213 +A: power/control=auto +A: power/level=auto +A: power/persist=0 +A: power/runtime_active_time=9431408 +A: power/runtime_status=active +A: power/runtime_suspended_time=856661633 +A: power/wakeup=disabled +A: power/wakeup_abort_count= +A: power/wakeup_active= +A: power/wakeup_active_count= +A: power/wakeup_count= +A: power/wakeup_expire_count= +A: power/wakeup_last_time_ms= +A: power/wakeup_max_time_ms= +A: power/wakeup_total_time_ms= +A: quirks=0x0 +A: removable=fixed +A: rx_lanes=1 +A: serial=c087f7d72126 +A: speed=12 +A: tx_lanes=1 +A: urbnum=8945 +A: version= 2.00 P: /devices/pci0000:00/0000:00:14.0/usb1 -N: bus/usb/001/001=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C +N: bus/usb/001/001=12010002090001406B1D020016050302010109021900010100E0000904000001090000000705810304000C E: DEVNAME=/dev/bus/usb/001/001 E: DEVTYPE=usb_device E: DRIVER=usb -E: PRODUCT=1d6b/2/512 +E: PRODUCT=1d6b/2/516 E: TYPE=9/0/1 E: BUSNUM=001 E: DEVNUM=001 E: MAJOR=189 E: MINOR=0 E: SUBSYSTEM=usb -E: ID_VENDOR=Linux_5.12.9-300.fc34.x86_64_xhci-hcd -E: ID_VENDOR_ENC=Linux\x205.12.9-300.fc34.x86_64\x20xhci-hcd +E: ID_VENDOR=Linux_5.16.8-200.fc35.x86_64_xhci-hcd +E: ID_VENDOR_ENC=Linux\x205.16.8-200.fc35.x86_64\x20xhci-hcd E: ID_VENDOR_ID=1d6b E: ID_MODEL=xHCI_Host_Controller E: ID_MODEL_ENC=xHCI\x20Host\x20Controller E: ID_MODEL_ID=0002 -E: ID_REVISION=0512 -E: ID_SERIAL=Linux_5.12.9-300.fc34.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 +E: ID_REVISION=0516 +E: ID_SERIAL=Linux_5.16.8-200.fc35.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 E: ID_SERIAL_SHORT=0000:00:14.0 E: ID_BUS=usb E: ID_USB_INTERFACES=:090000: @@ -111,60 +111,60 @@ E: ID_PATH_TAG=pci-0000_00_14_0 E: ID_FOR_SEAT=usb-pci-0000_00_14_0 E: TAGS=:seat: E: CURRENT_TAGS=:seat: -A: authorized=1\n -A: authorized_default=1\n -A: avoid_reset_quirk=0\n -A: bConfigurationValue=1\n -A: bDeviceClass=09\n -A: bDeviceProtocol=01\n -A: bDeviceSubClass=00\n -A: bMaxPacketSize0=64\n -A: bMaxPower=0mA\n -A: bNumConfigurations=1\n -A: bNumInterfaces= 1\n -A: bcdDevice=0512\n -A: bmAttributes=e0\n -A: busnum=1\n +A: authorized=1 +A: authorized_default=1 +A: avoid_reset_quirk=0 +A: bConfigurationValue=1 +A: bDeviceClass=09 +A: bDeviceProtocol=01 +A: bDeviceSubClass=00 +A: bMaxPacketSize0=64 +A: bMaxPower=0mA +A: bNumConfigurations=1 +A: bNumInterfaces= 1 +A: bcdDevice=0516 +A: bmAttributes=e0 +A: busnum=1 A: configuration= -H: descriptors=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C -A: dev=189:0\n -A: devnum=1\n -A: devpath=0\n +H: descriptors=12010002090001406B1D020016050302010109021900010100E0000904000001090000000705810304000C +A: dev=189:0 +A: devnum=1 +A: devpath=0 L: driver=../../../../bus/usb/drivers/usb L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d -A: idProduct=0002\n -A: idVendor=1d6b\n -A: interface_authorized_default=1\n -A: ltm_capable=no\n -A: manufacturer=Linux 5.12.9-300.fc34.x86_64 xhci-hcd\n -A: maxchild=12\n -A: power/active_duration=4270585\n -A: power/autosuspend=0\n -A: power/autosuspend_delay_ms=0\n -A: power/connected_duration=4272308\n -A: power/control=auto\n -A: power/level=auto\n -A: power/runtime_active_time=4270770\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\n -A: power/wakeup=disabled\n -A: power/wakeup_abort_count=\n -A: power/wakeup_active=\n -A: power/wakeup_active_count=\n -A: power/wakeup_count=\n -A: power/wakeup_expire_count=\n -A: power/wakeup_last_time_ms=\n -A: power/wakeup_max_time_ms=\n -A: power/wakeup_total_time_ms=\n -A: product=xHCI Host Controller\n -A: quirks=0x0\n -A: removable=unknown\n -A: rx_lanes=1\n -A: serial=0000:00:14.0\n -A: speed=480\n -A: tx_lanes=1\n -A: urbnum=463\n -A: version= 2.00\n +A: idProduct=0002 +A: idVendor=1d6b +A: interface_authorized_default=1 +A: ltm_capable=no +A: manufacturer=Linux 5.16.8-200.fc35.x86_64 xhci-hcd +A: maxchild=12 +A: power/active_duration=865968060 +A: power/autosuspend=0 +A: power/autosuspend_delay_ms=0 +A: power/connected_duration=866169920 +A: power/control=auto +A: power/level=auto +A: power/runtime_active_time=866093998 +A: power/runtime_status=active +A: power/runtime_suspended_time=0 +A: power/wakeup=disabled +A: power/wakeup_abort_count= +A: power/wakeup_active= +A: power/wakeup_active_count= +A: power/wakeup_count= +A: power/wakeup_expire_count= +A: power/wakeup_last_time_ms= +A: power/wakeup_max_time_ms= +A: power/wakeup_total_time_ms= +A: product=xHCI Host Controller +A: quirks=0x0 +A: removable=unknown +A: rx_lanes=1 +A: serial=0000:00:14.0 +A: speed=480 +A: tx_lanes=1 +A: urbnum=9372 +A: version= 2.00 P: /devices/pci0000:00/0000:00:14.0 E: DRIVER=xhci_hcd @@ -180,44 +180,44 @@ E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_VENDOR_FROM_DATABASE=Intel Corporation E: ID_AUTOSUSPEND=1 E: ID_MODEL_FROM_DATABASE=Cannon Point-LP USB 3.1 xHCI Controller -A: ari_enabled=0\n -A: broken_parity_status=0\n -A: class=0x0c0330\n -H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000 -A: consistent_dma_mask_bits=64\n -A: d3cold_allowed=1\n -A: dbc=disabled\n -A: device=0x9ded\n -A: dma_mask_bits=64\n +A: ari_enabled=0 +A: broken_parity_status=0 +A: class=0x0c0330 +H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000FD0134808FC6FF8300000000000000007F6DDC0F0000000060069A2400000000316000000000000000000000000000000180C2C108000000000000000000000005908700D802E0FE0000000000000000090014F01000400100000000C10A080000080E00001800008F40020000010000000000000000000008000000040000000000000000000000000000000000000000000000000000000800000004000000000000000000000000000000000000000000000000000000B50F320112000000 +A: consistent_dma_mask_bits=64 +A: d3cold_allowed=1 +A: dbc=disabled +A: device=0x9ded +A: dma_mask_bits=64 L: driver=../../../bus/pci/drivers/xhci_hcd -A: driver_override=(null)\n -A: enable=1\n +A: driver_override=(null) +A: enable=1 L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c -A: irq=128\n -A: local_cpulist=0-7\n -A: local_cpus=ff\n -A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30\n -A: msi_bus=1\n -A: msi_irqs/128=msi\n -A: numa_node=-1\n -A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 9 12 2112 12\nxHCI ring segments 40 50 4096 50\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 6 32 128 1\nbuffer-32 0 0 32 0\n -A: power/control=auto\n -A: power/runtime_active_time=4271635\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\n -A: power/wakeup=enabled\n -A: power/wakeup_abort_count=0\n -A: power/wakeup_active=0\n -A: power/wakeup_active_count=0\n -A: power/wakeup_count=0\n -A: power/wakeup_expire_count=0\n -A: power/wakeup_last_time_ms=0\n -A: power/wakeup_max_time_ms=0\n -A: power/wakeup_total_time_ms=0\n -A: power_state=D0\n -A: resource=0x00000000ea220000 0x00000000ea22ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n -A: revision=0x11\n -A: subsystem_device=0x2292\n -A: subsystem_vendor=0x17aa\n -A: vendor=0x8086\n +A: irq=126 +A: local_cpulist=0-7 +A: local_cpus=ff +A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30 +A: msi_bus=1 +A: msi_irqs/126=msi +A: numa_node=-1 +A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 21 24 2112 24\nxHCI ring segments 68 80 4096 80\nbuffer-2048 0 38 2048 19\nbuffer-512 0 0 512 0\nbuffer-128 18 32 128 1\nbuffer-32 0 128 32 1 +A: power/control=auto +A: power/runtime_active_time=866094158 +A: power/runtime_status=active +A: power/runtime_suspended_time=0 +A: power/wakeup=enabled +A: power/wakeup_abort_count=0 +A: power/wakeup_active=0 +A: power/wakeup_active_count=2 +A: power/wakeup_count=0 +A: power/wakeup_expire_count=2 +A: power/wakeup_last_time_ms=476219021 +A: power/wakeup_max_time_ms=103 +A: power/wakeup_total_time_ms=207 +A: power_state=D0 +A: resource=0x00000000ea220000 0x00000000ea22ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000 +A: revision=0x11 +A: subsystem_device=0x2292 +A: subsystem_vendor=0x17aa +A: vendor=0x8086