<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>9205</bug_id>
          
          <creation_ts>2016-03-03 15:53:13 +0000</creation_ts>
          <short_desc>Add functionality to the formfactor to check for keyboard and/or touchscreen</short_desc>
          <delta_ts>2016-06-24 23:09:18 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>configuration</component>
          <version>2.2</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>2.2</target_milestone>
          
          <blocked>6362</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saul Wold">sgw</reporter>
          <assigned_to name="Jianxun Zhang">jianxun.zhang</assigned_to>
          
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>New (Never tested)</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59673</commentid>
    <comment_count>0</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2016-03-03 15:53:13 +0000</bug_when>
    <thetext>Use some runtime checking in the formfactor&apos;s config script in order to determine if a keyboard or touchscreen exist.

It could be something like: lsusb | grep -i keyboard, but there will be edge cases so additional framework would be required around this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59775</commentid>
    <comment_count>1</comment_count>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-03-08 00:49:09 +0000</bug_when>
    <thetext>Saul,
I suggest to have another discussion with you for this ticket because I am not very clear about what we want to achieve at this point from the description:

() Could we have a concrete use case for this feature? For example, is it for dynamic switching between a soft keyboard and any physical board in matchbox GUI?

() Do we have a formfactor config script in OE or BSP layers already?

I vaguely feel we could have to dig more in &quot;framework&quot; beyond a single line with grep, but really need your input first.

Thanks lot!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59848</commentid>
    <comment_count>2</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2016-03-09 23:08:02 +0000</bug_when>
    <thetext>&gt; () Could we have a concrete use case for this feature? For example, is it for 
dynamic switching between a soft keyboard
&gt;  and any physical board in matchbox GUI?
This is for initial detection of keyboard vs use of softkeyboard, it is not 
meand for Dynamic Switching.

&gt; () Do we have a formfactor config script in OE or BSP layers already?
The original script is part of OE-Core in the meta/recipes-bsp/formfactor

&gt; I vaguely feel we could have to dig more in &quot;framework&quot; beyond a single line 
with grep, but really need your input first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60456</commentid>
    <comment_count>3</comment_count>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-03-28 22:46:48 +0000</bug_when>
    <thetext>Saul,

I got some data for a solution but also with its limitation and some assumptions. Let me know you if you agree to move forward based on these info.

ASSUMPTION:
() Only USB keyboard and touchscreen devices compliant with USB HID class are going to be supported. Devices designed not on USB bus are not supported. If you think USB HID cannot cover all devices you need, stop reading here.

() The config script MUST be run as root. Information of device usage (keyboard, mouse, touch screen.. etc) packed in HID report descriptor is not available once driver is _binded_ to interface. To get info a, _unbind_ operation must be performed with root permission via sysfs, regardless usb tools you want to call in the config script.

Unbinding will lose device functionality until another _bind_ is issued to kernel. This period should be very short when just getting descriptors so it shouldn&apos;t cause any problem to user.

PROBLEM:
There are two properties in matchbox cannot be mapped with any fields USB HID spec: HAVE_KEYBOARD_PORTRAIT and HAVE_KEYBOARD_LANDSCAPE. They seem to define the launching behavior of matchbox. I am not sure if they are really related to physical keyboard&apos;s existence, or merely as preference of UI style. (Checking matchbox expert is another option). I also assume what we should patch is the variable HAVE_KEYBOARD in config script.

POSSIBLE SOLUTION:
If you agree the above assumptions/limitations, I think I have a way to query device usage in config script by calling usbhid-dump. lsusb requires multiple steps to search, bind/unbind HID devices. usbhid-dump is much more straightforward for our purpose and I have figured out how to extract usage byte from its hex dump.

Document carrying info about HAVE_KEYBOARD and HAVE_TOUCHSCREEN should be updated with runtime-checking change.

Let me know your thoughts.

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60517</commentid>
    <comment_count>4</comment_count>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-03-29 23:21:24 +0000</bug_when>
    <thetext>The above solution based (also limited) on USB will miss input devices on other buses like PS/2 keyboard/mouse on i8042 controller in real world. My lenovo X220 laptop device has both a USB-HID compliant touch screen and a physical keyboard on i8042. We will need a consolidated solution or querying extra bus types to cover all of these devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60548</commentid>
    <comment_count>5</comment_count>
      <attachid>3073</attachid>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-03-30 19:30:17 +0000</bug_when>
    <thetext>Created attachment 3073
machconfig supports USBHID keyboard and touchscreen

Saul,
I attached a crafted machconfig supporting USBHID keyboard and touchscreen. It could miss some cases when grep output from usbhid-dump. But it should be good for a prototype test:

() flash a USB stick with a sato-sdk image (mine is built for intel-corei7-64). No extra patch or change in build

() mount usb stick to your host and copy attached machconfig to /etc/formfactor/

() maybe you need to add exec permission on new copied file (?)

() sync and eject usb stick, now it is ready to test

() Boot it up on target, expected results are:

If you don&apos;t plug generic USB keyboard, terminal app in GUI will show up soft keypad. It should not show keypad if there is a USB keyboard connected when boot.

If you have a USB touchscreen connected to target when boot, cursor on GUI will not be shown. Otherwise, a mouse cursor should appear on screen. (I tested on a Lenovo X220 which has a USB touch screen)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60866</commentid>
    <comment_count>6</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2016-04-06 21:43:54 +0000</bug_when>
    <thetext>I think we can focus on USB type of devices and not worry so much about legacy 
devices.

Will this work with devices like the Logitech Unifing device which can talk 
with both Keyboards and mice.

We also might need to consider BT type of keyboard or mouse, but that can be 
for later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61057</commentid>
    <comment_count>7</comment_count>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-04-11 23:11:44 +0000</bug_when>
    <thetext>Saul,
Thanks to let me know our short-term decision. Just some thoughts for your comment.

() I am not sure BT input devices because these wireless gadgets may not be so &quot;permanently available&quot; as wired ones in embedded world. You may want to look a true real auto-switching for this part.

() Just a clarification for mice. I don&apos;t think I see its support in config script. Does poky have a HAVE_MOUSE variable?

() Based on descriptors of Logitech device you sent to me, it seems to still have two standalone input devices instead of a device with two usages indicated in spec. We could have uncovered corner cases but I don&apos;t have such combo device either. We can fix this later though.

I will refactor the patch for robustness and submit it.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61120</commentid>
    <comment_count>8</comment_count>
      <attachid>3122</attachid>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-04-12 23:55:37 +0000</bug_when>
    <thetext>Created attachment 3122
machconfig supports USBHID keyboard and touchscreen

upload a refactored version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61309</commentid>
    <comment_count>9</comment_count>
      <attachid>3128</attachid>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-04-15 21:02:02 +0000</bug_when>
    <thetext>Created attachment 3128
Patch submitted to meta-intel

This patch (V1) has been submitted to mailing list meta-intel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62778</commentid>
    <comment_count>10</comment_count>
      <attachid>3220</attachid>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-06-08 16:55:45 +0000</bug_when>
    <thetext>Created attachment 3220
Patch submitted to meta-intel [V2]

Submitted V2 to meta-intel mailing list to address sudo issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63327</commentid>
    <comment_count>11</comment_count>
    <who name="Jianxun Zhang">jianxun.zhang</who>
    <bug_when>2016-06-24 23:07:42 +0000</bug_when>
    <thetext>http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/commit/?id=eaadd02702da260cea0cb0728374ba0216f1336e

Patch has been merged to meta-intel today.

For validation (sato image):
() build sato image with common x86 machines in meta-intel, like intel-corei7-64. (Note if you choose other machines, they may have a formfactor config that will override this change by design.)

Boot device into matchbox GUI and open &quot;Terminal&quot; application.
() Keyboard
If you boot device without any USB HID device connected, the softkeypad shall be shown.
If you boot device with a USB HID keyboard connected, the softkeypad shall NOT be shown.

() Touch screen. You will need a machine that has an USB HID touchscreen connected, like Lenovo X220 or X230.
Follow the same procedure to build sato and boot device into GUI. The mouse cursor shall not appear since touchscreen exists (This is my understanding). For devices without USB HID touch screen, mouse cursor shall work as usual.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3073</attachid>
            <date>2016-03-30 19:30:17 +0000</date>
            <delta_ts>2016-04-12 23:55:37 +0000</delta_ts>
            <desc>machconfig supports USBHID keyboard and touchscreen</desc>
            <filename>machconfig</filename>
            <type>application/octet-stream</type>
            <size>517</size>
            <attacher name="Jianxun Zhang">jianxun.zhang</attacher>
            
              <data encoding="base64">IyBOb3RlOiBzdXBlciB1c2VyIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQgdG8gcnVuIHVzYmhpZC1k
dW1wCiMgc3VjY2Vzc2Z1bGx5LgoKIyBjb21tYW5kIHRvIGRldGVjdCBVU0IgSElEIGtleWJvYXJk
ClVTQkhJRF9LQkRfQ01EPSJ1c2JoaWQtZHVtcHxncmVwIC1FICdeIDA1IDAxIDA5IDA2JyIKCiMg
Y29tbWFuZCB0byBkZXRlY3QgVVNCIEhJRCB0b3VjaCBzY3JlZW4KVVNCSElEX1RTX0NNRD0idXNi
aGlkLWR1bXB8Z3JlcCAtRSAnXiAwNSAwRCAwOSAwNCciCgojIGNvbW1hbmQgdG8gZGV0ZWN0IFVT
QiBISUQgbW91c2UKVVNCSElEX01PVVNFX0NNRD0idXNiaGlkLWR1bXB8Z3JlcCAtRSAnXiAwNSAw
MSAwOSAwMiciCgppZiBldmFsICRVU0JISURfVFNfQ01EIDsgdGhlbgogICAgSEFWRV9UT1VDSFND
UkVFTj0xCmVsc2UKICAgIEhBVkVfVE9VQ0hTQ1JFRU49MApmaQoKaWYgZXZhbCAkVVNCSElEX0tC
RF9DTUQgOyB0aGVuCiAgICBIQVZFX0tFWUJPQVJEPTEKZWxzZQogICAgSEFWRV9LRVlCT0FSRD0w
CmZpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3122</attachid>
            <date>2016-04-12 23:55:37 +0000</date>
            <delta_ts>2016-04-12 23:55:37 +0000</delta_ts>
            <desc>machconfig supports USBHID keyboard and touchscreen</desc>
            <filename>machconfig</filename>
            <type>application/octet-stream</type>
            <size>1200</size>
            <attacher name="Jianxun Zhang">jianxun.zhang</attacher>
            
              <data encoding="base64">IyBOb3RlOiBzdXBlciB1c2VyIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQgdG8gcnVuIHVzYmhpZC1k
dW1wCiMgc3VjY2Vzc2Z1bGx5LgoKIyBIRVgga2V5cyBhcmUgYWNjb3JkaW5nIHRvIFVTQiBISUQg
c3BlYyBhbmQgVVNCIEhJRCB1c2FnZSB0YWJsZQojIFdlIGNvdWxkIGFkZCBtb3JlIGtleXMgYXMg
bmVlZGVkIGluIHRoZSBmdXR1cmUuCgojIGNoZWNrZXIgZm9yIGdlbmVyaWMgVVNCIEhJRCBrZXli
b2FyZApVU0JISURfS0JEX0NNRD0iZ3JlcCAtRSAnXiAwNSAwMSAwOSAwNiciCgojIGNoZWNrZXIg
Zm9yIHRvdWNoIHNjcmVlbgpVU0JISURfVFNfQ01EPSJncmVwIC1FICdeIDA1IDBEIDA5IDA0JyIK
CiMgSXQgbWF5IG5vdCBiZSB2ZXJ5IGFjY3VyYXRlLiBIZXJlIHdlIG9ubHkgbG9vayBmb3IgZmly
c3QgdHdvIGxpbmVzCiMgb2YgYSBkZXNjcmlwdG9yIHNlY3Rpb24uIEV4YW1wbGU6CiMKIyAwMDE6
MDAzOjAwMDpERVNDUklQVE9SICAgICAgICAgMTQ2MDUwMTM4Ni4zMzc4MDkKIyAgMDUgMDEgMDkg
MDIgQTEgMDEgMDkgMDEgQTEgMDAgMDUgMDkgMTkgMDEgMjkgMDMKIyAgMTUgMDAgMjUgMDEgOTUg
MDMgNzUgMDEgODEgMDIgLi4gLi4gLi4gLi4gLi4gLi4gCiMgIC4uIC4uIC4uIC4uIC4uIC4uIC4u
IC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAojCiMgQnkgZG9pbmcgc28gd2UgZWxpbWlhdGUg
ZmFsc2UgbWF0Y2hlcyB3aGVuIEhFWCBrZXlzIGFyZSBpbiB0aGUgbWlkZGxlCiMgb2Ygd2hvbGUg
ZHVtcGVkIGRhdGEgc2VjdGlvbi4KClVTQkhJRF9EVU1QX09VVFBVVD0kKHN1ZG8gdXNiaGlkLWR1
bXAgLWUgZGVzY3JpcHRvcnxncmVwIC1BMSBERVNDUklQVE9SKQoKaWYgZWNobyAiJFVTQkhJRF9E
VU1QX09VVFBVVCJ8ZXZhbCAkVVNCSElEX1RTX0NNRCAmPi9kZXYvbnVsbDsgdGhlbgogICAgSEFW
RV9UT1VDSFNDUkVFTj0xCmZpCgppZiBlY2hvICIkVVNCSElEX0RVTVBfT1VUUFVUInxldmFsICRV
U0JISURfS0JEX0NNRCAmPi9kZXYvbnVsbDsgdGhlbgogICAgSEFWRV9LRVlCT0FSRD0xCmVsc2UK
ICAgICMgY29uZmlnIHNjcmlwdCBpbiBPRSB3aWxsIHNldCBIQVZFX0tFWUJPQVJEPTEKICAgICMg
aWYgd2UgZG9uJ3Qgc2V0IGFueSB2YWx1ZS4gV2UgaGF2ZSB0byBleHBsaWNpdGx5CiAgICAjIHRl
bGwgaXQgd2hlbiBrZXlib2FyZCBpcyBub3QgZGV0ZWN0ZWQuCiAgICBIQVZFX0tFWUJPQVJEPTAK
ZmkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3128</attachid>
            <date>2016-04-15 21:02:02 +0000</date>
            <delta_ts>2016-06-08 16:55:45 +0000</delta_ts>
            <desc>Patch submitted to meta-intel</desc>
            <filename>0001-formfactor-detect-USB-HID-keyboard-and-touch-screen.patch</filename>
            <type>text/plain</type>
            <size>3278</size>
            <attacher name="Jianxun Zhang">jianxun.zhang</attacher>
            
              <data encoding="base64">RnJvbSA4OWM5MzJlMzM4MDdlMzM4YWUxMWZjMDRlYmU1YjEzYjcyMTQzNTI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFueHVuIFpoYW5nIDxqaWFueHVuLnpoYW5nQGxpbnV4Lmlu
dGVsLmNvbT4KRGF0ZTogV2VkLCAxMyBBcHIgMjAxNiAxMjoxMDo1MCAtMDcwMApTdWJqZWN0OiBb
UEFUQ0hdIGZvcm1mYWN0b3I6IGRldGVjdCBVU0IgSElEIGtleWJvYXJkIGFuZCB0b3VjaCBzY3Jl
ZW4KClRoZSBuZXcgbWFjaGNvbmZpZyBwcm9iZXMgVVNCIGtleWJvYXJkIGFuZCB0b3VjaCBzY3Jl
ZW4sIGFuZAp0aGVuIHNldHMgSEFWRV8qIHZhcmlhYmxlcyBhY2NvcmRpbmcgdG8gZGV0ZWN0aW9u
LgoKRGV0ZWN0YWJsZSBkZXZpY2VzOgpVU0IgSElEIGtleWJvYXJkcyAoR2VuZXJpYyBEZXNrdG9w
KQpVU0IgSElEIHRvdWNoIHNjcmVlbnMgKERpZ2l0aXplcikKCk5vdGU6ClRoZSBpbnRlbnRpb24g
aXMgdG8gaGF2ZSBhIHdheSB0byBwcm92aWRlIGluaXRpYWwgZm9ybWZhY3RvcgpzZXR0aW5ncyBp
biBhIGJvb3QgcHJvY2VkdXJlLiBUaGF0IG1lYW5zIHN1cHBvcnRlZCBrZXlib2FyZAphbmQgdG91
Y2ggc2NyZWVuIG11c3QgYmUgY29ubmVjdGVkIGJlZm9yZSBtYWNoY29uZmlnIHJ1bnMuCkFueSBu
ZXcgY29ubmVjdGlvbiBvciBkaXNjb25uZWN0aW9uIHdvbid0IGJlIGRldGVjdGVkIHVudGlsCm1h
Y2hjb25maWcgaXMgZXhlY3V0ZWQgYWdhaW4uCgpMaW1pdGF0aW9uOgpUaGVyZSBjb3VsZCBiZSBz
b21lIFVTQiBISUQgZGV2aWNlcyBwcmVzZW50cyBtb3JlIHRoYW4gb25lCnVzYWdlIGluIGEgc2lu
Z2xlIGRlc2NyaXB0b3IuIFdlIHdpbGwgYWRkIHN1cHBvcnQgb25jZSBzdWNoCmRldmljZSBlbWVy
Z2VzLgoKU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgX3ZpcnR1YWxfIGRldmljZXMgcHJvdmlkZWQg
YnkgQklPUy4KSXQgd2lsbCBjYXVzZSBmYWxzZSBkZXRlY3Rpb24gd2hlbiB0aGV5IGFyZSBwcmVz
ZW50ZWQgYXMKdHlwZXMgd2Ugc3VwcG9ydGVkLiBXZSBjYW4gYWRkIGJsYWNrIGxpc3QgbG9naWMg
d2hlbiBpdApiZWNvbWVzIGEgYmlnIGNvbmNlcm4uCgpGaXhlcyBbWU9DVE8gIzkyMDVdCgpTaWdu
ZWQtb2ZmLWJ5OiBKaWFueHVuIFpoYW5nIDxqaWFueHVuLnpoYW5nQGxpbnV4LmludGVsLmNvbT4K
LS0tCiAuLi4vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcgICB8
IDM3ICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zv
cm1mYWN0b3JfMC4wLmJiYXBwZW5kIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRp
b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL3JlY2lwZXMtYnNwL2Zvcm1mYWN0b3Iv
Zm9ybWZhY3Rvci9tYWNoY29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL3JlY2lwZXMt
YnNwL2Zvcm1mYWN0b3IvZm9ybWZhY3Rvcl8wLjAuYmJhcHBlbmQKCmRpZmYgLS1naXQgYS9jb21t
b24vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcgYi9jb21tb24v
cmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJmMTJiMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1v
bi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zvcm1mYWN0b3IvbWFjaGNvbmZpZwpAQCAtMCwwICsx
LDM3IEBACisjIE5vdGU6IHN1cGVyIHVzZXIgcGVybWlzc2lvbiBpcyByZXF1aXJlZCB0byBydW4g
dXNiaGlkLWR1bXAKKyMgc3VjY2Vzc2Z1bGx5LgorCisjIEhFWCBrZXlzIGFyZSBhY2NvcmRpbmcg
dG8gVVNCIEhJRCBzcGVjIGFuZCBVU0IgSElEIHVzYWdlIHRhYmxlCisjIFdlIGNvdWxkIGFkZCBt
b3JlIGtleXMgYXMgbmVlZGVkIGluIHRoZSBmdXR1cmUuCisKKyMgY2hlY2tlciBmb3IgZ2VuZXJp
YyBVU0IgSElEIGtleWJvYXJkCitVU0JISURfS0JEX0NNRD0iZ3JlcCAtRSAnXiAwNSAwMSAwOSAw
NiciCisKKyMgY2hlY2tlciBmb3IgdG91Y2ggc2NyZWVuCitVU0JISURfVFNfQ01EPSJncmVwIC1F
ICdeIDA1IDBEIDA5IDA0JyIKKworIyBJdCBtYXkgbm90IGJlIHZlcnkgYWNjdXJhdGUuIEhlcmUg
d2Ugb25seSBsb29rIGZvciBmaXJzdCB0d28gbGluZXMKKyMgb2YgYSBkZXNjcmlwdG9yIHNlY3Rp
b24uIEV4YW1wbGU6CisjCisjIDAwMTowMDM6MDAwOkRFU0NSSVBUT1IgICAgICAgICAxNDYwNTAx
Mzg2LjMzNzgwOQorIyAgMDUgMDEgMDkgMDIgQTEgMDEgMDkgMDEgQTEgMDAgMDUgMDkgMTkgMDEg
MjkgMDMKKyMgIDE1IDAwIDI1IDAxIDk1IDAzIDc1IDAxIDgxIDAyIC4uIC4uIC4uIC4uIC4uIC4u
CisjICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLgorIwor
IyBCeSBkb2luZyBzbyB3ZSBlbGltaWF0ZSBmYWxzZSBtYXRjaGVzIHdoZW4gSEVYIGtleXMgYXJl
IGluIHRoZSBsaW5lcworIyBpbiB0aGUgbWlkZGxlIG9mIHdob2xlIGRlc2NyaXB0b3Igc2VjdGlv
bi4KKworVVNCSElEX0RVTVBfT1VUUFVUPSQoc3VkbyB1c2JoaWQtZHVtcCAtZSBkZXNjcmlwdG9y
fGdyZXAgLUExIERFU0NSSVBUT1IpCisKK2lmIGVjaG8gIiRVU0JISURfRFVNUF9PVVRQVVQifGV2
YWwgJFVTQkhJRF9UU19DTUQgJj4vZGV2L251bGw7IHRoZW4KKyAgICBIQVZFX1RPVUNIU0NSRUVO
PTEKK2ZpCisKK2lmIGVjaG8gIiRVU0JISURfRFVNUF9PVVRQVVQifGV2YWwgJFVTQkhJRF9LQkRf
Q01EICY+L2Rldi9udWxsOyB0aGVuCisgICAgSEFWRV9LRVlCT0FSRD0xCitlbHNlCisgICAgIyBj
b25maWcgc2NyaXB0IGluIE9FIHdpbGwgc2V0IEhBVkVfS0VZQk9BUkQ9MQorICAgICMgaWYgd2Ug
ZG9uJ3Qgc2V0IGFueSB2YWx1ZS4gV2UgaGF2ZSB0byBleHBsaWNpdGx5CisgICAgIyB0ZWxsIGl0
IHdoZW4ga2V5Ym9hcmQgaXMgbm90IGRldGVjdGVkLgorICAgIEhBVkVfS0VZQk9BUkQ9MAorZmkK
ZGlmZiAtLWdpdCBhL2NvbW1vbi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zvcm1mYWN0b3JfMC4w
LmJiYXBwZW5kIGIvY29tbW9uL3JlY2lwZXMtYnNwL2Zvcm1mYWN0b3IvZm9ybWZhY3Rvcl8wLjAu
YmJhcHBlbmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJkOTkxYwotLS0g
L2Rldi9udWxsCisrKyBiL2NvbW1vbi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zvcm1mYWN0b3Jf
MC4wLmJiYXBwZW5kCkBAIC0wLDAgKzEgQEAKK0ZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIk
e1RISVNESVJ9LyR7UE59OiIKLS0gCjEuOS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3220</attachid>
            <date>2016-06-08 16:55:45 +0000</date>
            <delta_ts>2016-06-08 16:55:45 +0000</delta_ts>
            <desc>Patch submitted to meta-intel [V2]</desc>
            <filename>0001-formfactor-detect-USB-HID-keyboard-and-touch-screen.patch</filename>
            <type>application/octet-stream</type>
            <size>3273</size>
            <attacher name="Jianxun Zhang">jianxun.zhang</attacher>
            
              <data encoding="base64">RnJvbSA0MDRiYjZlNDAwYjU5ZTBmYzE1MjhjZDMyNTJiMTM4OTUzODJmYWM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFueHVuIFpoYW5nIDxqaWFueHVuLnpoYW5nQGxpbnV4Lmlu
dGVsLmNvbT4KRGF0ZTogV2VkLCAxMyBBcHIgMjAxNiAxMjoxMDo1MCAtMDcwMApTdWJqZWN0OiBb
UEFUQ0hdIGZvcm1mYWN0b3I6IGRldGVjdCBVU0IgSElEIGtleWJvYXJkIGFuZCB0b3VjaCBzY3Jl
ZW4KClRoZSBuZXcgbWFjaGNvbmZpZyBwcm9iZXMgVVNCIGtleWJvYXJkIGFuZCB0b3VjaCBzY3Jl
ZW4sIGFuZAp0aGVuIHNldHMgSEFWRV8qIHZhcmlhYmxlcyBhY2NvcmRpbmcgdG8gZGV0ZWN0aW9u
LgoKRGV0ZWN0YWJsZSBkZXZpY2VzOgpVU0IgSElEIGtleWJvYXJkcyAoR2VuZXJpYyBEZXNrdG9w
KQpVU0IgSElEIHRvdWNoIHNjcmVlbnMgKERpZ2l0aXplcikKCk5vdGU6ClRoZSBpbnRlbnRpb24g
aXMgdG8gaGF2ZSBhIHdheSB0byBwcm92aWRlIGluaXRpYWwgZm9ybWZhY3RvcgpzZXR0aW5ncyBp
biBhIGJvb3QgcHJvY2VkdXJlLiBUaGF0IG1lYW5zIHN1cHBvcnRlZCBrZXlib2FyZAphbmQgdG91
Y2ggc2NyZWVuIG11c3QgYmUgY29ubmVjdGVkIGJlZm9yZSBtYWNoY29uZmlnIHJ1bnMuCkFueSBu
ZXcgY29ubmVjdGlvbiBvciBkaXNjb25uZWN0aW9uIHdvbid0IGJlIGRldGVjdGVkIHVudGlsCm1h
Y2hjb25maWcgaXMgZXhlY3V0ZWQgYWdhaW4uCgpMaW1pdGF0aW9uOgpUaGVyZSBjb3VsZCBiZSBz
b21lIFVTQiBISUQgZGV2aWNlcyBwcmVzZW50cyBtb3JlIHRoYW4gb25lCnVzYWdlIGluIGEgc2lu
Z2xlIGRlc2NyaXB0b3IuIFdlIHdpbGwgYWRkIHN1cHBvcnQgb25jZSBzdWNoCmRldmljZSBlbWVy
Z2VzLgoKU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgX3ZpcnR1YWxfIGRldmljZXMgcHJvdmlkZWQg
YnkgQklPUy4KSXQgd2lsbCBjYXVzZSBmYWxzZSBkZXRlY3Rpb24gd2hlbiB0aGV5IGFyZSBwcmVz
ZW50ZWQgYXMKdHlwZXMgd2Ugc3VwcG9ydGVkLiBXZSBjYW4gYWRkIGJsYWNrIGxpc3QgbG9naWMg
d2hlbiBpdApiZWNvbWVzIGEgYmlnIGNvbmNlcm4uCgpGaXhlcyBbWU9DVE8gIzkyMDVdCgpTaWdu
ZWQtb2ZmLWJ5OiBKaWFueHVuIFpoYW5nIDxqaWFueHVuLnpoYW5nQGxpbnV4LmludGVsLmNvbT4K
LS0tCiAuLi4vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcgICB8
IDM3ICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zv
cm1mYWN0b3JfMC4wLmJiYXBwZW5kIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRp
b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL3JlY2lwZXMtYnNwL2Zvcm1mYWN0b3Iv
Zm9ybWZhY3Rvci9tYWNoY29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL3JlY2lwZXMt
YnNwL2Zvcm1mYWN0b3IvZm9ybWZhY3Rvcl8wLjAuYmJhcHBlbmQKCmRpZmYgLS1naXQgYS9jb21t
b24vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcgYi9jb21tb24v
cmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yL21hY2hjb25maWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdkNDk3OAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1v
bi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zvcm1mYWN0b3IvbWFjaGNvbmZpZwpAQCAtMCwwICsx
LDM3IEBACisjIE5vdGU6IHN1cGVyIHVzZXIgcGVybWlzc2lvbiBpcyByZXF1aXJlZCB0byBydW4g
dXNiaGlkLWR1bXAKKyMgc3VjY2Vzc2Z1bGx5LgorCisjIEhFWCBrZXlzIGFyZSBhY2NvcmRpbmcg
dG8gVVNCIEhJRCBzcGVjIGFuZCBVU0IgSElEIHVzYWdlIHRhYmxlCisjIFdlIGNvdWxkIGFkZCBt
b3JlIGtleXMgYXMgbmVlZGVkIGluIHRoZSBmdXR1cmUuCisKKyMgY2hlY2tlciBmb3IgZ2VuZXJp
YyBVU0IgSElEIGtleWJvYXJkCitVU0JISURfS0JEX0NNRD0iZ3JlcCAtRSAnXiAwNSAwMSAwOSAw
NiciCisKKyMgY2hlY2tlciBmb3IgdG91Y2ggc2NyZWVuCitVU0JISURfVFNfQ01EPSJncmVwIC1F
ICdeIDA1IDBEIDA5IDA0JyIKKworIyBJdCBtYXkgbm90IGJlIHZlcnkgYWNjdXJhdGUuIEhlcmUg
d2Ugb25seSBsb29rIGZvciBmaXJzdCB0d28gbGluZXMKKyMgb2YgYSBkZXNjcmlwdG9yIHNlY3Rp
b24uIEV4YW1wbGU6CisjCisjIDAwMTowMDM6MDAwOkRFU0NSSVBUT1IgICAgICAgICAxNDYwNTAx
Mzg2LjMzNzgwOQorIyAgMDUgMDEgMDkgMDIgQTEgMDEgMDkgMDEgQTEgMDAgMDUgMDkgMTkgMDEg
MjkgMDMKKyMgIDE1IDAwIDI1IDAxIDk1IDAzIDc1IDAxIDgxIDAyIC4uIC4uIC4uIC4uIC4uIC4u
CisjICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLgorIwor
IyBCeSBkb2luZyBzbyB3ZSBlbGltaWF0ZSBmYWxzZSBtYXRjaGVzIHdoZW4gSEVYIGtleXMgYXJl
IGluIHRoZSBsaW5lcworIyBpbiB0aGUgbWlkZGxlIG9mIHdob2xlIGRlc2NyaXB0b3Igc2VjdGlv
bi4KKworVVNCSElEX0RVTVBfT1VUUFVUPSQodXNiaGlkLWR1bXAgLWUgZGVzY3JpcHRvcnxncmVw
IC1BMSBERVNDUklQVE9SKQorCitpZiBlY2hvICIkVVNCSElEX0RVTVBfT1VUUFVUInxldmFsICRV
U0JISURfVFNfQ01EICY+L2Rldi9udWxsOyB0aGVuCisgICAgSEFWRV9UT1VDSFNDUkVFTj0xCitm
aQorCitpZiBlY2hvICIkVVNCSElEX0RVTVBfT1VUUFVUInxldmFsICRVU0JISURfS0JEX0NNRCAm
Pi9kZXYvbnVsbDsgdGhlbgorICAgIEhBVkVfS0VZQk9BUkQ9MQorZWxzZQorICAgICMgY29uZmln
IHNjcmlwdCBpbiBPRSB3aWxsIHNldCBIQVZFX0tFWUJPQVJEPTEKKyAgICAjIGlmIHdlIGRvbid0
IHNldCBhbnkgdmFsdWUuIFdlIGhhdmUgdG8gZXhwbGljaXRseQorICAgICMgdGVsbCBpdCB3aGVu
IGtleWJvYXJkIGlzIG5vdCBkZXRlY3RlZC4KKyAgICBIQVZFX0tFWUJPQVJEPTAKK2ZpCmRpZmYg
LS1naXQgYS9jb21tb24vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yXzAuMC5iYmFw
cGVuZCBiL2NvbW1vbi9yZWNpcGVzLWJzcC9mb3JtZmFjdG9yL2Zvcm1mYWN0b3JfMC4wLmJiYXBw
ZW5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZDk5MWMKLS0tIC9kZXYv
bnVsbAorKysgYi9jb21tb24vcmVjaXBlcy1ic3AvZm9ybWZhY3Rvci9mb3JtZmFjdG9yXzAuMC5i
YmFwcGVuZApAQCAtMCwwICsxIEBACitGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElT
RElSfS8ke1BOfToiCi0tIAoyLjcuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>