diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 7961d6f..6205992 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,14 @@ libfprint-0.3.0.tar.bz2 /libfprint-v1.90.5.tar.gz /libfprint-v1.90.6.tar.gz /libfprint-v1.90.7.tar.gz +/libfprint-v1.92.0.tar.gz +/libfprint-v1.94.0.tar.gz +/libfprint-v1.94.1.tar.gz +/libfprint-v1.94.2.tar.gz +/libfprint-v1.94.3.tar.gz +/libfprint-v1.94.4.tar.gz +/libfprint-v1.94.5.tar.gz +/libfprint-v1.94.6.tar.gz +/libfprint-v1.94.7.tar.gz +/libfprint-v1.94.8.tar.gz +/libfprint-v1.94.9.tar.gz diff --git a/changelog b/changelog new file mode 100644 index 0000000..6d23add --- /dev/null +++ b/changelog @@ -0,0 +1,259 @@ +* Thu Jan 20 2022 Fedora Release Engineering - 1.94.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Nov 03 2021 Benjamin Berg - 1.94.2-1 +- Update to 1.94.2 (#1977842) + +* Fri Sep 24 2021 Benjamin Berg - 1.94.1-1 +- Update to 1.94.1 + +* Fri Aug 20 2021 Benjamin Berg - 1.94.0-1 +- Update to 1.94.0 (#1977842) + Related: #1894694 + +* Mon Jul 26 2021 Benjamin Berg - 1.92.0-3 +- Add patch disabling timeouts in virtual-device to enable fedora CI +- Increase timeout of tests by factor 4 + +* Thu Jul 22 2021 Fedora Release Engineering - 1.92.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jul 01 2021 Benjamin Berg - 1.92.0-1 +- Update to 1.92.0 (#1977842) + +* Tue Jan 26 2021 Fedora Release Engineering - 1.90.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 13 13:33:12 CET 2021 Benjamin Berg - 1.90.7-1 +- Update to 1.90.7 (#1902256) + +* Wed Dec 09 2020 Benjamin Berg - 1.90.6-1 +- New upstream release 1.90.6 (#1902256) + +* Tue Dec 01 2020 Benjamin Berg - 1.90.5-1 +- New upstream release 1.90.5 (#1902256) + +* Fri Nov 27 2020 Benjamin Berg - 1.90.4-1 +- New upstream release 1.90.4 (#1902256) + Resolves #1889384 + +* Mon Sep 14 2020 Benjamin Berg - 1.90.3-1 +- Update to libfprint 1.90.3 (#1878746) + +* Tue Jul 28 2020 Fedora Release Engineering - 1.90.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 08 2020 Benjamin Berg - 1.90.2-1 +- Update to libfprint 1.90.2 +- Resolves #1832229 +- Resolves #1841834 +- Resolves #1841965 + +* Fri Feb 14 2020 Bastien Nocera - 1.90.1-2 ++ libfprint-1.90.1-2 +- Rebuilt for F32 + +* Mon Feb 10 2020 Benjamin Berg - 1.90.1-1 +- Update to libfprint 1.90.1 + +* Wed Jan 29 2020 Fedora Release Engineering - 1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Aug 14 2019 Benjamin Berg - 1.0-1 ++ libfprint-1.0-1 +- Update to 1.0 + +* Thu Jul 25 2019 Fedora Release Engineering - 0.8.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 0.8.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 20 2018 Bastien Nocera - 0.8.2-2 ++ libfprint-0.8.2-2 +- Fix build with newer meson (#1604585) + +* Tue Jul 17 2018 Bastien Nocera - 0.8.2-1 ++ libfprint-0.8.2-1 +- Update to 0.8.2 +- Add required gcc and gcc-c++ BR + +* Fri Jul 13 2018 Fedora Release Engineering - 0.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 12 2018 Bastien Nocera - 0.8.1-1 ++ libfprint-0.8.1-1 +- Update to 0.8.1 to fix the build + +* Tue Jun 12 2018 Bastien Nocera - 0.8.0-1 ++ libfprint-0.8.0-1 +- Update to 0.8.0 +- Port to meson, gtk-doc + +* Wed Feb 07 2018 Fedora Release Engineering - 0.7.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 0.7.0-4 +- Switch to %%ldconfig_scriptlets + +* Thu Aug 03 2017 Fedora Release Engineering - 0.7.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 15 2017 Bastien Nocera - 0.7.0-1 ++ libfprint-0.7.0-1 +- Update to 0.7.0 + +* Fri Feb 10 2017 Fedora Release Engineering - 0.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Feb 03 2015 Bastien Nocera 0.6.0-1 +- Update to 0.6.0 + +* Wed Dec 17 2014 Rex Dieter - 0.5.1-5 +- error opening ATTR{/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/power/control} for writing (#950205) +- %%build: --disable-silent-rules + +* Sun Aug 17 2014 Fedora Release Engineering - 0.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Jan 16 2014 Ville Skyttä - 0.5.1-2 +- Drop INSTALL from docs. + +* Sun Aug 11 2013 Bastien Nocera 0.5.1-1 +- Update to 0.5.1 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Dec 03 2012 Bastien Nocera 0.5.0-1 +- Update to 0.5.0 +- Re-add not useless udev rules + +* Thu Jul 19 2012 Fedora Release Engineering - 0.4.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri May 18 2012 Matthias Clasen - 0.4.0-4 +- Drop broken and useless udev rules (#744637) + +* Fri Jan 13 2012 Fedora Release Engineering - 0.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Nov 21 2011 Adam Jackson 0.4.0-2 +- Rebuild without Requires: ConsoleKit, going away in F17 + +* Thu Nov 10 2011 Bastien Nocera 0.4.0-1 +- Update to 0.4.0 + +* Mon Nov 07 2011 Adam Jackson 0.3.0-3 +- Rebuild for libpng 1.5 + +* Mon Feb 07 2011 Fedora Release Engineering - 0.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Sep 08 2010 Bastien Nocera 0.3.0-1 +- Update to 0.3.0 + +* Thu Aug 19 2010 Bastien Nocera 0.2.0-1 +- Update to 0.2.0 + +* Wed Jun 30 2010 Matthew Garrett 0.1.0-16.pre3 +- Fix #505438 to avoid message on boot on some systems + +* Tue Jun 01 2010 Bastien Nocera 0.1.0-16.pre2 +- Add README to package + +* Wed Jan 20 2010 Bastien Nocera 0.1.0-15.pre2 +- Require hal-filesystem for the fdi file + +* Tue Dec 01 2009 Bastien Nocera 0.1.0-14.pre2 +- Update AES1610 patch + +* Mon Nov 30 2009 Bastien Nocera 0.1.0-13.pre2 +- Add aes1610 driver (#499732) + +* Thu Oct 01 2009 Bastien Nocera 0.1.0-12.pre2 +- Update udev autosuspend rules and disable SGS Thomson reader + +* Fri Aug 21 2009 Tomas Mraz - 0.1.0-11.pre2 +- rebuilt with new openssl + +* Fri Jul 24 2009 Fedora Release Engineering - 0.1.0-10.pre2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 21 2009 Bastien Nocera 0.1.0-9.pre2 +- Use gdk-pixbuf for image manipulation instead of ImageMagick (#472103) + +* Sat Jun 20 2009 Bastien Nocera 0.1.0-8.pre2 +- Update to 0.1.0-pre2 + +* Tue Jun 09 2009 Matthew Garrett 0.1.0-7.pre1 +- fprint-add-udev-rules.patch - build udev rules for autosuspend +- move hal fdi into the main package rather than -devel +- add autoreconf as a build depend while carrying the udev diff + +* Tue Apr 21 2009 Karsten Hopp 0.1.0-6.pre1.1 +- Excludearch s390 s390x, we don't have USB devices there and this package + doesn't build without USB support + +* Mon Mar 09 2009 pingou - 0.1.0-6.pre1 +- Rebuilt for rawhide + +* Wed Feb 25 2009 Fedora Release Engineering - 0.1.0-5.pre1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Jan 17 2009 Tomas Mraz - 0.1.0-4.pre1 +- rebuild with new openssl + +* Tue Nov 25 2008 - Bastien Nocera - 0.1.0-3.pre1 +- Fix possible crasher in libfprint when setting up the fds for polling + +* Mon Nov 24 2008 - Bastien Nocera - 0.1.0-2.pre1 +- And add some API docs + +* Tue Nov 18 2008 - Bastien Nocera - 0.1.0-1.pre1 +- Fix build + +* Tue Nov 04 2008 - Bastien Nocera - 0.1.0-0.pre1 +- Update to 0.1.0-pre1 + +* Tue May 13 2008 Pingou 0.0.5-6 +- Correction on the Build Requires + +* Tue May 13 2008 Pingou 0.0.5-5 +- Correction on the Build Requires + +* Tue May 13 2008 Pingou 0.0.5-4 +- Update the Build Requires due to the change on ImageMagick + +* Tue Feb 19 2008 Fedora Release Engineering - 0.0.5-3 +- Autorebuild for GCC 4.3 + +* Sat Jan 05 2008 Pingou 0.0.5-2 +- Change on the BuildRequires + +* Sat Jan 05 2008 Pingou 0.0.5-1 +- Update to version 0.0.5 + +* Sat Dec 01 2007 Pingou 0.0.4-3 +- Changes on the Requires + +* Sun Nov 25 2007 Pingou 0.0.4-2 +- Changes on the Requires + +* Sat Nov 24 2007 Pingou 0.0.4-1 +- First release diff --git a/libfprint.spec b/libfprint.spec index c171c67..e4479c7 100644 --- a/libfprint.spec +++ b/libfprint.spec @@ -1,24 +1,26 @@ Name: libfprint -Version: 1.90.7 -Release: 3%{?dist} +Version: 1.94.9 +Release: %autorelease Summary: Toolkit for fingerprint scanner -License: LGPLv2+ +# Automatically converted from old format: LGPLv2+ - review is highly recommended. +License: LicenseRef-Callaway-LGPLv2+ URL: http://www.freedesktop.org/wiki/Software/fprint/libfprint Source0: https://gitlab.freedesktop.org/libfprint/libfprint/-/archive/v%{version}/libfprint-v%{version}.tar.gz -ExcludeArch: s390 s390x BuildRequires: meson BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: git +BuildRequires: openssl-devel BuildRequires: pkgconfig(glib-2.0) >= 2.50 BuildRequires: pkgconfig(gio-2.0) >= 2.44.0 BuildRequires: pkgconfig(gusb) >= 0.3.0 BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(pixman-1) BuildRequires: gtk-doc +BuildRequires: libgudev-devel # For the udev.pc to install the rules BuildRequires: systemd BuildRequires: gobject-introspection-devel @@ -26,8 +28,6 @@ BuildRequires: gobject-introspection-devel BuildRequires: python3-cairo python3-gobject cairo-devel BuildRequires: umockdev >= 0.13.2 -Patch0000: update-goodix.patch - %description libfprint offers support for consumer fingerprint reader devices. @@ -39,12 +39,20 @@ Requires: %{name}%{?_isa} = %{version}-%{release} The %{name}-devel package contains libraries and header files for developing applications that use %{name}. +%package tests +Summary: Tests for the %{name} package +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description tests +The %{name}-tests package contains tests that can be used to verify +the functionality of the installed %{name} package. + %prep %autosetup -S git -n libfprint-v%{version} %build # Include the virtual image driver for integration tests -%meson -Dx11-examples=false -Ddrivers=all +%meson -Ddrivers=all %meson_build %install @@ -52,15 +60,17 @@ developing applications that use %{name}. %ldconfig_scriptlets -%check -%meson_test +# TODO: The test can't run with the recent pygobject3.52. +# So, skip the test until the issue of pygobject is fixed. %files %license COPYING -%doc NEWS TODO THANKS AUTHORS README +%doc NEWS THANKS AUTHORS README.md %{_libdir}/*.so.* %{_libdir}/girepository-1.0/*.typelib -%{_udevrulesdir}/60-libfprint-2-autosuspend.rules +%{_udevhwdbdir}/60-autosuspend-libfprint-2.hwdb +%{_udevrulesdir}/70-libfprint-2.rules +%{_datadir}/metainfo/org.freedesktop.libfprint.metainfo.xml %files devel %doc HACKING.md @@ -70,243 +80,9 @@ developing applications that use %{name}. %{_datadir}/gir-1.0/*.gir %{_datadir}/gtk-doc/html/libfprint-2/ +%files tests +%{_libexecdir}/installed-tests/libfprint-2/ +%{_datadir}/installed-tests/libfprint-2/ + %changelog -* Thu Jul 08 2021 Benjamin Berg - 1.90.7-3 -- Pull in some upstream libfprint fixes for goodix - -* Tue Jan 26 2021 Fedora Release Engineering - 1.90.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jan 13 13:33:12 CET 2021 Benjamin Berg - 1.90.7-1 -- Update to 1.90.7 (#1902256) - -* Wed Dec 09 2020 Benjamin Berg - 1.90.6-1 -- New upstream release 1.90.6 (#1902256) - -* Tue Dec 01 2020 Benjamin Berg - 1.90.5-1 -- New upstream release 1.90.5 (#1902256) - -* Fri Nov 27 2020 Benjamin Berg - 1.90.4-1 -- New upstream release 1.90.4 (#1902256) - Resolves #1889384 - -* Mon Sep 14 2020 Benjamin Berg - 1.90.3-1 -- Update to libfprint 1.90.3 (#1878746) - -* Tue Jul 28 2020 Fedora Release Engineering - 1.90.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jun 08 2020 Benjamin Berg - 1.90.2-1 -- Update to libfprint 1.90.2 -- Resolves #1832229 -- Resolves #1841834 -- Resolves #1841965 - -* Fri Feb 14 2020 Bastien Nocera - 1.90.1-2 -+ libfprint-1.90.1-2 -- Rebuilt for F32 - -* Mon Feb 10 2020 Benjamin Berg - 1.90.1-1 -- Update to libfprint 1.90.1 - -* Wed Jan 29 2020 Fedora Release Engineering - 1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Aug 14 2019 Benjamin Berg - 1.0-1 -+ libfprint-1.0-1 -- Update to 1.0 - -* Thu Jul 25 2019 Fedora Release Engineering - 0.8.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Feb 01 2019 Fedora Release Engineering - 0.8.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jul 20 2018 Bastien Nocera - 0.8.2-2 -+ libfprint-0.8.2-2 -- Fix build with newer meson (#1604585) - -* Tue Jul 17 2018 Bastien Nocera - 0.8.2-1 -+ libfprint-0.8.2-1 -- Update to 0.8.2 -- Add required gcc and gcc-c++ BR - -* Fri Jul 13 2018 Fedora Release Engineering - 0.8.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 12 2018 Bastien Nocera - 0.8.1-1 -+ libfprint-0.8.1-1 -- Update to 0.8.1 to fix the build - -* Tue Jun 12 2018 Bastien Nocera - 0.8.0-1 -+ libfprint-0.8.0-1 -- Update to 0.8.0 -- Port to meson, gtk-doc - -* Wed Feb 07 2018 Fedora Release Engineering - 0.7.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Feb 03 2018 Igor Gnatenko - 0.7.0-4 -- Switch to %%ldconfig_scriptlets - -* Thu Aug 03 2017 Fedora Release Engineering - 0.7.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 0.7.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon May 15 2017 Bastien Nocera - 0.7.0-1 -+ libfprint-0.7.0-1 -- Update to 0.7.0 - -* Fri Feb 10 2017 Fedora Release Engineering - 0.6.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Feb 04 2016 Fedora Release Engineering - 0.6.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jun 17 2015 Fedora Release Engineering - 0.6.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue Feb 03 2015 Bastien Nocera 0.6.0-1 -- Update to 0.6.0 - -* Wed Dec 17 2014 Rex Dieter - 0.5.1-5 -- error opening ATTR{/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/power/control} for writing (#950205) -- %%build: --disable-silent-rules - -* Sun Aug 17 2014 Fedora Release Engineering - 0.5.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 0.5.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Thu Jan 16 2014 Ville Skyttä - 0.5.1-2 -- Drop INSTALL from docs. - -* Sun Aug 11 2013 Bastien Nocera 0.5.1-1 -- Update to 0.5.1 - -* Sat Aug 03 2013 Fedora Release Engineering - 0.5.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Thu Feb 14 2013 Fedora Release Engineering - 0.5.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Mon Dec 03 2012 Bastien Nocera 0.5.0-1 -- Update to 0.5.0 -- Re-add not useless udev rules - -* Thu Jul 19 2012 Fedora Release Engineering - 0.4.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Fri May 18 2012 Matthias Clasen - 0.4.0-4 -- Drop broken and useless udev rules (#744637) - -* Fri Jan 13 2012 Fedora Release Engineering - 0.4.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Nov 21 2011 Adam Jackson 0.4.0-2 -- Rebuild without Requires: ConsoleKit, going away in F17 - -* Thu Nov 10 2011 Bastien Nocera 0.4.0-1 -- Update to 0.4.0 - -* Mon Nov 07 2011 Adam Jackson 0.3.0-3 -- Rebuild for libpng 1.5 - -* Mon Feb 07 2011 Fedora Release Engineering - 0.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Sep 08 2010 Bastien Nocera 0.3.0-1 -- Update to 0.3.0 - -* Thu Aug 19 2010 Bastien Nocera 0.2.0-1 -- Update to 0.2.0 - -* Wed Jun 30 2010 Matthew Garrett 0.1.0-16.pre3 -- Fix #505438 to avoid message on boot on some systems - -* Tue Jun 01 2010 Bastien Nocera 0.1.0-16.pre2 -- Add README to package - -* Wed Jan 20 2010 Bastien Nocera 0.1.0-15.pre2 -- Require hal-filesystem for the fdi file - -* Tue Dec 01 2009 Bastien Nocera 0.1.0-14.pre2 -- Update AES1610 patch - -* Mon Nov 30 2009 Bastien Nocera 0.1.0-13.pre2 -- Add aes1610 driver (#499732) - -* Thu Oct 01 2009 Bastien Nocera 0.1.0-12.pre2 -- Update udev autosuspend rules and disable SGS Thomson reader - -* Fri Aug 21 2009 Tomas Mraz - 0.1.0-11.pre2 -- rebuilt with new openssl - -* Fri Jul 24 2009 Fedora Release Engineering - 0.1.0-10.pre2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Tue Jul 21 2009 Bastien Nocera 0.1.0-9.pre2 -- Use gdk-pixbuf for image manipulation instead of ImageMagick (#472103) - -* Sat Jun 20 2009 Bastien Nocera 0.1.0-8.pre2 -- Update to 0.1.0-pre2 - -* Tue Jun 09 2009 Matthew Garrett 0.1.0-7.pre1 -- fprint-add-udev-rules.patch - build udev rules for autosuspend -- move hal fdi into the main package rather than -devel -- add autoreconf as a build depend while carrying the udev diff - -* Tue Apr 21 2009 Karsten Hopp 0.1.0-6.pre1.1 -- Excludearch s390 s390x, we don't have USB devices there and this package - doesn't build without USB support - -* Mon Mar 09 2009 pingou - 0.1.0-6.pre1 -- Rebuilt for rawhide - -* Wed Feb 25 2009 Fedora Release Engineering - 0.1.0-5.pre1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Sat Jan 17 2009 Tomas Mraz - 0.1.0-4.pre1 -- rebuild with new openssl - -* Tue Nov 25 2008 - Bastien Nocera - 0.1.0-3.pre1 -- Fix possible crasher in libfprint when setting up the fds for polling - -* Mon Nov 24 2008 - Bastien Nocera - 0.1.0-2.pre1 -- And add some API docs - -* Tue Nov 18 2008 - Bastien Nocera - 0.1.0-1.pre1 -- Fix build - -* Tue Nov 04 2008 - Bastien Nocera - 0.1.0-0.pre1 -- Update to 0.1.0-pre1 - -* Tue May 13 2008 Pingou 0.0.5-6 -- Correction on the Build Requires - -* Tue May 13 2008 Pingou 0.0.5-5 -- Correction on the Build Requires - -* Tue May 13 2008 Pingou 0.0.5-4 -- Update the Build Requires due to the change on ImageMagick - -* Tue Feb 19 2008 Fedora Release Engineering - 0.0.5-3 -- Autorebuild for GCC 4.3 - -* Sat Jan 05 2008 Pingou 0.0.5-2 -- Change on the BuildRequires - -* Sat Jan 05 2008 Pingou 0.0.5-1 -- Update to version 0.0.5 - -* Sat Dec 01 2007 Pingou 0.0.4-3 -- Changes on the Requires - -* Sun Nov 25 2007 Pingou 0.0.4-2 -- Changes on the Requires - -* Sat Nov 24 2007 Pingou 0.0.4-1 -- First release +%autochangelog diff --git a/plans/integration.fmf b/plans/integration.fmf new file mode 100644 index 0000000..05fe63a --- /dev/null +++ b/plans/integration.fmf @@ -0,0 +1,5 @@ +summary: Test for libfprint +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index 9e5f821..4920c59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libfprint-v1.90.7.tar.gz) = 07803315c89000db4caae5ae64e19042d83638a866fb3d8bcc5e1efcc44424d321974021a9a43db362baa85f0c52fd40dc97ec186eee0954671ddb04f5dfaf2d +SHA512 (libfprint-v1.94.9.tar.gz) = f8debcc1277e6112ed450c04a40cf6113afd7b38377b3fd259bedb1f553b29db758f3519491940bf9cd4ade0f8e70b68040d5bef4c8dbf5f7c2afc1802086397 diff --git a/tests/integration/main.fmf b/tests/integration/main.fmf new file mode 100644 index 0000000..df893f0 --- /dev/null +++ b/tests/integration/main.fmf @@ -0,0 +1,11 @@ +summary: Test for libfprint +require: + - cairo-devel + - libfprint-devel + - libfprint-tests + - umockdev-devel + - python3-cairo + - python3-gobject-base + - python3-pip + - python3-packaging +test: bash ./run-umockdev.sh diff --git a/tests/run-umockdev.sh b/tests/integration/run-umockdev.sh similarity index 69% rename from tests/run-umockdev.sh rename to tests/integration/run-umockdev.sh index 073f811..1beeca1 100755 --- a/tests/run-umockdev.sh +++ b/tests/integration/run-umockdev.sh @@ -2,7 +2,7 @@ set -u # Switch into the tests directory -cd source/tests || exit 1 +cd /usr/share/installed-tests/libfprint-2 || exit 1 # check if we need to install additional packages # which is the case if we are on RHEL 8 @@ -14,7 +14,7 @@ if [[ "$ID" = *"rhel"* ]] && [[ "$VERSION_ID" == *"8"* ]]; then pip3 install python-dbusmock fi -# Each directory in source/tests is a umockdev based test +# Each directory in /usr/share/installed-tests/libfprint-2 is a umockdev based test # discover them declare -a TESTS=() for f in *; do @@ -27,11 +27,14 @@ export FP_DEVICE_EMULATION=1 RESULT=0 for test in ${TESTS[@]}; do echo "$test" - ./umockdev-test.py "$test" + /usr/libexec/installed-tests/libfprint-2/umockdev-test.py "$test" RES=$? echo "$test finished with return code $RES" echo "" - ((RESULT += $RES)) + # Ignore skipped tests + if [ $RES -ne 0 -a $RES -ne 77 ]; then + RESULT=1 + fi done exit $RESULT diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index ab999c2..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-source - tags: - - always - required_packages: - - git - - role: standard-test-basic - tags: - - atomic - - classic - required_packages: - - python3-dbusmock - - umockdev - tests: - - virtual_image: - dir: . - run: source/tests/virtual-image.py - - umockdev: - dir: . - run: run-umockdev.sh - diff --git a/update-goodix.patch b/update-goodix.patch deleted file mode 100644 index 1c6e2ce..0000000 --- a/update-goodix.patch +++ /dev/null @@ -1,1353 +0,0 @@ -From 97efb6653ddba5843748365abd76917a740c2bae Mon Sep 17 00:00:00 2001 -From: fengqiangguo -Date: Wed, 16 Dec 2020 10:31:46 +0800 -Subject: [PATCH 1/6] goodixmoc: Fix some big/little endian support issues - -Goodix driver is not working fine in BigEndian architectures. This -commit fixes some of these issues. - -Related: #236 ---- - libfprint/drivers/goodixmoc/goodix.c | 2 +- - libfprint/drivers/goodixmoc/goodix_proto.c | 85 ++++++++++++++-------- - libfprint/drivers/goodixmoc/goodix_proto.h | 4 +- - 3 files changed, 58 insertions(+), 33 deletions(-) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index af64d81..82913d7 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -127,7 +127,7 @@ fp_cmd_receive_cb (FpiUsbTransfer *transfer, - } - - gx_proto_crc32_calc (transfer->buffer, PACKAGE_HEADER_SIZE + header.len, (uint8_t *) &crc32_calc); -- if(crc32_calc != *(uint32_t *) (transfer->buffer + PACKAGE_HEADER_SIZE + header.len)) -+ if(crc32_calc != GUINT32_FROM_LE (*(uint32_t *) (transfer->buffer + PACKAGE_HEADER_SIZE + header.len))) - { - fpi_ssm_mark_failed (transfer->ssm, - fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO, -diff --git a/libfprint/drivers/goodixmoc/goodix_proto.c b/libfprint/drivers/goodixmoc/goodix_proto.c -index e30d23d..962fd6e 100644 ---- a/libfprint/drivers/goodixmoc/goodix_proto.c -+++ b/libfprint/drivers/goodixmoc/goodix_proto.c -@@ -141,8 +141,11 @@ crc32_update (gf_crc32_context *ctx, const uint8_t *message, uint32_t n_bytes) - static void - crc32_final (gf_crc32_context *ctx, uint8_t *md) - { -+ uint32_t crc = 0; -+ - ctx->crc = (REFLECT_REMAINDER (ctx->crc) ^ FINAL_XOR_VALUE); -- memcpy (md, &ctx->crc, 4); -+ crc = GUINT32_TO_LE (ctx->crc); -+ memcpy (md, &crc, 4); - } - - uint8_t -@@ -184,7 +187,7 @@ init_pack_header ( - pheader->cmd1 = LOBYTE (cmd); - pheader->packagenum = packagenum; - pheader->reserved = dump_seq++; -- pheader->len = len + PACKAGE_CRC_SIZE; -+ pheader->len = GUINT16_TO_LE (len + PACKAGE_CRC_SIZE); - pheader->crc8 = gx_proto_crc8_calc ((uint8_t *) pheader, 6); - pheader->rev_crc8 = ~pheader->crc8; - } -@@ -224,14 +227,14 @@ gx_proto_parse_header ( - { - if (!buffer || !pheader) - return -1; -- if (buffer_len < PACKAGE_HEADER_SIZE) -+ if (buffer_len < PACKAGE_HEADER_SIZE + PACKAGE_CRC_SIZE) - return -1; - - memcpy (pheader, buffer, sizeof (pack_header)); -- -- pheader->len = GUINT16_FROM_LE ( *(uint16_t *) (buffer + 4)); -+ pheader->len = GUINT16_FROM_LE (pheader->len); -+ if (buffer_len < pheader->len + PACKAGE_HEADER_SIZE) -+ return -1; - pheader->len -= PACKAGE_CRC_SIZE; -- - return 0; - } - -@@ -248,7 +251,7 @@ gx_proto_parse_fingerid ( - if (!template || !fid_buffer) - return -1; - -- if (fid_buffer_size < 70) -+ if (fid_buffer_size < G_STRUCT_OFFSET (template_format_t, payload) + sizeof (uint32_t)) - return -1; - - buffer = fid_buffer; -@@ -256,28 +259,30 @@ gx_proto_parse_fingerid ( - - if (buffer[Offset++] != 67) - return -1; -+ fid_buffer_size--; - - template->type = buffer[Offset++]; -+ fid_buffer_size--; - template->finger_index = buffer[Offset++]; -+ fid_buffer_size--; - Offset++; -- -- memcpy (template->accountid, &buffer[Offset], 32); -- Offset += 32; -- -- memcpy (template->tid, &buffer[Offset], 32); -- Offset += 32; // Offset == 68 -- -+ memcpy (template->accountid, &buffer[Offset], sizeof (template->accountid)); -+ Offset += sizeof (template->accountid); -+ memcpy (template->tid, &buffer[Offset], sizeof (template->tid)); -+ Offset += sizeof (template->tid); // Offset == 68 - template->payload.size = buffer[Offset++]; -- memset (template->payload.data, 0, 56); -+ if (template->payload.size > sizeof (template->payload.data)) -+ return -1; -+ memset (template->payload.data, 0, template->payload.size); - memcpy (template->payload.data, &buffer[Offset], template->payload.size); - - return 0; - } - - int --gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_cmd_response_t presp) -+gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint16_t buffer_len, pgxfp_cmd_response_t presp) - { -- uint32_t offset = 0; -+ uint16_t offset = 0; - uint8_t *fingerlist = NULL; - - if (!buffer || !presp) -@@ -289,6 +294,8 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_c - { - case RESPONSE_PACKAGE_CMD: - { -+ if (buffer_len < sizeof (gxfp_parse_msg_t) + 1) -+ return -1; - presp->parse_msg.ack_cmd = buffer[1]; - } - break; -@@ -296,32 +303,46 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_c - case MOC_CMD0_UPDATE_CONFIG: - { - presp->finger_config.status = buffer[0]; -- presp->finger_config.max_stored_prints = buffer[2]; -+ if (buffer_len >= 3) -+ presp->finger_config.max_stored_prints = buffer[2]; -+ else -+ /* to compatiable old version firmware */ -+ presp->finger_config.max_stored_prints = FP_MAX_FINGERNUM; -+ - } - break; - - case MOC_CMD0_COMMITENROLLMENT: - case MOC_CMD0_DELETETEMPLATE: -+ /* just check result */ - break; - - case MOC_CMD0_GET_VERSION: -+ if (buffer_len < sizeof (gxfp_version_info_t) + 1) -+ return -1; - memcpy (&presp->version_info, buffer + 1, sizeof (gxfp_version_info_t)); - break; - - case MOC_CMD0_CAPTURE_DATA: - if (LOBYTE (cmd) == MOC_CMD1_DEFAULT) - { -+ if (buffer_len < sizeof (gxfp_capturedata_t) + 1) -+ return -1; - presp->capture_data_resp.img_quality = buffer[1]; - presp->capture_data_resp.img_coverage = buffer[2]; - } - break; - - case MOC_CMD0_ENROLL_INIT: -+ if (buffer_len < sizeof (gxfp_enroll_init_t) + 1) -+ return -1; - if (presp->result == GX_SUCCESS) - memcpy (&presp->enroll_init.tid, &buffer[1], TEMPLATE_ID_SIZE); - break; - - case MOC_CMD0_ENROLL: -+ if (buffer_len < sizeof (gxfp_enroll_update_t)) -+ return -1; - presp->enroll_update.rollback = (buffer[0] < 0x80) ? false : true; - presp->enroll_update.img_overlay = buffer[1]; - presp->enroll_update.img_preoverlay = buffer[2]; -@@ -331,7 +352,11 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_c - presp->check_duplicate_resp.duplicate = (presp->result == 0) ? false : true; - if (presp->check_duplicate_resp.duplicate) - { -- uint16_t tid_size = GUINT16_FROM_LE (*(buffer + 1)); -+ if (buffer_len < 3) -+ return -1; -+ uint16_t tid_size = GUINT16_FROM_LE (*(uint16_t *) (buffer + 1)); -+ if ((buffer_len < tid_size + 3) || (buffer_len > sizeof (template_format_t)) + 3) -+ return -1; - memcpy (&presp->check_duplicate_resp.template, buffer + 3, tid_size); - } - break; -@@ -339,18 +364,16 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_c - case MOC_CMD0_GETFINGERLIST: - if (presp->result != GX_SUCCESS) - break; -+ if (buffer_len < 2) -+ return -1; - presp->finger_list_resp.finger_num = buffer[1]; -- if (presp->finger_list_resp.finger_num > FP_MAX_FINGERNUM) -- { -- presp->finger_list_resp.finger_num = 0; -- presp->result = GX_ERROR_NO_AVAILABLE_SPACE; -- break; -- } - fingerlist = buffer + 2; - for(uint8_t num = 0; num < presp->finger_list_resp.finger_num; num++) - { -- uint16_t fingerid_length = GUINT16_FROM_LE (*(fingerlist + offset)); -+ uint16_t fingerid_length = GUINT16_FROM_LE (*(uint16_t *) (fingerlist + offset)); - offset += 2; -+ if (buffer_len < fingerid_length + offset + 2) -+ return -1; - if (gx_proto_parse_fingerid (fingerlist + offset, - fingerid_length, - &presp->finger_list_resp.finger_list[num]) != 0) -@@ -372,14 +395,16 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint32_t buffer_len, pgxfp_c - presp->verify.match = (buffer[0] == 0) ? true : false; - if (presp->verify.match) - { -+ if (buffer_len < sizeof (template_format_t) + 10) -+ return -1; - offset += 1; -- presp->verify.rejectdetail = GUINT16_FROM_LE (*(buffer + offset)); -+ presp->verify.rejectdetail = GUINT16_FROM_LE (*(uint16_t *) (buffer + offset)); - offset += 2; -- score = GUINT32_FROM_LE (*(buffer + offset)); -+ score = GUINT32_FROM_LE (*(uint32_t *) (buffer + offset)); - offset += 4; -- study = GUINT16_FROM_LE (*(buffer + offset)); -+ study = buffer[offset]; - offset += 1; -- fingerid_size = GUINT16_FROM_LE (*(buffer + offset)); -+ fingerid_size = GUINT16_FROM_LE (*(uint16_t *) (buffer + offset)); - offset += 2; - if (gx_proto_parse_fingerid (buffer + offset, fingerid_size, &presp->verify.template) != 0) - { -diff --git a/libfprint/drivers/goodixmoc/goodix_proto.h b/libfprint/drivers/goodixmoc/goodix_proto.h -index 53eea04..e98e4e4 100644 ---- a/libfprint/drivers/goodixmoc/goodix_proto.h -+++ b/libfprint/drivers/goodixmoc/goodix_proto.h -@@ -89,7 +89,7 @@ typedef struct _gxfp_version_info - uint8_t interface[GX_VERSION_LEN]; - uint8_t protocol[GX_VERSION_LEN]; - uint8_t flashVersion[GX_VERSION_LEN]; -- uint8_t reserved[62]; -+ uint8_t reserved[38]; - } gxfp_version_info_t, *pgxfp_version_info_t; - - -@@ -225,7 +225,7 @@ int gx_proto_parse_header (uint8_t *buffer, - - int gx_proto_parse_body (uint16_t cmd, - uint8_t *buffer, -- uint32_t buffer_len, -+ uint16_t buffer_len, - pgxfp_cmd_response_t presponse); - - int gx_proto_init_sensor_config (pgxfp_sensor_cfg_t pconfig); --- -2.31.1 - - -From fc59b2d365cb59dde2bed3bd48445b4353eae1e0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Fri, 29 Jan 2021 20:02:15 +0100 -Subject: [PATCH 2/6] goodix: Consume the retry errors during verify/identify - reports - -We should not pass such kind of errors to complete functions, or we'll -fail the identification without ability to retry immediately. ---- - libfprint/drivers/goodixmoc/goodix.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index 82913d7..81cdb67 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -468,9 +468,9 @@ fp_verify_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error) - if (error && error->domain == FP_DEVICE_RETRY) - { - if (fpi_device_get_current_action (dev) == FPI_DEVICE_ACTION_VERIFY) -- fpi_device_verify_report (dev, FPI_MATCH_ERROR, NULL, error); -+ fpi_device_verify_report (dev, FPI_MATCH_ERROR, NULL, g_steal_pointer (&error)); - else -- fpi_device_identify_report (dev, NULL, NULL, error); -+ fpi_device_identify_report (dev, NULL, NULL, g_steal_pointer (&error)); - } - - if (fpi_device_get_current_action (dev) == FPI_DEVICE_ACTION_VERIFY) --- -2.31.1 - - -From 3f54df16e31ca67e40e088786350e97576f3a47d Mon Sep 17 00:00:00 2001 -From: fengqiangguo -Date: Tue, 19 Jan 2021 03:00:07 -0500 -Subject: [PATCH 3/6] goodixmoc: support power button shield feature - -Some OEM will integrate fingerprint device with powerButton. It's -possible that a user may press the power button during fingerprint -enroll or identify. This would lead to unintended PC shutdown or -hibernation. We add pwr_btn_shield cmd and related process to shield -the power button function when the fingerprint functionality (enroll and -identify) is used and restore power button function afterwards. ---- - libfprint/drivers/goodixmoc/goodix.c | 121 ++++++- - libfprint/drivers/goodixmoc/goodix.h | 8 +- - libfprint/drivers/goodixmoc/goodix_proto.c | 10 + - libfprint/drivers/goodixmoc/goodix_proto.h | 11 + - tests/goodixmoc/custom.ioctl | 346 ++++++++------------- - tests/goodixmoc/device | 105 ++++--- - 6 files changed, 321 insertions(+), 280 deletions(-) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index 81cdb67..9cfdbe6 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -58,6 +58,7 @@ struct _FpiDeviceGoodixMoc - GPtrArray *list_result; - guint8 template_id[TEMPLATE_ID_SIZE]; - gboolean is_enroll_identify; -+ gboolean is_power_button_shield_on; - - }; - -@@ -309,6 +310,35 @@ goodix_sensor_cmd (FpiDeviceGoodixMoc *self, - - - } -+ -+/****************************************************************************** -+ * -+ * fp_pwr_btn_shield_cb Function -+ * -+ *****************************************************************************/ -+static void -+fp_pwr_btn_shield_cb (FpiDeviceGoodixMoc *self, -+ gxfp_cmd_response_t *resp, -+ GError *error) -+{ -+ if (error) -+ { -+ fpi_ssm_mark_failed (self->task_ssm, error); -+ return; -+ } -+ if (resp->result >= GX_FAILED) -+ { -+ fp_dbg ("Setting power button shield failed, result: 0x%x", resp->result); -+ fpi_ssm_mark_failed (self->task_ssm, -+ fpi_device_retry_new (FP_DEVICE_RETRY_GENERAL)); -+ return; -+ } -+ if (resp->power_button_shield_resp.resp_cmd1 == MOC_CMD1_PWR_BTN_SHIELD_ON) -+ self->is_power_button_shield_on = true; -+ else -+ self->is_power_button_shield_on = false; -+ fpi_ssm_next_state (self->task_ssm); -+} - /****************************************************************************** - * - * fp_verify_xxxx Function -@@ -419,7 +449,7 @@ fp_verify_cb (FpiDeviceGoodixMoc *self, - fpi_device_identify_report (device, NULL, NULL, error); - } - -- fpi_ssm_mark_completed (self->task_ssm); -+ fpi_ssm_next_state (self->task_ssm); - - } - -@@ -436,6 +466,14 @@ fp_verify_sm_run_state (FpiSsm *ssm, FpDevice *device) - - switch (fpi_ssm_get_cur_state (ssm)) - { -+ case FP_VERIFY_PWR_BTN_SHIELD_ON: -+ goodix_sensor_cmd (self, MOC_CMD0_PWR_BTN_SHIELD, MOC_CMD1_PWR_BTN_SHIELD_ON, -+ false, -+ NULL, -+ 0, -+ fp_pwr_btn_shield_cb); -+ break; -+ - case FP_VERIFY_CAPTURE: - fpi_device_report_finger_status_changes (device, - FP_FINGER_STATUS_NEEDED, -@@ -454,6 +492,14 @@ fp_verify_sm_run_state (FpiSsm *ssm, FpDevice *device) - TEMPLATE_ID_SIZE, - fp_verify_cb); - break; -+ -+ case FP_VERIFY_PWR_BTN_SHIELD_OFF: -+ goodix_sensor_cmd (self, MOC_CMD0_PWR_BTN_SHIELD, MOC_CMD1_PWR_BTN_SHIELD_OFF, -+ false, -+ NULL, -+ 0, -+ fp_pwr_btn_shield_cb); -+ break; - } - - } -@@ -812,6 +858,16 @@ fp_enroll_sm_run_state (FpiSsm *ssm, FpDevice *device) - } - break; - -+ case FP_ENROLL_PWR_BTN_SHIELD_ON: -+ { -+ goodix_sensor_cmd (self, MOC_CMD0_PWR_BTN_SHIELD, MOC_CMD1_PWR_BTN_SHIELD_ON, -+ false, -+ NULL, -+ 0, -+ fp_pwr_btn_shield_cb); -+ } -+ break; -+ - case FP_ENROLL_IDENTIFY: - { - dummy[0] = 0x01; -@@ -926,9 +982,17 @@ fp_enroll_sm_run_state (FpiSsm *ssm, FpDevice *device) - - } - break; -- } -- - -+ case FP_ENROLL_PWR_BTN_SHIELD_OFF: -+ { -+ goodix_sensor_cmd (self, MOC_CMD0_PWR_BTN_SHIELD, MOC_CMD1_PWR_BTN_SHIELD_OFF, -+ false, -+ NULL, -+ 0, -+ fp_pwr_btn_shield_cb); -+ } -+ break; -+ } - } - - static void -@@ -1282,6 +1346,7 @@ gx_fp_init (FpDevice *device) - int ret = 0; - - self->max_stored_prints = FP_MAX_FINGERNUM; -+ self->is_power_button_shield_on = false; - - self->cancellable = g_cancellable_new (); - -@@ -1317,20 +1382,59 @@ gx_fp_init (FpDevice *device) - } - - static void --gx_fp_exit (FpDevice *device) -+gx_fp_release_interface (FpiDeviceGoodixMoc *self, -+ GError *error) - { -- FpiDeviceGoodixMoc *self = FPI_DEVICE_GOODIXMOC (device); -- GError *error = NULL; -+ g_autoptr(GError) release_error = NULL; - - g_clear_object (&self->cancellable); - g_clear_pointer (&self->sensorcfg, g_free); - - /* Release usb interface */ -- g_usb_device_release_interface (fpi_device_get_usb_device (FP_DEVICE (device)), -- 0, 0, &error); -+ g_usb_device_release_interface (fpi_device_get_usb_device (FP_DEVICE (self)), -+ 0, 0, &release_error); -+ /* Retain passed error if set, otherwise propagate error from release. */ -+ if (error == NULL) -+ error = g_steal_pointer (&release_error); - - /* Notify close complete */ - fpi_device_close_complete (FP_DEVICE (self), error); -+ -+} -+ -+static void -+gx_fp_exit_cb (FpiDeviceGoodixMoc *self, -+ gxfp_cmd_response_t *resp, -+ GError *error) -+{ -+ -+ -+ if (resp->result >= GX_FAILED) -+ fp_dbg ("Setting power button shield failed, result: 0x%x", resp->result); -+ self->is_power_button_shield_on = false; -+ gx_fp_release_interface (self, error); -+} -+ -+static void -+gx_fp_exit (FpDevice *device) -+{ -+ FpiDeviceGoodixMoc *self = FPI_DEVICE_GOODIXMOC (device); -+ -+ if (self->is_power_button_shield_on) -+ { -+ goodix_sensor_cmd (self, -+ MOC_CMD0_PWR_BTN_SHIELD, -+ MOC_CMD1_PWR_BTN_SHIELD_OFF, -+ false, -+ NULL, -+ 0, -+ gx_fp_exit_cb); -+ } -+ else -+ { -+ gx_fp_release_interface (self, NULL); -+ } -+ - } - - -@@ -1432,7 +1536,6 @@ fpi_device_goodixmoc_init (FpiDeviceGoodixMoc *self) - static void - gx_fp_cancel (FpDevice *device) - { -- - FpiDeviceGoodixMoc *self = FPI_DEVICE_GOODIXMOC (device); - - /* Cancel any current interrupt transfer (resulting us to go into -diff --git a/libfprint/drivers/goodixmoc/goodix.h b/libfprint/drivers/goodixmoc/goodix.h -index c38bf9b..23e142a 100644 ---- a/libfprint/drivers/goodixmoc/goodix.h -+++ b/libfprint/drivers/goodixmoc/goodix.h -@@ -40,7 +40,8 @@ typedef enum { - - - typedef enum { -- FP_ENROLL_ENUM = 0, -+ FP_ENROLL_PWR_BTN_SHIELD_ON = 0, -+ FP_ENROLL_ENUM, - FP_ENROLL_IDENTIFY, - FP_ENROLL_CREATE, - FP_ENROLL_CAPTURE, -@@ -48,11 +49,14 @@ typedef enum { - FP_ENROLL_WAIT_FINGER_UP, - FP_ENROLL_CHECK_DUPLICATE, - FP_ENROLL_COMMIT, -+ FP_ENROLL_PWR_BTN_SHIELD_OFF, - FP_ENROLL_NUM_STATES, - } FpEnrollState; - - typedef enum { -- FP_VERIFY_CAPTURE = 0, -+ FP_VERIFY_PWR_BTN_SHIELD_ON = 0, -+ FP_VERIFY_CAPTURE, - FP_VERIFY_IDENTIFY, -+ FP_VERIFY_PWR_BTN_SHIELD_OFF, - FP_VERIFY_NUM_STATES, - } FpVerifyState; -diff --git a/libfprint/drivers/goodixmoc/goodix_proto.c b/libfprint/drivers/goodixmoc/goodix_proto.c -index 962fd6e..01044a9 100644 ---- a/libfprint/drivers/goodixmoc/goodix_proto.c -+++ b/libfprint/drivers/goodixmoc/goodix_proto.c -@@ -317,6 +317,16 @@ gx_proto_parse_body (uint16_t cmd, uint8_t *buffer, uint16_t buffer_len, pgxfp_c - /* just check result */ - break; - -+ case MOC_CMD0_PWR_BTN_SHIELD: -+ presp->power_button_shield_resp.resp_cmd1 = LOBYTE (cmd); -+ if (buffer_len >= 2) -+ { -+ uint8_t support_pwr_shield = buffer[1]; -+ if (support_pwr_shield == 0xFF) -+ g_debug ("Power button shield feature not supported!\n"); -+ } -+ break; -+ - case MOC_CMD0_GET_VERSION: - if (buffer_len < sizeof (gxfp_version_info_t) + 1) - return -1; -diff --git a/libfprint/drivers/goodixmoc/goodix_proto.h b/libfprint/drivers/goodixmoc/goodix_proto.h -index e98e4e4..bcd1cdd 100644 ---- a/libfprint/drivers/goodixmoc/goodix_proto.h -+++ b/libfprint/drivers/goodixmoc/goodix_proto.h -@@ -75,6 +75,11 @@ - #define MOC_CMD1_GET_FINGER_MODE 0x00 - #define MOC_CMD1_SET_FINGER_DOWN 0x01 - #define MOC_CMD1_SET_FINGER_UP 0x02 -+ -+#define MOC_CMD0_PWR_BTN_SHIELD 0xE0 -+#define MOC_CMD1_PWR_BTN_SHIELD_OFF 0x00 -+#define MOC_CMD1_PWR_BTN_SHIELD_ON 0x01 -+ - /* */ - - typedef struct _gxfp_version_info -@@ -173,6 +178,11 @@ typedef struct _fp_finger_config - uint8_t max_stored_prints; - } fp_finger_config_t, *pfp_finger_config_t; - -+typedef struct _fp_pwr_btn_shield -+{ -+ uint8_t resp_cmd1; -+} fp_pwr_btn_shield_t, *pfp_pwr_btn_shield_t; -+ - typedef struct _fp_cmd_response - { - uint8_t result; -@@ -189,6 +199,7 @@ typedef struct _fp_cmd_response - gxfp_version_info_t version_info; - fp_finger_status_t finger_status; - fp_finger_config_t finger_config; -+ fp_pwr_btn_shield_t power_button_shield_resp; - }; - } gxfp_cmd_response_t, *pgxfp_cmd_response_t; - -diff --git a/tests/goodixmoc/custom.ioctl b/tests/goodixmoc/custom.ioctl -index 21c8531..496b43c 100644 ---- a/tests/goodixmoc/custom.ioctl -+++ b/tests/goodixmoc/custom.ioctl -@@ -1,307 +1,217 @@ --@DEV /dev/bus/usb/001/003 -+@DEV /dev/bus/usb/003/008 - USBDEVFS_GET_CAPABILITIES 0 FD010000 - USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 D00000000500BA4500611A297F - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000008009D6200D00001B5A57582000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000008009D6200D00000239572F5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 D0000001850067980001FE415050000000000030313030303232384C454E4F564F0000474D3138384230004746333230360000312E30322E30310055534200000000005642530000000000303030303030303300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051239DE6303030303033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 140 140 0 C001000184008E71000064500F410C0A1800002300000101000101010100010105050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B737316F3EB36C6A -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 D0000001850067980002FE4150500000000000303130303032343744454C4C00000000474D3138384230004746353238380000312E30342E30352E31302E3530000000000000000000000000000000000000005553420000000000564253000000000030303030303030330000000000000000000000000000000000000000000000000000000000003B5CB43C000000000000555342000000000056425300000000003030303030303033000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 140 140 0 C001000184008E71000064500F41080A1800002300000101000101010100010105050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B737316F0558B152 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000208004BB400C00101C96A6C6B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000208004BB400C001005F5A6B1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 C00100030500FB040093B3ED01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A6000002050049B600C27E4B39 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 C00100030700D12E0014140342C8AE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E00100020400BE41BBC7BACE - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000004080036C900A60001F1AFC9FB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000004080036C900E00101C26FC596000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A60000050600609F000094D6C40E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000030700AC53000F411A349263 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E0010005080054AB00141441240D0ECF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A6000003050022DD00CA3B9C30 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000060800E01F00A20001605AE410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000060800E01F00A60001BCF2ED17000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A2000007070007F8005564FA6B157100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 A50000042400F40B000000000000000000000000000000000000000000000000000000000000000095D4A28A -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A60000070600B64900007A6860130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000040700BA45000F41625785F3 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000080800CC3300A500013F9036A9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000080800CC3300A20001BA8679AC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A50000090500DE2103D6515435000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A10000050500807F007BE269C4 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000090C00BC430054640027004D0084CD5EED0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 A500000524009F60000000000000000000000000000000000000000000000000000000000000000048D9D8CB - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000A08001AE500A10001AE651B42000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000A08001AE500A5000172CD1245000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A100000B250002FD00B786B17D6A044D24C1651C2B1A76F6396D790639F58CA6D62DDDB8E179A9BD4A6C5C6C9200000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000607006C93000F41A33C2AB4 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A500000B050008F703C6DBFA26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A100000605003DC200632D10DE - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000C0800679800A200011C98B985000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000C0800679800A100014526FF87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200000D0700807F0059643EDA283F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A0000007070055AA016450891085EC -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A100000D25007F8000D7843025CC713EA1543DF81EBAAF6BE244543EB9F4BC6FA74E8F246A711CD8C3EA54665F00000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A2000007070007F8000F41630A457A - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000E0800B14E00A000013F11196A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00000E0800B14E00A2000151C59D69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000000F070004FB000000E0109A2200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200080500629D004A354747 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200000F0C00C13E003E620027005900101FD1980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A0000008070012ED016450F8E6B5D9 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001008003FC000B002017532670A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001008003FC000A0000187F37724000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200114500A15E008E0091009E006F0083007C006D00690079008800000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D00000000000000000000000000988D37C39E006F0083007C006D00690079008800000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000907002BD4000F41D2CA1A81 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000001107008A7500000002FCFB4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B0020009050009F6004270904E - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000120800E91600A20001A47AD7CB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000120800E91600B00201386F43E6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200001307000EF1004B640F46BD2D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000000A0700C43B016450398D1A9E -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002001345007788008A009C009400880008009A0099008B00080008009100850000000000000000008F00A4009B0090008F00A100A000940088009A0097008D000000000000000000BEDDBBB29400880008009A0099008B00080008009100850000000000000000008F00A4009B0090008F00A100A000940088009A0097008D -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000A07009669000F41D397DA08 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000140800946B00A0000121EDB70D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000140800946B00A200014F39330E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A0000015070021DE0000007BC22C5100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002000B0500DF200052FA3E5D -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000150C00E41B004E640027004F00755632510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000000B0700AF50016450F9BB7550 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000016080042BD00B002019E7183CF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000016080042BD00A000016CB093E1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200174500DC23008200A200AA0093009F009800A90087009A009100000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000000000000000000000F1B14CECAA0093009F009800A90087009A009100000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000C0700EB14000F416BC2A256 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A00000170700F708000000BAA9831600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002000C0500C93600FFA00844 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001808006E9100A20001D8B88A5E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001808006E9100B0020144AD1E73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200001907008976005664DBD4593000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000000D0700D22D01645041EE0D0E -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200194500F00F008C009C009600080086009D0097008E00810092009100850000000000000000008F00A4009A008F008E00A1009F00920087009A0096008C000000000000000000E3A1F2A19600080086009D0097008E00810092009100850000000000000000008F00A4009A008F008E00A1009F00920087009A0096008C -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000D0700807F000F41ABF4CD98 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001A0800B84700A00001FB312AB1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001A0800B84700A2000195E5AEB2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000001B07000DF2000000CA0273AA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002000E05001FE000EF2AA657 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200001B0C00C8370048640027005A00021B15CE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000000E07006F9001645040B3CD87 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001C0800C53A00B00201E2B3DE5A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001C0800C53A00A000011072CE74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002001D45005BA400A8009100AB0071008B008F009100920093009100000000000000000000000000AF00A500AD00A000B100A300AA00A200A3009C000000000000000000000000008A57E0B3AB0071008B008F009100920093009100000000000000000000000000AF00A500AD00A000B100A300AA00A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200000F070056A9000F416A9F62DF -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000001D0700708F003A000B89A2D100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002000F0500748B00E76F715E - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001E080013EC00A2000133FB6E9B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00001E080013EC00B00201AFEEFAB6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200001F0700F40B005A625A6BF72B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000100700E11E016450A25FACED -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002001F45008D720008009900920086008800960097008D007F0091008D00850000000000000000008F00A4009B0090008F00A100A000930087009A0096008D00000000000000000069C4E77C920086008800960097008D007F0091008D00850000000000000000008F00A4009B0090008F00A100A000930087009A0096008D -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000100700B34C000F4148456C7B - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000200800DE2100A000011D15EAC2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000200800DE2100A2000173C16EC1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000002107006B94002900A6F807F200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200110500FA0500438F0629 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000210C00AE510048640027005500DD002B870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001107008A750164506269C323 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000022080008F700B00201A289DE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000022080008F700A000015048CE2E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200234500966900870088008800700085009600940070001A001A00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D0000000000000000000000000074CA825A8800700085009600940070001A001A00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000120700659A000F41892EC33C -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A00000230700BD420000008C0CEEF100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B0020012050047B8005B407F33 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000240800758A00A20001D5DFAEE8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000240800758A00B0020149CA3AC5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000250700926D00556427B73E5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001307005CA3016450A3026C64 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200254500EB14008D00A100900087000800980099008C00080008000800080000000000000000008F00A3009A008F008E00A0009F00930087009A0096008C0000000000000000000F8D1061900087000800980099008C00080008000800080000000000000000008F00A3009A008F008E00A0009F00930087009A0096008C -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200001307000EF1000F414918ACF2 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000260800A35C00A00001F6560E07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000260800A35C00A2000198828A04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A0000027070016E90058265460564800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002001405003AC500FE5F9E23 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000270C00D32C0057640027004E0017D2351D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001407004AB5016450DB617BF4 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002808008F7000B00201DE4B8395000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002808008F7000A000012C8A93BB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B0020029450011EE007B00950097006E0084008A007400720078008000000000000000000000000000AE00A500AD00A000B100A200AA00A300A3009D000000000000000000000000007AB44F7697006E0084008A007400720078008000000000000000000000000000AE00A500AD00A000B100A200AA00A300A3009D00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000150700738C000F41F14DD4AC -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000002907003AC500000044F2661300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B0020015050051AE00F61A492A - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002A080059A600A200010F033354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002A080059A600B002019316A779000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200002B0700BE4100566455244C8900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001607009C630164501A0AD4B3 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002002B4500C7380089009C00920008008A00990098008A007F0093008E00860000000000000000008F00A4009A008F008E00A100A000930087009A0096008D000000000000000000A0269EE8920008008A00990098008A007F0093008E00860000000000000000008F00A4009A008F008E00A100A000930087009A0096008D -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000160700CE31000F41F0101425 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002C080024DB00A000018A945392000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002C080024DB00A20001E440D791000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000002D0700916E005F2DD3D14D7200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200170500877800E690E739 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200002D0C0054AB004A64002700590057B20D220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000170700F708016450DA3CBB7D - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002E0800F20D00B0020135086750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00002E0800F20D00A00001C7C9777E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002002F45006C9300A80083008A006D00870082008900940074001A00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D00000000000000000000000000DD3369188A006D00870082008900940074001A00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009D00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000180700E21D000F4141D04BDE -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000002F070047B8004C4C4EAAB86E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200180500C03F00B4605C02 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003008007C8300A2000111FF9D33000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003008007C8300B002018DEA091E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200003107009B6400586440DB796400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000190700DB240164506BFCE486 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200314500E21D00080008000800080088009A0096008F00820092009000080000000000000000008F00A3009A008F008E00A000A000930087009A0096008C000000000000000000E0BA753D0800080088009A0096008F00820092009000080000000000000000008F00A3009A008F008E00A000A000930087009A0096008C -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200001907008976000F4181E62410 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000320800AA5500A0000132763DDC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000320800AA5500A200015CA2B9DF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000003307001FE072635FE0E8A18200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002001A050016E900A4EAF211 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000330C00DA25005464002700500088A694DC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001A070066990164506AA1240F - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000340800D72800B002012BF4C937000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000340800D72800A00001D935D919000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B0020035450049B6007D00920094008C009A008B008400890094006D00000000000000000000000000AE00A500AD00A000B100A300AA00A200A3009D00000000000000000000000000520A47F394008C009A008B008400890094006D00000000000000000000000000AE00A500AD00A000B100A300AA00A200A3009D00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200001B07005FA0000F41408D8B57 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A00000350700629D0000006775A83E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002001B05007D8200ACAF2518 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000036080001FE00A20001FABC79F6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000036080001FE00B0020166A9EDDB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000370700E619005964B9BF1A2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001C07001BE4016450D2F45C51 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002003745009F600008000800080008008600970095000800830090008D00880000000000000000008F00A3009A008F008E00A100A000930087009A0096008C000000000000000000F054EC42080008008600970095000800830090008D00880000000000000000008F00A3009A008F008E00A100A000930087009A0096008C -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200001C070049B6000F4138EE9CC7 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003808002DD200A000014EB46049000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003808002DD200A200012060E44A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000003907009867725F526A136B6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002001D050000FF0009B0C408 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000390C005DA2004A640027004F005D569D1A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001D0700708F01645012C2339F - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003A0800FB0400B00201F128548B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003A0800FB0400A0000103E944A5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002003B4500659A0084007D008B0099009C006A009A007B0089008300000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000000000000000000000BAEEF1FA8B0099009C006A009A007B0089008300000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200001E07009F60000F41F9853380 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000003B07004EB1000000D6B5F7C500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A300001E0700B649000F41F8F75650 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003C0800867900A20001867E2463000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003C0800867900A30001B114E662000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200003D0700619E005864307089D800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000001F0700A659016450D3A99CD8 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A300003D0500629D009DDA98C4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 114 114 0 A400001F6A001EE1640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F647900E6F6BD05 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003E080050AF00A00001A5F7848C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00003E080050AF00A40001795F8D8B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000003F0700E51A0063324BE2275A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200200500708F00DCB5EECB -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A400003F05006B940099962233000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E0000020040049B6AEA0E8AB - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004008001BE400B00201E7BD49D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004008001BE400E00001D5F1C38E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200414500857A0078006F0074009200A6008C0071006C008E009400000000000000000000000000AF00A500AD00A000B100A300A900A200A3009C0000000000000000000000000079DB6FC674009200A6008C0071006C008E009400000000000000000000000000AF00A500AD00A000B100A300A900A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A2000021070039C6000F41C7E8B94B -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E000004108001BE400000000315A099D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A60000210500B74800B39B168D - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000420800CD3200A2000136F5F911000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000420800CD3200A60001EA5DF016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200004307002AD5005A647427533000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000220700D6290164502CAFB954 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 A60000436C00EC130001640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F647900FA60A49A000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E00100220400FD0253E4FA3B - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000440800B04F00A00001B36299D7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000440800B04F00E0010132DE18BE000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A0000045070005FA0061447F5F4C1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B00200230500CD3200C47A97D1 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E00100450800D22D000000002B1189D3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000230700EF100100238AF5F029 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000460800669900B002010CFEAD15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000460800669900A2000190EB3938000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200474500F807009500860087008D00A3006D007D0081009C007C00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C0000000000000000000000000074D7CC3787008D00A3006D007D0081009C007C00000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000240700F906000F417EE0019C -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000470C0016E9004C640027004D005C10F4310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 A50000242400B7480000000000000000000000000000000000000000000000000000000000000000664B5D3F - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004808004AB500A200014A37A484000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004808004AB500A50001CF21EB81000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000490700AD52005764F1A7756700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000250700C03F01645054CCAEC4 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 A50000499200D22D004C642A00000000640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F647900954F9F36EAEDD0364E04D4A2B430F0D25BF63D97E631EC0F0F86A6A3DCDEF50C82BB7E8C2D30303030303030302D302D30303030303030302D6E6F626F647900954F9F36EAEDD0364E04 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E000002504008976203A9633 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004A08009C6300A0000169BE046B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004A08009C6300E00001A9339E1B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000004B070029D60041281F96933800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002002605000DF20079AA0FDB -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E000004B08009C63004C642A9C8BFEAB000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E0010026040056A9D15D8DC2 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004C0800E11E00B00201703CF080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004C0800E11E00E00101034161C7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002004D45007F80009E008E008E007E00AB00840096007F0092008100000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000000000000000000000D393E7738E007E00AB00840096007F0092008100000000000000000000000000AF00A500AD00A000B100A300AA00A300A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A2000027070044BB000F417FBDC115 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E001004D0800837C004C642ACB9D5A09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A2000027070044BB010023F3CB2730 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00004E080037C800A20001A1744041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200004F0700D02F005964C7DF8EA700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A0000028070051AE016450E45131B6 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200004F0C0047B80052640027004D00E19CE96F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 A500002824004DB200000000000000000000000000000000000000000000000000000000000000003DB8032C - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000500800B94600A000017742AA0C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000500800B94600A500019C80610A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000005107000CF300624F1EC75A2600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002002905004AB5002B5AB4E0 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 A5000051920021DE0052642A00000000640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F647900954F9F36EAEDD0364E04D4A2B430F0D25BF63D97E631EC0F0F86A6A3DCDEF50CCC7D08E82D30303030303030302D302D30303030303030302D6E6F626F647900954F9F36EAEDD0364E04 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 12 12 0 E00000290400738C14C55D45 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00005208006F9000B00201C8DE9ECE000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00005208006F9000E00001FA921490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B00200534500F10E0077007A00720083007500930073007E006E008200000000000000000000000000AE00A400AC009F00B100A200A900A200A3009C00000000000000000000000000C5190965720083007500930073007E006E008200000000000000000000000000AE00A400AC009F00B100A200A900A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200002A0700D52A000F41CF205E67 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 E000005308006F900052642AB5A4CC36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+USBDEVFS_REAPURBNDELAY 0 3 1 0 0 114 114 0 A700002A6A0044BB640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F6479001CF66539 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000054080012ED00A20001BF88EE26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000054080012ED00A70001544A2520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000550700F50A0058641D3C23CD00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000002B0700EC13016450E50CF13F -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000560800C43B00A000019C014EC9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A00000570700718E726054F685049700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002002C05008A7500968A2CEA -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000580800E81700B00201B41CC35B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002005945007689008C007100780072007A009500A10088009C008F00000000000000000000000000AE00A500AD00A000B100A200A900A200A3009C00000000000000000000000000D98A26F0780072007A009500A10088009C008F00000000000000000000000000AE00A500AD00A000B100A200A900A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200002D0700C33C000F41B74349F7 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00005A08003EC100A200016554739A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200005B0700D926005964EDCD672F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A000002E07002CD30164505C0449E8 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00005C080043BC00A00001E0C3135C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000005D0700F609725F58291DE42400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B002002F050037C8008E4555F0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00005E0800956A00B002015F5F279E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002005F45000BF400A30088009D008D00A80071007F0092006F006100000000000000000000000000AE00A400AC009F00B100A200A900A200A3009C000000000000000000000000001A1438ED9D008D00A80071007F0092006F006100000000000000000000000000AE00A400AC009F00B100A200A900A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000300700F00F000F4154F2E814 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000060080058A700A200018370B3E9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000610700BF400059646AA8553300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A00000310700C9360164507EDE474C -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00006208008E7100A00001A0F91306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A000006307003BC4006432979DA1E700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 B0020032050004FB00326A5B9D -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000640800F30C00B00201B97BE7ED000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 B002006545006D92008D008F008A00750083008D0092008B0071007A00000000000000000000000000AE00A500AD00A000B100A200A900A200A3009C00000000000000000000000000394AB8458A00750083008D0092008B0071007A00000000000000000000000000AE00A500AD00A000B100A200A900A200A3009C00000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A200003307004DB2000F4155AF289D -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000066080025DA00A200016833572C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A20000670700C23D0057645CD0AEF300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A0000034070009F6016450C7D6FF9B -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000068080009F600A00001DC3B4E93000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A00000690700BC43002E00509568C700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A3000035070019E6000F41EC883513 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00006A0800DF2000A30001C8D82C7D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A300006B05003BC40055C25B16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 114 114 0 A40000366A006798640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F647900B5C8699F -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00006C0800A25D00A40001A68D87BD000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A400006D0500996600E41BAEE2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 13 13 0 A60000370500689700E8D1ECD8 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00006E0800748B00A6000185042752000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 128 0 A600006F6C0055AA0001640043010107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F6479006EA4C362000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 A20000380700A15E010023D1112994 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000700800FA0500A20001E14E401B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200007107001DE2005A635942221700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 A50000392400847B000000000000000000000000000000000000000000000000000000000000000038910386 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00007208002CD300A5000129052BF2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 A50000739300A15E005A632900000000640043010107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F6479008B7767E4A81CC57C17A21C0F44B08232229E7F2E5DBFA70A5CEF58A3966ED710002FF9938030303030303030302D302D30303030303030302D6E6F626F6479008B7767E4A81CC57C17A2 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 15 15 0 a200003a07007788010023107a86d3 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA0000700800FA0500A20001E14E401B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A200007107001DE2005A635942221700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 44 44 0 a500003b240052ad0000000000000000000000000000000000000000000000000000000000000000828af704 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA00007208002CD300A5000129052BF2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 192 0 A50000739300A15E005A632900000000640043010107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E4650312D30303030303030302D302D30303030303030302D6E6F626F6479008B7767E4A81CC57C17A21C0F44B08232229E7F2E5DBFA70A5CEF58A3966ED710002FF9938030303030303030302D302D30303030303030302D6E6F626F6479008B7767E4A81CC57C17A2 --USBDEVFS_REAPURBNDELAY 0 3 1 0 0 114 114 0 a700003c6a009b64640043010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e4650312d30303030303030302d302d30303030303030302d6e6f626f647900473c9b29 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 AA000074080051AE00A70001AC924B34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 0 0 -- USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A7000075050011EE00ACFFDA28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -+ USBDEVFS_REAPURBNDELAY 0 3 131 0 0 2048 64 0 A7000055050052AD00C5D5FE86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -diff --git a/tests/goodixmoc/device b/tests/goodixmoc/device -index 627c9dc..a076caa 100644 ---- a/tests/goodixmoc/device -+++ b/tests/goodixmoc/device -@@ -1,30 +1,30 @@ --P: /devices/pci0000:00/0000:00:14.0/usb1/1-8 --N: bus/usb/001/003=12010002EF000040C627A26000010102030109022000010103A0320904000002FF0000040705830240000007050102400000 --E: DEVNAME=/dev/bus/usb/001/003 -+P: /devices/pci0000:00/0000:00:14.0/usb3/3-2 -+N: bus/usb/003/008=12010002EF000040C627405800010102030109022000010103A0320904000002FF0000040705830240000007050102400000 -+E: DEVNAME=/dev/bus/usb/003/008 - E: DEVTYPE=usb_device - E: DRIVER=usb --E: PRODUCT=27c6/60a2/100 -+E: PRODUCT=27c6/5840/100 - E: TYPE=239/0/0 --E: BUSNUM=001 --E: DEVNUM=003 -+E: BUSNUM=003 -+E: DEVNUM=008 - E: MAJOR=189 --E: MINOR=2 -+E: MINOR=263 - E: SUBSYSTEM=usb - E: ID_VENDOR=Goodix_Technology_Co.__Ltd. - E: ID_VENDOR_ENC=Goodix\x20Technology\x20Co.\x2c\x20Ltd. - E: ID_VENDOR_ID=27c6 - E: ID_MODEL=Goodix_USB2.0_MISC - E: ID_MODEL_ENC=Goodix\x20USB2.0\x20MISC --E: ID_MODEL_ID=60a2 -+E: ID_MODEL_ID=5840 - E: ID_REVISION=0100 --E: ID_SERIAL=Goodix_Technology_Co.__Ltd._Goodix_USB2.0_MISC_UIDCBEE4D7B_XXXX_MOC_B0 --E: ID_SERIAL_SHORT=UIDCBEE4D7B_XXXX_MOC_B0 -+E: ID_SERIAL=Goodix_Technology_Co.__Ltd._Goodix_USB2.0_MISC_UIDE1AD5CBA_XXXX_MOC_B0 -+E: ID_SERIAL_SHORT=UIDE1AD5CBA_XXXX_MOC_B0 - E: ID_BUS=usb - E: ID_USB_INTERFACES=:ff0000: - E: ID_VENDOR_FROM_DATABASE=Shenzhen Goodix Technology Co.,Ltd. --E: ID_PATH=pci-0000:00:14.0-usb-0:8 --E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_8 --E: LIBFPRINT_DRIVER=AuthenTec AES1610 -+E: ID_PATH=pci-0000:00:14.0-usb-0:2 -+E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2 -+E: LIBFPRINT_DRIVER=Goodix MOC Fingerprint Sensor - A: authorized=1 - A: avoid_reset_quirk=0 - A: bConfigurationValue=1 -@@ -37,32 +37,32 @@ A: bNumConfigurations=1 - A: bNumInterfaces= 1 - A: bcdDevice=0100 - A: bmAttributes=a0 --A: busnum=1 --A: configuration=UIDCBEE4D7B_XXXX_MOC_B0 --H: descriptors=12010002EF000040C627A26000010102030109022000010103A0320904000002FF0000040705830240000007050102400000 --A: dev=189:2 --A: devnum=3 --A: devpath=8 -+A: busnum=3\n -+A: configuration=UIDE1AD5CBA_XXXX_MOC_B0 -+H: descriptors=12010002EF000040C627405800010102030109022000010103A0320904000002FF0000040705830240000007050102400000 -+A: dev=189:263 -+A: devnum=8\n -+A: devpath=2 - L: driver=../../../../../bus/usb/drivers/usb --A: idProduct=60a2 -+A: idProduct=5840 - A: idVendor=27c6 - A: ltm_capable=no - A: manufacturer=Goodix Technology Co., Ltd. - A: maxchild=0 --L: port=../1-0:1.0/usb1-port8 --A: power/active_duration=324448 -+L: port=../3-0:1.0/usb3-port2 -+A: power/active_duration=2684 - A: power/async=enabled - A: power/autosuspend=2 - A: power/autosuspend_delay_ms=2000 --A: power/connected_duration=5916532 -+A: power/connected_duration=54348 - A: power/control=auto - A: power/level=auto - A: power/persist=1 - A: power/runtime_active_kids=0 --A: power/runtime_active_time=327268 -+A: power/runtime_active_time=2518 - A: power/runtime_enabled=enabled - A: power/runtime_status=active --A: power/runtime_suspended_time=5588987 -+A: power/runtime_suspended_time=51550 - A: power/runtime_usage=0 - A: power/wakeup=disabled - A: power/wakeup_abort_count= -@@ -75,38 +75,39 @@ A: power/wakeup_max_time_ms= - A: power/wakeup_total_time_ms= - A: product=Goodix USB2.0 MISC - A: quirks=0x0 --A: removable=fixed -+A: removable=removable - A: rx_lanes=1 --A: serial=UIDCBEE4D7B_XXXX_MOC_B0 -+A: serial=UIDE1AD5CBA_XXXX_MOC_B0 - A: speed=12 - A: tx_lanes=1 --A: urbnum=2180 -+A: urbnum=15 - A: version= 2.00 - --P: /devices/pci0000:00/0000:00:14.0/usb1 --N: bus/usb/001/001=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C --E: DEVNAME=/dev/bus/usb/001/001 -+P: /devices/pci0000:00/0000:00:14.0/usb3 -+N: bus/usb/003/001=12010002090001406B1D020008050302010109021900010100E0000904000001090000000705810304000C -+E: DEVNAME=/dev/bus/usb/003/001 - E: DEVTYPE=usb_device - E: DRIVER=usb --E: PRODUCT=1d6b/2/504 -+E: PRODUCT=1d6b/2/508 - E: TYPE=9/0/1 --E: BUSNUM=001 -+E: BUSNUM=003 - E: DEVNUM=001 - E: MAJOR=189 --E: MINOR=0 -+E: MINOR=256 - E: SUBSYSTEM=usb --E: ID_VENDOR=Linux_5.4.0-29-generic_xhci-hcd --E: ID_VENDOR_ENC=Linux\x205.4.0-29-generic\x20xhci-hcd -+E: ID_VENDOR=Linux_5.8.0-38-generic_xhci-hcd -+E: ID_VENDOR_ENC=Linux\x205.8.0-38-generic\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=0504 --E: ID_SERIAL=Linux_5.4.0-29-generic_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 -+E: ID_REVISION=0508 -+E: ID_SERIAL=Linux_5.8.0-38-generic_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: - E: ID_VENDOR_FROM_DATABASE=Linux Foundation -+E: ID_AUTOSUSPEND=1 - E: ID_MODEL_FROM_DATABASE=2.0 root hub - E: ID_PATH=pci-0000:00:14.0 - E: ID_PATH_TAG=pci-0000_00_14_0 -@@ -123,33 +124,33 @@ A: bMaxPacketSize0=64 - A: bMaxPower=0mA - A: bNumConfigurations=1 - A: bNumInterfaces= 1 --A: bcdDevice=0504 -+A: bcdDevice=0508 - A: bmAttributes=e0 --A: busnum=1 -+A: busnum=3\n - A: configuration= --H: descriptors=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C --A: dev=189:0 --A: devnum=1 -+H: descriptors=12010002090001406B1D020008050302010109021900010100E0000904000001090000000705810304000C -+A: dev=189:256 -+A: devnum=1\n - A: devpath=0 - L: driver=../../../../bus/usb/drivers/usb - A: idProduct=0002 - A: idVendor=1d6b - A: interface_authorized_default=1 - A: ltm_capable=no --A: manufacturer=Linux 5.4.0-29-generic xhci-hcd --A: maxchild=12 --A: power/active_duration=5879432 -+A: manufacturer=Linux 5.8.0-38-generic xhci-hcd -+A: maxchild=4 -+A: power/active_duration=2790916 - A: power/async=enabled - A: power/autosuspend=0 - A: power/autosuspend_delay_ms=0 --A: power/connected_duration=5916912 -+A: power/connected_duration=15607832 - A: power/control=auto - A: power/level=auto --A: power/runtime_active_kids=2 --A: power/runtime_active_time=5879430 -+A: power/runtime_active_kids=1 -+A: power/runtime_active_time=2790874 - A: power/runtime_enabled=enabled - A: power/runtime_status=active --A: power/runtime_suspended_time=37481 -+A: power/runtime_suspended_time=12816956 - A: power/runtime_usage=0 - A: power/wakeup=disabled - A: power/wakeup_abort_count= -@@ -167,5 +168,7 @@ A: rx_lanes=1 - A: serial=0000:00:14.0 - A: speed=480 - A: tx_lanes=1 --A: urbnum=1319 -+A: urbnum=584 - A: version= 2.00 -+ -+ --- -2.31.1 - - -From b1a3c9726d258e48a325360208e15468f667eff7 Mon Sep 17 00:00:00 2001 -From: weilei -Date: Thu, 4 Feb 2021 11:31:10 +0800 -Subject: [PATCH 4/6] goodixmoc:Add new PID - -Add PID 6594 used by LENOVO ---- - libfprint/drivers/goodixmoc/goodix.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index 9cfdbe6..77278c6 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -1553,6 +1553,7 @@ static const FpIdEntry id_table[] = { - { .vid = 0x27c6, .pid = 0x60A2, }, - { .vid = 0x27c6, .pid = 0x63AC, }, - { .vid = 0x27c6, .pid = 0x639C, }, -+ { .vid = 0x27c6, .pid = 0x6594, }, - { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ - }; - --- -2.31.1 - - -From 3409938af14d2220a65de3fb9be2fcdd7a6aa4f7 Mon Sep 17 00:00:00 2001 -From: Nelson Jeppesen -Date: Fri, 7 May 2021 13:02:11 -0700 -Subject: [PATCH 5/6] goodixmoc: Add PID 6A94 - ---- - libfprint/drivers/goodixmoc/goodix.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index 77278c6..d67d392 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -1554,6 +1554,7 @@ static const FpIdEntry id_table[] = { - { .vid = 0x27c6, .pid = 0x63AC, }, - { .vid = 0x27c6, .pid = 0x639C, }, - { .vid = 0x27c6, .pid = 0x6594, }, -+ { .vid = 0x27c6, .pid = 0x6A94, }, - { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ - }; - --- -2.31.1 - - -From 440301fdf65e89d662c26bfa92e0d07874c4f359 Mon Sep 17 00:00:00 2001 -From: boger -Date: Wed, 23 Jun 2021 15:14:33 +0800 -Subject: [PATCH 6/6] goodixmoc: add PID 609C/6584/658C/6592/659C - -add some new PID support, -609C: Framework fingerprint sensor -65xx: Thinkpad series fingerprint sensor ---- - libfprint/drivers/goodixmoc/goodix.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c -index d67d392..0399c0b 100644 ---- a/libfprint/drivers/goodixmoc/goodix.c -+++ b/libfprint/drivers/goodixmoc/goodix.c -@@ -1318,6 +1318,10 @@ gx_fp_probe (FpDevice *device) - { - case 0x6496: - case 0x60A2: -+ case 0x609C: -+ case 0x639C: -+ case 0x63AC: -+ case 0x6A94: - self->max_enroll_stage = 12; - break; - -@@ -1549,11 +1553,16 @@ gx_fp_cancel (FpDevice *device) - - static const FpIdEntry id_table[] = { - { .vid = 0x27c6, .pid = 0x5840, }, -- { .vid = 0x27c6, .pid = 0x6496, }, -+ { .vid = 0x27c6, .pid = 0x609C, }, - { .vid = 0x27c6, .pid = 0x60A2, }, -- { .vid = 0x27c6, .pid = 0x63AC, }, - { .vid = 0x27c6, .pid = 0x639C, }, -+ { .vid = 0x27c6, .pid = 0x63AC, }, -+ { .vid = 0x27c6, .pid = 0x6496, }, -+ { .vid = 0x27c6, .pid = 0x6584, }, -+ { .vid = 0x27c6, .pid = 0x658C, }, -+ { .vid = 0x27c6, .pid = 0x6592, }, - { .vid = 0x27c6, .pid = 0x6594, }, -+ { .vid = 0x27c6, .pid = 0x659C, }, - { .vid = 0x27c6, .pid = 0x6A94, }, - { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ - }; --- -2.31.1 -