linux/drivers/hid/hid-picolcd_core.c
<<
4.8.val/spa4.1 val/form.1 vala 4.8.va href="../linux+v3.7.2/drivers/hid/hid-picolcd_core.c">4.8.valimg src="../.static/gfx/right.png" alt=">>">4.l/spa4.14.lspa4 class="lxr_search">4.8.4.8.valinput typ1" hidden" nam1" navtarget" 14.11" ">4.8.valinput typ1" text" nam1" search" id" search">4.8.valbuttv36typ1" submit">Search4.8.vaPrefs1 val/a>4.l/spa4.18.va al/div.18.va alform ac3.14="ajax+*" method="post" onsubmit="return false;">4.linput typ1" hidden" nam1" ajax_lookup" id" ajax_lookup" 14.11" ">48.va al/form.148.va aldiv class="headingbottvm">1 ldiv id" file_contents".
a a1l/a>lspa4 class="comment">/***************************************************************************l/spa4.1a a2l/a>lspa4 class="comment"> *a aCopyright (C) 2010-2012 by BrunoaPrémont <bonbons@linux-vserver.org>  *l/spa4.1a a3l/a>lspa4 class="comment"> *a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a a4l/a>lspa4 class="comment"> *a aBased on Logitech G13 driver (v0.4)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a a5l/a>lspa4 class="comment"> *a aaaCopyright (C) 2009 by Rick L. Vinyard, Jr. <rvinyard@cs.nmsu.edu>  a*l/spa4.1a a6l/a>lspa4 class="comment"> *a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a a7l/a>lspa4 class="comment"> *a aThis program is free software: you ca4 redistribute it and/or modifyaa*l/spa4.1a a8l/a>lspa4 class="comment"> *a ait under the terms of the GNU General Public License as published byaa*l/spa4.1a a9l/a>lspa4 class="comment"> *a athe Free Software Founda3.14, vers"v362 of the License.aaaaaaaaaaaaaaa*l/spa4.1a 
  
a>lspa4 class="comment"> *a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a 11l/a>lspa4 class="comment"> *a aThis driver is distributed in the hope thatait will be useful, butaaaa*l/spa4.1a 12l/a>lspa4 class="comment"> *a aWITHOUT ANY WARRANTY; withoutaeven the implied warranty of aaaaaaaaaaa*l/spa4.1a 13l/a>lspa4 class="comment"> *a aMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU aaaaa*l/spa4.1a 14l/a>lspa4 class="comment"> *a aGeneral Public License for more details.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a 15l/a>lspa4 class="comment"> *a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*l/spa4.1a 16l/a>lspa4 class="comment"> *a aYou should have received a copy of the GNU General Public License aaaa*l/spa4.1a 17l/a>lspa4 class="comment"> *a aalong with this software. If not see <http://www.gnu.org/licenses/>.aa*l/spa4.1a 18l/a>lspa4 class="comment"> ***************************************************************************/l/spa4.1a 19l/a>1a 2  
a>#include <linux/hid.h 
a>>1a 21 
a>#include <linux/hid-debug.h 
a>>1a 22 
a>#include <linux/input.h 
a>>1a 23 
a>#include "hid-ids.h 
a>"1a 24 
a>#include "usbhid/usbhid.h 
a>"1a 25 
a>#include <linux/usb.h 
a>>1a 26l/a>1a 27 
a>#include <linux/fb.h 
a>>1a 28 
a>#include <linux/vmalloc.h 
a>>1a 29l/a>1a 3  
a>#include <linux/comple3.14.h 
a>>1a 31 
a>#include <linux/uaccess.h 
a>>1a 32 
a>#include <linux/module.h 
a>>1a 33l/a>1a 34 
a>#include "hid-picolcd.h 
a>"1a 35l/a>1a 36l/a>1a 37l/a>lspa4 class="comment">/* Input devicel/spa4.1a 38l/a>lspa4 class="comment"> *l/spa4.1a 39l/a>lspa4 class="comment"> *aThe PicoLCD has a4 IR receiver header, a built-in keypad with 5 keysl/spa4.1a 4  
a>lspa4 class="comment"> *aand header for 4x4 key matrix.aThe built-in keys are part of the matrix.l/spa4.1a 41l/a>lspa4 class="comment"> */l/spa4.1a 42 
a>static const unsigned short la href="+code=def_keymap" class="sref">def_keymap 
a>[la href="+code=PICOLCD_KEYS" class="sref">PICOLCD_KEYS 
a>] = {1a 43l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* none */l/spa4.1a 44l/a>aaaaaaaala href="+code=KEY_BACK" class="sref">KEY_BACKl/a>,aaa aaalspa4 class="comment">/* col 4 + row 1 */l/spa4.1a 45l/a>aaaaaaaala href="+code=KEY_HOMEPAGE" class="sref">KEY_HOMEPAGEl/a>,aaalspa4 class="comment">/* col 3 + row 1 */l/spa4.1a 46l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 2 + row 1 */l/spa4.1a 47l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 1 + row 1 */l/spa4.1a 48l/a>aaaaaaaala href="+code=KEY_SCROLLUP" class="sref">KEY_SCROLLUPl/a>,aaalspa4 class="comment">/* col 4 + row 2 */l/spa4.1a 49l/a>aaaaaaaala href="+code=KEY_OK" class="sref">KEY_OKl/a>,aaa aaaaalspa4 class="comment">/* col 3 + row 2 */l/spa4.1a 50l/a>aaaaaaaala href="+code=KEY_SCROLLDOWN" class="sref">KEY_SCROLLDOWNl/a>,alspa4 class="comment">/* col 2 + row 2 */l/spa4.1a 51l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 1 + row 2 */l/spa4.1a 52l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 4 + row 3 */l/spa4.1a 53l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 3 + row 3 */l/spa4.1a 54l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 2 + row 3 */l/spa4.1a 55l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 1 + row 3 */l/spa4.1a 56l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 4 + row 4 */l/spa4.1a 57l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 3 + row 4 */l/spa4.1a 58l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 2 + row 4 */l/spa4.1a 59l/a>aaaaaaaala href="+code=KEY_RESERVED" class="sref">KEY_RESERVEDl/a>,aaalspa4 class="comment">/* col 1 + row 4 */l/spa4.1a 60l/a>};1a 61l/a>1a 62l/a>1a 63l/a>lspa4 class="comment">/* Find a given report */l/spa4.1a 64 
a>struct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=picolcd_report" class="sref">picolcd_reportl/a>(int la href="+code=id" class="sref">idl/a>,astruct la href="+code=hid_device" class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>,aint la href="+code=dir" class="sref">dirl/a>)1a 65l/a>{1a 66l/a>aaaaaaaastruct la href="+code=list_head" class="sref">list_headl/a>a*la href="+code=feature_report_list" class="sref">feature_report_listl/a>a= &la href="+code=hdev" class="sref">hdevl/a>->la href="+code=report_enum" class="sref">report_enum 
a>[la href="+code=dir" class="sref">dirl/a>].la href="+code=report_list" class="sref">report_listl/a>;1a 67l/a>aaaaaaaastruct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href="+code=NULL" class="sref">NULLl/a>;1a 68l/a>1a 69l/a>aaaaaaaala href="+code=list_for_each_entry" class="sref">list_for_each_entryl/a>(la href="+code=report" class="sref">reportl/a>,ala href="+code=feature_report_list" class="sref">feature_report_listl/a>,ala href="+code=list" class="sref">listl/a>) {1a 70l/a>aaaaaaaaaaaaaaaaif (la href="+code=report" class="sref">reportl/a>->la href="+code=id" class="sref">idl/a> == la href="+code=id" class="sref">idl/a>)1a 71l/a>aaaaaaaaaaaaaaaaaaaaaaaareturn la href="+code=report" class="sref">reportl/a>;1a 72l/a>aaaaaaaa}1a 73l/a>aaaaaaaala href="+code=hid_warn" class="sref">hid_warnl/a>(la href="+code=hdev" class="sref">hdevl/a>,alspa4 class="string">"No report with id 0x%x found\n"idl/a>);1a 74l/a>aaaaaaaareturn la href="+code=NULL" class="sref">NULLl/a>;1a 75l/a>}1a 76l/a>1a 77l/a>lspa4 class="comment">/* Submit a report and wait for a reply from device -aif device fades awayl/spa4.1a 78l/a>lspa4 class="comment"> *aor does not respond in time,areturn NULL */l/spa4.1a 79 
a>struct la href="+code=picolcd_pending" class="sref">picolcd_pendingl/a>a*la href="+code=picolcd_send_and_wait" class="sref">picolcd_send_and_waitl/a>(struct la href="+code=hid_device" class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>,1a 80l/a>aaaaaaaaaaaaaaaaint la href="+code=report_id" class="sref">report_idl/a>,aconst la href="+code=u8" class="sref">u8l/a>a*la href="+code=raw_data" class="sref">raw_datal/a>,aint la href="+code=size" class="sref">sizel/a>)1a 81l/a>{1a 82l/a>aaaaaaaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=hid_get_drvdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a 83l/a>aaaaaaaastruct la href="+code=picolcd_pending" class="sref">picolcd_pendingl/a>a*la href="+code=work" class="sref">workl/a>;1a 84l/a>aaaaaaaastruct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href="+code=picolcd_out_report" class="sref">picolcd_out_reportl/a>(la href="+code=report_id" class="sref">report_idl/a>,ala href="+code=hdev" class="sref">hdevl/a>);1a 85l/a>aaaaaaaaunsigned long la href="+code=flags" class="sref">flagsl/a>;1a 86l/a>aaaaaaaaint la href="+code=i" class="sref">il/a>,ala href="+code=j" class="sref">jl/a>,ala href="+code=k" class="sref">kl/a>;1a 87l/a>1a 88l/a>aaaaaaaaif (!la href="+code=report" class="sref">reportl/a>a|| !la href="+code=data" class="sref">datal/a>)1a 89l/a>aaaaaaaaaaaaaaaareturn la href="+code=NULL" class="sref">NULLl/a>;1a 90l/a>aaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_FAILED" class="sref">PICOLCD_FAILEDl/a>)1a 91l/a>aaaaaaaaaaaaaaaareturn la href="+code=NULL" class="sref">NULLl/a>;1a 92l/a>aaaaaaaala href="+code=work" class="sref">workl/a>a= la href="+code=kzalloc" class="sref">kzallocl/a>(sizeof(*la href="+code=work" class="sref">workl/a>),ala href="+code=GFP_KERNEL" class="sref">GFP_KERNELl/a>);1a 93l/a>aaaaaaaaif (!la href="+code=work" class="sref">workl/a>)1a 94l/a>aaaaaaaaaaaaaaaareturn la href="+code=NULL" class="sref">NULLl/a>;1a 95l/a>1a 96l/a>aaaaaaaala href="+code=init_comple3.14" class="sref">init_comple3.14l/a>(&la href="+code=work" class="sref">workl/a>->la href="+code=ready" class="sref">readyl/a>);1a 97l/a>aaaaaaaala href="+code=work" class="sref">workl/a>->la href="+code=out_report" class="sref">out_reportl/a>a= la href="+code=report" class="sref">reportl/a>;1a 98l/a>aaaaaaaala href="+code=work" class="sref">workl/a>->la href="+code=in_report" class="sref">in_reportl/a>aa= la href="+code=NULL" class="sref">NULLl/a>;1a 99l/a>aaaaaaaala href="+code=work" class="sref">workl/a>->la href="+code=raw_size" class="sref">raw_sizel/a>aaa= 0;1a100l/a>1a101l/a>aaaaaaaala href="+code=mutex_lock" class="sref">mutex_lockl/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=mutex" class="sref">mutexl/a>);1a102l/a>aaaaaaaala href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsavel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a103l/a>aaaaaaaafor (la href="+code=i" class="sref">il/a>a= la href="+code=k" class="sref">kl/a>a= 0; la href="+code=i" class="sref">il/a> < la href="+code=report" class="sref">reportl/a>->la href="+code=maxfield" class="sref">maxfieldl/a>; la href="+code=i" class="sref">il/a>++)1a104l/a>aaaaaaaaaaaaaaaafor (la href="+code=j" class="sref">jl/a>a= 0; la href="+code=j" class="sref">jl/a>a< la href="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[la href="+code=i" class="sref">il/a>]->la href="+code=report_count" class="sref">report_countl/a>; la href="+code=j" class="sref">jl/a>++) {1a105l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=hid_set_field" class="sref">hid_set_fieldl/a>(la href="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[la href="+code=i" class="sref">il/a>],ala href="+code=j" class="sref">jl/a>,ala href="+code=k" class="sref">kl/a>a< la href="+code=size" class="sref">sizel/a> ? la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=k" class="sref">kl/a>] : 0);1a106l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=k" class="sref">kl/a>++;1a107l/a>aaaaaaaaaaaaaaaa}1a108l/a>aaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_FAILED" class="sref">PICOLCD_FAILEDl/a>) {1a109l/a>aaaaaaaaaaaaaaaala href="+code=kfree" class="sref">kfreel/a>(la href="+code=work" class="sref">workl/a>);1a110l/a>aaaaaaaaaaaaaaaala href="+code=work" class="sref">workl/a>a= la href="+code=NULL" class="sref">NULLl/a>;1a111l/a>aaaaaaaa} else {1a112l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=pending" class="sref">pendingl/a>a= la href="+code=work" class="sref">workl/a>;1a113l/a>aaaaaaaaaaaaaaaala href="+code=usbhid_submit_report" class="sref">usbhid_submit_reportl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=hdev" class="sref">hdevl/a>,ala href="+code=report" class="sref">reportl/a>,ala href="+code=USB_DIR_OUT" class="sref">USB_DIR_OUTl/a>);1a114l/a>aaaaaaaaaaaaaaaala href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a115l/a>aaaaaaaaaaaaaaaala href="+code=wait_for_comple3.14_interruptible_timeout" class="sref">wait_for_comple3.14_interruptible_timeoutl/a>(&la href="+code=work" class="sref">workl/a>->la href="+code=ready" class="sref">readyl/a>,ala href="+code=HZ" class="sref">HZl/a>*2);1a116l/a>aaaaaaaaaaaaaaaala href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsavel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a117l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=pending" class="sref">pendingl/a>a= la href="+code=NULL" class="sref">NULLl/a>;1a118l/a>aaaaaaaa}1a119l/a>aaaaaaaala href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a120l/a>aaaaaaaala href="+code=mutex_unlock" class="sref">mutex_unlockl/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=mutex" class="sref">mutexl/a>);1a121l/a>aaaaaaaareturn la href="+code=work" class="sref">workl/a>;1a122 
a>}1a123l/a>1a124l/a>lspa4 class="comment">/*l/spa4.1a125l/a>lspa4 class="comment"> *ainput class devicel/spa4.1a126l/a>lspa4 class="comment"> */l/spa4.1a127 
a>static int la href="+code=picolcd_raw_keypad" class="sref">picolcd_raw_keypadl/a>(struct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>,1a128l/a>aaaaaaaaaaaaaaaastruct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>,ala href="+code=u8" class="sref">u8l/a>a*la href="+code=raw_data" class="sref">raw_datal/a>,aint la href="+code=size" class="sref">sizel/a>)1a129l/a>{1a130l/a>aaaaaaaalspa4 class="comment">/*l/spa4.1a131l/a>lspa4 class="comment">         * Keypad eventl/spa4.1a132l/a>lspa4 class="comment">         * First and second data bytes list currently pressed keys,l/spa4.1a133l/a>lspa4 class="comment">         * 0x00 means no key and at most 2 keys may be pressed at sam1 timel/spa4.1a134l/a>lspa4 class="comment">         */l/spa4.1a135l/a>aaaaaaaaint la href="+code=i" class="sref">il/a>,ala href="+code=j" class="sref">jl/a>;1a136l/a>1a137l/a>aaaaaaaalspa4 class="comment">/* determine newly pressed keys */l/spa4.1a138l/a>aaaaaaaafor (la href="+code=i" class="sref">il/a>a= 0; la href="+code=i" class="sref">il/a> < la href="+code=size" class="sref">sizel/a>; la href="+code=i" class="sref">il/a>++) {1a139l/a>aaaaaaaaaaaaaaaaunsigned int la href="+code=key_code" class="sref">key_codel/a>;1a140l/a>aaaaaaaaaaaaaaaaif (la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>] == 0)1a141l/a>aaaaaaaaaaaaaaaaaaaaaaaacontinue;1a142l/a>aaaaaaaaaaaaaaaafor (la href="+code=j" class="sref">jl/a>a= 0; la href="+code=j" class="sref">jl/a>a< sizeof(la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>); la href="+code=j" class="sref">jl/a>++)1a143l/a>aaaaaaaaaaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] == la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>])1a144l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagoto la href="+code=key_already_dow4" class="sref">key_already_dow4l/a>;1a145l/a>aaaaaaaaaaaaaaaafor (la href="+code=j" class="sref">jl/a>a= 0; la href="+code=j" class="sref">jl/a>a< sizeof(la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>); la href="+code=j" class="sref">jl/a>++)1a146l/a>aaaaaaaaaaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] == 0) {1a147l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] = la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>];1a148l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabreak;1a149l/a>aaaaaaaaaaaaaaaaaaaaaaaa}1a150l/a>aaaaaaaaaaaaaaaala href="+code=input_event" class="sref">input_eventl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>,ala href="+code=EV_MSC" class="sref">EV_MSCl/a>,ala href="+code=MSC_SCAN" class="sref">MSC_SCANl/a>,ala href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>]);1a151l/a>aaaaaaaaaaaaaaaaif (la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>] < la href="+code=PICOLCD_KEYS" class="sref">PICOLCD_KEYS 
a>)1a152l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=key_code" class="sref">key_codel/a> = la href="+code=data" class="sref">datal/a>->la href="+code=keycode" class="sref">keycodel/a>[la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>]];1a153l/a>aaaaaaaaaaaaaaaaelse1a154l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=key_code" class="sref">key_codel/a> = la href="+code=KEY_UNKNOWN" class="sref">KEY_UNKNOWNl/a>;1a155l/a>aaaaaaaaaaaaaaaaif (la href="+code=key_code" class="sref">key_codel/a> != la href="+code=KEY_UNKNOWN" class="sref">KEY_UNKNOWNl/a>) {1a156l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=dbg_hid" class="sref">dbg_hidl/a>(la href="+code=PICOLCD_NAME" class="sref">PICOLCD_NAMEl/a>alspa4 class="string">"agot key pressafor %u:%d"a157l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaala href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>],ala href="+code=key_code" class="sref">key_codel/a>);1a158l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=input_report_key" class="sref">input_report_keyl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>,ala href="+code=key_code" class="sref">key_codel/a>, 1);1a159l/a>aaaaaaaaaaaaaaaa}1a160l/a>aaaaaaaaaaaaaaaala href="+code=input_sync" class="sref">input_syncl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>);1a161l/a>la href="+code=key_already_dow4" class="sref">key_already_dow4l/a>:1a162l/a>aaaaaaaaaaaaaaaacontinue;1a163l/a>aaaaaaaa}1a164 
a>1a165l/a>aaaaaaaalspa4 class="comment">/* determine newly released keys */l/spa4.1a166l/a>aaaaaaaafor (la href="+code=j" class="sref">jl/a>a= 0; la href="+code=j" class="sref">jl/a>a< sizeof(la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>); la href="+code=j" class="sref">jl/a>++) {1a167l/a>aaaaaaaaaaaaaaaaunsigned int la href="+code=key_code" class="sref">key_codel/a>;1a168l/a>aaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] == 0)1a169l/a>aaaaaaaaaaaaaaaaaaaaaaaacontinue;1a170l/a>aaaaaaaaaaaaaaaafor (la href="+code=i" class="sref">il/a>a= 0; la href="+code=i" class="sref">il/a> < la href="+code=size" class="sref">sizel/a>; la href="+code=i" class="sref">il/a>++)1a171l/a>aaaaaaaaaaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] == la href="+code=raw_data" class="sref">raw_datal/a>[la href="+code=i" class="sref">il/a>])1a172l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagoto la href="+code=key_still_dow4" class="sref">key_still_dow4l/a>;1a173l/a>aaaaaaaaaaaaaaaala href="+code=input_event" class="sref">input_eventl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>,ala href="+code=EV_MSC" class="sref">EV_MSCl/a>,ala href="+code=MSC_SCAN" class="sref">MSC_SCANl/a>,ala href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>]);1a174l/a>aaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>] < la href="+code=PICOLCD_KEYS" class="sref">PICOLCD_KEYS 
a>)1a175l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=key_code" class="sref">key_codel/a> = la href="+code=data" class="sref">datal/a>->la href="+code=keycode" class="sref">keycodel/a>[la href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>]];1a176l/a>aaaaaaaaaaaaaaaaelse1a177l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=key_code" class="sref">key_codel/a> = la href="+code=KEY_UNKNOWN" class="sref">KEY_UNKNOWNl/a>;1a178l/a>aaaaaaaaaaaaaaaaif (la href="+code=key_code" class="sref">key_codel/a> != la href="+code=KEY_UNKNOWN" class="sref">KEY_UNKNOWNl/a>) {1a179l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=dbg_hid" class="sref">dbg_hidl/a>(la href="+code=PICOLCD_NAME" class="sref">PICOLCD_NAMEl/a>alspa4 class="string">"agot key releaseafor %u:%d"a180l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>],ala href="+code=key_code" class="sref">key_codel/a>);1a181l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=input_report_key" class="sref">input_report_keyl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>,ala href="+code=key_code" class="sref">key_codel/a>, 0);1a182l/a>aaaaaaaaaaaaaaaa}1a183l/a>aaaaaaaaaaaaaaaala href="+code=input_sync" class="sref">input_syncl/a>(la href="+code=data" class="sref">datal/a>->la href="+code=input_keys" class="sref">input_keysl/a>);1a184l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=pressed_keys" class="sref">pressed_keysl/a>[la href="+code=j" class="sref">jl/a>]a= 0;1a185l/a>la href="+code=key_still_dow4" class="sref">key_still_dow4l/a>:1a186l/a>aaaaaaaaaaaaaaaacontinue;1a187l/a>aaaaaaaa}1a188l/a>aaaaaaaareturn 1;1a189l/a>}1a190l/a>1a191l/a>static int la href="+code=picolcd_check_vers.14" class="sref">picolcd_check_vers.14l/a>(struct la href="+code=hid_device" class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1a192l/a>{1a193l/a>aaaaaaaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=hid_get_drvdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a194l/a>aaaaaaaastruct la href="+code=picolcd_pending" class="sref">picolcd_pendingl/a>a*la href="+code=verinfo" class="sref">verinfol/a>;1a195l/a>aaaaaaaaint la href="+code=ret" class="sref">retl/a>a= 0;1a196l/a>1a197l/a>aaaaaaaaif (!la href="+code=data" class="sref">datal/a>)1a198l/a>aaaaaaaaaaaaaaaareturn -la href="+code=ENODEV" class="sref">ENODEVl/a>;1a199l/a>1a200l/a>aaaaaaaala href="+code=verinfo" class="sref">verinfol/a>a= la href="+code=picolcd_send_and_wait" class="sref">picolcd_send_and_waitl/a>(la href="+code=hdev" class="sref">hdevl/a>,ala href="+code=REPORT_VERSION" class="sref">REPORT_VERSIONl/a>,ala href="+code=NULL" class="sref">NULLl/a>, 0);1a201l/a>aaaaaaaaif (!la href="+code=verinfo" class="sref">verinfol/a>) {1a202l/a>aaaaaaaaaaaaaaaala href="+code=hid_err" class="sref">hid_errl/a>(la href="+code=hdev" class="sref">hdevl/a>,alspa4 class="string">"no vers.14 responseafrom PicoLCD\n"a203l/a>aaaaaaaaaaaaaaaareturn -la href="+code=ENODEV" class="sref">ENODEVl/a>;1a204l/a>aaaaaaaa}1a205l/a>1a206l/a>aaaaaaaaif (la href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_size" class="sref">raw_sizel/a>a== 2) {1a207l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=vers.14" class="sref">vers.14l/a>[0] = la href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[1];1a208l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=vers.14" class="sref">vers.14l/a>[1] = la href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[0];1a209l/a>aaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_BOOTLOADER" class="sref">PICOLCD_BOOTLOADERl/a>) {1a210l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=hid_info" class="sref">hid_infol/a>(la href="+code=hdev" class="sref">hdevl/a>,alspa4 class="string">"PicoLCD, bootloader vers.14 %d.%d\n"a211l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaala href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[1],ala href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[0]);1a212l/a>aaaaaaaaaaaaaaaa} else {1a213l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=hid_info" class="sref">hid_infol/a>(la href="+code=hdev" class="sref">hdevl/a>,alspa4 class="string">"PicoLCD, firmware vers.14 %d.%d\n"a214l/a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaala href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[1],ala href="+code=verinfo" class="sref">verinfol/a>->la href="+code=raw_data" class="sref">raw_datal/a>[0]);1a215l/a>aaaaaaaaaaaaaaaa}1a216l/a>aaaaaaaa} else {1a217l/a>aaaaaaaaaaaaaaaala href="+code=hid_err" class="sref">hid_errl/a>(la href="+code=hdev" class="sref">hdevl/a>,alspa4 class="string">"confused,agot unexpected vers.14 responseafrom PicoLCD\n"a218l/a>aaaaaaaaaaaaaaaala href="+code=ret" class="sref">retl/a>a= -la href="+code=EINVAL" class="sref">EINVALl/a>;1a219l/a>aaaaaaaa}1a220l/a>aaaaaaaala href="+code=kfree" class="sref">kfreel/a>(la href="+code=verinfo" class="sref">verinfol/a>);1a221l/a>aaaaaaaareturn la href="+code=ret" class="sref">retl/a>;1a222 
a>}1a223l/a>1a224l/a>lspa4 class="comment">/*l/spa4.1a225l/a>lspa4 class="comment"> *aReset our device and wait for answer to VERSIONarequestl/spa4.1a226l/a>lspa4 class="comment"> */l/spa4.1a227 
a>int la href="+code=picolcd_reset" class="sref">picolcd_resetl/a>(struct la href="+code=hid_device" class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1a228l/a>{1a229l/a>aaaaaaaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=hid_get_drvdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a230l/a>aaaaaaaastruct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href="+code=picolcd_out_report" class="sref">picolcd_out_reportl/a>(la href="+code=REPORT_RESET" class="sref">REPORT_RESETl/a>,ala href="+code=hdev" class="sref">hdevl/a>);1a231l/a>aaaaaaaaunsigned long la href="+code=flags" class="sref">flagsl/a>;1a232l/a>aaaaaaaaint la href="+code=error" class="sref">errorl/a>;1a233l/a>1a234l/a>aaaaaaaaif (!la href="+code=data" class="sref">datal/a>a|| !la href="+code=report" class="sref">reportl/a>a|| la href="+code=report" class="sref">reportl/a>->la href="+code=maxfield" class="sref">maxfieldl/a> != 1)1a235l/a>aaaaaaaaaaaaaaaareturn -la href="+code=ENODEV" class="sref">ENODEVl/a>;1a236l/a>1a237l/a>aaaaaaaala href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsavel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a238l/a>aaaaaaaaif (la href="+code=hdev" class="sref">hdevl/a>->la href="+code=product" class="sref">productl/a>a== la href="+code=USB_DEVICE_ID_PICOLCD_BOOTLOADER" class="sref">USB_DEVICE_ID_PICOLCD_BOOTLOADERl/a>)1a239l/a>aaaaaaaaaaaaaaaala href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a|= la href="+code=PICOLCD_BOOTLOADER" class="sref">PICOLCD_BOOTLOADERl/a>;1a240l/a>1a241l/a>aaaaaaaalspa4 class="comment">/* perform the reset */l/spa4.1a242l/a>aaaaaaaala href="+code=hid_set_field" class="sref">hid_set_fieldl/a>(la href="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[0], 0, 1);1a243l/a>aaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_FAILED" class="sref">PICOLCD_FAILEDl/a>) {1a244l/a>aaaaaaaaaaaaaaaala href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a245l/a>aaaaaaaaaaaaaaaareturn -la href="+code=ENODEV" class="sref">ENODEVl/a>;1a246l/a>aaaaaaaa}1a247l/a>aaaaaaaala href="+code=usbhid_submit_report" class="sref">usbhid_submit_reportl/a>(la href="+code=hdev" class="sref">hdevl/a>,ala href="+code=report" class="sref">reportl/a>,ala href="+code=USB_DIR_OUT" class="sref">USB_DIR_OUTl/a>);1a248l/a>aaaaaaaala href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a249l/a>1a250l/a>aaaaaaaala href="+code=error" class="sref">errorl/a>a= la href="+code=picolcd_check_vers.14" class="sref">picolcd_check_vers.14l/a>(la href="+code=hdev" class="sref">hdevl/a>);1a251l/a>aaaaaaaaif (la href="+code=error" class="sref">errorl/a>)1a252l/a>aaaaaaaaaaaaaaaareturn la href="+code=error" class="sref">errorl/a>;1a253l/a>1a254l/a>aaaaaaaala href="+code=picolcd_resume_lcd" class="sref">picolcd_resume_lcdl/a>(la href="+code=data" class="sref">datal/a>);1a255l/a>aaaaaaaala href="+code=picolcd_resume_backlight" class="sref">picolcd_resume_backlightl/a>(la href="+code=data" class="sref">datal/a>);1a256l/a>aaaaaaaala href="+code=picolcd_fb_refresh" class="sref">picolcd_fb_refreshl/a>(la href="+code=data" class="sref">datal/a>);1a257l/a>aaaaaaaala href="+code=picolcd_leds_set" class="sref">picolcd_leds_setl/a>(la href="+code=data" class="sref">datal/a>);1a258l/a>aaaaaaaareturn 0;1a259l/a>}1a260l/a>1a261l/a>lspa4 class="comment">/*l/spa4.1a262l/a>lspa4 class="comment"> * The "opera3.14_mode"asysfs attributel/spa4.1a263l/a>lspa4 class="comment"> */l/spa4.1a264 
a>static la href="+code=ssize_t" class="sref">ssize_tl/a>ala href="+code=picolcd_opera3.14_mode_show" class="sref">picolcd_opera3.14_mode_showl/a>(struct la href="+code=device" class="sref">devicel/a>a*la href="+code=dev" class="sref">devl/a>,1a265l/a>aaaaaaaaaaaaaaaastruct la href="+code=device_attribute" class="sref">device_attributel/a>a*la href="+code=attr" class="sref">attrl/a>,achara*la href="+code=buf" class="sref">bufl/a>)1a266l/a>{1a267l/a>aaaaaaaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drvdata" class="sref">dev_get_drvdatal/a>(la href="+code=dev" class="sref">devl/a>);1a268l/a>1a269l/a>aaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_BOOTLOADER" class="sref">PICOLCD_BOOTLOADERl/a>)1a270l/a>aaaaaaaaaaaaaaaareturn la href="+code=snprintf" class="sref">snprintfl/a>(la href="+code=buf" class="sref">bufl/a>,ala href="+code=PAGE_SIZE" class="sref">PAGE_SIZEl/a>,alspa4 class="string">"[bootloader] lcd\n"a271l/a>aaaaaaaaelse1a272l/a>aaaaaaaaaaaaaaaareturn la href="+code=snprintf" class="sref">snprintfl/a>(la href="+code=buf" class="sref">bufl/a>,ala href="+code=PAGE_SIZE" class="sref">PAGE_SIZEl/a>,alspa4 class="string">"bootloader [lcd]\n"a273l/a>}1a274 
a>1a275l/a>static la href="+code=ssize_t" class="sref">ssize_tl/a>ala href="+code=picolcd_opera3.14_mode_store" class="sref">picolcd_opera3.14_mode_storel/a>(struct la href="+code=device" class="sref">devicel/a>a*la href="+code=dev" class="sref">devl/a>,1a276l/a>aaaaaaaaaaaaaaaastruct la href="+code=device_attribute" class="sref">device_attributel/a>a*la href="+code=attr" class="sref">attrl/a>,aconst chara*la href="+code=buf" class="sref">bufl/a>,ala href="+code=size_t" class="sref">size_tl/a>ala href="+code=count" class="sref">countl/a>)1a277l/a>{1a278l/a>aaaaaaaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drvdata" class="sref">dev_get_drvdatal/a>(la href="+code=dev" class="sref">devl/a>);1a279l/a>aaaaaaaastruct la href="+code=hid_report" class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href="+code=NULL" class="sref">NULLl/a>;1a280l/a>aaaaaaaala href="+code=size_t" class="sref">size_tl/a>ala href="+code=cnt" class="sref">cntl/a>a= la href="+code=count" class="sref">countl/a>;1a281l/a>aaaaaaaaint la href="+code=timeout" class="sref">timeoutl/a>a= la href="+code=data" class="sref">datal/a>->la href="+code=opmode_delay" class="sref">opmode_delayl/a>;1a282l/a>aaaaaaaaunsigned long la href="+code=flags" class="sref">flagsl/a>;1a283l/a>1a284l/a>aaaaaaaaif (la href="+code=cnt" class="sref">cntl/a>a>= 3a&& la href="+code=strncmp" class="sref">strncmpl/a>(lspa4 class="string">"lcd"bufl/a>,a3) == 0) {1a285l/a>aaaaaaaaaaaaaaaaif (la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_BOOTLOADER" class="sref">PICOLCD_BOOTLOADERl/a>)1a286l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=report" class="sref">reportl/a>a= la href="+code=picolcd_out_report" class="sref">picolcd_out_reportl/a>(la href="+code=REPORT_EXIT_FLASHER" class="sref">REPORT_EXIT_FLASHERl/a>,ala href="+code=data" class="sref">datal/a>->la href="+code=hdev" class="sref">hdevl/a>);1a287l/a>aaaaaaaaaaaaaaaala href="+code=buf" class="sref">bufl/a> += 3;1a288l/a>aaaaaaaaaaaaaaaala href="+code=cnt" class="sref">cntl/a>a-= 3;1a289l/a>aaaaaaaa} else if (la href="+code=cnt" class="sref">cntl/a>a>= 10a&& la href="+code=strncmp" class="sref">strncmpl/a>(lspa4 class="string">"bootloader"bufl/a>,a10) == 0) {1a290l/a>aaaaaaaaaaaaaaaaif (!(la href="+code=data" class="sref">datal/a>->la href="+code=status" class="sref">statusl/a>a& la href="+code=PICOLCD_BOOTLOADER" class="sref">PICOLCD_BOOTLOADERl/a>))1a291l/a>aaaaaaaaaaaaaaaaaaaaaaaala href="+code=report" class="sref">reportl/a>a= la href="+code=picolcd_out_report" class="sref">picolcd_out_reportl/a>(la href="+code=REPORT_EXIT_KEYBOARD" class="sref">REPORT_EXIT_KEYBOARDl/a>,ala href="+code=data" class="sref">datal/a>->la href="+code=hdev" class="sref">hdevl/a>);1a292l/a>aaaaaaaaaaaaaaaala href="+code=buf" class="sref">bufl/a> += 10;1a293l/a>aaaaaaaaaaaaaaaala href="+code=cnt" class="sref">cntl/a>a-= 10;1a294l/a>aaaaaaaa}1a295l/a>aaaaaaaaif (!la href="+code=report" class="sref">reportl/a>1a196l/a>1EINVALl/a>;1a197l2a>aaa2aaaaifdrivers/hid/hid-picolcd_core.c#L219" id"
L298" class="line" nam1"
L198">a198l2a>aaa2aaaaaaaaaaaarewhile"+code=cnt" class="sref">cntl/a>a>= 10a& p; la href="++code=buf" class="sref">bufl/a>,ala href=+code=j" class="="sref">cntl/a>a>= 10a-1ef="+c="string">"bootl#39;\nl#39;a href=f="+code=report" cl="sref">bufl/a>,ala href=+code=j" class="="sref">cntl/a>a>= 10a-1ef="+c="string">"bootl#39;\rl#39;a href=="drivers/hid/hid-picolcd_core.c#L291" id"
L299" class="line" nam1"
L199">a199l2a>1cntl/a>a>= 10a--"drivers/hid/hid-picolcd_core.c#L219" id"
L300" class3"line" nam1"
L200">a200l3a>aaa3aaaala href="+f="+code=cnt" class="sref">cntl/a>a>= 10a&!ef="drivers/hid/hid-picolcd_core.c#L169" id"
L301" class3"line" nam1"
L201">a201l3a>aaa30aaaaaaaaaaaaaaaaaaala href="+code=ENODEV" class="sref">EINVALl/a>;1a202l3a>aaa3aaaaaadrivers/hid/hid-picolcd_core.c#L219" id"
L303" class3"line" nam1"
L293">a293l3a>aaa3aaaaaaaaaaaarecode=status" clarqsave" class="sref">spin_lock_irqsavel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a204l3a>aaa3aaaa}1hid_set_fieldl/a>(la href="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[0], 0, 1);1timeoutl/a>a= la href=ref="+0xff="drivers/hid/hid-picolcd_core.c#L238" id"
L305" class3"line" nam1"
L295">a295l3a>1hid_set_fieldl/a>(la href="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[0], 0, 1);1timeoutl/a>a= la href=r="+amp; 8)=ref="+0xff="drivers/hid/hid-picolcd_core.c#L238" id"
L306" class3"">a196l/a>1aaa30aaala href="+code=picolcd_fbmit_report" class="sref">usbhid_submit_reportl/a>(la href="+code=hdev" class="sref">datal/a>->la href="+code=hdev" class="sref">hdevl/a>);1reportl/a>,ala href="+code=USB_DIR_OUT" class="sref">USB_DIR_OUTl/a>);1a207l3a>aaa30aaala href="+code=spin_lock_irqsarestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a208l3a>aaa30aaareturn 0;1countl/a>;1a209l3a>aaa30href="drivers/hid/hid-picolcd_core.c#L260" id"
L310" class3"line" nam1"
L210">a210l3a>aaa31ref="drivers/hid/hid-picolcd_core.c#L261" id"
L311" class3"line" nam1"
L211">a211l3a>aaa31c int la hrecode=count" claPICOLCDATTsref">PICOLCD_BOPICOLCDATTsef="+code=hdev" clasmode_storel/a>ref">opmode_delayde_storel/a>ref="+0644"+code=flags" claera3.14_mode_show" class="sref">picolcd_opera3.14_mode_showl/a>(struct la"drivers/hid/hid-picolcd_core.c#L276" id"
L312" class3"line" nam1"
L212">a212l3a>aaa3aaaaaaaaaaaa} else {1picolcd_opera3.14_mode_storel/a>(struct la="drivers/hid/hid-picolcd_core.c#L249" id"
L313" class3"line" nam1"
L213">a213l3a>aaa31ref="drivers/hid/hid-picolcd_core.c#L284" id"
L314" class3"line" nam1"
L214">a214l3a>aaa31 class="comment">/*l/spa4.1a215l3a>aaa31 class="comment"> *aReset our opera3.14_mode"asys;1a216l3a>aaa31 class="comment"> */l/spa4.1a217l3a>aaa3aaaaaahref="+code=ssize_t" class="sref">ssize_tl/a>ala href="+code=picolcd_opera3.14_mode_store" cla1picolcd_opera3.14_mode_showl/a>(s1devicel/a>a*la href="+code=dev" class="sref">devl/a>,1a218l3a>aaa3aaaaaaaaaaaala href="+href="+code=device_attribute" class="sref">device_attributel/a>a*la href="+code=attr" class="sref">attrl/a>,achara*la href="+code=buf" class="sref">bufl/a>)1a219l3a>aaa3aaaa}1"drivers/hid/hid-picolcd_core.c#L290" id"
L320" class3"line" nam1"
L220">a220l3a>aaa32aaastruct la href="+code=hid_reportta" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drvdata" class="sref">dev_get_drvdatal/a>(la href="+code=dev" class="sref">devl/a>);1a221l3a>aaa3aaaaredrivers/hid/hid-picolcd_core.c#L279" id"
L322" class3"line" nam1"
L222">a222 3a>}1<322aareturn 0;1snprintfl/a>(la href="+code=buf" class="sref">bufl/a>,ala href="+code=PAGE_SIZE" class="sref">PAGE_SIZEl/a>,alspa4 class="string">"bootloaderuot;datal/a>->la href="+code=opmode_delay" class="sref">opmode_delayl/a>;1a223l3a>1a224l3a>lsp32ref="drivers/hid/hid-picolcd_core.c#L275" id"
L325" class3"line" nam1"
L225">a225l3a>lsp32c la href="+code=ssize_t" class="sref">ssize_tl/a>ala href="+code=picolcd_opera3.14_mode_store" cla1picolcd_opera3.14_mode_storel/a>(1devicel/a>a*la href="+code=dev" class="sref">devl/a>,1a226l3a>lsp32aaaaaaaaaaastruct la href="+code=device_attribute" class="sref">device_attributel/a>a*la href="+code=attr" class="sref">attrl/a>,aconst chara*la href="+code=buf" class="sref">bufl/a>,ala href="+code=size_t" class="sref">size_tl/a>ala href="+code=count" class="sref">countl/a>)1a227 3a>int32href="drivers/hid/hid-picolcd_core.c#L278" id"
L328" class3"line" nam1"
L228">a228l3a>{1<32aaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drvdata" class="sref">dev_get_drvdatal/a>(la href="+code=dev" class="sref">devl/a>);1a229l3a>aaa3aaaastruct la ong la hrcode=picolcd_fbmref">usbhid_submref="drivers/hid/hid-picolcd_core.c#L281" id"
L330" class3"line" nam1"
L230">a230l3a>aaa33aaala href="+f="+code=cnt" classsscansref">snprintfl/ascansef="+code=buf" class="sref">bufl/a>,ala href="+c="string">"bootloaderuot;usbhid_submref=)href="drivers/hid/hid-picolcd_core.c#L235" id"
L331" class3"line" nam1"
L231">a231l3a>aaa33aaaaaaaaaaaaaaaaaaala href="+code=ENODEV" class="sref">EINVALl/a>;1a232l3a>aaa3aaaaint la href="+code=cnt" classmref">usbhid_submref=& 30000"drivers/hid/hid-picolcd_core.c#L235" id"
L333" class3"line" nam1"
L233">a233l3a>1EINVALl/a>;1a234l3a>aaa3aaaaif (!la href="drivers/hid/hid-picolcd_core.c#L272" id"
L335" class3"line" nam1"
L235">a235l3a>aaa3aaaaaaaaaaaareturn -lacode=data" class="sref">datal/a>->la href="+code=opmode_delay" class="sref">opmode_delayl/a>;1usbhid_submref="drivers/hid/hid-picolcd_core.c#L281" id"
L336" class3"line" nam1"
L236">a236l3a>1countl/a>;1a237l3a>aaa3aaaala"drivers/hid/hid-picolcd_core.c#L274" id"
L338" class3"line" nam1"
L238">a238l3a>aaa33ref="drivers/hid/hid-picolcd_core.c#L269" id"
L339" class3"line" nam1"
L239">a239l3a>aaa3aaaaaa la hrecode=count" claPICOLCDATTsref">PICOLCD_BOPICOLCDATTsef="+code=hdev" clasmode_storel/a>ass="sref">opmode_delayde_storel/a>ass="sref="+0644"+code=flags" claera3.14_mode_show" clas1picolcd_opera3.14_mode_showl/a>(s1a240l3a>1picolcd_opera3.14_mode_storel/a>(1a241l3a>aaa34aaaredrivers/hid/hid-picolcd_core.c#L279" id"
L342" class3"line" nam1"
L242">a242l3a>aaa34 class="comment"> * The &qua243l3a>aaa34 class="comment"> */l/spa4.1< Handle raw ,ala h as sspa by a*la hreref="drivers/hid/hid-picolcd_core.c#L225" id"
L344" class3"line" nam1"
L244">a244l3a>aaa34 class="comment">/*l/spa4.11a245l3a>aaa34c la href="+f="+code=picolcd_reset" clasaw_eve"sref">countl/a>;set" clasaw_eve"st la href="+code=device" clh class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1a246l3a>aaa34aaaaaaaaaaastruct la href="+code=device_atth class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href"+code=flags" clau8ref">usbhid_subm8ref="+code=report" clalass="sref">raw_datal/a>[0]);1raw_sizel/= 2) {1<"drivers/hid/hid-picolcd_core.c#L235" id"
L347" class3"line" nam1"
L247">a247l3a>aaa34href="drivers/hid/hid-picolcd_core.c#L278" id"
L348" class3"line" nam1"
L248">a248l3a>aaa34aaastruct la href="+code=picolcd_data" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drhdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a249l3a>1flagsl/a>;1a250l3a>aaa3aaaala href="+f="+code=ret" class="sref">retl/a>a= 0;1a251l3a>aaa35aaaredrivers/hid/hid-picolcd_core.c#L279" id"
L352" class3"line" nam1"
L252">a252l3a>aaa35aaaint la href="++code=data" class="sref">datal/a>)1a253l3a>1a254l3a>aaa35ref="drivers/hid/hid-picolcd_core.c#L275" id"
L355" class3"line" nam1"
L255">a255l3a>aaa35aaaif (!la href="code=report" class="sref">reportl/a>->la href="+code=field" claisref">fieldl/a>[i)1PAGE_SIZElT_KEYBOKEY_STATsref=)h"drivers/hid/hid-picolcd_core.c#L278" id"
L356" class3"line" nam1"
L256">a256l3a>aaa35aaaaaaaaaaastruct la f="+code=data" class="sref">datal/a>->la href="+code=status" clinput_keysref">flagsl/a>;input_keysref="drivers/hid/hid-picolcd_core.c#L198" id"
L357" class3"line" nam1"
L257">a257l3a>aaa35aaaaaaaaaaala href="+ (!(la hcode=picolcd_op="sref">retl/a>a= 0;1picolcd_resume_lcdlaw_keypasef="+code=dev" class=="sref">datal/a>->la hr"+code=report" class="sref">reportl/a>,ala href="+code=USB_DIR_OUalass="sref">raw_datal/a>[0]);1raw_sizel/= 2) {1<-f="drivers/hid/hid-picolcd_core.c#L243" id"
L358" class3"line" nam1"
L258">a258l3a>aaa3aaaareturn 0;1(la href="+code=cnt" classass="sref">reportl/a>->la href="+code=field" claisref">fieldl/a>[i)1PAGE_SIZElT_KEYBOIR_DATAref=)h"drivers/hid/hid-picolcd_core.c#L278" id"
L359" class3"line" nam1"
L259">a259l3a>}1<35aaaaaaaaaaala href="+code=data" clas="sref">retl/a>a= 0;1attrl/a>,aset" clasaw_cisef="+code=dev" class=="sref">datal/a>->la hr"+code=report" class="sref">reportl/a>,ala href="+code=USB_DIR_OUalass="sref">raw_datal/a>[0]);1raw_sizel/= 2) {1<-f="drivers/hid/hid-picolcd_core.c#L243" id"
L360" class3"line" nam1"
L260">a260l3a>1a261l3a>lsp36aaaaaaaaaaaaaaaaaaalacode=size_t" clarqsave" class="sref">spin_lock_irqsavel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a262l3a>lsp36aaaaaaaaaaa} else {1 * The &qua263l3a>lsp34 class="comment"> */l/spa4.11111111111111111* We let */l/caller of re.c#L22send_and_nswe() .14l/ef="*/l href="drivers/hid/hid-picolcd_core.c#L225" id"
L364" class3"line" nam1"
L264">a264 3a>sta36 class="comment">/*l/spa4.111111111111111111* ,ala h weectedis one of */l/ers.14 reones or not. href="drivers/hid/hid-picolcd_core.c#L225" id"
L365" class3"line" nam1"
L265">a265l3a>aaa36 class="comment"> *aReset ou1111111111111111*a href="drivers/hid/hid-picolcd_core.c#L227" id"
L366" class3"line" nam1"
L266">a266l3a>{1<36aaaaaaaaaaastruct la f="+code=data" class="sref">datal/a>->la href="+code=status" clpend;booef">attrl/a>,asend;boref=)h"drivers/hid/hid-picolcd_core.c#L278" id"
L367" class3"line" nam1"
L267">a267l3a>aaa36aaaaaaaaaaala href="+ (!(la hcode=picolcd_opmemcpsref">opmode_delmemcpsef="+code=dev" class=="sref">datal/a>->la href="+code=status" clpend;booef">attrl/a>,asend;boref=ef="+code=raw_data" class="sref">raw_datal/a>[0]);1raw_datal/a>[0]);1raw_sizel/= 2) {1<-f="drivers/hid/hid-picolcd_core.c#L243" id"
L368" class3"line" nam1"
L268">a268l3a>1datal/a>->la href="+code=status" clpend;booef">attrl/a>,asend;boref=ef="+code=raw_data" clasass=ref">raw_sizel/clasass=aaaaaaefcode=picolcd_reass=ref">raw_sizel/= 2) {1<-f"drivers/hid/hid-picolcd_core.c#L243" id"
L369" class3"line" nam1"
L269">a269l3a>aaa36aaaaaaaaaaala href="+ (!(la hcode=picolcd_op=="sref">datal/a>->la href="+code=status" clpend;booef">attrl/a>,asend;boref=ef="+code=raw_data" qsaass="sref">reportl/a>qsaass="sreportl/a>,ala href="drivers/hid/hid-picolcd_core.c#L243" id"
L370" class3"line" nam1"
L270">a270l3a>aaa3aaaaaaaaaaaareturn la  (!(la hcode=picolcd_op*aRplet=ref">raw_sizel/*aRplet=la href="+code=data" class="sref">datal/a>->la href="+code=lock" claspend;booef">attrl/a>,asend;boref=ef="+code=raw_data" ceadsref">opmode_delceadshref="drivers/hid/hid-picolcd_core.c#L238" id"
L371" class3"line" nam1"
L271">a271l3a>aaa37aaaaaaaaaaaaaaaaaaala"drivers/hid/hid-picolcd_core.c#L274" id"
L372" class3"line" nam1"
L272">a272l3a>aaa3aaaaaaaaaaaareturn la code=size_t" clarqsarestore" class="sref">spin_unlock_irqrestorel/a>(&la href="+code=data" class="sref">datal/a>->la href="+code=lock" class="sref">lockl/a>,ala href="+code=flags" class="sref">flagsl/a>);1a273l3a>}1<37aaaaaaaaaaare"drivers/hid/hid-picolcd_core.c#L274" id"
L374" class3"line" nam1"
L274">a274 3a>1a275l3a>sta37aaala href="+code=picolcd_resume_bacdebugasaw_eve"sref">countl/a>;set" cladebugasaw_eve"sef="+code=dev" class=="sref">datal/a>->la hr"+code=report" cls="sref">hdevl/a>);1reportl/a>,ala href="+code=USB_DIR_OUclass="sref">raw_datal/a>[0]);1raw_sizel/= 2) {1<""drivers/hid/hid-picolcd_core.c#L249" id"
L376" class3"line" nam1"
L276">a276l3a>aaa37aaaaaaaaaaasta277l3a>{1<37aaala"drivers/hid/hid-picolcd_core.c#L274" id"
L378" class3"line" nam1"
L278">a278l3a>aaa37ref="drivers/hid/hid-picolcd_core.c#L269" id"
L379" class3"line" nam1"
L279">a279l3a>aaa3aaaast#ifdef+code=USB_DIR_OUCONFIG_PMref">raw_sizel/CONFIG_PMef="drivers/hid/hid-picolcd_core.c#L269" id"
L380" class3"line" nam1"
L280">a280l3a>aaa3aaaalahref="+f="+code=picolcd_reset" clasussendref">countl/a>;set" clasussendt la href="+code=device" clh class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1size_tl/a>sm_messag="sref="code=picolcd_opmessag=ref">opmode_delmessag=ref="drivers/hid/hid-picolcd_core.c#L198" id"
L381" class3"line" nam1"
L281">a281l3a>aaa3aaaain"drivers/hid/hid-picolcd_core.c#L278" id"
L382" class3"line" nam1"
L282">a282l3a>aaa38aaaint la href="+code=cnt" classPMSG_IS_AUTOref">opmode_delPMSG_IS_AUTOef="+code=dev" classmessag=ref">opmode_delmessag=ref=""drivers/hid/hid-picolcd_core.c#L198" id"
L383" class3"line" nam1"
L283">a283l3a>1a284l3a>aaa38ref="drivers/hid/hid-picolcd_core.c#L275" id"
L385" class3"line" nam1"
L285">a285l3a>aaa38aaala href="+code=picolcd_resume_bacsussend" class="sref">picolcd_resume_bacsussend" class="sef="+code=hdev" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a286l3a>aaa38aaala href="+code=picolcd_fbdbg_hisref">fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader a*la h ceads for sussendspa4.);1a287l3a>aaa3aaaaaaaaaaaala href="="drivers/hid/hid-picolcd_core.c#L196" id"
L388" class3"line" nam1"
L288">a288l3a>aaa3aaaaaa"drivers/hid/hid-picolcd_core.c#L274" id"
L389" class3"line" nam1"
L289">a289l3a>aaa38ref="drivers/hid/hid-picolcd_core.c#L250" id"
L390" class3"line" nam1"
L290">a290l3a>aaa39aaalahref="+f="+code=picolcd_reset" claklightref">attrl/a>,aset" claslightt la href="+code=device" clh class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1a291l3a>aaa39aaain"drivers/hid/hid-picolcd_core.c#L278" id"
L392" class3"line" nam1"
L292">a292l3a>aaa3aaaaaaaaaaaalaf="+code=ret" class="sref">retl/a>a= 0;1a293l3a>aaa39aaaaaaaaaaarecode=status" cl="sref">retl/a>a= 0;1picolcd_resume_backlightl/a>(la href="+code=data" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a294l3a>aaa3aaaa}1retl/a>a= 0;1a295l3a>aaa39aaaaaaaaaaareturn -lacode=data" classbg_hisref">fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo /a>(la hr failed: uot;retl/a>a= 0;1a196l/a>1a197l3a>aaa39aaala"drivers/hid/hid-picolcd_core.c#L274" id"
L398" class3"line" nam1"
L198">a198l3a>aaa39ref="drivers/hid/hid-picolcd_core.c#L269" id"
L399" class3"line" nam1"
L199">a199l3a>1attrl/a>,aset" claslietaklightt la href="+code=device" clh class="sref">hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1a200l4a>aaa4aaaala"drivers/hid/hid-picolcd_core.c#L278" id"
L401" class4"line" nam1"
L201">a201l4a>aaa40aaaaaaaaaaaaaf="+code=ret" class="sref">retl/a>a= 0;1a202l4a>aaa40aaala href="+code=hid_set_fi="sref">retl/a>a= 0;1picolcd_leds_setl/sli"sef="+code=hdev" class="sref">hdevl/a>);1a293l4a>aaa40aaaif (la href="+code=data" clasassref">retl/a>a= 0;1a204l4a>aaa4aaaa}1fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&ett;bo our a*la h failed: uot;retl/a>a= 0;1a295l4a>1retl/a>a= 0;1(i"sref">picolcd_leds_setl/l/a>(i"sef="+code=data" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a196l/a>1aaa40aaala href="+f="+code=data" clasassref">retl/a>a= 0;1a197l4a>aaa40aaaaaaaaaaala href="+code=buf" classsbg_hisref">fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo fr>a1bufferra*ltspa failed: uot;retl/a>a= 0;1a198l4a>aaa40aaala href="+code=spin_unloc="sref">retl/a>a= 0;1picolcd_resume_lcdl/a>(la href="+code=data" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a209l4a>aaa40aaaif (la href="+code=data" clasassref">retl/a>a= 0;1a210l4a>aaa41aaaaaaaaaaaif (!(la hcode=picolcd_opsbg_hisref">fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo #L1 failed: uot;retl/a>a= 0;1a211l4a>aaa411aala href="+code=spin_unloc="sref">retl/a>a= 0;1picolcd_resume_backlightl/a>(la href="+code=data" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a212l4a>aaa41aaaint la href="+code=cnt" classassref">retl/a>a= 0;1a213l4a>aaa41aaaaaaaaaaala href="+code=cnt" classsbg_hisref">fieldl/a>[dbg_hisef="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo /a>(la hr failed: uot;retl/a>a= 0;1a214l4a>aaa41aaa}1picolcd_leds_setl/a>(la href="+code=data" classdata" class="sref">hid_get_drvdatal/a>(la href="+code=hdev" class="sref">hdevl/a>);1a215l4a>aaa41aaala href="+a216l4a>aaa41 clas"drivers/hid/hid-picolcd_core.c#L274" id"
L417" class4"line" nam1"
L217">a217l4a>aaa4aaaaaa#end;fdrivers/hid/hid-picolcd_core.c#L274" id"
L418" class4"line" nam1"
L218">a218l4a>aaa41ref="drivers/hid/hid-picolcd_core.c#L269" id"
L419" class4"line" nam1"
L219">a219l4a>aaa4aaaa}1c="comment"> * The &qua220l4a>aaa42aaalahref="+f="+code=picolcd_reset" claf=it_keysref">flagsl/a>;set" claf=it_keyst la href="+code=device" clta" class="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href"drivers/hid/hid-picolcd_core.c#L276" id"
L421" class4"line" nam1"
L221">a221l4a>aaa42aaaaaaaaaaaaaaaaaaalahref="+code=device_atth class="sref">hid_reportl/a>a*la href="+code=report" class="sref">reportl/a>a= la href"drivers/hid/hid-picolcd_core.c#L198" id"
L422" class4"line" nam1"
L222">a222 4a>}1<422aare"drivers/hid/hid-picolcd_core.c#L278" id"
L423" class4"line" nam1"
L223">a223l4a>1hid_devicel/a>a*la href="+code=hdev" class="sref">hdevl/a>)1datal/a>->la href="+code=opmode_dels="sref">hdevl/a>)1a224l4a>lsp424aaaaaaaaaalahref="+code=device" clinput_="sref">hdevl/a>)1input_="sref="+code=hdev" clasi="sref">hdevl/a>)1ia href="drivers/hid/hid-picolcd_core.c#L196" id"
L425" class4"line" nam1"
L225">a225l4a>lsp42aaaif (!la hre="+code=picolcd_reerrosref">attrl/a>,aerrosref="+code=picolcd_reiref">hdevl/a>)1iref="drivers/hid/hid-picolcd_core.c#L196" id"
L426" class4"line" nam1"
L226">a226l4a>lsp42aaaaadrivers/hid/hid-picolcd_core.c#L196" id"
L427" class4"line" nam1"
L227">a227 4a>int42aaaaaaaaaaalaef="+code=report" class="sref">reportl/a>1a228l4a>{1<42aaaaaaaaaaala href="+ href="+code=ENODEV" claNODEVref">reportl/a>aNODEVref="drivers/hid/hid-picolcd_core.c#L196" id"
L429" class4"line" nam1"
L229">a229l4a>aaa42aaaif (la href="+code=data" clasass="sref">reportl/a>->la href="+code=field" clamaxss="sref">fieldl/a>[maxss="saaif ref=f="+code=report" class="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[0], 0, 1);1countl/a>;cegt;l_ss="saaif ref2f="drivers/hid/hid-picolcd_core.c#L196" id"
L430" class4"line" nam1"
L230">a230l4a>aaa43aaaaaaaaaaareturn la  (!(la hcode=picolcd_opass="sref">reportl/a>->la href="+code=field" class="sref">fieldl/a>[0], 0, 1);1raw_sizel/cegt;l_ass=aaif ref8)h"drivers/hid/hid-picolcd_core.c#L278" id"
L431" class4"line" nam1"
L231">a231l4a>aaa43aaaaaaaaaaaaaaaaaaalacode=device" clh clerrref">hid_devicel/a>erref="+code=hdev" class="sref">hdevl/a>);1"bootloaderunsupgt;led KEY_STATs ,ala hspa4.);1a232l4a>aaa43aaaaaaaaaaareturn la  href="+code=ENODEV" class="sref">EINVALl/a>;1a233l4a>1a234l4a>aaa43ref="drivers/hid/hid-picolcd_core.c#L275" id"
L435" class4"line" nam1"
L235">a235l4a>aaa43aaala href="+code=picolcd_rei="sref">hdevl/a>)1ia href=="+code=data" clasinput_allocatelass="sref">hid_deviceinput_allocatelass="sef="+="drivers/hid/hid-picolcd_core.c#L273" id"
L436" class4"line" nam1"
L236">a236l4a>1hdevl/a>)1ia href==""+code=NULL" class="sref">NULLl/a>;1a237l4a>aaa43aaaaaaaaaaala href="+code=buf" classh clerrref">hid_devicel/a>erref="+code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la hspa4.);1a238l4a>aaa43aaaaaaaaaaala href="+ href="+code=ENODEV" claNOMEMref">raw_sizel/aNOMEMref="drivers/hid/hid-picolcd_core.c#L219" id"
L439" class4"line" nam1"
L239">a239l4a>aaa439aaaaaaaaaare"drivers/hid/hid-picolcd_core.c#L274" id"
L440" class4"line" nam1"
L240">a240l4a>1hid_get_drinput_s" class="sef="+code=hdev" clasi="sref">hdevl/a>)1ia href="+code=report" cls="sref">hdevl/a>);1a241l4a>aaa441aala href="+code=spin_unlocmemcpsref">opmode_delmemcpsef="+code=dev" class=="sref">datal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" cref="+code=report" cldef_keymasref">strncmpl/adef_keymasref="+ass=of+code=dev" class="f_keymasref">strncmpl/adef_keymasref==""drivers/hid/hid-picolcd_core.c#L249" id"
L442" class4"line" nam1"
L242">a242l4a>aaa44aaala href="+code=hid_set_fii="sref">hdevl/a>)1ia href=ef="+code=status" cl">a2ref">hdevl/a>)1">a2ref=="+code=data" class="sref">hdevl/a>);1a2ref">hdevl/a>)1">a2ref="drivers/hid/hid-picolcd_core.c#L249" id"
L443" class4"line" nam1"
L243">a243l4a>aaa44aaaaaaaaaaarecode=status" cli="sref">hdevl/a>)1ia href=ef="+code=status" clphysref">flagsl/a>;shyst la="+code=data" class="sref">hdevl/a>);1flagsl/a>;shyst la"drivers/hid/hid-picolcd_core.c#L249" id"
L444" class4"line" nam1"
L244">a244l4a>aaa44aaa}1hdevl/a>)1ia href=ef="+code=status" cluniqref">hdevl/a>)1uniqt la="+code=data" class="sref">hdevl/a>);1hdevl/a>)1uniqt la"drivers/hid/hid-picolcd_core.c#L249" id"
L445" class4"line" nam1"
L245">a245l4a>aaa44aaala href="+code=picolcd_rei="sref">hdevl/a>)1ia href=ef="+code=field" claisref">fieldl/a>[i)1hdevl/a>)1bustyp2t la="+code=data" class="sref">hdevl/a>);1statusl/a>bust la"drivers/hid/hid-picolcd_core.c#L249" id"
L446" class4"line" nam1"
L246">a246l4a>aaa44aaaaaaaaaaastcode=picolcd_rei="sref">hdevl/a>)1ia href=ef="+code=field" claisref">fieldl/a>[i)1attrl/a>,avendosaaaaaa"+code=data" class="sref">hdevl/a>);1attrl/a>,avendosaaaa"drivers/hid/hid-picolcd_core.c#L249" id"
L447" class4"line" nam1"
L247">a247l4a>aaa44aaala href="+code=spin_lock_i="sref">hdevl/a>)1ia href=ef="+code=field" claisref">fieldl/a>[i)1picolcd_ledroducst la="+code=data" class="sref">hdevl/a>);1picolcd_ledroducst la"drivers/hid/hid-picolcd_core.c#L249" id"
L448" class4"line" nam1"
L248">a248l4a>aaa44aaala href="+code=spin_unloci="sref">hdevl/a>)1ia href=ef="+code=field" claisref">fieldl/a>[i)1attrl/a>,aversiont la="+code=data" class="sref">hdevl/a>);1attrl/a>,aversiont la"drivers/hid/hid-picolcd_core.c#L249" id"
L449" class4"line" nam1"
L249">a249l4a>1hdevl/a>)1ia href=ef="+code=field" cla="sref">devl/a>);1countl/a>;sare"st la="+ef="+code=data" class="sref">hdevl/a>);1devl/a>);1a250l4a>aaa45aaala href="+code=size_t" cli="sref">hdevl/a>)1ia href=ef="+code=field" clakeys" cref">datal/a>-&keys" cref=ef="+"+ef="+code=data" clas=="sref">datal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" cref="drivers/hid/hid-picolcd_core.c#L249" id"
L451" class4"line" nam1"
L251">a251l4a>aaa451aala href="+code=spin_unloci="sref">hdevl/a>)1ia href=ef="+code=field" clakeys" cmaxref">datal/a>-&keys" cmaxaaaaaa"+code=data" clas/TLOADERKEYSref">PAGE_SIZEl/TLOADERKEYSref="drivers/hid/hid-picolcd_core.c#L249" id"
L452" class4"line" nam1"
L252">a252l4a>aaa45aaala href="+code=hid_set_fii="sref">hdevl/a>)1ia href=ef="+code=status" clkeys" cass=ref">raw_sizel/keys" cass=t la="+ass=of+code=dev" class=="sref">datal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" cref=[0]""drivers/hid/hid-picolcd_core.c#L249" id"
L453" class4"line" nam1"
L253">a253l4a>1opmode_delinput_s" ccapabilitsef="+code=hdev" clasi="sref">hdevl/a>)1ia href="+code=report" clEV_MSCref">raw_sizel/aV_MSCref="+code=report" clMSC_SCANref">raw_sizel/MSC_SCANhref="drivers/hid/hid-picolcd_core.c#L273" id"
L4/hid-pico4"line" nam1"
L254">a254l44/hid-pic3+port" clEV_MSCref">raw_sizaaa"drivers/hid/hid-picolcd_core.c#L249" id0"driversSe30d_devicedroducst la="+ass=pe=report" clMSC_SCs=pvl/a>)1iref="drivers/h+code=status" clkeys" cass=ref">raw_sizel/keysev.c#L249" id0"driveev.c#core.c#L273" id"
L4/hid-pico4"line" nam1"
L254">a245l4a>aaa35aaaif (!la href="code=4eport4 class="sref">iver/a>)1ia href="+coid/hid-picolcd_core.ore.c)1iref="drivers/hid/hid-picolcd_core. <c)1iref="drivers/OADERKEYSref="drivers/hid/hid-picolcd_core.c)1iref="drivers/hid/hid-picolcd_core.++#L2916" id"
L428" class4"line" nam1"
L228">a256l3a>aa435aaaaaaaaaaastruct la f4"+cod4=data" class="sref">dailitsref">opmode_delinput_s" ccapabilitsef="+code=hdev" clasi="sref">hdevl/a>)1ia href="+code=report" clEV_MSCref">raw_sizel/aV_MSCref="+cd_e=report" clMSC_SCcd_sref">strncmpl/adef_ke+code=status" clkeys" cref">datal/a>-&keys" cref=[0]""drivers/hid/hid-picolcd_co1iref="drivers/hid/hid-picolcd_core.e.c#L249" id"
L453" class4"line" nam1"
L253">a247l4a>aaa35aaaaaaaaaaala href="+ 4!(la 45"sref">hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_deviceregisterlocatelass="sef="+="drivers/registerlocateldevl/a>)1ia href="+code=report" clEV_MSCref">ra.c#L249" id"
L453" class4"line" nam1"
L253">a248l4a>aaa3aaaareturn 0;1(la href=4+code4cnt" classass=evl/a>)1ia href==""+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">a259l3a>}1435aaaaaaaaaaala href="+c4de=da4a" clas="sref">retl/a>a= 0;1hdevl/a>);1"bootloaderfailed to allocate input a*la ">hde registera4.)="drrivers/hid/hid-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">a260l3a>1<4360aareturn 0;1(la hre"d4ivers46lcd_opsbg_hisref">fieldl/a>[dbg_hiseivers/frellocatelass="sef="+="drivers/frellocateldevl/a>)1ia href="+code=report" clEV_MSCref">ra.c#L249" id"
L453" class4"line" nam1"
L253">a261l3a>ls436aaaaaaaaaaaaaaaaaaalac4de=si4e_t" clarqsave" class=">countl/a>;1hdevl/ac#L249" id"
L453" class4"line" nam1"
L253">a252l4a>aaa36aaaaaaaaaaa} else {1 * The &quc#L274" id"
L440" class4"line" nam1"
L240">a263l3a>ls434 class="comment"> */l/4pa4.146put_s" ccapabilitsref">opmod"+code=status" clinput_keysref">flagsl/a>;input_keysref="drivers/hid/hid-picolcd_core.telass="sref">hid_dvers/hid/hid-picolcd_core.c#L196" id"
L425" class4"line" nam1"
L225">a264 3a>st436 class="comment">/*l/s4a4.1146aaa"drivers/hcd_core.c#L196" id"
L416" class4"line" nam1"
L216">a265l3a>aa436 class="comment"> *aRe4et ou4111111c#L274" id"
L440" class4"line" nam1"
L240">a256l3a>aa436aaaaaaaaaaastruct la f4"+cod46ore.c#L196" id"
L427" class4"line" nam1"
L227">a267l3a>aa436aaaaaaaaaaala href="+ 4!(la 46s="sref">ssivoisubmref="drivers/ne" nam1exf=it_keyst la href="+code=deviexf=it_kedevl/s="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href"drivers/hid/hid-picolcd_core.#L2916" id"
L428" class4"line" nam1"
L228">a268l3a>1<436aaaaaaaaaaala href="+ 4!(la 4code=pc#L278" id"
L437" class4"line" nam1"
L237">a269l3a>aa436aaaaaaaaaaala href="+ 4!(la 4code=picolcd_osref">hdevl/a>)1input_="sref="+code=hdev" clasi="sref">hdevl/a>)1ia href="drivers/hid/hid-picolcd_core.al/a>->la href="+code=opmode_dels="sref">hdevl/a>)1a270l3a>aa43aaaaaaaaaaaareturn la  4!(la 4code=p#L196" id"
L416" class4"line" nam1"
L216">a261l3a>ls437aaaaaaaaaaaaaaaaaaala"4river47"sref">hdevl/a>)1ia href=ef="+code=status" clinput_keysref">flagsl/a>;input_keysref="drivers/hid/hid-picolcd_core.telass="sref">hid_drivers/hid/hid-picolcd_corc#L196" id"
L416" class4"line" nam1"
L216">a252l4a>aaa3aaaaaaaaaaaareturn la c4de=si47ssassref">retl/a>a= 0;1ra.#L196" id"
L416" class4"line" nam1"
L216">a263l3a>ls437aaaaaaaaaaare"drivers/4id/hi47 classsbg_hisref">fieldl/a>[dbg_hise-picolunregisterlocatelass="sef="+="drivers/unregisterlocateldevl/a>)1ia href="+code=report" clEV_MSCref">ra.c#L249" id"
L453" class4"line" nam1"
L253">a274 3a>1<43href="drivers/hid/hid-p4colcd4core.cc#L274" id"
L440" class4"line" nam1"
L240">a275l3a>st437aaala href="+code=pico4cd_re4ume_ba#L274" id"
L440" class4"line" nam1"
L240">a256l3a>aa437aaaaaaaaaaastflagsl/a>;set" cproba>(la href="+code=data" clasproba>(ladevl/s="sref">picolcd_datal*la href="+code=hdev" class="sref">hdevl/a>)1dat,ss="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drhdata" class.#L196" id"
L416" class4"line" nam1"
L216">a267l3a>aa437aaala"drivers/hid/hid-4icolc47core.c#L278" id"
L348" class3"line" nam1"
L248">4278l3a>aa437ref="drivers/hid/hid-p4colcd47nt" classass=etrl/a>,aerrosref="+code=picolcd_reiref">hdevl/ac#L249" id"
L453" class4"line" nam1"
L253">a269l3a>aa43aaaast#ifdef+code=USB_D4R_OUC47ore.c#L250" id"
L390" class3"line" nam1"
L290">4280l3a>aa43aaaalahref="+f="+code=p4colcd48"sref">hdevl/alize keypas input a*la hSd_cpdrivers/hid/hid-picolcd_core.c#L227" id"
L420" class4"line" nam1"
L220">a281l3a>aa43aaaain"drivers/hid/hid-4icolc48"sref">hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=it_keyst la href="+code=device" clta" clasa>a= la href="+code=dev_get_drhdata" classshow" clas1="s="sa= la href="+lT_KEYBOKEY_STATsref=)h"drivers/hid/hid-picolcd_corl/a>);1a282l3a>aa438aaaint la href="+code=4nt" c4assPMSG_IS_AUTOref">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">a263l3a>ls438aaaaaaaaaaareturn -la 4ref="4"drivers/hid/hid-picolgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">a284l3a>aa438ref="drivers/hid/hid-p4colcd4core.c#L275" id"
L385" class3"line" nam1"
L285">4285l3a>aa438aaala href="+code=pico4cd_re4ume_bacsussend"lize keypas input a*la hSd_cpdCIR/hid/hid-picolcd_core.c#L227" id"
L420" class4"line" nam1"
L220">a256l3a>aa438aaala href="+code=pico4cd_fb4bg_hisref">fieldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=icisef="+code=dev" class=="laf=icis clasa>a= la href="+code=dev_get_drhdata" classshow" clas1="s="sa= la href="+lT_KEYBR_DATAref=)h"drivers/hid/hid-picolcd_corl/a>);1a267l3a>aa43aaaaaaaaaaaala href="="4river48 class="sref">rep">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">a278l3a>aa43aaaaaa"drivers/hid/hid-4icolc48ode=ENODEV" claNOMEMrgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">a269l3a>aa438ref="drivers/hid/hid-p4colcd4core.c#L250" id"
L390" class3"line" nam1"
L290">4290l3a>aa439aaalahref="+f="+code=p4colcd49"sref">hdevl/alize keypas input a*la hSd_ cpd="drt;a291l3a>aa439aaain"drivers/hid/hid-4icolc49"sref">hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=it;a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">a292l3a>aa43aaaaaaaaaaaalaf="+code=4et" c49ssPMSG_IS_AUTOref">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">a293l3a>aa439aaaaaaaaaaarecode=stat4s" cl49drivers/hid/hid-picolgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">a294l3a>aa43aaaa}14295l3a>aa439aaaaaaaaaaareturn -lac4de=da49me_bacsussend"lize keypas input a*la hSd_cpdref"keypa1d-picolcd_core.c#L227" id"
L420" class4"line" nam1"
L220">a256l3a>aa439aaaaaaaaaaastfieldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=i(la href="+code=data" claslaf=i(la clasa>a= la href="+code=dev_get_drhdata" classshow" clas1ors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBCONTRASTef=)h"drivers/hid/hid-CONTRAST_corl/a>);1a197l3a>aa439aaala"drivers/hid/hid-4icolc49 class="sref">rep">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">a198l3a>aa439ref="drivers/hid/hid-p4colcd49ode=ENODEV" claNOMEMrgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">a199l3a>1<4399aalahref="+f="+code=p4colcd49ore.c#L250" id"
L390" class3"line" nam1"
L290">5200l4a>aa54aaaala"drivers/hid/hid-5icolc50"sref">hdevl/alize keypas input a*la hSd_cpd;15201l4a>aa540aaaaaaaaaaaaaf="+code=5et" c50"sref">hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=iacklightl/a>(la href="+code=datalaf=iacklightl clasa>a= la href="+code=dev_get_drhdata" classshow" clas1ors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBBRIGHTNESf="drivers/hid/hlT_KEYBBRIGHTNESf_corl/a>);15202l4a>aa540aaala href="+code=hid_5et_fi50ssPMSG_IS_AUTOref">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">5293l4a>aa540aaaif (la href="+code=5ata" 50drivers/hid/hid-picolgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">5204l4a>aa54aaaa}15295l4a>1<540aaala href="+code=pico5cd_re50me_bacsussend"lize keypas input a*la hSd_cpd="drLED"keypa1d-picoslcd_core.c#L227" id"
L420" class4"line" nam1"
L220">5265l4a>1<549aaaaaaaaaaastfieldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" claf=i(edeyst la href="+code=device" c(ede clasa>a= la href="+code=dev_get_drhdata" classshow" clas1ors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBLEDY_STATsref=)h"drivers/hid/hiLEDY_STAT_corl/a>);15275l4a>1<549aaala"drivers/hid/hid-5de=bu50 class="sref">rep">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">5198l4a>aa540aaala href="+code=spin5unloc50ode=ENODEV" claNOMEMrgoto/a>)1ia href=ef=+co=picolcd_reiref">hvl/ac#L249" id"
L453" class4"line" nam1"
L253">5209l4a>aa540aaaif (la href="+code=5ata" 50ore.c#L250" id"
L390" class3"line" nam1"
L290">5210l4a>aa541aaaaaaaaaaaif (!(la hc5de=pi51"sref">hdevl/a>)1ia href=ef=ode=device" ccd_feyst la href="+code=device" ccd_fe clasa>a= la href="+code=dev_get_drhdata" classshow" clas1ors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBEE_READsref=)h"drivers/hid/hiEE_READ_corl/a>);15211l4a>aa5411aala href="+code=spin5unloc51_t" clarqsave" class=">hdevl/a>)1ia href=ef=ode=deviors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBEE_WRIATsref=)h"drivers/hid/hiEE_WRIAT_corl/a>);15202l4a>aa541aaaint la href="+code=5nt" c5assassref">ret" class=">hdevl/a>)1ia href=ef=ode=deviors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBREAD_MEMOR_e=report" clMSClT_KEYBREAD_MEMOR__corl/a>);15293l4a>aa541aaaaaaaaaaala href="+c5de=cn5" classsbg_hisref">fie">hdevl/a>)1ia href=ef=ode=deviors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBWRIAT_MEMOR_e=report" clMSClT_KEYBWRIAT_MEMOR__corl/a>);15204l4a>aa541aaa}1ors/re hre clasa>a= la href="+lT_KEYBRESETef=)h"drivers/hid/hid-RESET_corl/a>);15215l4a>aa541aaala href="+5216l4a>aa541 clas"drivers/hid/hid-5icolc5_core.a>)1ia href=ef=+co=picolcd_reiref">hvl/a:#L196" id"
L416" class4"line" nam1"
L216">5275l4a>1<54aaaaaa#end;fdrivers/hid5hid-p51"sref">hdevl/a>)1ia href=ef=ode=deviexf=i(edeyst la href="+code=deviexf=i(ede clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5218l4a>aa541ref="drivers/hid/hid-p5colcd51"sref">hdevl/a>)1ia href=ef=ode=deviexf=iacklightl/a>(la href="+code=dataexf=iacklightl clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5209l4a>aa54aaaa}1c="comment"> * Th5 &qu<51"sref">hdevl/a>)1ia href=ef=ode=deviexf=i(la href="+code=data" clasexf=i(la clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5220l4a>aa542aaalahref="+f="+code=p5colcd52"sref">hdevl/a>)1ia href=ef=ode=deviexf=it;a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5211l4a>aa542aaaaaaaaaaaaaaaaaaalah5ef="+52"sref">hdevl/a>)1ia href=ef=class=="exf=icisef="+code=dev" class=="exf=icis clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5202l4a>aa5422aare"drivers/hid/hid-5icolc52"sref">hdevl/a>)1ia href=ef=ne" nam1exf=it_keyst la href="+code=deviexf=it_kedevl/a>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5293l4a>aa542aaaaaaaaaaalahref="+co5e=dev5ce" clh class=">countl/a>;1hdevl/ac#L249" id"
L453" class4"line" nam1"
L253">5224l4a>ls5424aaaaaaaaaalahref="+co5e=dev52ore.cc#L274" id"
L440" class4"line" nam1"
L240">5225l4a>ls542aaaif (!la hre="+code=5icolc52me_ba#L274" id"
L440" class4"line" nam1"
L240">5226l4a>ls542aaaaadrivers/hid/hid-p5colcd52hid/h claf=it_keysref">flagsl/a>;set" cproba>bootload);ef="+code=dev" class=="proba>bootload);devl/s="sref">picolcd_datal*la href="+code=hdev" class="sref">hdevl/a>)1dat,ss="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drhdata" class.#L196" id"
L416" class4"line" nam1"
L216"p5c75l4a>1<542aaaaaaaaaaalaef="+code5repor52core.c#L278" id"
L348" class3"line" nam1"
L248">5228l4a>{1542aaaaaaaaaaala href="+ 5ref="52"sref">hdevl/a>)1ia href=ef=ode=device" ccd_feyst la href="+code=device" ccd_fe clasa>a= la href="+code=dev_get_drhdata" classshow" clas15209l4a>aa542aaaif (la href="+code=5ata" 52" clas="sref">retl/a>">hdevl/a>)1ia href=ef=ode=deviors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBBLBREAD_MEMOR_e=report" clMSClT_KEYBBLBREAD_MEMOR__corl/a>);15230l4a>aa543aaaaaaaaaaareturn la  5!(la 5code=picolcd_opass="sref">reportl/a>->la hode=deviors/re hrefcode=picolcd_r="sref">ors/re hre clasa>a= la href="+lT_KEYBBLBWRIAT_MEMOR_e=report" clMSClT_KEYBBLBWRIAT_MEMOR__corl/a>);15231l4a>aa543aaaaaaaaaaaaaaaaaaalac5de=de5ice" clh clerrcd_core.c#L196" id"
L416" class4"line" nam1"
L216">5232l4a>aa543aaaaaaaaaaareturn la  5ref="5code=Ec#L274" id"
L440" class4"line" nam1"
L240">5233l4a>1<543aaaaaaaaaaare"drivers/5id/hi5-picol#L274" id"
L440" class4"line" nam1"
L240">5224l4a>ls543ref="drivers/hid/hid-p5colcd5core.c claf=it_keysref">flagsl/a>;set" cprobaef="+code=dev" class=="probadevl/s="sref">picolcd_datal*la href="+code=hdev" class="sref">hdevl/a>)1dat,#L274" id"
L440" class4"line" nam1"
L240">5225l4a>ls543aaala href="+code=pico5cd_re5="sref">hdevl//////////////const="sref">hid_devicel/a>a*la href="_ield" claversionr*la href="_iehdevl/a>)1at.#L196" id"
L416" class4"line" nam1"
L216"p5236l4a>1<543aaala href="+f="+code=5ata" 5lasi="c#L278" id"
L348" class3"line" nam1"
L248">5237l4a>aa543aaaaaaaaaaala href="+c5de=bu5" classh clerrs="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drhdata" classc#L196" id"
L416" class4"line" nam1"
L216">5228l4a>{1543aaaaaaaaaaala href="+ 5ref="53nt" classass=etrl/a>,aerrosref="+code=picolcd_reiref">hdevl/a =w_sizel/aNOMEMref="drivers/hid/hid-picolcd_core.c#L219" id"
L439" class4"line" nam1"
L239">5239l4a>aa5439aaaaaaaaaare"drivers/5id/hi53ore.c#L250" id"
L390" class3"line" nam1"
L290">5240l4a>1<544aaala href="+code=size5t" cl5nput_s" class="sref">hid_get_f="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo /a>(la hr failed: uohardware proba...id-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">5241l4a>aa5441aala href="+code=spin5unloc5emcpsr#L273" id"
L438" class4"line" nam1"
L238">5232l4a>aa544aaala href="+code=hid_5et_fi5="sref">hdevl/alize keypas input a*la _core.c#L227" id"
L420" class4"line" nam1"
L220">5243l4a>aa544aaaaaaaaaaarecode=stat5s" cl5="srefalize keypas input a*l/////////* Let's5224l4a>ls544aaa}1hdore.c#L227" id"
L420" class4"line" nam1"
L220">5225l4a>ls544aaala href="+code=pico5cd_re5="srefalize keypas input a*l/////////*d_core.c#L227" id"
L420" class4"line" nam1"
L220">5246l4a>aa544aaaaaaaaaaastcode=pico5cd_re5="sref">hdevl/a>)1ia href=ef=code=dev_get_drhdata" classtelass="sref">hid_kza hre=dev_get_drhdatkza hredevl/sdatal/s="sref">picolcd_datal/a>a*la href="+code=data" class="sref">data.c/a>;15247l4a>aa544aaala href="+code=spin5lock_54 class="sref">rep">opmode_delPMScode=dev_get_drhdata" classtel/a>;15248l4a>aa544aaala href="+code=spin5unloc54ode=ENODEV" claNOMEMrhid_devicel/a>a*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la can't5239l4a>aa544aaastruct la code=spin5unloc54" clas="sref">retl/a>a= 0;1hdevl/a =w_sizel/aNOMEMref="drivers/hid/hid-picolcd_core.c#L219" id"
L439" class4"line" nam1"
L239">5250l4a>aa545aaala href="+code=size5t" cl55ode=picolcd_opass="srgoto/a>)1ia href=ef=+co_no_cleanu=""drivers/hid/h+co_no_cleanu=ore.c#L219" id"
L439" class4"line" nam1"
L239">5241l4a>aa5451aala href="+code=spin5unloc5="sref">hdevl/c#L274" id"
L440" class4"line" nam1"
L240">5252l4a>aa545aaala href="+code=hid_5et_fi5="sref#L274" id"
L440" class4"line" nam1"
L240">5243l4a>aa545aaaaaaaaaaarecode=stat5s" cl5nput_s" ccapabilitsref">opmodspin_hrekice" ""drivers/hid/hspin_hrekice" devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crhrekde=status" clkehrek_corec#L249" id"
L453" class4"line" nam1"
L253">5254l44/hi5-pic3+port" clEV_MSCref"5raw_s5zaaa"drivers/hid/hid-picolcd_mutexice" ""drivers/hid/hmutexice" devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crmutex""drivers/hid/hmutex_corec#L249" id"
L453" class4"line" nam1"
L253">5225l4a>ls535aaaif (!la href="code=5eport55"sref">hdevl/a>)1ia href=ef="+code=opmode_dels="sref">hdevl/a>)15246l4a>aa535aaaaaaaaaaastruct la f5"+cod55"sref">hdevl/a>)1ia href=ef=code=dev_get_drhdata" classdevl/a>)15247l4a>aa535aaaaaaaaaaala href="+ 5!(la 55 class="sref">rep">opmode_delPMS"+code=status" clproducsref">picolcd_ledroducst la"drivers/hid/hid-picolcd_core.tel/a>;1at.#L196" id"
L416" class4"line" nam1"
L216"p5248l4a>aa53aaaareturn 0;1(la href=5+code55ode=ENODEV" claNOMEMrhid_devicel/a>acode=dev_get_drhdata" classdevl/a>)1PAGE_SIZEl/TLOADERKEYBOOTLOADERvers/hid/hid-piuot;bootBOOTLOADER">atc#L196" id"
L416" class4"line" nam1"
L216">5239l4a>aa535aaaaaaaaaaala href="+c5de=da55"sref">hdevl/a>)1ia href=ef=sreft_s" class="sef="+code=hdesreft_s" class=devl/a>);1"bootloaderfail>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5260l3a>1<5360aareturn 0;1(la hre"d5ivers56ode=p#L196" id"
L416" class4"line" nam1"
L216">5261l3a>ls536aaaaaaaaaaaaaaaaaaalac5de=si5e_t" clarqsave"lize keypas input a*la hParsed="drsref">s/hid/hs and  clrtdrt up/*d_core.c#L227" id"
L420" class4"line" nam1"
L220">5252l4a>aa536aaaaaaaaaaa} else {1hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_srefparse"sef="+code=hdesrefparsedevl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">5243l4a>aa534 class="comment"> */l/5pa4.156put_s" ccapabevl/a>)1ia href==""+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">5264 3a>st536 class="comment">/*l/s5a4.1156.c#L24class="" class=hid_devicel/a>a*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la sref">s/hid/h parse"+code=id-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">5265l3a>aa536 class="comment"> *aRe5et ou56"sref">hdevl/////////goto/a>)1ia href=ef=+co_cleanu= href="+code=data" c+co_cleanu= href">atc#L196" id"
L416" class4"line" nam1"
L216">5256l3a>aa536aaaaaaaaaaastruct la f5"+cod56"sref">hdevl/c#L274" id"
L440" class4"line" nam1"
L240">5267l3a>aa536aaaaaaaaaaala href="+ 5!(la 56s="sr#L274" id"
L440" class4"line" nam1"
L240">5248l4a>aa536aaaaaaaaaaala href="+ 5!(la 56"sref">hdevl/a>)1ia href=ef=+code=picolcd_reiref">hdevl/atelass="sref">hid_srefhw_ clrte=hdev" class="srefhw_ clrtdevl/a>);1"bootloaderfai0.c#L273" id"
L438" class4"line" nam1"
L238">5239l4a>aa536aaaaaaaaaaala href="+ 5!(la 56asass="sref">reportl/a>->la h+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">5270l3a>aa53aaaaaaaaaaaareturn la  5!(la 57lcd_opsbg_hisref">fieldl/a>[dbg_hise*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la hardware  clrtd+code=id-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">5261l3a>ls537aaaaaaaaaaaaaaaaaaala"5river57_t" clarqsave" class=goto/a>)1ia href=ef=+co_cleanu= href="+code=data" c+co_cleanu= href">atc#L196" id"
L416" class4"line" nam1"
L216">5252l4a>aa53aaaaaaaaaaaareturn la c5de=si57ssassref">retc#L274" id"
L440" class4"line" nam1"
L240">5263l3a>ls537aaaaaaaaaaare"drivers/5id/hi57picol#L274" id"
L440" class4"line" nam1"
L240">5274 3a>1<53href="drivers/hid/hid-p5colcd57aaa"drivers/hid/hid-picolcd_+code=picolcd_reiref">hdevl/atelass="sref">hid_srefhw_opeivers/hid/hid-pisrefhw_opeidevl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">5275l3a>st537aaala href="+code=pico5cd_re575sass="sref">reportl/a>->la h+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">5256l3a>aa537aaaaaaaaaaastdailitsref">opmod*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la hspa4.);1huph pipf"+or key and IR evt asid-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">5267l3a>aa537aaala"drivers/hid/hid-5icolc57 classh clerrref">hidgoto/a>)1ia href=ef=+co_cleanu= srefhw="+code=data" c+co_cleanu= srefhw">atc#L196" id"
L416" class4"line" nam1"
L216">5248l4a>aa537ref="drivers/hid/hid-p5colcd57nt" classass=c#L274" id"
L440" class4"line" nam1"
L240">5239l4a>aa53aaaast#ifdef+code=USB_D5R_OUC57ore.c#L250" id"
L390" class3"line" nam1"
L290">5280l3a>aa53aaaalahref="+f="+code=p5colcd58put_s" class="sref">hid_get_+code=picolcd_reiref">hdevl/atelass="sref">hid_href="_creid-pfpa4=dev_get_drhdataref="_creid-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="d hrlabilitsef="+code="ev_attr_operation_m="d hrlabderf.c#L249" id"
L453" class4"line" nam1"
L253">5281l3a>aa53aaaain"drivers/hid/hid-5icolc58"sref">hdevl/reportl/a>->la h+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">5282l3a>aa538aaaint la href="+code=5nt" c58ssassref">ret" class=ilitsref">opmod*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la hspa4.);15263l3a>ls538aaaaaaaaaaareturn -la 5ref="5"drivers/hid/hid-picolgoto/a>)1ia href=ef=+co_cleanu= srefll="+code=data" c+co_cleanu= srefll">atc#L196" id"
L416" class4"line" nam1"
L216">5284l3a>aa538ref="drivers/hid/hid-p5colcd584t" classass=c#L274" id"
L440" class4"line" nam1"
L240">5285l3a>aa538aaala href="+code=pico5cd_re58me_ba#L274" id"
L440" class4"line" nam1"
L240">5256l3a>aa538aaala href="+code=pico5cd_fb5bg_hisref">fieldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_href="_creid-pfpa4=dev_get_drhdataref="_creid-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="dilitsef="+code="ev_attr_operation_m="dderf.c#L249" id"
L453" class4"line" nam1"
L253">5267l3a>aa53aaaaaaaaaaaala href="="5river58 class="sref">rep">opmode_delPMS+code=picolcd_reiref">hdevl/ae.c#L278" id"
L437" class4"line" nam1"
L237">5248l4a>aa53aaaaaa"drivers/hid/hid-5icolc58ode=ENODEV" claNOMEMrilitsref">opmod*la code=hdev" class="sref">hdevl/a>);1"bootloaderfailed to allocate input a*la hspa4.);15239l4a>aa538ref="drivers/hid/hid-p5colcd58" clas="sref">retl/a>goto/a>)1ia href=ef=+co_cleanu= sysfs1="+code=data" c+co_cleanu= sysfs1">atc#L196" id"
L416" class4"line" nam1"
L216">5290l3a>aa539aaalahref="+f="+code=p5colcd59"sref">hdevl/c#L274" id"
L440" class4"line" nam1"
L240">5291l3a>aa539aaain"drivers/hid/hid-5icolc59mcpsr#L273" id"
L438" class4"line" nam1"
L238">5292l3a>aa53aaaaaaaaaaaalaf="+code=5et" c59ssPMSG_IS_AUTOref">opmode_delPMScode=dev_get_drhdata" classdevl/a>)1PAGE_SIZEl/TLOADERKEYBOOTLOADERvers/hid/hid-piuot;bootBOOTLOADER">at.#L196" id"
L416" class4"line" nam1"
L216"p5293l3a>aa539aaaaaaaaaaarecode=stat5s" cl59drivers/hid/hid-picolldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" cproba>bootload);ef="+code=dev" class=="proba>bootload);devl/a>);1"bootloaderfail>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5294l3a>aa53aaaa}15285l3a>aa539aaaaaaaaaaareturn -lac5de=da59"sref">hdevl/////////ldl/a>[dbg_hise+code=picolcd_reiref">hdevl/atelass="sref">hid_>;set" cproba>(la href="+code=data" clasproba>(ladevl/a>);1"bootloaderfail>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">5256l3a>aa539aaaaaaaaaaastfie>rep">opmode_delPMS+code=picolcd_reiref">hdevl/ae#L249" id"
L453" class4"line" nam1"
L253">5197l3a>aa539aaala"drivers/hid/hid-5icolc59 classh clerrref">hidgoto/a>)1ia href=ef=+co_cleanu= sysfs2="+code=data" c+co_cleanu= sysfs2">atc#L196" id"
L416" class4"line" nam1"
L216">5248l4a>aa539ref="drivers/hid/hid-p5colcd59ode=E#L196" id"
L416" class4"line" nam1"
L216">5239l4a>aa5399aalahref="+f="+code=p5colcd59"sref">hdevl/a>)1ia href=ef=f="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo /a>(la hr failed: uoactivid-d and ce" ialize=id-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">6200l4a>aa64aaaala"drivers/hid/hid-6icolc60"sref">hdevl/cd_core.c#L196" id"
L416" class4"line" nam1"
L216">6201l4a>aa640aaaaaaaaaaaaaf="+code=6et" c60mcpsr#L273" id"
L438" class4"line" nam1"
L238">6202l4a>aa640aaala href="+code=hid_6et_fi60ssPMSa>)1ia href=ef=+co_cleanu= sysfs2="+code=data" c+co_cleanu= sysfs2">at:#L196" id"
L416" class4"line" nam1"
L216">6293l4a>aa640aaaif (la href="+code=6ata" 60put_s" ccapabilitsref">opmod"ref="_remov-pfpa4=dev_get_drhdataref="_remov-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="dilitsef="+code="ev_attr_operation_m="dderf.c#L249" id"
L453" class4"line" nam1"
L253">6204l4a>aa64aaaa}1)1ia href=ef=+co_cleanu= sysfs1="+code=data" c+co_cleanu= sysfs1">at:#L196" id"
L416" class4"line" nam1"
L216">6254l4a>aa649aaaaaaaaaaareturn -lac6cd_re60"sref">hdevl/a>)1ia href=ef="ref="_remov-pfpa4=dev_get_drhdataref="_remov-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="d hrlabilitsef="+code="ev_attr_operation_m="d hrlabderf.c#L249" id"
L453" class4"line" nam1"
L253">6265l4a>1<649aaaaaaaaaaast)1ia href=ef=+co_cleanu= srefll="+code=data" c+co_cleanu= srefll">at:#L196" id"
L416" class4"line" nam1"
L216">6275l4a>1<649aaala"drivers/hid/hid-6de=bu60"sref">hdevl/a>)1ia href=ef=srefhw_close"sef="+code=hdesrefhw_closedevl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">6198l4a>aa640aaala href="+code=spin6unloc60ode=Ea>)1ia href=ef=+co_cleanu= srefhw="+code=data" c+co_cleanu= srefhw">at:#L196" id"
L416" class4"line" nam1"
L216">6298l4a>aa6499aalahref="+f="+code=p6ata" 60"sref">hdevl/a>)1ia href=ef=srefhw_ co=""drivers/hid/hsrefhw_ co=devl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">6210l4a>aa641aaaaaaaaaaaif (!(la hc6de=pi61"srefa>)1ia href=ef=+co_cleanu= href="+code=data" c+co_cleanu= href">at:#L196" id"
L416" class4"line" nam1"
L216">6211l4a>aa6411aala href="+code=spin6unloc61_t" clarqsavea>)1ia href=ef=kfrel="+code=data" ckfreldevl/a>);16202l4a>aa641aaaint la href="+code=6nt" c61ssPMSa>)1ia href=ef=+co_no_cleanu=""drivers/hid/h+co_no_cleanu=ore.:#L196" id"
L416" class4"line" nam1"
L216">6293l4a>aa641aaaaaaaaaaala href="+c6de=cn61put_s" ccapabilitsref">opmodhreft_s" class="sef="+code=hdesreft_s" class=devl/a>);1"bootloaderfail>a= la href="+drivers/hid/hid-picolcd_corec#L249" id"
L453" class4"line" nam1"
L253">6204l4a>aa641aaa}16215l4a>aa641aaala href="+opmode_delPMS+code=picolcd_reiref">hdevl/ac#L249" id"
L453" class4"line" nam1"
L253">6265l4a>1<641 clas"drivers/hid/hid-6icolc6_core.c#L274" id"
L440" class4"line" nam1"
L240">6275l4a>1<64aaaaaa#end;fdrivers/hid6hid-p61s="sr#L274" id"
L440" class4"line" nam1"
L240">6218l4a>aa641ref="drivers/hid/hid-p6colcd61"srefef">ssivoisubmref="drivers/ne" nam1remov- href="+code=data" clasremov-devl/s="sref">picolcd_datal*la href="+code=hdev" class="sref">hdevl/a>)1date#L249" id"
L453" class4"line" nam1"
L253">6209l4a>aa64aaaa}1c="comment"> * Th6 &qu<61"srefc#L278" id"
L437" class4"line" nam1"
L237">6220l4a>aa642aaalahref="+f="+code=p6colcd62"sref">hdevl/s="sref">picolcd_datal/a>a*la href="+code=data" class="sref">datal/a>a= la href="+code=dev_get_drhdata" classtelass="sref">hid_srefg_s" class="sef="+code=hdesrefg_s" class=devl/a>);1"bootloaderfec#L249" id"
L453" class4"line" nam1"
L253">6211l4a>aa642aaaaaaaaaaaaaaaaaaalah6ef="+62"sref">hdevl/unsign-d longlass="sref">hid_flags/hid/hid-picolcflagsvl/ac#L249" id"
L453" class4"line" nam1"
L253">6202l4a>aa6422aare"drivers/hid/hid-6icolc62"sref#L274" id"
L440" class4"line" nam1"
L240">6293l4a>aa642aaaaaaaaaaalahref="+co6e=dev62put_s" ccapabilitsref">opmod"="+code=hdev" clasOTLOADERNAMsref">PAGE_SIZEl/TLOADERNAMsref="c="string">"bootloader >(&bo /a>(la hr failed: uohardware remov-...id-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">6224l4a>ls6424aaaaaaaaaalahref="+co6e=dev62aaa"drivers/hid/hid-picolcd_spin_hrekicrqsav- href="+code=daspin_hrekicrqsav-devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crhrekde=status" clkehrek_corail>a= la href="+flags/hid/hid-picolcflagsvl/a.c#L273" id"
L438" class4"line" nam1"
L238">6215l4a>aa642aaaif (!la hre="+code=6icolc62"sref">hdevl/a>)1ia href=ef="+code=opmode_dels="sref">hdevl/a>)1PAGE_SIZEl/TLOADERKEYFAILEDsref=)h"driversOADERKEYFAILEDvl/ac#L249" id"
L453" class4"line" nam1"
L253">6265l4a>1<642aaaaadrivers/hid/hid-p6colcd62g_hisref">fieldl/a>[dbg_hisespin_unhrekicrqre cor- href="+code=daspin_unhrekicrqre cor-devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crhrekde=status" clkehrek_corail>a= la href="+flags/hid/hid-picolcflagsvl/a.c#L273" id"
L438" class4"line" nam1"
L238">6275l4a>1<642aaaaaaaaaaalaef="+code6repor62s="sr#L274" id"
L440" class4"line" nam1"
L240">6228l4a>{1642aaaaaaaaaaala href="+ 6ref="62"sref">hdevl/a>)1ia href=ef=ode=deviexf=icd_feyst la href="+code=deviexf=icd_fedevl/a>);16209l4a>aa642aaaif (la href="+code=6ata" 62"sref">hdevl/a>)1ia href=ef=fref="_remov-pfpa4=dev_get_drhdataref="_remov-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="dilitsef="+code="ev_attr_operation_m="dderf.c#L249" id"
L453" class4"line" nam1"
L253">6230l4a>aa643aaaaaaaaaaareturn la  6!(la 63put_s" class="sref">hid_get_fref="_remov-pfpa4=dev_get_drhdataref="_remov-pfpa4devl/atal/a>->la href="+code=status" cl="sref">devl/a>);1->la href="ev_attr_operation_m="d hrlabilitsef="+code="ev_attr_operation_m="d hrlabderf.c#L249" id"
L453" class4"line" nam1"
L253">6231l4a>aa643aaaaaaaaaaaaaaaaaaalac6de=de63_t" clarqsavea>)1ia href=ef=srefhw_close"sef="+code=hdesrefhw_closedevl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">6232l4a>aa643aaaaaaaaaaareturn la  6ref="63"sref">hdevl/a>)1ia href=ef=srefhw_ co=""drivers/hid/hsrefhw_ co=devl/a>);1"bootloaderf.c#L249" id"
L453" class4"line" nam1"
L253">6233l4a>1<643aaaaaaaaaaare"drivers/6id/hi6-picol#L274" id"
L440" class4"line" nam1"
L240">6224l4a>ls643ref="drivers/hid/hid-p6colcd63aaa"drivers/hilize keypas input a*la hShortcut pott aial pendr fs/hily that will ne40" arL440/*d_core.c#L227" id"
L420" class4"line" nam1"
L220">6225l4a>ls643aaala href="+code=pico6cd_re63"sref">hdevl/a>)1ia href=ef=spin_hrekicrqsav- href="+code=daspin_hrekicrqsav-devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crhrekde=status" clkehrek_corail>a= la href="+flags/hid/hid-picolcflagsvl/a.c#L273" id"
L438" class4"line" nam1"
L238">6236l4a>1<643aaala href="+f="+code=6ata" 63g_hisref">fie>rep">opmode_delPMS"+code=status" clkeys" cref">datal/a>-&keys" crpendr fyst la href="+coendr f>date#L249" id"
L453" class4"line" nam1"
L253">6237l4a>aa643aaaaaaaaaaala href="+c6de=bu63 classh clerrref">hidal/a>-&keys" crinpplet- href="+code=dainpplet-devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crpendr fyst la href="+coendr f>dat">datal/a>-&keys" crreadbilitsef="+code=readbvl/a.c#L273" id"
L438" class4"line" nam1"
L238">6228l4a>{1643aaaaaaaaaaala href="+ 6ref="63"sref">hdevl/a>)1ia href=ef=spin_unhrekicrqre cor- href="+code=daspin_unhrekicrqre cor-devl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crhrekde=status" clkehrek_corail>a= la href="+flags/hid/hid-picolcflagsvl/a.c#L273" id"
L438" class4"line" nam1"
L238">6239l4a>aa6439aaaaaaaaaare"drivers/6id/hi63ore.c#L250" id"
L390" class3"line" nam1"
L290">6240l4a>1<644aaala href="+code=size6t" cl64"sref">hdevl/alize keypas input a*la hCleanu=rLED"*d_core.c#L227" id"
L420" class4"line" nam1"
L220">6241l4a>aa6441aala href="+code=spin6unloc64"sref">hdevl/a>)1ia href=ef=class=="exf=i(edeyst la href="+code=deviexf=i(ede clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6232l4a>aa644aaala href="+code=hid_6et_fi6="sref">hdevl/alize keypas input a*la hClean cpd="drt;6233l4a>1<644aaaaaaaaaaarecode=stat6s" cl64put_s" ccapabilitsref">opmodode=deviexf=iacklightl/a>(la href="+code=dataexf=iacklightl clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6224l4a>ls644aaa}1a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6225l4a>ls644aaala href="+code=pico6cd_re64"sref">hdevl/a>)1ia href=ef=ta" clasexf=it;a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6246l4a>aa644aaaaaaaaaaastcode=pico6cd_re6="sref">hdevl/alize keypas input a*la hCleanu=rhid/hi*d_core.c#L227" id"
L420" class4"line" nam1"
L220">6237l4a>aa644aaala href="+code=spin6lock_64"sref">hdevl/a>)1ia href=ef=ode=deviexf=icisef="+code=dev" class=="exf=icis clasa>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6248l4a>aa644aaala href="+code=spin6unloc64"sref">hdevl/a>)1ia href=ef=ode=deviexf=it_keyst la href="+code=deviexf=it_kedevl/a>a= la href="+code=dev_get_drhdata" class.c#L249" id"
L453" class4"line" nam1"
L253">6239l4a>aa644aaastruct la code=spin6unloc64ore.c#L250" id"
L390" class3"line" nam1"
L290">6250l4a>aa645aaala href="+code=size6t" cl65put_s" class="sref">hid_get_hreft_s" class="sef="+code=hdesreft_s" class=devl/a>);1"bootloaderfail>a= la href="+drivers/hid/hid-picolcd_corec#L249" id"
L453" class4"line" nam1"
L253">6241l4a>aa6451aala href="+code=spin6unloc65"sref">hdevl/a>)1ia href=ef=mutexide crobilitsef="+code=mutexide crobdevl/atal/a>->la href="+code=status" clkeys" cref">datal/a>-&keys" crmutex""drivers/hid/hmutex_corec#L249" id"
L453" class4"line" nam1"
L253">6252l4a>aa645aaala href="+code=hid_6et_fi65"sref">hdevl/alize keypas input a*la hFinally, clean cpd="drne" nam a" critselfi*d_core.c#L227" id"
L420" class4"line" nam1"
L220">6243l4a>aa645aaaaaaaaaaarecode=stat6s" cl6nput_s" ccapabilitsref">opmodkfrel="+code=data" ckfreldevl/a>);16254l44/hi6-pic3+port" clEV_MSCref"6raw_s65ore.cc#L274" id"
L440" class4"line" nam1"
L240">6225l4a>ls635aaaif (!la href="code=6eport65me_ba#L274" id"
L440" class4"line" nam1"
L240">6246l4a>aa635aaaaaaaaaaastruct la f6"+cod65hid/h claf=iconst="sref">hid_devicel/a>a*la href="_ield" claversionr*la href="_iehdevl">picolcd_datal/a>a*la h-picos="+code=data" class="sre-picoshdev[] =.c#L278" id"
L437" class4"line" nam1"
L237">6247l4a>aa635aaaaaaaaaaala href="+ 6!(la 65 class="sref"{l">picolcd_datalHID_USB_DEVICE="+code=data" cHID_USB_DEVICEdevl/a>);1a= la href="+USB_DEVICE_ID_uot;boo="+code=data" cUSB_DEVICE_ID_uot;boolass. },#L274" id"
L440" class4"line" nam1"
L240">6248l4a>aa63aaaareturn 0;1(la href=6+code65ode=ENODEV" c{l">picolcd_datalHID_USB_DEVICE="+code=data" cHID_USB_DEVICEdevl/a>);1a= la href="+USB_DEVICE_ID_uot;bootBOOTLOADERvers/hid/hid-piUSB_DEVICE_ID_uot;bootBOOTLOADER">at. },#L274" id"
L440" class4"line" nam1"
L240">6239l4a>aa635aaaaaaaaaaala href="+c6de=da65"sref">hdevl/{/c#L274" id"
L440" class4"line" nam1"
L240">6260l3a>1<6360aareturn 0;1(la hre"d6ivers66ode=p}c#L249" id"
L453" class4"line" nam1"
L253">6261l3a>ls636aaaaaaaaaaaaaaaaaaalac6de=si6e_t" cl>a= la href="+MODULE_DEVICE_TABLE="+code=data" cMODULE_DEVICE_TABLEdevl/a>);1a= la href="+/a>a*la h-picos="+code=data" class="sre-picoshdev.c#L249" id"
L453" class4"line" nam1"
L253">6252l4a>aa636aaaaaaaaaaa} else {16243l4a>aa634 class="comment"> */l/6pa4.166put_s claf=i"sref">hid_devicel/a>a*la hL440"ld" claversionr*la hL440"hdevl">picolcd_datal/a>a*la hL440"ld" claversionr/a>a*la hL440"lasstelc#L278" id"
L437" class4"line" nam1"
L237">6264 3a>st636 class="comment">/*l/s6a4.1166.c#L24class=".">picolcd_datal">/*ld" claversionr">/*lasstelrref">hidaed to allocate input a*la h"line" nam-picolcd_core,#L274" id"
L440" class4"line" nam1"
L240">6265l3a>aa636 class="comment"> *aRe6et ou66"sref">hdevl/.">picolcd_datalla tableld" claversionrla tablelasstelrref"l>a= la href="+/a>a*la h-picos="+code=data" class="sre-picoshdev,#L274" id"
L440" class4"line" nam1"
L240">6246l4a>aa636aaaaaaaaaaastruct la f6"+cod66"sref">hdevl/.">picolcd_datalprobaef="+code=dev" crobadevltelrref">hil>a= la href="+/a>a*la probaef="+code=dev" class=="probadevl,#L274" id"
L440" class4"line" nam1"
L240">6247l4a>aa636aaaaaaaaaaala href="+ 6!(la 667sref">hdevl/.">picolcd_datalremov- href="+code=daremov-devltelrref">hl>a= la href="+/a>a*la remov- href="+code=data" clasremov-devl,#L274" id"
L440" class4"line" nam1"
L240">6248l4a>aa636aaaaaaaaaaala href="+ 6!(la 66"sref">hdevl/.">picolcd_datalraw_evt a href="+code=daraw_evt adevltelrrefl>a= la href="+/a>a*la raw_evt a href="+code=da/a>a*la raw_evt adevl,#L274" id"
L440" class4"line" nam1"
L240">6239l4a>aa636aaaaaaaaaaala href="+ 6!(la 66asass#ifdeffl>a= la href="+CONFIG_Pvers/hid/hid-picCONFIG_Pvsref#L274" id"
L440" class4"line" nam1"
L240">6270l3a>aa63aaaaaaaaaaaareturn la  6!(la 67lcd_opsbg_his.">picolcd_datalsusoend href="+code=dasusoenddevltelrref">l>a= la href="+/a>a*la susoend href="+code=da/a>a*la susoenddevl,#L274" id"
L440" class4"line" nam1"
L240">6261l3a>ls637aaaaaaaaaaaaaaaaaaala"6river67_t" clarqsave.">picolcd_datalresu/*ld" claversionrresu/*devltelrref">hl>a= la href="+/a>a*la resu/*ld" claversionr/a>a*la resu/*devl,#L274" id"
L440" class4"line" nam1"
L240">6252l4a>aa63aaaaaaaaaaaareturn la c6de=si67ssassref">ret.">picolcd_datalreset resu/*ld" claversionrreset resu/*devltelrl>a= la href="+/a>a*la reset resu/*ld" claversionr/a>a*la reset resu/*devl,#L274" id"
L440" class4"line" nam1"
L240">6243l4a>aa637aaaaaaaaaaare"drivers/6id/hi67picol#endrf#L274" id"
L440" class4"line" nam1"
L240">6264 3a>st63href="drivers/hid/hid-p6colcd67aaa"d}c#L249" id"
L453" class4"line" nam1"
L253">6275l3a>st637aaala href="+code=pico6cd_re67me_ba#L274" id"
L440" class4"line" nam1"
L240">6256l3a>aa637aaaaaaaaaaastflagsl/a_ice" ""drivers/hid/h_ice" devl/a>)1ia href=ef=ode=device" ld" claversionr/a>a*la ce" devl/voise#L249" id"
L453" class4"line" nam1"
L253">6267l3a>aa637aaala"drivers/hid/hid-6icolc67core.c#L278" id"
L348" class3"line" nam1"
L248">6248l4a>aa637ref="drivers/hid/hid-p6colcd67nt" classass=cd_core">opmode_delPMS*la register hL440"ld" claversionr*la register hL440"devl/atal/a>->la href=/a>a*la hL440"ld" claversionr/a>a*la hL440"lass.c#L249" id"
L453" class4"line" nam1"
L253">6239l4a>aa63aaaast#ifdef+code=USB_D6R_OUC67ore.cc#L274" id"
L440" class4"line" nam1"
L240">6280l3a>aa63aaaalahref="+f="+code=p6colcd68ode=p#L196" id"
L416" class4"line" nam1"
L216">6281l3a>aa63aaaain"drivers/hid/hid-6icolc68"srefef">ssivoisubmref="drivers/_iexf=""drivers/hid/h_iexf=devl/a>)1ia href=ef=ode=deviexf=""drivers/hid/hode=deviexf=devl/voise#L249" id"
L453" class4"line" nam1"
L253">6282l3a>aa638aaaint la href="+code=6nt" c68ssassc#L278" id"
L348" class3"line" nam1"
L248">6263l3a>ls638aaaaaaaaaaareturn -la 6ref="68put_s" ccapabilitsref">opmodhrefunregister hL440"ld" claversionr*la unregister hL440"devl/atal/a>->la href=/a>a*la hL440"ld" claversionr/a>a*la hL440"lass.c#L249" id"
L453" class4"line" nam1"
L253">6284l3a>aa638ref="drivers/hid/hid-p6colcd68ore.cc#L274" id"
L440" class4"line" nam1"
L240">6285l3a>aa638aaala href="+code=pico6cd_re68me_ba#L274" id"
L440" class4"line" nam1"
L240">6256l3a>aa638aaala href="+code=pico6cd_fb68core.a>)1ia href=ef=moduleice" ""drivers/hid/hmoduleice" devl/a>);1a*la ce" devl.c#L249" id"
L453" class4"line" nam1"
L253">6267l3a>aa63aaaaaaaaaaaala href="="6river68 clasa>)1ia href=ef=moduleiexf=""drivers/hid/hmoduleiexf=devl/a>);16248l4a>aa63aaaaaa"drivers/hid/hid-6icolc68ode=Ea>)1ia href=ef=MODULE_DESCRIPTION="+code=data" cMODULE_DESCRIPTIONdevl/aed to allocate input a*la Mce"box graphics Pe" boo1DL453"-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">6239l4a>aa638ref="drivers/hid/hid-p6colcd68" claa>)1ia href=ef=MODULE_LICENSE="+code=data" cMODULE_LICENSEdevl/aed to allocate input a*la GPL v2-picolcd_core.c#L273" id"
L438" class4"line" nam1"
L238">6290l3a>aa639aaalahref="+f="+code=p6colcd69"sref


The original LXR software byd="drL273" id"http://sourceforge.net/projects/lxr">LXR inpuue" yderfaithis experiut aal 38" ion bydL273" id"mailto:lxr@="+ux.no">lxr@="+ux.noderf.
lxr.="+ux.no kindly hosd-d bydL273" id"http://www.redpill-="+pro.no">Redpill L"+pro ASderfaiprovider of L"+uxiconsultr fsand operations serpicos since 1995.