Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Sep 2021 22:24:08 -0500
From:      Mark Kane <mark@kane.mn>
To:        Vladimir Kondratyev <wulf@freebsd.org>
Cc:        usb@freebsd.org, hps@selasky.org
Subject:   Re: eGalax USB touchscreen issues
Message-ID:  <461895169e3f985b67aa0c23196611c8@kane.mn>
In-Reply-To: <fa3f9ed149b497984c66d3d5cd29b82d@kane.mn>
References:  <324d49ca-1c0e-659d-194d-ece4d5f7f5e2@FreeBSD.org> <0ae3fec48e2c351d2c006f4ba4932cd7@kane.mn> <166dd4d4-24cd-c24b-d75e-9a34fa734358@FreeBSD.org> <eccaff2a99153fb44ffa8df3c93d7eb6@kane.mn> <36983ce5-8358-5a04-2377-46067d3c3c79@FreeBSD.org> <c9e68dbb-5382-976d-7302-d816d8636153@FreeBSD.org> <59ba07a0ecbdac36746fe18ea5f0559f@kane.mn> <92c855bf-a73a-bae5-fcdc-c5a88008739b@FreeBSD.org> <5e8cd8d75deff98e8db3352001ce8432@kane.mn> <858ac67e-14e2-730c-4a16-ca218e2c0bee@FreeBSD.org> <ee3c43f89df5dffd0b0dab7393f0c5b5@kane.mn> <168b368c-3258-6416-42c5-a722e45bf14b@FreeBSD.org> <a7e09a33593bc00c7ef525b47efcafa1@kane.mn> <12706f32-be2e-1cda-5d90-53b4e80b0b52@FreeBSD.org> <3bfc252a7ef55b21d5e51c251a518d78@kane.mn> <1c3ebd54-3686-ff5f-d5be-5a42ddcd5469@FreeBSD.org> <d3f3b2d5b6644de49bcacdc12a0dd503@kane.mn> <2091d52f-e7e8-4304-ffcc-4863f2a7e47f@FreeBSD.org> <fa3f9ed149b497984c66d3d5cd29b82d@kane.mn>

next in thread | previous in thread | raw e-mail | index | archive | help
--=_d7fe88f234b4a3376fe19090eeaacec8
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8;
 format=flowed

Sorry to bring back this thread but I'm having some trouble getting both 
the newer and older screens fully working on i386 (all testing before 
was on amd64).

Attached is the final diff against releng/13.0 I used to build on both 
amd64 and i386. On amd64 everything works as it did before. Using the 
same patch on i386 we get as far as evemu-record hearing events, X 
adding the input device, but the pointer doesn't actually move inside X 
or with xinput --test.

Can you think of anything that would need to be done differently for 
i386 or spot anything I might have missed here? I tried 2 clean i386 
installs with the same results. Quarterly packages from official repo 
and configs are the same on both amd64/i386 machines:

/etc/rc.conf:
devmatch_blacklist="uep.ko uhid.ko wmt.ko"

/boot/loader.conf:
hw.usb.usbhid.enable=1
usbhid_load="YES"
hidraw_load="YES"

/usr/local/share/libinput/90-egalax.quirks:
[eGalax]
MatchUdevType=tablet
MatchVendor=0x0EEF
MatchProduct=0x0001
AttrResolutionHint=26x43

This output is from a 2014 screen that doesn't require setrdesc.c:

# evemu-record
Available devices:
/dev/input/event0:      System mouse
/dev/input/event1:      System keyboard multiplexer
/dev/input/event2:      Power Button
/dev/input/event3:      AT keyboard
/dev/input/event4:      Lite-On Technology Corp. USB Multimedia 
Keyboard, class 0/0, rev 1.10/1.09, add
/dev/input/event5:      eGalax Inc. USB TouchController Tablet
/dev/input/event6:      eGalax Inc. USB TouchController Pen
/dev/input/event7:      eGalax Inc. USB TouchController TouchScreen
/dev/input/event8:      Lite-On Technology Corp. USB Multimedia Keyboard 
Consumer Control
/dev/input/event9:      Lite-On Technology Corp. USB Multimedia Keyboard 
System Control
Select the device event number [0-9]: 5
# EVEMU 1.3
# Kernel: 13.0-RELEASE-p4
# Input device name: "eGalax Inc. USB TouchController Tablet"
# Input device ID: bus 0x03 vendor 0xeef product 0x01 version 0x100
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value     1712
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution   0
#     Event code 1 (ABS_Y)
#       Value     2362
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution   0
# Properties:
#   Property  type 1 (INPUT_PROP_DIRECT)
N: eGalax Inc. USB TouchController Tablet
I: 0003 0eef 0001 0100
P: 02 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 03 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 00 00 00 00 00
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 4095 0 0 0
A: 01 0 4095 0 0 0
################################
#      Waiting for events      #
################################
E: 0.000001 0003 0000 2510      # EV_ABS / ABS_X                2510
E: 0.000001 0003 0001 2360      # EV_ABS / ABS_Y                2360
E: 0.000001 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+0ms
E: 0.002005 0001 0110 0001      # EV_KEY / BTN_LEFT             1
E: 0.002005 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+2ms
E: 0.007999 0003 0000 2506      # EV_ABS / ABS_X                2506
E: 0.007999 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+5ms
E: 0.013990 0003 0000 2502      # EV_ABS / ABS_X                2502
E: 0.013990 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.020008 0003 0000 2498      # EV_ABS / ABS_X                2498
E: 0.020008 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+7ms
E: 0.027994 0003 0000 2494      # EV_ABS / ABS_X                2494
E: 0.027994 0003 0001 2358      # EV_ABS / ABS_Y                2358
E: 0.027994 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+7ms
E: 0.033998 0003 0000 2492      # EV_ABS / ABS_X                2492
E: 0.033998 0003 0001 2354      # EV_ABS / ABS_Y                2354
E: 0.033998 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.039999 0003 0001 2352      # EV_ABS / ABS_Y                2352
E: 0.039999 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.045985 0003 0001 2350      # EV_ABS / ABS_Y                2350
E: 0.045985 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.051988 0003 0001 2348      # EV_ABS / ABS_Y                2348
E: 0.051988 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.057993 0003 0001 2346      # EV_ABS / ABS_Y                2346
E: 0.057993 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.063997 0003 0000 2494      # EV_ABS / ABS_X                2494
E: 0.063997 0003 0001 2344      # EV_ABS / ABS_Y                2344
E: 0.063997 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.077981 0003 0001 2342      # EV_ABS / ABS_Y                2342
E: 0.077981 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+14ms
E: 0.083987 0003 0001 2340      # EV_ABS / ABS_Y                2340
E: 0.083987 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.089994 0003 0001 2338      # EV_ABS / ABS_Y                2338
E: 0.089994 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.095989 0003 0001 2336      # EV_ABS / ABS_Y                2336
E: 0.095989 0000 0000 0001      # ------------ SYN_REPORT (1) ---------- 
+6ms
E: 0.101995 0003 0001 2334      # EV_ABS / ABS_Y                2334

(only event5 hears events)

$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  
(3)]
⎜   ↳ Virtual core XTEST pointer                    id=4    [slave  
pointer  (2)]
⎜   ↳ System mouse                                  id=6    [slave  
pointer  (2)]
⎜   ↳ eGalax Inc. USB TouchController Tablet        id=11   [slave  
pointer  (2)]
⎜   ↳ eGalax Inc. USB TouchController TouchScreen   id=13   [slave  
pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard 
(2)]
     ↳ Virtual core XTEST keyboard                     id=5    [slave  
keyboard (3)]
     ↳ System keyboard multiplexer                     id=7    [slave  
keyboard (3)]
     ↳ Power Button                                    id=8    [slave  
keyboard (3)]
     ↳ AT keyboard                                     id=9    [slave  
keyboard (3)]
     ↳ Lite-On Technology Corp. USB Multimedia Keyboard        id=10   
[slave  keyboard (3)]
     ↳ eGalax Inc. USB TouchController Pen             id=12   [slave  
keyboard (3)]
     ↳ Lite-On Technology Corp. USB Multimedia Keyboard Consumer Control  
      id=14   [slave  keyboard (3)]
     ↳ Lite-On Technology Corp. USB Multimedia Keyboard System Control 
id=15   [slave  keyboard (3)]
$ xinput --test 11
(no output)
^C
$ xinput --test 13
(no output)
^C
$

[   108.675] (II) config/udev: Adding input device eGalax Inc. USB 
TouchController Tablet (/dev/input/event5)
[   108.675] (**) eGalax Inc. USB TouchController Tablet: Applying 
InputClass "libinput touchscreen catchall"
[   108.675] (II) Using input driver 'libinput' for 'eGalax Inc. USB 
TouchController Tablet'
[   108.675] (**) eGalax Inc. USB TouchController Tablet: always reports 
core events
[   108.676] (**) Option "Device" "/dev/input/event5"
[   108.676] (**) Option "_source" "server/udev"
[   108.697] (II) event5  - eGalax Inc. USB TouchController Tablet: is 
tagged by udev as: Touchscreen
[   108.705] (II) event5  - eGalax Inc. USB TouchController Tablet: 
device is a touch device
[   108.712] (II) event5  - eGalax Inc. USB TouchController Tablet: 
device removed
[   108.715] (**) Option "config_info" "udev:/dev/input/event5"
[   108.715] (II) XINPUT: Adding extended input device "eGalax Inc. USB 
TouchController Tablet" (type: TOUCHSCREEN, id 11)
[   108.716] (**) Option "AccelerationScheme" "none"
[   108.716] (**) eGalax Inc. USB TouchController Tablet: (accel) 
selected scheme none/0
[   108.716] (**) eGalax Inc. USB TouchController Tablet: (accel) 
acceleration factor: 2.000
[   108.716] (**) eGalax Inc. USB TouchController Tablet: (accel) 
acceleration threshold: 4
[   108.737] (II) event5  - eGalax Inc. USB TouchController Tablet: is 
tagged by udev as: Touchscreen
[   108.745] (II) event5  - eGalax Inc. USB TouchController Tablet: 
device is a touch device
[   108.753] (II) config/udev: Adding input device eGalax Inc. USB 
TouchController Pen (/dev/input/event6)
[   108.753] (**) eGalax Inc. USB TouchController Pen: Applying 
InputClass "libinput tablet catchall"
[   108.753] (II) Using input driver 'libinput' for 'eGalax Inc. USB 
TouchController Pen'
[   108.753] (**) eGalax Inc. USB TouchController Pen: always reports 
core events
[   108.754] (**) Option "Device" "/dev/input/event6"
[   108.754] (**) Option "_source" "server/udev"
[   108.774] (II) event6  - eGalax Inc. USB TouchController Pen: is 
tagged by udev as: Tablet
[   109.142] (II) event6  - eGalax Inc. USB TouchController Pen: tablet 
'eGalax Inc. USB TouchController Pen' unknown to libwacom
[   109.142] (II) event6  - eGalax Inc. USB TouchController Pen: device 
is a tablet
[   109.144] (II) event6  - eGalax Inc. USB TouchController Pen: device 
removed
[   109.144] (**) Option "config_info" "udev:/dev/input/event6"
[   109.144] (II) XINPUT: Adding extended input device "eGalax Inc. USB 
TouchController Pen" (type: TABLET, id 12)
[   109.164] (II) event6  - eGalax Inc. USB TouchController Pen: is 
tagged by udev as: Tablet
[   109.169] (II) event6  - eGalax Inc. USB TouchController Pen: tablet 
'eGalax Inc. USB TouchController Pen' unknown to libwacom
[   109.170] (II) event6  - eGalax Inc. USB TouchController Pen: device 
is a tablet
[   109.172] (II) config/udev: Adding input device eGalax Inc. USB 
TouchController TouchScreen (/dev/input/event7)
[   109.172] (**) eGalax Inc. USB TouchController TouchScreen: Applying 
InputClass "libinput touchscreen catchall"
[   109.172] (II) Using input driver 'libinput' for 'eGalax Inc. USB 
TouchController TouchScreen'
[   109.172] (**) eGalax Inc. USB TouchController TouchScreen: always 
reports core events
[   109.172] (**) Option "Device" "/dev/input/event7"
[   109.173] (**) Option "_source" "server/udev"
[   109.196] (II) event7  - eGalax Inc. USB TouchController TouchScreen: 
is tagged by udev as: Touchscreen
[   109.199] (II) event7  - eGalax Inc. USB TouchController TouchScreen: 
device is a touch device
[   109.206] (II) event7  - eGalax Inc. USB TouchController TouchScreen: 
device removed
[   109.207] (**) Option "config_info" "udev:/dev/input/event7"
[   109.207] (II) XINPUT: Adding extended input device "eGalax Inc. USB 
TouchController TouchScreen" (type: TOUCHSCREEN, id 13)
[   109.207] (**) Option "AccelerationScheme" "none"
[   109.208] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
selected scheme none/0
[   109.208] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
acceleration factor: 2.000
[   109.208] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
acceleration threshold: 4
[   109.231] (II) event7  - eGalax Inc. USB TouchController TouchScreen: 
is tagged by udev as: Touchscreen
[   109.234] (II) event7  - eGalax Inc. USB TouchController TouchScreen: 
device is a touch device
[   109.242] (II) config/udev: Adding input device Lite-On Technology 
Corp. USB Multimedia Keyboard Consumer Control (/dev/input/event8)
[   109.242] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
Consumer Control: Applying InputClass "Evdev keyboard"
[   109.243] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
Consumer Control: Applying InputClass "libinput keyboard catchall"
[   109.243] (II) Using input driver 'libinput' for 'Lite-On Technology 
Corp. USB Multimedia Keyboard Consumer Control'
[   109.243] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
Consumer Control: always reports core events
[   109.243] (**) Option "Device" "/dev/input/event8"
[   109.243] (**) Option "_source" "server/udev"
[   109.274] (II) event8  - Lite-On Technology Corp. USB Multimedia 
Keyboard Consumer Control: is tagged by udev as: Keyboard
[   109.279] (II) event8  - Lite-On Technology Corp. USB Multimedia 
Keyboard Consumer Control: device is a keyboard
[   109.288] (II) event8  - Lite-On Technology Corp. USB Multimedia 
Keyboard Consumer Control: device removed
[   109.292] (**) Option "config_info" "udev:/dev/input/event8"
[   109.292] (II) XINPUT: Adding extended input device "Lite-On 
Technology Corp. USB Multimedia Keyboard Consumer Control" (type: 
KEYBOARD, id 14)
[   109.292] (**) Option "xkb_rules" "evdev"
[   109.325] (II) event8  - Lite-On Technology Corp. USB Multimedia 
Keyboard Consumer Control: is tagged by udev as: Keyboard
[   109.329] (II) event8  - Lite-On Technology Corp. USB Multimedia 
Keyboard Consumer Control: device is a keyboard
[   109.339] (II) config/udev: Adding input device Lite-On Technology 
Corp. USB Multimedia Keyboard System Control (/dev/input/event9)
[   109.339] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
System Control: Applying InputClass "Evdev keyboard"
[   109.340] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
System Control: Applying InputClass "libinput keyboard catchall"
[   109.340] (II) Using input driver 'libinput' for 'Lite-On Technology 
Corp. USB Multimedia Keyboard System Control'
[   109.340] (**) Lite-On Technology Corp. USB Multimedia Keyboard 
System Control: always reports core events
[   109.340] (**) Option "Device" "/dev/input/event9"
[   109.340] (**) Option "_source" "server/udev"
[   109.371] (II) event9  - Lite-On Technology Corp. USB Multimedia 
Keyboard System Control: is tagged by udev as: Keyboard
[   109.375] (II) event9  - Lite-On Technology Corp. USB Multimedia 
Keyboard System Control: device is a keyboard
[   109.384] (II) event9  - Lite-On Technology Corp. USB Multimedia 
Keyboard System Control: device removed
[   109.385] (**) Option "config_info" "udev:/dev/input/event9"
[   109.385] (II) XINPUT: Adding extended input device "Lite-On 
Technology Corp. USB Multimedia Keyboard System Control" (type: 
KEYBOARD, id 15)
[   109.385] (**) Option "xkb_rules" "evdev"
[   109.422] (II) event9  - Lite-On Technology Corp. USB Multimedia 
Keyboard System Control: is tagged by udev as: Keyboard
[   109.426] (II) event9  - Lite-On Technology Corp. USB Multimedia 
Keyboard System Control: device is a keyboard
[   379.577] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   379.890] (EE) client bug: timer event5 debounce: scheduled expiry is 
in the past (-16ms), your system is too slow
[   379.891] (EE) client bug: timer event5 debounce short: scheduled 
expiry is in the past (-29ms), your system is too slow
[   379.891] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   380.183] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   380.311] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   380.559] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   380.662] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   380.949] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[   381.079] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1815.177] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1815.477] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1815.679] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1815.871] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1820.643] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1821.049] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1821.349] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1821.653] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1850.460] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1850.879] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1851.136] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1851.474] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1851.720] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1851.938] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1857.580] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1857.860] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1858.190] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1858.340] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1863.131] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1863.456] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1863.903] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1864.097] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1864.613] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"
[  1864.843] (EE) libinput bug: Event for missing capability CAP_POINTER 
on device "eGalax Inc. USB TouchController Tablet"


---<<BOOT>>---
Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.0-RELEASE-p4 #0 releng/13.0-n244760-940681634ee-dirty: Fri 
Sep  3 12:26:04 CDT 2021
     root@i386build:/usr/obj/usr/src/i386.i386/sys/GENERIC i386
FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git 
llvmorg-11.0.1-0-g43ff75f2c3fe)
VT(vga): resolution 640x480
CPU: Intel(R) Atom(TM) CPU N270   @ 1.60GHz (1600.09-MHz 686-class CPU)
   Origin="GenuineIntel"  Id=0x106c2  Family=0x6  Model=0x1c  Stepping=2
   
Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   
Features2=0x40c39d<SSE3,DTES64,MON,DS_CPL,EST,TM2,SSSE3,xTPR,PDCM,MOVBE>
   AMD Features=0x100000<NX>
   AMD Features2=0x1<LAHF>
   TSC: P-state invariant, performance statistics
real memory  = 1073741824 (1024 MB)
avail memory = 1008582656 (961 MB)
Event timer "LAPIC" quality 100
ACPI APIC Table: <IntelR AWRDACPI>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 hardware threads
random: unblocking device.
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aEventBlock: 
32/8 (20201113/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in 
FADT/Pm1aControlBlock: 16/8 (20201113/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/PmTimerBlock: 
32/8 (20201113/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe0Block: 64/8 
(20201113/tbfadt-748)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aEventBlock: 8, 
using default 32 (20201113/tbfadt-850)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aControlBlock: 8, 
using default 16 (20201113/tbfadt-850)
Firmware Warning (ACPI): Invalid length for FADT/PmTimerBlock: 8, using 
default 32 (20201113/tbfadt-850)
ioapic0: MADT APIC ID 2 != hw id 0
ioapic0 <Version 2.0> irqs 0-23
Launching APs: 1
Timecounter "TSC" frequency 1600093704 Hz quality 1000
random: entropy device external interface
[ath_hal] loaded
WARNING: Device "kbd" is Giant locked and may be deleted before FreeBSD 
14.0.
kbd1 at kbdmux0
nexus0
vtvga0: <VT VGA driver>
cryptosoft0: <software crypto>
aesni0: No AES or SHA support.
acpi0: <IntelR AWRDACPI>
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atrtc0: <AT realtime clock> port 0x70-0x73 irq 8 on acpi0
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0xff00-0xff07 mem 
0xfde80000-0xfdefffff,0xd0000000-0xdfffffff,0xfdf80000-0xfdfbffff irq 16 
at device 2.0 on pci0
agp0: <Intel 945GME SVGA controller> on vgapci0
WARNING: Device "agp" is Giant locked and may be deleted before FreeBSD 
14.0.
agp0: aperture size is 256M, detected 7932k stolen memory
vgapci0: Boot video device
vgapci1: <VGA-compatible display> mem 0xfdf00000-0xfdf7ffff at device 
2.1 on pci0
hdac0: <Intel 82801G HDA Controller> mem 0xfdff8000-0xfdffbfff irq 16 at 
device 27.0 on pci0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pcib2: <ACPI PCI-PCI bridge> irq 19 at device 28.5 on pci0
pci1: <ACPI PCI bus> on pcib2
re0: <RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet> port 
0xee00-0xeeff mem 0xfddff000-0xfddfffff,0xfdcf0000-0xfdcfffff irq 17 at 
device 0.0 on pci1
re0: Using 1 MSI-X message
re0: Chip rev. 0x3c000000
re0: MAC rev. 0x00400000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on 
miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 
100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 
1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 
1000baseT-FDX-flow-master, auto, auto-flow
re0: Using defaults for TSO: 65518/35/2048
re0: Ethernet address: 00:10:f3:5c:97:2e
uhci0: <Intel 82801G (ICH7) USB controller USB-A> port 0xfe00-0xfe1f irq 
23 at device 29.0 on pci0
uhci0: LegSup = 0x2f00
usbus0 on uhci0
usbus0: 12Mbps Full Speed USB v1.0
uhci1: <Intel 82801G (ICH7) USB controller USB-B> port 0xfd00-0xfd1f irq 
19 at device 29.1 on pci0
uhci1: LegSup = 0x2f00
usbus1 on uhci1
usbus1: 12Mbps Full Speed USB v1.0
uhci2: <Intel 82801G (ICH7) USB controller USB-C> port 0xfc00-0xfc1f irq 
18 at device 29.2 on pci0
uhci2: LegSup = 0x2f00
usbus2 on uhci2
usbus2: 12Mbps Full Speed USB v1.0
uhci3: <Intel 82801G (ICH7) USB controller USB-D> port 0xfb00-0xfb1f irq 
16 at device 29.3 on pci0
uhci3: LegSup = 0x2f00
usbus3 on uhci3
usbus3: 12Mbps Full Speed USB v1.0
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 
0xfdfff000-0xfdfff3ff irq 23 at device 29.7 on pci0
usbus4: EHCI version 1.0
usbus4 on ehci0
usbus4: 480Mbps High Speed USB v2.0
pcib3: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib3
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7 UDMA100 controller> port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfa00-0xfa0f at device 31.1 on pci0
ata0: <ATA channel> at channel 0 on atapci0
atapci1: <Intel ICH7M SATA150 controller> port 
0xf900-0xf907,0xf800-0xf803,0xf700-0xf707,0xf600-0xf603,0xf500-0xf50f 
mem 0xfdffe000-0xfdffe3ff irq 19 at device 31.2 on pci0
ata2: <ATA channel> at channel 0 on atapci1
ata3: <ATA channel> at channel 1 on atapci1
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart2: <16550 or compatible> port 0x3e8-0x3ef irq 5 on acpi0
uart3: <16550 or compatible> port 0x2e8-0x2ef irq 7 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
orm0: <ISA Option ROM> at iomem 0xef000-0xeffff pnpid ORM0000 on isa0
ppc0: parallel port not found.
est0: <Enhanced SpeedStep Frequency Control> on cpu0
Timecounters tick every 1.000 msec
hdacc0: <Realtek ALC888 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC888 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC888 (Analog 2.0+HP/2.0)> at nid 20,21 and 24,26 on 
hdaa0
ugen1.1: <Intel UHCI root HUB> at usbus1
ugen4.1: <Intel EHCI root HUB> at usbus4
uhub0 on usbus1
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
uhub1 on usbus4
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus4
ugen0.1: <Intel UHCI root HUB> at usbus0
ugen3.1: <Intel UHCI root HUB> at usbus3
uhub2 on usbus0
uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
Trying to mount root from ufs:/dev/ada0s1a [rw]...
Root mount waiting for: usbus0 usbus1 usbus2 usbus3 usbus4 CAM
uhub3 on usbus3
uhub3: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen2.1: <Intel UHCI root HUB> at usbus2
uhub4 on usbus2
uhub4: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
uhub0: 2 ports with 2 removable, self powered
uhub2: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
uhub4: 2 ports with 2 removable, self powered
Root mount waiting for: usbus4 CAM
ada0 at ata2 bus 0 scbus1 target 0 lun 0
ada0: <KINGSTON SUV400S37120G 0C3J96R9> ACS-4 ATA SATA 3.x device
ada0: Serial Number 50026B767603A50C
ada0: 150.000MB/s transfers (SATA 1.x, UDMA5, PIO 8192bytes)
ada0: 114473MB (234441648 512 byte sectors)
Root mount waiting for: usbus4
uhub1: 8 ports with 8 removable, self powered
Root mount waiting for: usbus4
mountroot: waiting for device /dev/ada0s1a...
warning: total configured swap (3090798 pages) exceeds maximum 
recommended amount (2009952 pages).
warning: increase kern.maxswzone or reduce amount of swap.
ugen0.2: <eGalax Inc. USB TouchController> at usbus0
usbhid0 on uhub2
usbhid0: <eGalax Inc. USB TouchController, class 0/0, rev 1.10/1.00, 
addr 2> on usbus0
hidbus0: <HID bus> on usbhid0
hidraw0: <eGalax Inc. USB TouchController Raw HID Device> on hidbus0
ugen0.3: <Lite-On Technology Corp. USB Multimedia Keyboard> at usbus0
ukbd0 on uhub2
ukbd0: <Lite-On Technology Corp. USB Multimedia Keyboard, class 0/0, rev 
1.10/1.09, addr 3> on usbus0
kbd2 at ukbd0
usbhid1 on uhub2
usbhid1: <Lite-On Technology Corp. USB Multimedia Keyboard, class 0/0, 
rev 1.10/1.09, addr 3> on usbus0
hidbus1: <HID bus> on usbhid1
hidraw1: <Lite-On Technology Corp. USB Multimedia Keyboard Raw HID 
Device> on hidbus1
ichsmb0: <Intel 82801GB (ICH7) SMBus controller> port 0x500-0x51f irq 19 
at device 31.3 on pci0
smbus0: <System Management Bus> on ichsmb0
hms0: <eGalax Inc. USB TouchController Tablet> on hidbus0
hms0: 2 buttons and [XY] coordinates ID=1
hpen0: <eGalax Inc. USB TouchController Pen> on hidbus0
hmt0: <eGalax Inc. USB TouchController TouchScreen> on hidbus0
hmt0: Multitouch touchscreen with 0 external buttons
hmt0: 1 contacts with [RC] properties. Report range [0:0] - [4095:4095]
hconf0: <eGalax Inc. USB TouchController Configuration> on hidbus0
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be 
disabled(-19).
Successfully added WC MTRR for [0xd0000000-0xdfffffff]: 0;
[drm] Got stolen memory base 0x0, size 0x0
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Connector LVDS-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.LVDS-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector VGA-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.VGA-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector DVI-D-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.DVI-D-1
[drm]   - kern.vt.fb.default_mode
[drm] RC6 disabled, disabling runtime PM support
[drm] Initialized overlay support.
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
[drm] Initialized i915 1.6.0 20190822 for drmn0 on minor 0
WARNING: Device "fb" is Giant locked and may be deleted before FreeBSD 
14.0.
VT: Replacing driver "vga" with new "fb".
start FB_INFO:
type=11 height=600 width=800 depth=32
cmsize=16 size=3145728
pbase=0xd0009000 vbase=0x1ae09000
name=drmn0 flags=0x0 stride=4096 bpp=32
cmap[0]=0 cmap[1]=7f0000 cmap[2]=7f00 cmap[3]=c4a000
end FB_INFO
drmn0: fb0: i915drmfb frame buffer device
lo0: link state changed to UP
re0: link state changed to DOWN
re0: link state changed to UP
hcons0: <Lite-On Technology Corp. USB Multimedia Keyboard Consumer 
Control> on hidbus1
hsctrl0: <Lite-On Technology Corp. USB Multimedia Keyboard System 
Control> on hidbus1
--=_d7fe88f234b4a3376fe19090eeaacec8
Content-Transfer-Encoding: base64
Content-Type: text/x-diff; charset=us-ascii;
 name=egalax_final.patch
Content-Disposition: attachment;
 filename=egalax_final.patch;
 size=12504

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvZXZkZXYvZXZkZXYuYyBiL3N5cy9kZXYvZXZkZXYvZXZkZXYu
YwppbmRleCAwODZlZTM2MzMzZC4uYmMyOGFlMDczNGYgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvZXZk
ZXYvZXZkZXYuYworKysgYi9zeXMvZGV2L2V2ZGV2L2V2ZGV2LmMKQEAgLTMxNiw4ICszMTYsNyBA
QCBldmRldl9yZWdpc3Rlcl9jb21tb24oc3RydWN0IGV2ZGV2X2RldiAqZXZkZXYpCiAJfQogCiAJ
LyogSW5pdGlhbGl6ZSBtdWx0aXRvdWNoIHByb3RvY29sIHR5cGUgQiBzdGF0ZXMgKi8KLQlpZiAo
Yml0X3Rlc3QoZXZkZXYtPmV2X2Fic19mbGFncywgQUJTX01UX1NMT1QpICYmCi0JICAgIGV2ZGV2
LT5ldl9hYnNpbmZvICE9IE5VTEwgJiYgTUFYSU1BTF9NVF9TTE9UKGV2ZGV2KSA+IDApCisJaWYg
KGJpdF90ZXN0KGV2ZGV2LT5ldl9hYnNfZmxhZ3MsIEFCU19NVF9TTE9UKSkKIAkJZXZkZXZfbXRf
aW5pdChldmRldik7CiAKIAkvKiBFc3RpbWF0ZSBtYXhpbXVtIHJlcG9ydCBzaXplICovCmRpZmYg
LS1naXQgYS9zeXMvZGV2L2hpZC9oaWQuYyBiL3N5cy9kZXYvaGlkL2hpZC5jCmluZGV4IDY5OWJm
YTRhOGJiLi5mYmJkOTk4YjViZiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9oaWQvaGlkLmMKKysrIGIv
c3lzL2Rldi9oaWQvaGlkLmMKQEAgLTg1Niw2ICs4NTYsNyBAQCBoaWRfaXRlbV9yZXNvbHV0aW9u
KHN0cnVjdCBoaWRfaXRlbSAqaGkpCiAJCWRpdmlzb3IgPSAxMDsKIAkJYnJlYWs7CiAJY2FzZSBI
VU1fSU5DSDoKKwljYXNlIEhVTV9JTkNIICsgMHgyMDoKIAkJbXVsdGlwbGllciA9IDEwOwogCQlk
aXZpc29yID0gMjU0OwogCQlicmVhazsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvaGlkL2hpZGJ1cy5j
IGIvc3lzL2Rldi9oaWQvaGlkYnVzLmMKaW5kZXggYmUzNTY0ODQyOTguLjY0NmU4OGU3ODg0IDEw
MDY0NAotLS0gYS9zeXMvZGV2L2hpZC9oaWRidXMuYworKysgYi9zeXMvZGV2L2hpZC9oaWRidXMu
YwpAQCAtMTcxLDYgKzE3MSwyNSBAQCBoaWRidXNfbG9jYXRlKGNvbnN0IHZvaWQgKmRlc2MsIGhp
ZF9zaXplX3Qgc2l6ZSwgaW50MzJfdCB1LCBlbnVtIGhpZF9raW5kIGssCiAJcmV0dXJuICgwKTsK
IH0KIAorYm9vbAoraGlkYnVzX2lzX2NvbGxlY3Rpb24oY29uc3Qgdm9pZCAqZGVzYywgaGlkX3Np
emVfdCBzaXplLCBpbnQzMl90IHVzYWdlLAorICAgIHVpbnQ4X3QgdGxjX2luZGV4KQoreworCXN0
cnVjdCBoaWRfZGF0YSAqZDsKKwlzdHJ1Y3QgaGlkX2l0ZW0gaDsKKwlib29sIHJldCA9IGZhbHNl
OworCisJZCA9IGhpZF9zdGFydF9wYXJzZShkZXNjLCBzaXplLCAwKTsKKwlISURCVVNfRk9SRUFD
SF9JVEVNKGQsICZoLCB0bGNfaW5kZXgpIHsKKwkJaWYgKGgua2luZCA9PSBoaWRfY29sbGVjdGlv
biAmJiBoLnVzYWdlID09IHVzYWdlKSB7CisJCQlyZXQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0K
Kwl9CisJaGlkX2VuZF9wYXJzZShkKTsKKwlyZXR1cm4gKHJldCk7Cit9CisKIHN0YXRpYyBkZXZp
Y2VfdAogaGlkYnVzX2FkZF9jaGlsZChkZXZpY2VfdCBkZXYsIHVfaW50IG9yZGVyLCBjb25zdCBj
aGFyICpuYW1lLCBpbnQgdW5pdCkKIHsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvaGlkL2hpZGJ1cy5o
IGIvc3lzL2Rldi9oaWQvaGlkYnVzLmgKaW5kZXggMDU5MTFmZmY1NzMuLmQ0MzI0YTJkYzM5IDEw
MDY0NAotLS0gYS9zeXMvZGV2L2hpZC9oaWRidXMuaAorKysgYi9zeXMvZGV2L2hpZC9oaWRidXMu
aApAQCAtMTUyLDYgKzE1Miw3IEBAIGludAloaWRidXNfbG9jYXRlKGNvbnN0IHZvaWQgKmRlc2Ms
IGhpZF9zaXplX3Qgc2l6ZSwgaW50MzJfdCB1LAogCSAgICBlbnVtIGhpZF9raW5kIGssIHVpbnQ4
X3QgdGxjX2luZGV4LCB1aW50OF90IGluZGV4LAogCSAgICBzdHJ1Y3QgaGlkX2xvY2F0aW9uICps
b2MsIHVpbnQzMl90ICpmbGFncywgdWludDhfdCAqaWQsCiAJICAgIHN0cnVjdCBoaWRfYWJzaW5m
byAqYWkpOworYm9vbAloaWRidXNfaXNfY29sbGVjdGlvbihjb25zdCB2b2lkICosIGhpZF9zaXpl
X3QsIGludDMyX3QsIHVpbnQ4X3QpOwogCiBjb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCAqaGlk
YnVzX2xvb2t1cF9pZChkZXZpY2VfdCwKIAkJICAgIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lk
ICosIGludCk7CmRpZmYgLS1naXQgYS9zeXMvZGV2L2hpZC9oaWRtYXAuYyBiL3N5cy9kZXYvaGlk
L2hpZG1hcC5jCmluZGV4IDQ2ZTc4OWZhN2NlLi5kNzg3YjI5OGI0MSAxMDA2NDQKLS0tIGEvc3lz
L2Rldi9oaWQvaGlkbWFwLmMKKysrIGIvc3lzL2Rldi9oaWQvaGlkbWFwLmMKQEAgLTQ1MSw3ICs0
NTEsOCBAQCBoaWRtYXBfcHJvYmVfaGlkX2Rlc2NyKHZvaWQgKmRfcHRyLCBoaWRfc2l6ZV90IGRf
bGVuLCB1aW50OF90IHRsY19pbmRleCwKIAlib29sIGRvX2ZyZWUgPSBmYWxzZTsKIAogCWlmIChj
YXBzID09IE5VTEwpIHsKLQkJY2FwcyA9IG1hbGxvYyhISURNQVBfQ0FQU19TWihuaXRlbXNfbWFw
KSwgTV9ERVZCVUYsIE1fV0FJVE9LKTsKKwkJY2FwcyA9IG1hbGxvYyhISURNQVBfQ0FQU19TWihu
aXRlbXNfbWFwKSwgTV9ERVZCVUYsCisJCSAgICBNX1dBSVRPSyB8IE1fWkVSTyk7CiAJCWRvX2Zy
ZWUgPSB0cnVlOwogCX0gZWxzZQogCQliemVybyAoY2FwcywgSElETUFQX0NBUFNfU1oobml0ZW1z
X21hcCkpOwpAQCAtNDgxLDcgKzQ4MiwxMCBAQCBoaWRtYXBfcHJvYmVfaGlkX2Rlc2NyKHZvaWQg
KmRfcHRyLCBoaWRfc2l6ZV90IGRfbGVuLCB1aW50OF90IHRsY19pbmRleCwKIAkvKiBDaGVjayB0
aGF0IGFsbCBtYW5kYXRvcnkgdXNhZ2VzIGFyZSBwcmVzZW50IGluIHJlcG9ydCBkZXNjcmlwdG9y
ICovCiAJaWYgKGl0ZW1zICE9IDApIHsKIAkJZm9yIChpID0gMDsgaSA8IG5pdGVtc19tYXA7IGkr
KykgewotCQkJaWYgKG1hcFtpXS5yZXF1aXJlZCAmJiBpc2NscihjYXBzLCBpKSkgeworCQkJS0FT
U0VSVCghKG1hcFtpXS5yZXF1aXJlZCAmJiBtYXBbaV0uZm9yYmlkZGVuKSwKKwkJCSAgICAoImJv
dGggcmVxdWlyZWQgJiBmb3JiaWRkZW4gaXRlbSBmbGFncyBhcmUgc2V0IikpOworCQkJaWYgKCht
YXBbaV0ucmVxdWlyZWQgJiYgaXNjbHIoY2FwcywgaSkpIHx8CisJCQkgICAgKG1hcFtpXS5mb3Ji
aWRkZW4gJiYgaXNzZXQoY2FwcywgaSkpKSB7CiAJCQkJaXRlbXMgPSAwOwogCQkJCWJyZWFrOwog
CQkJfQpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9oaWQvaGlkbWFwLmggYi9zeXMvZGV2L2hpZC9oaWRt
YXAuaAppbmRleCA2YWMyM2IzZGM0ZS4uNjI4ODgxMDkyNjMgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYv
aGlkL2hpZG1hcC5oCisrKyBiL3N5cy9kZXYvaGlkL2hpZG1hcC5oCkBAIC02Miw2ICs2Miw4IEBA
IHR5cGVkZWYgaW50IGhpZG1hcF9jYl90KEhJRE1BUF9DQl9BUkdTKTsKIC8qIFRoZXNlIGhlbHBl
cnMgY2FuIGJlIHVzZWQgYXQgYW55IHN0YWdlIG9mIGFueSBjYWxsYmFja3MgKi8KICNkZWZpbmUJ
SElETUFQX0NCX0dFVF9TVEFURSguLi4pCQkJCQlcCiAJKChobSA9PSBOVUxMKSA/IEhJRE1BUF9D
Ql9JU19QUk9CSU5HIDogaG0tPmNiX3N0YXRlKQorI2RlZmluZQlISURNQVBfQ0JfR0VUX0RFVigu
Li4pCQkJCQkJXAorCShobSA9PSBOVUxMID8gTlVMTCA6IGhtLT5kZXYpCiAjZGVmaW5lCUhJRE1B
UF9DQl9HRVRfU09GVEMoLi4uKQkJCQkJXAogCShobSA9PSBOVUxMID8gTlVMTCA6IGRldmljZV9n
ZXRfc29mdGMoaG0tPmRldikpCiAjZGVmaW5lCUhJRE1BUF9DQl9HRVRfRVZERVYoLi4uKQkJCQkJ
XApAQCAtOTgsNyArMTAwLDggQEAgc3RydWN0IGhpZG1hcF9pdGVtIHsKIAlib29sCQkJaGFzX2Ni
OjE7CiAJYm9vbAkJCWZpbmFsX2NiOjE7CiAJYm9vbAkJCWludmVydF92YWx1ZToxOwotCXVfaW50
CQkJcmVzZXJ2ZWQ6MTA7CisJYm9vbAkJCWZvcmJpZGRlbjoxOwkvKiBGb3JiaWRkZW4gYnkgZHJp
dmVyICovCisJdV9pbnQJCQlyZXNlcnZlZDo5OwogfTsKIAogI2RlZmluZQlISURNQVBfQU5ZKF9w
YWdlLCBfdXNhZ2UsIF90eXBlLCBfY29kZSkJCQkJXApkaWZmIC0tZ2l0IGEvc3lzL2Rldi9oaWQv
aG1zLmMgYi9zeXMvZGV2L2hpZC9obXMuYwppbmRleCA5NDI2N2IzZmNkNS4uMGY2MGVlYzg2YTQg
MTAwNjQ0Ci0tLSBhL3N5cy9kZXYvaGlkL2htcy5jCisrKyBiL3N5cy9kZXYvaGlkL2htcy5jCkBA
IC0xMDksNiArMTA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRtYXBfaXRlbSBobXNfbWFw
X3doZWVsX3JldltdID0gewogCiAvKiBBIG1hdGNoIG9uIHRoZXNlIGVudHJpZXMgd2lsbCBsb2Fk
IGhtcyAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGhtc19kZXZzW10gPSB7
CisJeyBISURfVExDKEhVUF9HRU5FUklDX0RFU0tUT1AsIEhVR19QT0lOVEVSKSB9LAogCXsgSElE
X1RMQyhIVVBfR0VORVJJQ19ERVNLVE9QLCBIVUdfTU9VU0UpIH0sCiB9OwogCmRpZmYgLS1naXQg
YS9zeXMvZGV2L2hpZC9obXQuYyBiL3N5cy9kZXYvaGlkL2htdC5jCmluZGV4IGZkNTBlYTRkZTgy
Li4zOTA2M2YyYzgyMiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9oaWQvaG10LmMKKysrIGIvc3lzL2Rl
di9oaWQvaG10LmMKQEAgLTIwNyw2ICsyMDcsOCBAQCBzdHJ1Y3QgaG10X3NvZnRjIHsKIAl1aW50
OF90CQkJcmVwb3J0X2lkOwogCXVpbnQzMl90CQltYXhfYnV0dG9uOwogCWJvb2wJCQloYXNfaW50
X2J1dHRvbjsKKwlib29sCQkJaGFzX2NvbnRfY291bnQ7CisJYm9vbAkJCWhhc19zY2FuX3RpbWU7
CiAJYm9vbAkJCWlzX2NsaWNrcGFkOwogCWJvb2wJCQlkb190aW1lc3RhbXBzOwogI2lmZGVmIElJ
Q0hJRF9TQU1QTElORwpAQCAtMzc0LDcgKzM3Niw4IEBAIGhtdF9hdHRhY2goZGV2aWNlX3QgZGV2
KQogCQlzYy0+YWlbSE1UX1NMT1RdLm1heCA9IE1BWF9NVF9TTE9UUyAtIDE7CiAJfQogCi0JaWYg
KGhpZF90ZXN0X3F1aXJrKGh3LCBIUV9NVF9USU1FU1RBTVApIHx8IGhtdF90aW1lc3RhbXBzKQor
CWlmIChzYy0+aGFzX3NjYW5fdGltZSAmJgorCSAgICAoaGlkX3Rlc3RfcXVpcmsoaHcsIEhRX01U
X1RJTUVTVEFNUCkgfHwgaG10X3RpbWVzdGFtcHMpKQogCQlzYy0+ZG9fdGltZXN0YW1wcyA9IHRy
dWU7CiAjaWZkZWYgSUlDSElEX1NBTVBMSU5HCiAJaWYgKGhpZF90ZXN0X3F1aXJrKGh3LCBIUV9J
SUNISURfU0FNUExJTkcpKQpAQCAtNTE3LDYgKzUyMCwxMiBAQCBobXRfaW50cih2b2lkICpjb250
ZXh0LCB2b2lkICpidWYsIGhpZF9zaXplX3QgbGVuKQogCX0KIAogCS8qCisJICogIkluIHNlcmlh
bCBtb2RlLCBlYWNoIHBhY2tldCBjb250YWlucyBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBh
CisJICogc2luZ2xlIHBoeXNpY2FsIGNvbnRhY3QgcG9pbnQuIE11bHRpcGxlIGNvbnRhY3RzIGFy
ZSBzdHJlYW1lZAorCSAqIHNlcmlhbGx5LiBJbiB0aGlzIG1vZGUsIGRldmljZXMgcmVwb3J0IGFs
bCBjb250YWN0IGluZm9ybWF0aW9uIGluIGEKKwkgKiBzZXJpZXMgb2YgcGFja2V0cy4gVGhlIGRl
dmljZSBzZW5kcyBhIHNlcGFyYXRlIHBhY2tldCBmb3IgZWFjaAorCSAqIGNvbmN1cnJlbnQgY29u
dGFjdC4iCisJICoKIAkgKiAiSW4gUGFyYWxsZWwgbW9kZSwgZGV2aWNlcyByZXBvcnQgYWxsIGNv
bnRhY3QgaW5mb3JtYXRpb24gaW4gYQogCSAqIHNpbmdsZSBwYWNrZXQuIEVhY2ggcGh5c2ljYWwg
Y29udGFjdCBpcyByZXByZXNlbnRlZCBieSBhIGxvZ2ljYWwKIAkgKiBjb2xsZWN0aW9uIHRoYXQg
aXMgZW1iZWRkZWQgaW4gdGhlIHRvcC1sZXZlbCBjb2xsZWN0aW9uLiIKQEAgLTUyNSw3ICs1MzQs
MTAgQEAgaG10X2ludHIodm9pZCAqY29udGV4dCwgdm9pZCAqYnVmLCBoaWRfc2l6ZV90IGxlbikK
IAkgKiByZXBvcnQgd2l0aCBjb250YWN0aWQ9MCBidXQgY29udGFjdGlkcyBhcmUgemVyby1iYXNl
ZCwgZmluZAogCSAqIGNvbnRhY3Rjb3VudCBmaXJzdC4KIAkgKi8KLQljb250X2NvdW50ID0gaGlk
X2dldF91ZGF0YShidWYsIGxlbiwgJnNjLT5jb250X2NvdW50X2xvYyk7CisJaWYgKHNjLT5oYXNf
Y29udF9jb3VudCkKKwkJY29udF9jb3VudCA9IGhpZF9nZXRfdWRhdGEoYnVmLCBsZW4sICZzYy0+
Y29udF9jb3VudF9sb2MpOworCWVsc2UKKwkJY29udF9jb3VudCA9IDE7CiAJLyoKIAkgKiAiSW4g
SHlicmlkIG1vZGUsIHRoZSBudW1iZXIgb2YgY29udGFjdHMgdGhhdCBjYW4gYmUgcmVwb3J0ZWQg
aW4gb25lCiAJICogcmVwb3J0IGlzIGxlc3MgdGhhbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29u
dGFjdHMgdGhhdCB0aGUgZGV2aWNlCkBAIC03NjQsNyArNzc2LDYgQEAgaG10X2hpZF9wYXJzZShz
dHJ1Y3QgaG10X3NvZnRjICpzYywgY29uc3Qgdm9pZCAqZF9wdHIsIGhpZF9zaXplX3QgZF9sZW4s
CiAJCQkJc2MtPmNvbnRfY291bnRfbG9jID0gaGkubG9jOwogCQkJCWJyZWFrOwogCQkJfQotCQkJ
LyogU2NhbiB0aW1lIGlzIHJlcXVpcmVkIGJ1dCBjbG9iYmVyZWQgYnkgZXZkZXYgKi8KIAkJCWlm
IChoaS5jb2xsZXZlbCA9PSAxICYmIGhpLnVzYWdlID09CiAJCQkgICAgSElEX1VTQUdFMihIVVBf
RElHSVRJWkVSUywgSFVEX1NDQU5fVElNRSkpIHsKIAkJCQlzY2FuX3RpbWVfZm91bmQgPSB0cnVl
OwpAQCAtODE1LDcgKzgyNiw3IEBAIGhtdF9oaWRfcGFyc2Uoc3RydWN0IGhtdF9zb2Z0YyAqc2Ms
IGNvbnN0IHZvaWQgKmRfcHRyLCBoaWRfc2l6ZV90IGRfbGVuLAogCWhpZF9lbmRfcGFyc2UoaGQp
OwogCiAJLyogQ2hlY2sgZm9yIHJlcXVpcmVkIEhJRCBVc2FnZXMgKi8KLQlpZiAoIWNvbnRfY291
bnRfZm91bmQgfHwgIXNjYW5fdGltZV9mb3VuZCB8fCBjb250ID09IDApCisJaWYgKCghY29udF9j
b3VudF9mb3VuZCAmJiBjb250ICE9IDEpIHx8IGNvbnQgPT0gMCkKIAkJcmV0dXJuIChITVRfVFlQ
RV9VTlNVUFBPUlRFRCk7CiAJZm9yIChpID0gMDsgaSA8IEhNVF9OX1VTQUdFUzsgaSsrKSB7CiAJ
CWlmIChobXRfaGlkX21hcFtpXS5yZXF1aXJlZCAmJiBpc2NscihzYy0+Y2FwcywgaSkpCkBAIC04
NTksNiArODcwLDggQEAgaG10X2hpZF9wYXJzZShzdHJ1Y3QgaG10X3NvZnRjICpzYywgY29uc3Qg
dm9pZCAqZF9wdHIsIGhpZF9zaXplX3QgZF9sZW4sCiAJc2MtPnJlcG9ydF9pZCA9IHJlcG9ydF9p
ZDsKIAlzYy0+bmNvbnRzX3Blcl9yZXBvcnQgPSBjb250OwogCXNjLT5oYXNfaW50X2J1dHRvbiA9
IGhhc19pbnRfYnV0dG9uOworCXNjLT5oYXNfY29udF9jb3VudCA9IGNvbnRfY291bnRfZm91bmQ7
CisJc2MtPmhhc19zY2FuX3RpbWUgPSBzY2FuX3RpbWVfZm91bmQ7CiAKIAlyZXR1cm4gKHR5cGUp
OwogfQpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9oaWQvaHBlbi5jIGIvc3lzL2Rldi9oaWQvaHBlbi5j
CmluZGV4IDFkNTA1ZTE0MDg5Li44YTg2Yjk1YjEwMiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9oaWQv
aHBlbi5jCisrKyBiL3N5cy9kZXYvaGlkL2hwZW4uYwpAQCAtNzIsNDQgKzcyLDQzIEBAIHN0YXRp
YyBoaWRtYXBfY2JfdAlocGVuX2ZpbmFsX3Blbl9jYjsKIAlISURNQVBfQUJTX0NCKEhVUF9ESUdJ
VElaRVJTLCBIVURfIyN1c2FnZSwgJmNiKQogCiAvKiBHZW5lcmljIG1hcCBkaWdpdGl6ZXIgcGFn
ZSBtYXAgYWNjb3JkaW5nIHRvIGh1dDFfMTJ2Mi5wZGYgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
aGlkbWFwX2l0ZW0gaHBlbl9tYXBfZGlnaVtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRt
YXBfaXRlbSBocGVuX21hcF9wZW5bXSA9IHsKICAgICB7IEhQRU5fTUFQX0FCU19HRChYLAkJQUJT
X1gpLAkJICAucmVxdWlyZWQgPSB0cnVlIH0sCiAgICAgeyBIUEVOX01BUF9BQlNfR0QoWSwJCUFC
U19ZKSwJCSAgLnJlcXVpcmVkID0gdHJ1ZSB9LAogICAgIHsgSFBFTl9NQVBfQUJTKCAgIFRJUF9Q
UkVTU1VSRSwJQUJTX1BSRVNTVVJFKSB9LAogICAgIHsgSFBFTl9NQVBfQUJTKCAgIFhfVElMVCwJ
CUFCU19USUxUX1gpIH0sCiAgICAgeyBIUEVOX01BUF9BQlMoICAgWV9USUxULAkJQUJTX1RJTFRf
WSkgfSwKKyAgICB7IEhQRU5fTUFQX0FCUyggICBDT05UQUNUSUQsCTApLCAJCSAgLmZvcmJpZGRl
biA9IHRydWUgfSwKKyAgICB7IEhQRU5fTUFQX0FCUyggICBDT05UQUNUQ09VTlQsCTApLCAJCSAg
LmZvcmJpZGRlbiA9IHRydWUgfSwKICAgICB7IEhQRU5fTUFQX0FCU19DQihCQVRURVJZX1NUUkVO
R1RILAlocGVuX2JhdHRlcnlfc3RyZW5naHRfY2IpIH0sCiAgICAgeyBIUEVOX01BUF9CVVQoICAg
VE9VQ0gsCQlCVE5fVE9VQ0gpIH0sCiAgICAgeyBIUEVOX01BUF9CVVQoICAgVElQX1NXSVRDSCwJ
QlROX1RPVUNIKSB9LAogICAgIHsgSFBFTl9NQVBfQlVUKCAgIFNFQ19USVBfU1dJVENILAlCVE5f
VE9VQ0gpIH0sCi0gICAgeyBIUEVOX01BUF9CVVQoICAgSU5fUkFOR0UsCQlCVE5fVE9PTF9QRU4p
IH0sCiAgICAgeyBIUEVOX01BUF9CVVQoICAgQkFSUkVMX1NXSVRDSCwJQlROX1NUWUxVUykgfSwK
ICAgICB7IEhQRU5fTUFQX0JVVCggICBJTlZFUlQsCQlCVE5fVE9PTF9SVUJCRVIpIH0sCiAgICAg
eyBIUEVOX01BUF9CVVQoICAgRVJBU0VSLAkJQlROX1RPVUNIKSB9LAogICAgIHsgSFBFTl9NQVBf
QlVUKCAgIFRBQkxFVF9QSUNLLAlCVE5fU1RZTFVTMikgfSwKICAgICB7IEhQRU5fTUFQX0JVVCgg
ICBTRUNfQkFSUkVMX1NXSVRDSCxCVE5fU1RZTFVTMikgfSwKLSAgICB7IEhJRE1BUF9GSU5BTF9D
QigJCQkmaHBlbl9maW5hbF9kaWdpX2NiKSB9LAorICAgIHsgSElETUFQX0ZJTkFMX0NCKAkJCSZo
cGVuX2ZpbmFsX3Blbl9jYikgfSwKIH07CiAKLS8qIE1pY3Jvc29mdC1zdGFuZGFyZGl6ZWQgcGVu
IHN1cHBvcnQgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkbWFwX2l0ZW0gaHBlbl9tYXBfcGVu
W10gPSB7Ci0gICAgeyBIUEVOX01BUF9BQlNfR0QoWCwJCUFCU19YKSwJCSAgLnJlcXVpcmVkID0g
dHJ1ZSB9LAotICAgIHsgSFBFTl9NQVBfQUJTX0dEKFksCQlBQlNfWSksCQkgIC5yZXF1aXJlZCA9
IHRydWUgfSwKLSAgICB7IEhQRU5fTUFQX0FCUyggICBUSVBfUFJFU1NVUkUsCUFCU19QUkVTU1VS
RSksCSAgLnJlcXVpcmVkID0gdHJ1ZSB9LAotICAgIHsgSFBFTl9NQVBfQUJTKCAgIFhfVElMVCwJ
CUFCU19USUxUX1gpIH0sCi0gICAgeyBIUEVOX01BUF9BQlMoICAgWV9USUxULAkJQUJTX1RJTFRf
WSkgfSwKLSAgICB7IEhQRU5fTUFQX0FCU19DQihCQVRURVJZX1NUUkVOR1RILAlocGVuX2JhdHRl
cnlfc3RyZW5naHRfY2IpIH0sCi0gICAgeyBIUEVOX01BUF9CVVQoICAgVElQX1NXSVRDSCwJQlRO
X1RPVUNIKSwJICAucmVxdWlyZWQgPSB0cnVlIH0sCi0gICAgeyBIUEVOX01BUF9CVVQoICAgSU5f
UkFOR0UsCQlCVE5fVE9PTF9QRU4pLAkgIC5yZXF1aXJlZCA9IHRydWUgfSwKLSAgICB7IEhQRU5f
TUFQX0JVVCggICBCQVJSRUxfU1dJVENILAlCVE5fU1RZTFVTKSB9LAotICAgIHsgSFBFTl9NQVBf
QlVUKCAgIElOVkVSVCwJCUJUTl9UT09MX1JVQkJFUiksIC5yZXF1aXJlZCA9IHRydWUgfSwKLSAg
ICB7IEhQRU5fTUFQX0JVVCggICBFUkFTRVIsCQlCVE5fVE9VQ0gpLAkgIC5yZXF1aXJlZCA9IHRy
dWUgfSwKLSAgICB7IEhJRE1BUF9GSU5BTF9DQigJCQkmaHBlbl9maW5hbF9wZW5fY2IpIH0sCitz
dGF0aWMgY29uc3Qgc3RydWN0IGhpZG1hcF9pdGVtIGhwZW5fbWFwX3N0eWx1c1tdID0geworICAg
IHsgSFBFTl9NQVBfQlVUKCAgIElOX1JBTkdFLAkJQlROX1RPT0xfUEVOKSB9LAorfTsKK3N0YXRp
YyBjb25zdCBzdHJ1Y3QgaGlkbWFwX2l0ZW0gaHBlbl9tYXBfZmluZ2VyW10gPSB7CisgICAgeyBI
UEVOX01BUF9CVVQoICAgSU5fUkFOR0UsCQlCVE5fVE9PTF9GSU5HRVIpIH0sCiB9OwogCiBzdGF0
aWMgY29uc3Qgc3RydWN0IGhpZF9kZXZpY2VfaWQgaHBlbl9kZXZzW10gPSB7CiAJeyBISURfVExD
KEhVUF9ESUdJVElaRVJTLCBIVURfRElHSVRJWkVSKSB9LAogCXsgSElEX1RMQyhIVVBfRElHSVRJ
WkVSUywgSFVEX1BFTikgfSwKKwl7IEhJRF9UTEMoSFVQX0RJR0lUSVpFUlMsIEhVRF9UT1VDSFND
UkVFTiksCisJICBISURfQlZQKEJVU19VU0IsIFVTQl9WRU5ET1JfRUdBTEFYLCBVU0JfUFJPRFVD
VF9FR0FMQVhfVFBBTkVMKSB9LAorfTsKKworLyogRG8gbm90IGF1dG9sb2FkIGxlZ2FjeSBwZW4g
ZHJpdmVyIGZvciBhbGwgdG91Y2hzY3JlZW4gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2Rl
dmljZV9pZCBocGVuX2RldnNfbm9fbG9hZFtdID0geworCXsgSElEX1RMQyhIVVBfRElHSVRJWkVS
UywgSFVEX1RPVUNIU0NSRUVOKSB9LAogfTsKIAogc3RhdGljIGludApAQCAtMTM0LDI1ICsxMzMs
MTggQEAgaHBlbl9iYXR0ZXJ5X3N0cmVuZ2h0X2NiKEhJRE1BUF9DQl9BUkdTKQogCXJldHVybiAo
MCk7CiB9CiAKLXN0YXRpYyBpbnQKLWhwZW5fZmluYWxfZGlnaV9jYihISURNQVBfQ0JfQVJHUykK
LXsKLQlzdHJ1Y3QgZXZkZXZfZGV2ICpldmRldiA9IEhJRE1BUF9DQl9HRVRfRVZERVYoKTsKLQot
CWlmIChISURNQVBfQ0JfR0VUX1NUQVRFKCkgPT0gSElETUFQX0NCX0lTX0FUVEFDSElORykKLQkJ
ZXZkZXZfc3VwcG9ydF9wcm9wKGV2ZGV2LCBJTlBVVF9QUk9QX1BPSU5URVIpOwotCi0JLyogRG8g
bm90IGV4ZWN1dGUgY2FsbGJhY2sgYXQgaW50ZXJydXB0IGhhbmRsZXIgYW5kIGRldGFjaCAqLwot
CXJldHVybiAoRU5PU1lTKTsKLX0KLQogc3RhdGljIGludAogaHBlbl9maW5hbF9wZW5fY2IoSElE
TUFQX0NCX0FSR1MpCiB7CiAJc3RydWN0IGV2ZGV2X2RldiAqZXZkZXYgPSBISURNQVBfQ0JfR0VU
X0VWREVWKCk7CiAKLQlpZiAoSElETUFQX0NCX0dFVF9TVEFURSgpID09IEhJRE1BUF9DQl9JU19B
VFRBQ0hJTkcpCi0JCWV2ZGV2X3N1cHBvcnRfcHJvcChldmRldiwgSU5QVVRfUFJPUF9ESVJFQ1Qp
OworCWlmIChISURNQVBfQ0JfR0VUX1NUQVRFKCkgPT0gSElETUFQX0NCX0lTX0FUVEFDSElORykg
eworCQlpZiAoaGlkYnVzX2dldF91c2FnZShISURNQVBfQ0JfR0VUX0RFVigpKSA9PQorCQkgICAg
SElEX1VTQUdFMihIVVBfRElHSVRJWkVSUywgSFVEX0RJR0lUSVpFUikpCisJCQlldmRldl9zdXBw
b3J0X3Byb3AoZXZkZXYsIElOUFVUX1BST1BfUE9JTlRFUik7CisJCWVsc2UKKwkJCWV2ZGV2X3N1
cHBvcnRfcHJvcChldmRldiwgSU5QVVRfUFJPUF9ESVJFQ1QpOworCX0KIAogCS8qIERvIG5vdCBl
eGVjdXRlIGNhbGxiYWNrIGF0IGludGVycnVwdCBoYW5kbGVyIGFuZCBkZXRhY2ggKi8KIAlyZXR1
cm4gKEVOT1NZUyk7CkBAIC0xODUsMjQgKzE3NywzOSBAQCBzdGF0aWMgaW50CiBocGVuX3Byb2Jl
KGRldmljZV90IGRldikKIHsKIAlzdHJ1Y3QgaGlkbWFwICpobSA9IGRldmljZV9nZXRfc29mdGMo
ZGV2KTsKKwljb25zdCBjaGFyICpkZXNjOworCXZvaWQgKmRfcHRyOworCWhpZF9zaXplX3QgZF9s
ZW47CiAJaW50IGVycm9yOwotCWJvb2wgaXNfcGVuOwogCi0JZXJyb3IgPSBISURCVVNfTE9PS1VQ
X0RSSVZFUl9JTkZPKGRldiwgaHBlbl9kZXZzKTsKLQlpZiAoZXJyb3IgIT0gMCkKLQkJcmV0dXJu
IChlcnJvcik7CisJaWYgKEhJREJVU19MT09LVVBfRFJJVkVSX0lORk8oZGV2LCBocGVuX2RldnNf
bm9fbG9hZCkgIT0gMCkgeworCQllcnJvciA9IEhJREJVU19MT09LVVBfRFJJVkVSX0lORk8oZGV2
LCBocGVuX2RldnMpOworCQlpZiAoZXJyb3IgIT0gMCkKKwkJCXJldHVybiAoZXJyb3IpOworCX0K
IAogCWhpZG1hcF9zZXRfZGV2KGhtLCBkZXYpOwogCi0JLyogQ2hlY2sgaWYgcmVwb3J0IGRlc2Ny
aXB0b3IgYmVsb25ncyB0byBhIEhJRCB0YWJsZXQgZGV2aWNlICovCi0JaXNfcGVuID0gaGlkYnVz
X2dldF91c2FnZShkZXYpID09IEhJRF9VU0FHRTIoSFVQX0RJR0lUSVpFUlMsIEhVRF9QRU4pOwot
CWVycm9yID0gaXNfcGVuCi0JICAgID8gSElETUFQX0FERF9NQVAoaG0sIGhwZW5fbWFwX3Blbiwg
TlVMTCkKLQkgICAgOiBISURNQVBfQUREX01BUChobSwgaHBlbl9tYXBfZGlnaSwgTlVMTCk7CisJ
LyogQ2hlY2sgaWYgcmVwb3J0IGRlc2NyaXB0b3IgYmVsb25ncyB0byBhIEhJRCBwZW4gZGV2aWNl
ICovCisJZXJyb3IgPSBISURNQVBfQUREX01BUChobSwgaHBlbl9tYXBfcGVuLCBOVUxMKTsKIAlp
ZiAoZXJyb3IgIT0gMCkKIAkJcmV0dXJuIChlcnJvcik7CiAKLQloaWRidXNfc2V0X2Rlc2MoZGV2
LCBpc19wZW4gPyAiUGVuIiA6ICJEaWdpdGl6ZXIiKTsKKwlpZiAoaGlkX2dldF9yZXBvcnRfZGVz
Y3IoZGV2LCAmZF9wdHIsICZkX2xlbikgIT0gMCkKKwkJcmV0dXJuIChFTlhJTyk7CisKKwlpZiAo
aGlkYnVzX2lzX2NvbGxlY3Rpb24oZF9wdHIsIGRfbGVuLAorCSAgICBISURfVVNBR0UyKEhVUF9E
SUdJVElaRVJTLCBIVURfRklOR0VSKSwgaGlkYnVzX2dldF9pbmRleChkZXYpKSkgeworCQlISURN
QVBfQUREX01BUChobSwgaHBlbl9tYXBfZmluZ2VyLCBOVUxMKTsKKwkJZGVzYyA9ICJUb3VjaFNj
cmVlbiI7CisJfSBlbHNlIHsKKwkJSElETUFQX0FERF9NQVAoaG0sIGhwZW5fbWFwX3N0eWx1cywg
TlVMTCk7CisJCWRlc2MgPSAiUGVuIjsKKwl9CisJaWYgKGhpZGJ1c19nZXRfdXNhZ2UoZGV2KSA9
PSBISURfVVNBR0UyKEhVUF9ESUdJVElaRVJTLCBIVURfRElHSVRJWkVSKSkKKwkJZGVzYyA9ICJE
aWdpdGl6ZXIiOworCisJaGlkYnVzX3NldF9kZXNjKGRldiwgZGVzYyk7CiAKIAlyZXR1cm4gKEJV
U19QUk9CRV9ERUZBVUxUKTsKIH0K
--=_d7fe88f234b4a3376fe19090eeaacec8--



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