LXR > ction>pt t/ype="tpt tbody class="f : " ipt type=" nk_navigdiv class="ype=ig"> vigdiv class="ype=ig"top"> div> vigsptn;class="l t_ction> gsptn;class="l t_logo"> aascript">">LXR"> <>dravers/nfc/pn533.c g/sptn g!-- -- vivigsptn;id="l t_prieo" vivi" nk vigtech aod:'G="+prieo=dravers/nfc/pn533.c"s.r=ghr(", pj";id="prieo_tech> vit tbutt'GE 0; submij";class="prieo" vi vivigimgc/gfx/favicon.pngs" tprieoxt/cssalt="Prieo" vi vivig/butt'Gnk vig/tech vivig/sptn vivigsptn;id="l t_save" vivi" nk vigtech aod:'G="+save=dravers/nfc/pn533.c"s.r=ghr(", pj";id="save_tech> vit tbutt'GE 0; submij";class="save" vi vivigimgc/gfx/favicon.pngs" tsavext/cssalt="Save" vi vivig/butt'Gnk vig/tech vivig/sptn vig/sptn vigdiv class="l t_ypeu> gsptn;class="l t_vers:'G> vigaa vit ascript">"> /dravers/nfc/pn533.c> vit timgc/gfx/favicon.pngs" tlefoxt/cssalt="<<"> ank vigtech aod:'G="dravers/nfc/pn533.c"s.r=ghr("= d> vit tsptn;id="ver_n ans;> vit t ts ans;ctedI="v";id="v"; onState4="upxIne_vers:'G lang, 'c/js/lxrng-funcs.js"> ', '> t> t>9.89.79.69.59.49.39.29.>8t468t458t448t438t428t4>8t368t358t348t338t328t318t268t258t248t238t228t218t168t158t148t138t128t11 8t68t57.67.56t366t356t66t56t46 5.45.34t454t434t414t354t334t314t254t234t2164.134.11 3.11 2t452t432t412t352t332t312t252t232t2162.11 t> t9t>0t450t430t410t350t330t310t250t230t216 6 6 6 66 6 6666 vit t/spaG t t/form t ta vit href="../linux+v3t10.2/drivers/nfc/pn533.c"> vit timg src="../.statpi/gf9)'G pt topd:'GE((typ="v2t6.13.1" vi v2t6.13t1Search1 pdiv idstfile_contents" E(o1pda 26.13 class="comment">/*2t6.13t1 * Copy14.6" (C) 2011 Instituto Nokia de Tecnologia2t6.13t1 * Copy14.6" (C) 2012-2013 Tieto Poland2t6.13t1 *2t6.13t1 * This program is free software; you c13 redistribute it and/or modify2t6.13t1 * it under the terms of the GNU General Public License as published by2t6.13t1 * the Free Software Founda(typ; either .13E(o8pda 26.13 class="comment"> * (at your E((typ) any later .13 *2t6.13t1 * This program is distributed in the hope that it will be useful,2t6.13t1 * but WITHOUT ANY WARRANTY; without even the implied warranty of2t6.13t1 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the2t6.13t1 * GNU General Public License for more details.2t6.13t1 *2t6.13t1 * You should have rece6.1d a copy of the GNU General Public License2t6.13t1 * along with this program; if not, write to the2t6.13t1 * Free Software Founda(typ, Inc.,2t6.13t1 * 59 Temple Place - Suite 330, Bostyp, MA 02111-1307, USA.2t6.13t1 */2t6.13t16.13"/device.hpda >16.13"/kernel.hpda >16.13"/module.hpda >16.13"/slab.hpda >16.13"/usb.hpda >16.13"/opd.hpda >16.13"/oetdevice.hpda >1oet/opd:opd.hpda >1VERSION6ta 26.13 class="string">"0.2"2t6.13t1PN _VENDOR_ID6ta 0x4CC1PN _PRODUCT_ID6ta 0x2 1SCM_VENDOR_ID6ta 0x4E61SCL3711_PRODUCT_ID6ta 0x55911SONY_VENDOR_ID6ta 0x054c1PASORI_PRODUCT_ID6ta 0x02e11ACS_VENDOR_ID6ta 0x072f1ACR122U_PRODUCT_ID6ta 0x22001PN _DEVICE_STD6ta 0x11PN _DEVICE_PASORI6ta 0x21PN _DEVICE_ACR122U6ta 0x 1PN _ALL_PROTOCOLS6ta ( to(typ="+code=NFC_PROTO_JEWEL_MASK" class="sref">NFC_PROTO_JEWEL_MASK6ta |t to(typ="+code=NFC_PROTO_MIFARE_MASK" class="sref">NFC_PROTO_MIFARE_MASK6ta |\1NFC_PROTO_FELICA_MASK6ta |t to(typ="+code=NFC_PROTO_ISO14443_MASK" class="sref">NFC_PROTO_ISO14443_MASK6ta |\1NFC_PROTO_NFC_DEP_MASK6ta |\1NFC_PROTO_ISO14443_B_MASK6ta )1PN _NO_TYPE_B_PROTOCOLS6ta ( to(typ="+code=NFC_PROTO_JEWEL_MASK" class="sref">NFC_PROTO_JEWEL_MASK6ta |t\1NFC_PROTO_MIFARE_MASK6ta |t\1NFC_PROTO_FELICA_MASK6ta |t\1NFC_PROTO_ISO14443_MASK6ta |t\1NFC_PROTO_NFC_DEP_MASK6ta )1usb_device_id6ta 2to(typ="+code='G _table" class="sref">'G _table6ta [] = {1match_flags6ta = 2to(typ="+code=USB_DEVICE_ID_MATCH_DEVICE" class="sref">USB_DEVICE_ID_MATCH_DEVICE6ta ,1idVendor6ta = 2to(typ="+code=PN _VENDOR_ID" class="sref">PN _VENDOR_ID6ta ,1idProduct6ta = 2to(typ="+code=PN _PRODUCT_ID" class="sref">PN _PRODUCT_ID6ta ,12t6.13_info6ta = 2to(typ="+code=PN _DEVICE_STD" class="sref">PN _DEVICE_STD6ta ,1match_flags6ta = 2to(typ="+code=USB_DEVICE_ID_MATCH_DEVICE" class="sref">USB_DEVICE_ID_MATCH_DEVICE6ta ,1idVendor6ta = 2to(typ="+code=SCM_VENDOR_ID" class="sref">SCM_VENDOR_ID6ta ,1idProduct6ta = 2to(typ="+code=SCL3711_PRODUCT_ID" class="sref">SCL3711_PRODUCT_ID6ta ,12t6.13_info6ta = 2to(typ="+code=PN _DEVICE_STD" class="sref">PN _DEVICE_STD6ta ,1match_flags6ta = 2to(typ="+code=USB_DEVICE_ID_MATCH_DEVICE" class="sref">USB_DEVICE_ID_MATCH_DEVICE6ta ,1idVendor6ta = 2to(typ="+code=SONY_VENDOR_ID" class="sref">SONY_VENDOR_ID6ta ,1idProduct6ta = 2to(typ="+code=PASORI_PRODUCT_ID" class="sref">PASORI_PRODUCT_ID6ta ,12t6.13_info6ta = 2to(typ="+code=PN _DEVICE_PASORI" class="sref">PN _DEVICE_PASORI6ta ,1match_flags6ta = 2to(typ="+code=USB_DEVICE_ID_MATCH_DEVICE" class="sref">USB_DEVICE_ID_MATCH_DEVICE6ta ,1idVendor6ta = 2to(typ="+code=ACS_VENDOR_ID" class="sref">ACS_VENDOR_ID6ta ,1idProduct6ta = 2to(typ="+code=ACR122U_PRODUCT_ID" class="sref">ACR122U_PRODUCT_ID6ta ,12t6.13_info6ta = 2to(typ="+code=PN _DEVICE_ACR122U" class="sref">PN _DEVICE_ACR122U6ta ,1MODULE_DEVICE_TABLEpda ( to(typ="+code=usb" class="sref">usb6ta , 2to(typ="+code='G _table" class="sref">'G _table6ta );1/* How much time we spend listening for initiators */2t6.13t1PN _LISTEN_TIME6ta 21/* Standard 'G fram. defini(typs */2t6.13t1PN _STD_FRAME_HEADER_LEN6ta (sizeof(struct to(typ="+code='G _std_fram." class="sref">'G _std_fram.6ta )t\1/* data[0] TFI, data[1] CC */2t6.13t1PN _STD_FRAME_TAIL_LEN6ta 2 26.13 class="comment">/* data[len] DCS, data[len + 1] postamble*/2t6.13t1/*2t6.13t1 * Max extenced fram. Iaxload len, excluding TFI and CC2t6.13t1 * which are already in PN _FRAME_HEADER_LEN.2t6.13t1 */2t6.13t1PN _STD_FRAME_MAX_PAYLOAD_LEN6ta 26 1PN _STD_FRAME_ACK_SIZE6ta 6 26.13 class="comment">/* Preamble (1), SoPC (2), ACK Code (2),2t6.13t1 Postamble (1) */2t6.13t1PN _STD_FRAME_CHECKSUMpda ( to(typ="+code=f" class="sref">f6ta )t( to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [ to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta ])1PN _STD_FRAME_POSTAMBLEpda ( to(typ="+code=f" class="sref">f6ta )t( to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [ to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta + 1])1/* start of fram. */2t6.13t1PN _STD_FRAME_SOF6ta 0x00FF1/* standard fram. identifier: in/out/error */2t6.13t1PN _STD_FRAME_IDENTIFIERpda ( to(typ="+code=f" class="sref">f6ta )t( to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [0]) 26.13 class="comment">/* TFI */2t6.13t1PN _STD_FRAME_DIR_OUT6ta 0xD41PN _STD_FRAME_DIR_IN6ta 0xD51/* ACS ACR122 'G fram. defini(typs */2t6.13t1PN _ACR122_TX_FRAME_HEADER_LEN6ta (sizeof(struct to(typ="+code='G _acr122_tx_fram." class="sref">'G _acr122_tx_fram.6ta )t\1PN _ACR122_TX_FRAME_TAIL_LEN6ta 01PN _ACR122_RX_FRAME_HEADER_LEN6ta (sizeof(struct to(typ="+code='G _acr122_rx_fram." class="sref">'G _acr122_rx_fram.6ta )t\1PN _ACR122_RX_FRAME_TAIL_LEN6ta 21PN _ACR122_FRAME_MAX_PAYLOAD_LEN6ta 2to(typ="+code=PN _STD_FRAME_MAX_PAYLOAD_LEN" class="sref">PN _STD_FRAME_MAX_PAYLOAD_LEN6ta 1/* CCID messages typ.s */2t6.13t1PN _ACR122_PC_TO_RDR_ICCPOWERON6ta 0x621PN _ACR122_PC_TO_RDR_ESCAPE6ta 0x6B1PN _ACR122_RDR_TO_PC_ESCAPE6ta 0x8 1/* PN Commands */2t6.13t1PN _STD_FRAME_CMDpda ( to(typ="+code=f" class="sref">f6ta )t( to(typ="+code=f" class="sref">f6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [1])1PN _CMD_GET_FIRMWARE_VERSION6ta 0x021PN _CMD_RF_CONFIGURATION6ta 0x321PN _CMD_IN_DATA_EXCHANGE6ta 0x401PN _CMD_IN_COMM_THRU6ta 0x421PN _CMD_IN_LIST_PASSIVE_TARGET6ta 0x4A1PN _CMD_IN_ATR6ta 0x501PN _CMD_IN_RELEASE6ta 0x521PN _CMD_IN_JUMP_FOR_DEP6ta 0x561PN _CMD_TG_INIT_AS_TARGET6ta 0x8c1PN _CMD_TG_GET_DATA6ta 0x861PN _CMD_TG_SET_DATA6ta 0x8e1PN _CMD_UNDEF6ta 0xff1PN _CMD_RESPONSEpda ( to(typ="+code=cmd" class="sref">cmd6ta )t( to(typ="+code=cmd" class="sref">cmd6ta + 1)1/* PN Return codes */2t6.13t1PN _CMD_RET_MASK6ta 0x3F1PN _CMD_MI_MASK6ta 0x401PN _CMD_RET_SUCCESS6ta 0x001E1516ta 1'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+code=arg" class="sref">arg6ta ,1sk_buff6ta * to(typ="+code=resp" class="sref">resp6ta );1/* structs for 'G commands */2t6.13t1/* PN _CMD_GET_FIRMWARE_VERSION */2t6.13t1E1596ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=ic" class="sref">ic6ta ;1u86ta 2to(typ="+code=.13" class="sref">.136ta ;1u86ta 2to(typ="+code=rev" class="sref">rev6ta ;1u86ta 2to(typ="+code=support" class="sref">support6ta ;1/* PN _CMD_RF_CONFIGURATION */2t6.13t1PN _CFGITEM_RF_FIELD6ta 0x011PN _CFGITEM_TIMING6ta 0x021PN _CFGITEM_MAX_RETRIES6ta 0x051PN _CFGITEM_PASORI6ta 0x821PN _CFGITEM_RF_FIELD_ON6ta 0x11PN _CFGITEM_RF_FIELD_OFF6ta 0x01PN _CONFIG_TIMING_1026ta 0xb1PN _CONFIG_TIMING_2046ta 0xc1PN _CONFIG_TIMING_4096ta 0xd1PN _CONFIG_TIMING_8196ta 0xe1PN _CONFIG_MAX_RETRIES_NO_RETRY6ta 0x001PN _CONFIG_MAX_RETRIES_ENDLESS6ta 0xFF1E1836ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=mx_rty_at3" class="sref">mx_rty_at36ta ;1u86ta 2to(typ="+code=mx_rty_psl" class="sref">mx_rty_psl6ta ;1u86ta 2to(typ="+code=mx_rty_pass6.1_act" class="sref">mx_rty_pass6.1_act6ta ;1__packed6ta ;1E1896ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=rfu" class="sref">rfu6ta ;1u86ta 2to(typ="+code=at3_res_timeout" class="sref">at3_res_timeout6ta ;1u86ta 2to(typ="+code=dep_timeout" class="sref">dep_timeout6ta ;1__packed6ta ;1/* PN _CMD_IN_LIST_PASSIVE_TARGET */2t6.13t1/* felica commands opcode */2t6.13t1PN _FELICA_OPC_SENSF_REQ6ta 01PN _FELICA_OPC_SENSF_RES6ta 11/* felica SENSF_REQ param.ters */2t6.13t1PN _FELICA_SENSF_SC_ALL6ta 0xFFFF1PN _FELICA_SENSF_RC_NO_SYSTEM_CODE6ta 01PN _FELICA_SENSF_RC_SYSTEM_CODE6ta 11PN _FELICA_SENSF_RC_ADVANCED_PROTOCOL6ta 21/* typ. B initiator_2ata values */2t6.13t1PN _TYPE_B_AFI_ALL_FAMILIES6ta 01PN _TYPE_B_POLL_METHOD_TIMESLOT6ta 01PN _TYPE_B_POLL_METHOD_PROBABILISTIC6ta 11E2116ta struct {1u86ta 2to(typ="+code=afi" class="sref">afi6ta ;1u86ta 2to(typ="+code=polling_m.thod" class="sref">polling_m.thod6ta ;1__packed6ta 2to(typ="+code=typ._b" class="sref">typ._b6ta ;1u86ta 2to(typ="+code=opcode" class="sref">opcode6ta ;1__be166ta 2to(typ="+code=sc" class="sref">sc6ta ;1u86ta 2to(typ="+code=rc" class="sref">rc6ta ;1u86ta 2to(typ="+code=tsn" class="sref">tsn6ta ;1__packed6ta 2to(typ="+code=felica" class="sref">felica6ta ;1/* Poll modula(typs */2t6.13t1PN _POLL_MOD_106KBPS_A6ta ,1PN _POLL_MOD_212KBPS_FELICA6ta ,1PN _POLL_MOD_424KBPS_FELICA6ta ,1PN _POLL_MOD_106KBPS_JEWEL6ta ,1PN _POLL_MOD_847KBPS_B6ta ,1PN _LISTEN_MOD6ta ,1__PN _POLL_MOD_AFTER_LAST6ta ,1PN _POLL_MOD_MAX6ta ( to(typ="+code=__PN _POLL_MOD_AFTER_LAST" class="sref">__PN _POLL_MOD_AFTER_LAST6ta - 1)1E2376ta struct {1u86ta 2to(typ="+code=maxtg" class="sref">maxtg6ta ;1u86ta 2to(typ="+code=brty" class="sref">brty6ta ;1initiator_2ata6ta ;1__packed6ta 2to(typ="+code=2ata" class="sref">2ata6ta ;1u86ta 2to(typ="+code=len" class="sref">len6ta ;1'G _poll_modula(typs6ta 2to(typ="+code=poll_mod" class="sref">poll_mod6ta [] = {1PN _POLL_MOD_106KBPS_A6ta ] = {12ata6ta = {1maxtg6ta = 1,1brty6ta = 0,1len6ta = 2,1PN _POLL_MOD_212KBPS_FELICA6ta ] = {12ata6ta = {1maxtg6ta = 1,1brty6ta = 1,1initiator_2ata6ta .2to(typ="+code=felica" class="sref">felica6ta = {1opcode6ta = 2to(typ="+code=PN _FELICA_OPC_SENSF_REQ" class="sref">PN _FELICA_OPC_SENSF_REQ6ta ,1sc6ta = 2to(typ="+code=PN _FELICA_SENSF_SC_ALL" class="sref">PN _FELICA_SENSF_SC_ALL6ta ,1rc6ta = 2to(typ="+code=PN _FELICA_SENSF_RC_NO_SYSTEM_CODE" class="sref">PN _FELICA_SENSF_RC_NO_SYSTEM_CODE6ta ,1tsn6ta = 0,1len6ta = 7,1PN _POLL_MOD_424KBPS_FELICA6ta ] = {12ata6ta = {1maxtg6ta = 1,1brty6ta = 2,1initiator_2ata6ta .2to(typ="+code=felica" class="sref">felica6ta = {1opcode6ta = 2to(typ="+code=PN _FELICA_OPC_SENSF_REQ" class="sref">PN _FELICA_OPC_SENSF_REQ6ta ,1sc6ta = 2to(typ="+code=PN _FELICA_SENSF_SC_ALL" class="sref">PN _FELICA_SENSF_SC_ALL6ta ,1rc6ta = 2to(typ="+code=PN _FELICA_SENSF_RC_NO_SYSTEM_CODE" class="sref">PN _FELICA_SENSF_RC_NO_SYSTEM_CODE6ta ,1tsn6ta = 0,1len6ta = 7,1PN _POLL_MOD_106KBPS_JEWEL6ta ] = {12ata6ta = {1maxtg6ta = 1,1brty6ta = 4,1len6ta = 2,1PN _POLL_MOD_847KBPS_B6ta ] = {12ata6ta = {1maxtg6ta = 1,1brty6ta = 8,1initiator_2ata6ta .2to(typ="+code=typ._b" class="sref">typ._b6ta = {1afi6ta = 2to(typ="+code=PN _TYPE_B_AFI_ALL_FAMILIES" class="sref">PN _TYPE_B_AFI_ALL_FAMILIES6ta ,1polling_m.thod6ta =1PN _TYPE_B_POLL_METHOD_TIMESLOT6ta ,1len6ta = 3,1PN _LISTEN_MOD6ta ] = {1len6ta = 0,1/* PN _CMD_IN_ATR */2t6.13t1E3066ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=status" class="sref">status6ta ;1u86ta 2to(typ="+code=opdid3t" class="sref">opdid3t6ta [10];1u86ta 2to(typ="+code=didt" class="sref">didt6ta ;1u86ta 2to(typ="+code=bst" class="sref">bst6ta ;1u86ta 2to(typ="+code=brt" class="sref">brt6ta ;1u86ta 2to(typ="+code=to" class="sref">to6ta ;1u86ta 2to(typ="+code=ppt" class="sref">'pt6ta ;1/* op(typal */2t6.13t1u86ta 2to(typ="+code=gt" class="sref">gt6ta [];1__packed6ta ;1E3186ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=status" class="sref">status6ta ;1u86ta 2to(typ="+code=tg" class="sref">tg6ta ;1u86ta 2to(typ="+code=opdid3t" class="sref">opdid3t6ta [10];1u86ta 2to(typ="+code=didt" class="sref">didt6ta ;1u86ta 2to(typ="+code=bst" class="sref">bst6ta ;1u86ta 2to(typ="+code=brt" class="sref">brt6ta ;1u86ta 2to(typ="+code=to" class="sref">to6ta ;1u86ta 2to(typ="+code=ppt" class="sref">'pt6ta ;1/* op(typal */2t6.13t1u86ta 2to(typ="+code=gt" class="sref">gt6ta [];1__packed6ta ;1/* PN _TG_INIT_AS_TARGET */2t6.13t1PN _INIT_TARGET_PASSIVE6ta 0x11PN _INIT_TARGET_DEP6ta 0x21PN _INIT_TARGET_RESP_FRAME_MASK6ta 0x 1PN _INIT_TARGET_RESP_ACTIVE6ta 0x11PN _INIT_TARGET_RESP_DEP6ta 0x41E3406ta to(typ="+code=PN _PROTO_REQ_ACK_RESP" class="sref">PN _PROTO_REQ_ACK_RESP6ta = 0,1PN _PROTO_REQ_RESP6ta 1E3456ta struct to(typ="+code=usb_devic." class="sref">usb_devic.6ta * to(typ="+code=udev" class="sref">udev6ta ;1usb_interfac.6ta * to(typ="+code=interfac." class="sref">interfac.6ta ;1opd_dev6ta * to(typ="+code=opd_dev" class="sref">opd_dev6ta ;1u326ta 2to(typ="+code=devic._typ." class="sref">devic._typ.6ta ;1'rotocol_typ.6ta ;1urb6ta * to(typ="+code=out_urb" class="sref">out_urb6ta ;1urb6ta * to(typ="+code=in_urb" class="sref">in_urb6ta ;1sk_buff_head6ta to(typ="+code=resp_q" class="sref">resp_q6ta ;1workqueue_struct6ta * to(typ="+code=wq" class="sref">wq6ta ;1work_struct6ta 2to(typ="+code=cmd_work" class="sref">cmd_work6ta ;1work_struct6ta 2to(typ="+code=cmd_complete_work" class="sref">cmd_complete_work6ta ;1work_struct6ta 2to(typ="+code=poll_work" class="sref">poll_work6ta ;1work_struct6ta 2to(typ="+code=mi_work" class="sref">mi_work6ta ;1work_struct6ta 2to(typ="+code=tg_work" class="sref">tg_work6ta ;1list_head6ta 2to(typ="+code=cmd_queue" class="sref">cmd_queue6ta ;1cmd6ta ;1u86ta 2to(typ="+code=cmd_pending" class="sref">cmd_pending6ta ;1mutex6ta 2to(typ="+code=cmd_lock" class="sref">cmd_lock6ta ; 6.13 class="comment">/* 'rotects cmd queue */2t6.13t1cmd_complete_mi_arg6ta ;1'oll_mod_activ.6ta [ to(typ="+code=PN _POLL_MOD_MAX" class="sref">PN _POLL_MOD_MAX6ta + 1];1u86ta 2to(typ="+code='oll_mod_count" class="sref">'oll_mod_count6ta ;1u86ta 2to(typ="+code=poll_mod_cur3" class="sref">poll_mod_cur36ta ;1u326ta 2to(typ="+code=poll_'rotocols" class="sref">'oll_'rotocols6ta ;1u326ta 2to(typ="+code=listen_'rotocols" class="sref">listen_'rotocols6ta ;1timer_list6ta 2to(typ="+code=listen_timer" class="sref">listen_timer6ta ;1cancel_listen6ta ;1u86ta * to(typ="+code=gb" class="sref">gb6ta ;1size_t6ta 2to(typ="+code=gb_len" class="sref">gb_len6ta ;1u86ta 2to(typ="+code=tgt_available_'rots" class="sref">tgt_available_'rots6ta ;1u86ta 2to(typ="+code=tgt_activ._'rot" class="sref">tgt_activ._'rot6ta ;1u86ta 2to(typ="+code=tgt_mod." class="sref">tgt_mod.6ta ;1ops6ta ;1E3896ta struct 2to(typ="+code=list_head" class="sref">list_head6ta 2to(typ="+code=queue" class="sref">queue6ta ;1u86ta 2to(typ="+code=cod." class="sref">cod.6ta ;1status6ta ;1sk_buff6ta * to(typ="+code=req" class="sref">req6ta ;1sk_buff6ta * to(typ="+code=resp" class="sref">resp6ta ;1resp_len6ta ;1complete_cb6ta ;1complete_cb_context6ta ;1E4006ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=preamble" class="sref">'reamble6ta ;1__be166ta 2to(typ="+code=start_fram." class="sref">start_fram.6ta ;1u86ta 2to(typ="+code=2atalen" class="sref">2atalen6ta ;1u86ta 2to(typ="+code=2atalen_checksum" class="sref">2atalen_checksum6ta ;1u86ta 2to(typ="+code=2ata" class="sref">2ata6ta [];1__packed6ta ;1E4086ta void (* to(typ="+code=tx_fram._init" class="sref">tx_fram._init6ta )(void * to(typ="+code=fram." class="sref">fram.6ta , to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=cmd_cod." class="sref">cmd_cod.6ta );1tx_fram._finish6ta )(void * to(typ="+code=fram." class="sref">fram.6ta );1tx_update_payload_len6ta )(void * to(typ="+code=fram." class="sref">fram.6ta , int to(typ="+code=len" class="sref">len6ta );1tx_header_len6ta ;1tx_tail_len6ta ;1bool6ta (* to(typ="+code=rx_is_fram._valid" class="sref">rx_is_fram._valid6ta )(void * to(typ="+code=fram." class="sref">fram.6ta );1rx_fram._size6ta )(void * to(typ="+code=fram." class="sref">fram.6ta );1rx_header_len6ta ;1rx_tail_len6ta ;1max_payload_len6ta ;1u86ta (* to(typ="+code=get_cmd_cod." class="sref">get_cmd_cod.6ta )(void * to(typ="+code=fram." class="sref">fram.6ta );1u86ta 2to(typ="+code=typ." class="sref">typ.6ta ;1u326ta 2to(typ="+code=datalen" class="sref">2atalen6ta ;1u86ta 2to(typ="+code=slot" class="sref">slot6ta ;1u86ta 2to(typ="+code=seq" class="sref">seq6ta ;1u86ta 2to(typ="+code=params" class="sref">'arams6ta [3]; 6.13 class="comment">/* 3 msg specific bytes or status, error and 1 specific2t6.13t1 byte for reposnse msg */2t6.13t1u86ta 2to(typ="+code=2ata" class="sref">2ata6ta []; 6.13 class="comment">/* 'ayload */2t6.13t1__packed6ta ;1u86ta 2to(typ="+code=class" class="sref">class6ta ;1u86ta 2to(typ="+code=ips" class="sref">ins6ta ;1u86ta 2to(typ="+code=p1" class="sref">p16ta ;1u86ta 2to(typ="+code=p2t class="sref">p26ta ;1__packed6ta ;1u86ta 2to(typ="+code=2atalen" class="sref">2atalen6ta ;1u86ta 2to(typ="+code=2ata" class="sref">2ata6ta []; 6.13 class="comment">/* 'G fram.: TFI ... */2t6.13t1__packed6ta ;1u86ta 2to(typ="+code=2ata" class="sref">2ata6ta []; 6.13 class="comment">/* 'G fram. : TFI ... */2t6.13t1__packed6ta ;1_fram.6ta , to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=cmd_cod." class="sref">cmd_cod.6ta )1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=typ." class="sref">typ.6ta = 2to(typ="+code=PN _ACR122_PC_TO_RDR_ESCAPE" class="sref">PN _ACR122_PC_TO_RDR_ESCAPE6ta ;1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=2atalen" class="sref">2atalen6ta = sizeof( to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=apdu" class="sref">apdu6ta ) + 1; 6.13 class="comment">/* sizeof(apdu_hd3) +2t6.13t1 sizeof(2atalen) */2t6.13t1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=slot" class="sref">slot6ta = 0;1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=seq" class="sref">seq6ta = 0;1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=params" class="sref">'arams6ta [0] = 0;1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=params" class="sref">'arams6ta [1] = 0;1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=params" class="sref">'arams6ta [2] = 0;1fram.6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [0] = 2to(typ="+code=PN _STD_FRAME_DIR_OUT" class="sref">PN _STD_FRAME_DIR_OUT6ta ;1fram.6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [1] = 2to(typ="+code=cmd_cod." class="sref">cmd_cod.6ta ;1fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta = 2; 6.13 class="comment">/* 2ata[0] + 2ata[1] */2t6.13t1fram.6ta ->2to(typ="+code=apdu" class="sref">apdu6ta .2to(typ="+code=class" class="sref">class6ta = 0xFF;1fram.6ta ->2to(typ="+code=apdu" class="sref">apdu6ta .2to(typ="+code=ips" class="sref">ins6ta = 0;1fram.6ta ->2to(typ="+code=apdu" class="sref">apdu6ta .2to(typ="+code=p1" class="sref">p16ta = 0;1fram.6ta ->2to(typ="+code=apdu" class="sref">apdu6ta .2to(typ="+code=p2t class="sref">p26ta = 0;1_fram.6ta )1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=2atalen" class="sref">2atalen6ta += 2to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta ;1_fram.6ta , int to(typ="+code=len" class="sref">len6ta )1fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta += 2to(typ="+code=len" class="sref">len6ta ;1bool6ta to(typ="+code='G _acr122_is_rx_fram._valid" class="sref">'G _acr122_is_rx_fram._valid6ta (void * to(typ="+code=_fram." class="sref">_fram.6ta )1fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=typ." class="sref">typ.6ta != 0x83)1false6ta ;1fram.6ta ->2to(typ="+code=2ata" class="sref">2ata6ta [ to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=ccid" class="sref">ccid6ta .2to(typ="+code=2atalen" class="sref">2atalen6ta - 2] == 0x63)1false6ta ;1true6ta ;1pG _acr122_rx_fram._size6ta (void * to(typ="+code=fram." class="sref">fram.6ta )1/* f->ccid.2atalen already includes tail length */2t6.13t1u86ta 2to(typ="+code=pG _acr122_get_cmd_cod." class="sref">pG _acr122_get_cmd_cod.6ta (void * to(typ="+code=fram." class="sref">fram.6ta )1PN _STD_FRAME_CMD6ta ( to(typ="+code=f" class="sref">f6ta );1'G _acr122_fram._ops6ta = {1tx_fram._init6ta = 2to(typ="+code='G _acr122_tx_fram._init" class="sref">'G _acr122_tx_fram._init6ta ,1tx_fram._finish6ta = 2to(typ="+code='G _acr122_tx_fram._finish" class="sref">'G _acr122_tx_fram._finish6ta ,1tx_update_payload_len6ta = 2to(typ="+code='G _acr122_tx_update_payload_len" class="sref">'G _acr122_tx_update_payload_len6ta ,1tx_header_len6ta = 2to(typ="+code=PN _ACR122_TX_FRAME_HEADER_LEN" class="sref">PN _ACR122_TX_FRAME_HEADER_LEN6ta ,1tx_tail_len6ta = 2to(typ="+code=PN _ACR122_TX_FRAME_TAIL_LEN" class="sref">PN _ACR122_TX_FRAME_TAIL_LEN6ta ,1rx_is_fram._valid6ta = 2to(typ="+code='G _acr122_is_rx_fram._valid" class="sref">'G _acr122_is_rx_fram._valid6ta ,1rx_header_len6ta = 2to(typ="+code=PN _ACR122_RX_FRAME_HEADER_LEN" class="sref">PN _ACR122_RX_FRAME_HEADER_LEN6ta ,1rx_tail_len6ta = 2to(typ="+code=PN _ACR122_RX_FRAME_TAIL_LEN" class="sref">PN _ACR122_RX_FRAME_TAIL_LEN6ta ,1rx_fram._size6ta = 2to(typ="+code='G _acr122_rx_fram._size" class="sref">pG _acr122_rx_fram._size6ta ,1max_payload_len6ta = 2to(typ="+code=PN _ACR122_FRAME_MAX_PAYLOAD_LEN" class="sref">PN _ACR122_FRAME_MAX_PAYLOAD_LEN6ta ,1get_cmd_cod.6ta = 2to(typ="+code='G _acr122_get_cmd_cod." class="sref">pG _acr122_get_cmd_cod.6ta ,1/* The rule: value + checksum = 0 */2t6.13t1inline6ta to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=pG _std_checksum" class="sref">pG _std_checksum6ta ( to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=value" class="sref">value6ta )1value6ta + 1;1/* The rule: sum(2ata elements) + checksum = 0 */2t6.13t1u86ta 2to(typ="+code=pG _std_2ata_checksum" class="sref">pG _std_2ata_checksum6ta ( to(typ="+code=u8" class="sref">u86ta * to(typ="+code=2ata" class="sref">2ata6ta , int to(typ="+code=2atalen" class="sref">2atalen6ta )1u86ta 2to(typ="+code=sum" class="sref">sum6ta = 0;1i6ta ;1i6ta = 0; to(typ="+code=it class="sref">i6ta < to(typ="+code=2atalen" class="sref">2atalen6ta ; to(typ="+code=it class="sref">i6ta ++)1sum6ta += 2to(typ="+code=2ata" class="sref">2ata6ta [ to(typ="+code=it class="sref">i6ta ];1pG _std_checksum6ta ( to(typ="+code=sum" class="sref">sum6ta );1_fram.6ta , to(typ="+code=u8" class="sref">u86ta 2to(typ="+code=cmd_cod." class="sref">cmd_cod.6ta )1fram.6ta ->2to(typ="+code=preamble" class="sref">'reamble6ta = 0;1fram.6ta ->2to(typ="+code=start_fram." class="sref">start_fram.6ta = 2to(typ="+code=cpu_to_be16t class="sref">cpu_to_be166ta ( to(typ="+code=PN _STD_FRAME_SOF" class="sref">PN _STD_FRAME_SOF6ta );1PN _STD_FRAME_IDENTIFIER6ta ( to(typ="+code=fram." class="sref">fram.6ta ) = 2to(typ="+code=PN _STD_FRAME_DIR_OUT" class="sref">PN _STD_FRAME_DIR_OUT6ta ;1PN _STD_FRAME_CMD6ta ( to(typ="+code=fram." class="sref">fram.6ta ) = 2to(typ="+code=cmd_cod." class="sref">cmd_cod.6ta ;1fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta = 2;1_fram.6ta )1fram.6ta ->2to(typ="+code=2atalen_checksum" class="sref">2atalen_checksum6ta = 2to(typ="+code='G _std_checksum" class="sref">pG _std_checksum6ta ( to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta );1PN _STD_FRAME_CHECKSUM6ta ( to(typ="+code=fram." class="sref">fram.6ta ) =1pG _std_2ata_checksum6ta ( to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2ata" class="sref">2ata6ta , to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta );1PN _STD_FRAME_POSTAMBLE6ta ( to(typ="+code=fram." class="sref">fram.6ta ) = 0;1_fram.6ta , int to(typ="+code=len" class="sref">len6ta )1fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta += 2to(typ="+code=len" class="sref">len6ta ;1bool6ta to(typ="+code='G _std_rx_fram._is_valid" class="sref">'G _std_rx_fram._is_valid6ta (void * to(typ="+code=_fram." class="sref">_fram.6ta )1u86ta 2to(typ="+code=checksum" class="sref">checksum6ta ;1fram.6ta ->2to(typ="+code=start_fram." class="sref">start_fram.6ta != 2to(typ="+code=cpu_to_be16t class="sref">cpu_to_be166ta ( to(typ="+code=PN _STD_FRAME_SOF" class="sref">PN _STD_FRAME_SOF6ta ))1false6ta ;1checksum6ta = 2to(typ="+code='G _std_checksum" class="sref">pG _std_checksum6ta ( to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta );1checksum6ta != 2to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen_checksum" class="sref">2atalen_checksum6ta )1false6ta ;1checksum6ta = 2to(typ="+code='G _std_2ata_checksum" class="sref">pG _std_2ata_checksum6ta ( to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2ata" class="sref">2ata6ta , to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta );1checksum6ta != 2to(typ="+code=PN _STD_FRAME_CHECKSUM" class="sref">PN _STD_FRAME_CHECKSUM6ta ( to(typ="+code=fram." class="sref">fram.6ta ))1false6ta ;1true6ta ;1bool6ta to(typ="+code='G _std_rx_fram._is_ack" class="sref">'G _std_rx_fram._is_ack6ta (struct to(typ="+code='G _std_fram." class="sref">pG _std_fram.6ta * to(typ="+code=fram." class="sref">fram.6ta )1fram.6ta ->2to(typ="+code=start_fram." class="sref">start_fram.6ta != 2to(typ="+code=cpu_to_be16t class="sref">cpu_to_be166ta ( to(typ="+code=PN _STD_FRAME_SOF" class="sref">PN _STD_FRAME_SOF6ta ))1false6ta ;1fram.6ta ->2to(typ="+code=2atalen" class="sref">2atalen6ta != 0 || to(typ="+code=fram." class="sref">fram.6ta ->2to(typ="+code=2atalen_checksum" class="sref">2atalen_checksum6ta != 0xFF)1false6ta ;1true6ta ;1inline6ta int to(typ="+code=pG _std_rx_fram._size" class="sref">pG _std_rx_fram._size6ta (void * to(typ="+code=fram." class="sref">fram.6ta )1PN _STD_FRAME_TAIL_LEN6ta ;1u86ta 2to(typ="+code=pG _std_get_cmd_cod." class="sref">pG _std_get_cmd_cod.6ta (void * to(typ="+code=fram." class="sref">fram.6ta )1PN _STD_FRAME_CMD6ta ( to(typ="+code=f" class="sref">f6ta );1'G _std_fram._ops6ta = {1tx_fram._init6ta = 2to(typ="+code='G _std_tx_fram._init" class="sref">'G _std_tx_fram._init6ta ,1tx_fram._finish6ta = 2to(typ="+code='G _std_tx_fram._finish" class="sref">'G _std_tx_fram._finish6ta ,1tx_update_payload_len6ta = 2to(typ="+code='G _std_tx_update_payload_len" class="sref">'G _std_tx_update_payload_len6ta ,1tx_header_len6ta = 2to(typ="+code=PN _STD_FRAME_HEADER_LEN" class="sref">PN _STD_FRAME_HEADER_LEN6ta ,1tx_tail_len6ta = 2to(typ="+code=PN _STD_FRAME_TAIL_LEN" class="sref">PN _STD_FRAME_TAIL_LEN6ta ,1rx_is_fram._valid6ta = 2to(typ="+code='G _std_rx_fram._is_valid" class="sref">'G _std_rx_fram._is_valid6ta ,1rx_fram._size6ta = 2to(typ="+code='G _std_rx_fram._size" class="sref">pG _std_rx_fram._size6ta ,1rx_header_len6ta = 2to(typ="+code=PN _STD_FRAME_HEADER_LEN" class="sref">PN _STD_FRAME_HEADER_LEN6ta ,1rx_tail_len6ta = 2to(typ="+code=PN _STD_FRAME_TAIL_LEN" class="sref">PN _STD_FRAME_TAIL_LEN6ta ,1max_payload_len6ta = 2to(typ="+code=PN _STD_FRAME_MAX_PAYLOAD_LEN" class="sref">PN _STD_FRAME_MAX_PAYLOAD_LEN6ta ,1get_cmd_cod.6ta = 2to(typ="+code='G _std_get_cmd_cod." class="sref">pG _std_get_cmd_cod.6ta ,1bool6ta to(typ="+code='G _rx_fram._is_cmd_response" class="sref">'G _rx_fram._is_cmd_response6ta (struct to(typ="+code='G " class="sref">'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+code=fram." class="sref">fram.6ta )12ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=get_cmd_cod." class="sref">get_cmd_cod.6ta ( to(typ="+code=fram." class="sref">fram.6ta ) ==1PN _CMD_RESPONSE6ta ( to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=cmdt class="sref">cmd6ta ->2to(typ="+code=cod." class="sref">cod.6ta ));1urb6ta * to(typ="+code=urb" class="sref">urb6ta )12ev6ta = 2to(typ="+code=urb" class="sref">urb6ta ->2to(typ="+code=context" class="sref">context6ta ;1cmd6ta = 2to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=cmdt class="sref">cmd6ta ;1u86ta * to(typ="+code=in_fram." class="sref">in_fram.6ta ;1cmd6ta ->2to(typ="+code=status" class="sref">status6ta = 2to(typ="+code=urb" class="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta ;1urb6ta ->2to(typ="+code=status" class="sref">status6ta ) {1/* success */2t6.13t1ECONNRESET6ta :1ENOENT6ta :1opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1"The urb has bee3 canceled (status %d)"2t6.13t,1urb6ta ->2to(typ="+code=status" class="sref">status6ta );1sched_wq6ta ;1ESHUTDOWN6ta :1opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1"Urb failure (status %d)"2t6.13t, 2to(typ="+code=urb" class="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta );1sched_wq6ta ;1in_fram.6ta = 2to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref">in_urb6ta ->2to(typ="+code=transfer_buffer" class="sref">transfer_buffer6ta ;1opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string">"Rece6.1d a fram.."2t6.13t);1print_hex_dump_2ebug6ta ( 6.13 class="string">"PN RX: "2t6.13t, 2to(typ="+code=DUMP_PREFIX_NONE" class="sref">DUMP_PREFIX_NONE6ta , 16, 1, 2to(typ="+code=in_fram." class="sref">in_fram.6ta ,12ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=rx_fram._size" class="sref">rx_fram._size6ta ( to(typ="+code=in_fram." class="sref">in_fram.6ta ), to(typ="+code=false" class="sref">false6ta );12ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=rx_is_fram._valid" class="sref">rx_is_fram._valid6ta ( to(typ="+code=in_fram." class="sref">in_fram.6ta )) {1opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string">"Rece6.1d an invalid fram."2t6.13t);1cmd6ta ->2to(typ="+code=status" class="sref">status6ta = -2to(typ="+code=EIO" class="sref">EIO6ta ;1sched_wq6ta ;12ev6ta , 2to(typ="+code=in_fram." class="sref">in_fram.6ta )) {1opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1"It it not the response to the last command"2t6.13t);1cmd6ta ->2to(typ="+code=status" class="sref">status6ta = -2to(typ="+code=EIO" class="sref">EIO6ta ;1sched_wq6ta ;1sched_wq6ta :1u86ta * to(typ="+code=in_fram4.13 class="string">"It it not the response to the last command"2t6.r3pletstL689t7L2to(typ="+co;2t6.r3pletstL68913E5956ta 6 6 retu"+code=G _std_rx_fram._size" clubmit="+c_foref">'G _rx_fram._is_cmd_resplubmit="+c_foref">'G "+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+codeclass="sref">2egfp_ext6ta ;1flagus6ta = -2to(tyflagu13in_urb6ta ->2to(typ="+code=transfer_buffer" cla.r3pletst7L2to(typ="+co;r3pletse=dev" class="sref">2e class="sref">'G _recv_response6ta (struct to(typ="+copd:'G p#L677t idstL677t class="linet nam.stL598t>E5986ta }1u86ta * to(t>in_urb6ta ->2to(typ="+code=se" class="sref">flagus6ta = -2to(tyflagu13E6006ta static 7to(ty7013E6016ta {1E6026ta 7if ( 70(typ="+code='G _std_tx_fram._finish"ruct _std_rx_fram._is_ack6ruct "+code=urb" class="sref">urb6ta * to(typ="+code=urb" class="sref">urb6ta )1E6036ta 7 7013E6046ta 12ev6ta , void * to(typ="+cob" class="sref">urb6ta ->2to(typ="+code=context" class="sref">context6ta ;1E6056ta 7if ( 7o(typ="+code=fe='G _cmdt class="sref">'G _cmd6ta * to(typ="+code=cmdt class="sref">cmd6ta = 2to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=cmdt class="sref">cmd6ta ;1E6066ta 7 7 return to(te='G _std_fram." class="sref">pG _std_fram.6ta * to(typ="+code=f" class="sref">f6taf">in_fram.6ta ;1E6076ta 1E5986ta }1E6096ta }1status6ta = 2to(typ="+code=urb" class="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta ;1E6116ta 1E6116ta static 7to(ty71 to(typ="+codee=urb" class="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta ) {1E6126ta {1E6136ta 7struc71 2to(typ=comment">/* success */2t6.13t1E6146ta 1ECONNRESET6ta :1E6156ta 7retur71to(typ="+code=ESHUTDOWN" class="sreENOENT6ta :1E6166ta 7 7 to(typ="+code=PN 2ev_dbg" class="sref">opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="stringd:'G p#L661t idstL661t class7"linet na7.stL617t>E6176ta }1E6186ta 1lass="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta ) {1E6196ta static 7to(ty71 goto to(typ="+code=sched_wq" class="sref">sched_wq6ta ;1E6206ta {1f">ESHUTDOWN6ta :1E6216ta 7struc7 to(typ="+cod6.13E6226ta 1opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1E6236ta 7retur72 2to(typ="+code=urb" c"Urb failure (status %d)"2t6.13t, 2to(typ="+code=urb" class="sref">urb6ta ->2to(typ="+code=status" class="sref">status6ta );1E6246ta }1sched_wq6ta ;1len6ta ;1E6266ta static 72ruct723E6276ta 7.2to(72="+code=PN _STD_FRAME_IDENf">in_fram.6ta = 2to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref">in_urb6ta ->2to(typ="+code=transfer_buffer" class="sref">transfer_buffer6ta ;1E6286ta 7.2to(723E6296ta 7.2to(7yp="+code=tx_u'G _rx_fram._is_cmd_resp class="sref">'G _std_rx_fram._is_ack6ta (struct to(typ="+codam." class="sref">in_fram.6ta )) {1E6306ta 7.2to(73 to(typ="+code=cmdt class="sref">cmsref">opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1"Rece6.1d an invalid fram."2t6.13t);yp=typ="2t6.13E6316ta 7.2to(73 2to(typ="+code=opd_2ev_dbg" class="d6ta ->2to(typ="+code=status" class="sref">status6ta = -2to(typ="+code=EIO" class="sref">EIO6ta ;1E6326ta 1sched_wq6ta ;1E6336ta 7.2to(7yp="+code=rx_ipd:'G p#L561t idstL561t class7"linet na7.stL634t>E6346ta 7.2to(733E6356ta 7.2to(73="+code=print_hex_dump_2ebugrc_fram._valid6ta c3'G _rx_fram._is_cmd_resplubmit="+c_foref">'G "+codclass="sref">2ev6ta , void * to(typ="+codeclass="sref">2eGFP_ATOMICa , void * to(tGFP_ATOMIC13E6366ta 7.2to(7yp="+code=rx_tram." class="sref">rc_fram._valid6ta c3E6376ta 1opd_2ev_err6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta ,1E6386ta 7.2to(73 26.13 class="string">"Urb failure (status "sbplubmit="+c7;d)&quowitht courrc_fram._valid6ta c3E6396ta 7.2to(73 to(typ="+code=opd_2ev_err" class="f6ta ->2to(typ="+code=status" class="sref">status6ta = 2to(typ="+code=urb" class="sref">urrc_fram._valid6ta c3E6406ta };1sched_wq6ta ;1E6416ta 1E6426ta static 7to(ty743E6436ta {1E6446ta 7retur743E6456ta 7 7 _wq" class="sref">sched_wq6ta ;1E6466ta }1nam.stL689t7L2to(typ="+code=dev" cla+code=scm.stL689t9t class="V2code=u8" class="sref">u86ta * to(typ="+code=in_fram4.13 class="string">"It it not the response to the last command"2t6.r3pletstL689t7L2to(typ="+co;2t6.r3pletstL68913E6476ta 1E6486ta static 7oid 743E6496ta {1ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+codeclass="sref">2egfp_ext6ta ;1flagus6ta = -2to(tyflagu13E6506ta 7struc7513E6516ta 7struc75="+code=PN _STD_FRAME_POSTv6ta ->2to(typ="+code=in_urb" class="sref">in_urb6ta ->2to(typ="+code=transfer_buffer" cla.r3pletst7L2to(typ="+co;r3pletse=dev" class="sref">2e class="sre _std_rx_fram._is_ack6ruct "+copd:'G p#L677t idstL667t class7"linet na7.stL652t>E6526ta 7 to(t753E6536ta 1u86ta * to(t>in_urb6ta ->2to(typ="+code=se" class="sref">flagus6ta = -2to(tyflagu13E6546ta 7 to(t7513E65>len6ta ;1E6566ta 7switc756+code=u8" cG _std_rx_fram._size" clende _std_rx_fram._is_ack6tende "+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+codeclass="sref">2egfp_ext6ta ;1flagus6ta = -2to(tyflagu13E6576ta 7case 7:1E6586ta 7 75="+code=fram." class="sref">ta 2to(typ="+code=pG _std_get_cmd_co _std_rx_fram._i "+co[_std_get_cmd_coPAYLOAD_LEN6ta ,ACK_SIZ_PREFIX_NONE6ta PAYLOAD_LEN6ta ,ACK_SIZ_"+co]E6596ta 7case 72to(typ="+code">/* success */2t6.13t1E6606ta 7case 72to(typ="+codeG _std_rx_fram._src_fram._valid6ta c3E6616ta 7 763E6626ta 7 76689t idstL689t class="linet sref">opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string">"Urb failure (status , 2tosyp="+code=urb" class="sref">ur__func__a , 26.13 class__func__13E6636ta 7 763E6646ta 7 76="+code=opd_2ev_dbg" class="v6ta ->2to(typ="+code=ops" class="sref">opsut="+ca ->2to(typ=sut="+code=transfer_buffer" class="sref">transfer_buffer6ta ;12e _std_rx_fram._i "+copd:'G p#L677t idstL677t class7"linet na7.stL665t>E6656ta 7case 76="+code=print_hex_dump_2ebugv6ta ->2to(typ="+code=ops" class="sref">opsut="+ca ->2to(typ=sut="+code=transfer_buffer" class="sref">trans"+cogtram._finish6ta =s="sref">trans"+cogtr32e _std_rx_fram._i "+coopd:'G p#L677t idstL677t class7"linet na7.stL666t>E6666ta 7defau76="+code=fram." class="sref">rc_fram._valid6ta c3u86ta * to(tsut="+ca ->2to(typ=sut="+code=se" class="sref">flagus6ta = -2to(tyflagu13E6676ta 7 763E6686ta 7 76 to(typ="+code=tru." class="sref">trc_fram._valid6ta c3E6696ta 7 7613E6706ta 7}1E6716ta 1ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+codd:'G p#L611t idstL611t class7"linet na7.stL672t>E6726ta 7 to(t77 26.13 cllllllllllllllllllllllllle=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2esuta ->2to(typ=sut"+codd:'G p#L611t idstL611t class7"linet na7.stL673t>E6736ta 1ursk">tra_wq6ta ;1tra=dev" class="sref">2eipayload_len6ta i13E6746ta 7 to(t77 goto to(typ="+code=========================G _std_rx_fram._syp=x_payload_len6ta yp=x_p13E6756ta 7 to(t7p="+copd:'G p#L621t idstL621t class7"linet na7.stL676t>E6766ta 7 7 G _std_rx_fram._src_fram._valid6ta c3E6776ta 1E6786ta 7if (!77="+code=fram." class="sref">v6ta ->2to(typ="+code=ops" class="sref">opsut="+ca ->2to(typ=sut="+code=transfer_buffer" class="sref">transfer_buffer6ta ;12esuta ->2to(typ=sut"+co2atalen" class="sref">2aa ->2to(typ=">2a3E6796ta 7 77="+code=checksum" class="srev6ta ->2to(typ="+code=ops" class="sref">opsut="+ca ->2to(typ=sut="+code=transfer_buffer" class="sref">trans"+cogtram._finish6ta =s="sref">trans"+cogtr32esuta ->2to(typ=sut"+co2atalen" class="srefx_payload_len6ta x_p13E6806ta 7 783E6816ta 7 78="+code=PN _STD_FRAME_POSTv6ta ->2to(typ="+code=in_urb" class="sref">in_urb6ta ->2to(typ="+code=transfer_buffer" class="sref">transfer_buffer6ta ;12eipayload_len6ta i132aa ->2to(typ=">2a3E6826ta 7}1in_urb6ta ->2to(typ="+code=transfer_buffer" class="sref">trans"+cogtram._finish6ta =s="sref">trans"+cogtr32eyp=x_payload_len6ta yp=x_p13E6836ta 1E6846ta 7if (!78="+code=opd_2ev_dbg" class="" class="sref">print_hex_dump_2ebug6ta ( 6.13 class="string">"PN RX: "2t6.13t, 2To(typ="+code=DUMP_PREFIX_NONE" class="sref">DUMP_PREFIX_NONE6ta , 16, 1, 2to(typ="+code=in_fd:'G p#L684t idstL684t class7"linet na7.stL685t>E6856ta 7 7 to(typ="+code=opd_22222222222222class="sref">2esuta ->2to(typ=sut"+co2atalen" class="sref">2aa ->2to(typ=">2a3false6ta );1E6866ta 7 783E6876ta 7 78="+code=PN _STD_FRAME_IDENrc_fram._valid6ta c3u86ta * to(tsut="+ca ->2to(typ=sut="+code=se" class="sref">GFP_KERNELa ->2to(typ=GFP_KERNEL13E6886ta 7 78o(typ="+code=dev"_STD_FRAME_IDENrc_fram._valid6ta c3E6896ta 7}1trc_fram._valid6ta c3E6916ta 1E6916ta to(typ7"+cod791(typ="+code=dev"_STD_FRAME_IDEN class="V2code=u8" class="sref">u86ta * to(tprotocol_typ _rx_fram._is_cmdrotocol_typ 3/* success */2t6.13t1E5936ta 7 to(t79 2to(typ=_STD_FRAME_IDENrc_fram._valid6ta c3'G _rx_fram._is_cmd_resplubmit="+c_foref">'G "+codclass="sref">2ev6ta , void * to(typ="+codeclass="sref">2eGFP_ATOMICa , void * to(tGFP_ATOMIC13E5946ta 7if ( 79 goto to(typ="+code=dev"_STD_FRAME_IDENrc_fram._valid6ta c3E5956ta 7 79 to(typ="+code=opd_222222222sched_wq" class="sreerrosfer_buffer6ta ;erros3E5966ta 1u86ta * to(tprotocol_typ _rx_fram._is_cmdrotocol_typ 3E5976ta 7retur79 2to(typ="+code=opd_2e>/* success */2t6.13t1E5986ta }12ev6ta , void * to(typ="+codeclass="sref">2eGFP_KERNELa ->2to(typ=GFP_KERNEL13E5996ta 1E6006ta static 8to(ty80 to(typ="+code=cmdt 22222222sched_wq" class="sreerrosfer_buffer6ta ;erros3E6016ta {1E6026ta 8if ( 803E6036ta 8 80 to(typ="+code=PN 0pd:'G p#L653t idstL653t class8"4inet na8.stL594t>E5946ta 8="2t6803E6056ta 8if ( 80 _wq" class="sreerrosfer_buffer6ta ;erros3E6066ta 8 80="+code=fram." class="sref">"sbpun066k="+ca ->2to(typ="sbpun066k="+ca+code=scm.stL689t9t class="V2code=u8" class="sref">u86ta * to(tsut="+ca ->2to(typ=sut="+code=opd:'G p#L677t idstL677t class8"linet na8.stL607t>E6076ta 1trc_fram._valid6ta c3E5986ta }1E5996ta 1E6116ta 12ev6ta , void * to(typ="+cod." class="sref">ta 2to(typ="+code=pG _std_get_cmd_cof">get_cmd_cod.6ta ( top="2t6.13E6116ta static 8to(ty81 2to(typ="+code=opd_2222222222222222222e=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2eskca ->2to(typ=skc3E6126ta {1E6136ta 8struc81 e>/* success */2t6.13t12alenEt6.13E6146ta 1max_payload_len6ta to(typ="+code=PN class="sref">2eskca ->2to(typ=skc3E6156ta 8retur81to(typ="+codee='G _std_fram." class="sruct ts6ta ->2to(typ=ss="sruct ts6t=dev" class="sref">2es6ta ->2to(typ="+code=v" class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=pd:'G p#L653t idstL653t class8"linet na8.stL616t>E6166ta 8 813E6176ta }1E6186ta 1skc_pusram._finish6ta skc_pusra+code=scm.stL689t9tskca ->2to(typ=skc3E6196ta static 8to(ty81="+code=checksum" class="sreskc_puta ->2to(typ=skc_puta+code=scm.stL689t9tskca ->2to(typ=skc3E6206ta {1E6216ta 8struc82="+code=PN _STD_FRAME_POSTs6ta ->2to(typ="+code=rx_is_fram._valid" ctx_uct tonita ->2to(typ=tx_uct tonita+code=scm.stL689t9tskca ->2to(typ=skc32aa ->2to(typ=">2a3get_cmd_cod.6ta ( top="2t6.13E6226ta 1max_payload_len6ta tx_update_iref">max_pa+code=scm.stL689t9tskca ->2to(typ=skc32aa ->2to(typ=">2a3max_payload_len6ta to(typ="+code=Popd:'G p#L677t idstL677t class8"linet na8.stL623t>E6236ta 8retur82 _STD_FRAME_POSTs6ta ->2to(typ="+code=rx_is_fram._valid" ctx_uct tfonisram._finish6ta tx_uct tfonisra+code=scm.stL689t9tskca ->2to(typ=skc32aa ->2to(typ=">2a3E6246ta }1len6ta ;1E6266ta static 82ruct826+code=u8" cG _std_rx_fram._size" clende sync_.r3pletst7L2to(typ="+coize" clende sync_.r3plets"+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+cood:'G p#L615t idstL615t class8"linet na8.stL627t>E6276ta 8.2to(821E6286ta 8.2to(82="+code=fram.e='G _cmdt class="sref">'G _cmd6ta * to(typ="+code=cmdt class="sref">cmd6ta = 2to(typ="+code=dev" class="sref">2ev6ta ->2to(typ="+code=cmdt class="sref">cmd6ta ;1E6296ta 8.2to(8yp="+code=tx_u' _std_rx_fram._s>status6ta = 2to(typ="+code=urb" class="sref">urf6ta ->2to(typ="+code=status" class="sref">status6ta = 2to(typ="+code=urpd:'G p#L652t idstL652t class8"linet na8.stL630t>E6306ta 8.2to(833E6316ta 8.2to(83 2to(typ="+coe=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2erep="+code=in_framrepe=urb" class="sref">urf6ta ->2to(typ="+code=status" class="sref"rep="+code=in_framrepe=urpd:'G p#L652t idstL652t class8"linet na8.stL632t>E6326ta 1ursk">tra_wq6ta ;1tra=dev" class="sref">2eresp="+code=in_framrespe=urb" class="sref">urf6ta ->2to(typ="+code=status" class="sref"resp="+code=in_framrespe=urpd:'G p#L652t idstL652t class8"linet na8.stL633t>E6336ta 8.2to(833E6346ta 8.2to(83489t idstL689G _std_rx_fram._src_fram._valid6ta c3E6356ta 8.2to(83t6.13E6366ta 8.2to(83="+code=fram." class="sref">(typkfree_skca ->2to(typ=(typkfree_skca+code=scm.stL689t9trep="+code=in_framrepe=uropd:'G p#L677t idstL677t class8"linet na8.stL637t>E6376ta 1E6386ta 8.2to(83o(typ="+code=dev"_STD_FRAME_IDEN>status6ta = 2to(typ="+code=urb< 0oopd:'G p#L685t idstL685t class8"linet na8.stL639t>E6396ta 8.2to(83 to(typ="+code=opd_2ev_err" class="rc_fram._valid6ta c32ev6ta , void * to(typ="+codeclass="sref">2ef6ta ->2to(typ="+code=status" class="sref".r3pletstcc_">context6ta ;1conte3E6406ta };1E6416ta 1E6426ta static 8to(ty84 26.13 clsched_wq" class="sredonst7L2to(typ="+codons3E6436ta {1E6446ta 8retur843E6456ta 8 84="+code=print_hex_dump_2ebugskc_puta ->2to(typ=skc_puta+code=scm.stL689t9tresp="+code=in_framrespe=urdeclass="sref">2ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=rx_fram._size" class="sref">rx_fram._size6ta ( to(typ="+code=in_fram." class="sreresp="+code=in_framrespe=ur2atalen" class="sref">2aa ->2to(typ=">2a3E6466ta }1skc_pulla ->2to(typ=skc_pulla+code=scm.stL689t9tresp="+code=in_framrespe=urdeclass="sref">2ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=rx_fram._size" class="sheadns"+coam._finish6ta rx_headns"+coode=opd:'G p#L677t idstL677t class8"linet na8.stL647t>E6476ta 12eresp="+code=in_framrespe=ur2atalen" class="srefx_payload_len6ta x_p132ev6ta ->2to(typ="+code=ops" class="sref">ops6ta ->2to(typ="+code=rx_fram._size" class="stail"+coam._finish6ta rx_tail"+coode=opd:'G p#L677t idstL677t class8"linet na8.stL648t>E6486ta static 8oid 843E6496ta {12ev6ta , void * to(typ="+codeclass="sref">2ef6ta ->2to(typ="+code=status" class="sref".r3pletstcc_">context6ta ;1conte32eresp="+code=in_framrespe=uropd:'G p#L677t idstL677t class8"linet na8.stL650t>E6506ta 8struc853E6516ta 8struc85sched_wq" class="sredonst7L2to(typ="+codons3E6526ta 8 to(t85689t idstL689t class="linet kfreet7L2to(typ="+cokfree"+codclass="sref">2ef6ta ->2to(typ="+code=opd:'G p#L677t idstL677t class8"linet na8.stL653t>E6536ta 1cmd6ta ;1E6546ta 8 to(t85489t idstL689e=tru." class="sref">trc_fram._valid6ta c3E65>len6ta ;1E6566ta 8switc853E6576ta 8case 8:1ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+cod." class="sref">ta 2to(typ="+code=pG _std_get_cmd_cof">get_cmd_cod.6ta ( top="2t6.13E6586ta 8 85 26.13 class="string"coe=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2erep="+code=in_framrepe=ur, e=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2eresp="+code=in_framrespe=urpd:'G p#L640t idstL640t class8"linet na8.stL659t>E6596ta 8case 85 to(typ="+code=opd_222222222222222G _std_rx_fram._sresp"+coam._finish6ta resp"+coe=urpd:'G p#L640t idstL640t class8"linet na8.stL660t>E6606ta 8case 86 to(typ="+code=cmdt _std_rx_fram._size" clende sync_.r3plets_ext6ta ;1E6616ta 8 86 2to(typ="+code=opd_222222222222222'G class="sref">cmdr3pletstcc_">context6ta ;1conte3E6626ta 8 86689t pd:'G p#L685t idstL685t class8"linet na8.stL663t>E6636ta 8 86 e='G _cmdt class="sref">'G _cmd6ta * to(typ="+code=cmdt class="sref">cmd6ta = 2to(typ="+code=depd:'G p#L653t idstL653t class8"linet na8.stL664t>E6646ta 8 86489t idstL689G _std_rx_fram._src_fram._valid6ta c3E6656ta 8case 86t6.13E6666ta 8defau86="+code=fram." class="sref">sref">opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string">"Urb failure (status Sendre */2tand 0x, 2toxyp="+code=DUMP_PREFIX_NONE" clf">get_cmd_cod.6ta ( top="2t6.13E6676ta 8 863E6686ta 8 86="+code=fram." class="sref">d6ta ;1cmd6ta = 2to(typ="+code=de)declass="sref">2eGFP_KERNELa ->2to(typ=GFP_KERNEL13E6696ta 8 86p="+code=tx_u'G _rx_fram._is_cmd6ta = 2to(typ="+code=de)d:'G p#L677t idstL677t class8"linet na8.stL670t>E6706ta 8}1E6716ta 1E6726ta 8 to(t87689t idstL689t class="linet f6ta ->2to(typ="+code=status" class="sref".r_cmd_cod.6ta ( top6.13E6736ta 1urrep="+code=in_framrepe=urpd:'G p#L652t idstL652t class8"linet na8.stL674t>E6746ta 8 to(t87 goto to(typclass="sref">urf6ta ->2to(typ="+code=status" class="sref"resp="+code=in_framrespe=urb" class="sref">urresp="+code=in_framrespe=urpd:'G p#L652t idstL652t class8"linet na8.stL675t>E6756ta 8 to(t87="+code=print_hex_dump_2ebugf6ta ->2to(typ="+code=status" class="sref"resp"+coam._finish6ta resp"+coe=urb" class="sref">urresp"+coam._finish6ta resp"+coe=urpd:'G p#L652t idstL652t class8"linet na8.stL676t>E6766ta 8 87="+code=fram." class="sref">f6ta ->2to(typ="+code=status" class="sref".r3pletstcca ->2to(typ=.r3pletstcc"+co _std_get_cmd_cofr3pletstcca ->2to(typ=.r3pletstcc"+copd:'G p#L652t idstL652t class8"linet na8.stL677t>E6776ta 1context6ta ;1conte3context6ta ;1conte3E6786ta 8if (!873E6796ta 8 87="+code=checksum" class="sreinish"buildo(typpG _std_fram.6ta * to(tbuildo(typpG "+codclass="sref">2ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2t6.13urrep="+code=in_framrepe=uropd:'G p#L677t idstL677t class8"linet na8.stL680t>E6806ta 8 883E6816ta 8 88="+code=PN _STD_FRAME_POSTmuont_loc _std_rx_fram._imuont_loc code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="srp="2loc _std_rx_fram._ip="2loc e=uropd:'G p#L677t idstL677t class8"linet na8.stL682t>E6826ta 8}1E6836ta 1E6846ta 8if (!88="+code=opd_2de=PN _STD_FRAME_POSTrc_fram._valid6ta c32ev6ta , void * to(typ="+codeclass="sref">2erep="+code=in_framrepe=ur, e=scm.stL689t9tresp="+code=in_framrespe=urdeclass="sref">2eresp"+coam._finish6ta resp"+coe=uropd:'G p#L677t idstL677t class8"linet na8.stL685t>E6856ta 8 8 to(typ="+code=opd_2dev"_STD_FRAME_IDENrc_fram._valid6ta c3E6866ta 8 88 to(typ="+code=PN 222222222sched_wq" class="sreerrosfer_buffer6ta ;erros3E6876ta 8 883E6886ta 8 88 26.13 cl_STD_FRAME_IDENv6ta ->2to(typ="+code=interfac." class="srp="2pendre _std_rx_fram._ip="2pendre e=ur 1pd:'G p#L653t idstL653t class8"linet na8.stL689t>E6896ta 8}1cmd6ta ;1E6916ta 1E6916ta to(typ8"+cod891="+code=rx_ipd:'G p#L561t idstL561t class8"linet na8.stL6"line69S"+code=in 8ass=p893E5936ta 8 to(t89 _STD_FRAME_POSTsref">opd_2ev_dbg6ta (&2to(typ="+code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="sref">interfac.6ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string">"Urb failure (status , 2tos Qe=dere */2tand 0x, 2toxyp="+code=DUMP_PREFIX_NONE" cl__func__a , 26.13 class__func__13E5946ta 8if ( 89 goto to(typ="+code= _STD_FRAME_POSTf">get_cmd_cod.6ta ( top="2t6.13E5956ta 8 89t6.13E5966ta 1INIT_LIST_HEADmd_cod.6ta ( toINIT_LIST_HEADcode=2ev" class="sref">2ef6ta ->2to(typ="+code=status" class="sref"de=dea ->2to(typ=de=de3E5976ta 8retur89="+code=PN _STD_FRAME_IDENlist_add_taila ->2to(typ=list_add_tailcode=2ev" class="sref">2ef6ta ->2to(typ="+code=status" class="sref"de=dea ->2to(typ=de=de3"It it not the response to the last command"2t6de=dea ->2to(typ=;2t6de=de3E5986ta }1E5996ta 1E6006ta static 9to(ty903E6016ta {1E6026ta 9if ( 90689t idstL689t class="linet kfreet7L2to(typ="+cokfree"+codclass="sref">2ef6ta ->2to(typ="+code=opd:'G p#L677t idstL677t class9"linet na9.stL603t>E6036ta 9 90 to(t_wq" class="sreunloc _std_rx_fram._iunloc e=depd:'G p#L667t idstL667t class9"4inet na9.stL594t>E5946ta 9="2t690 goto to(typclass="sref">urmuont_unloc _std_rx_fram._imuont_unloc code=2ev" class="sref">2ev6ta ->2to(typ="+code=interfac." class="srp="2loc _std_rx_fram._ip="2loc e=uropd:'G p#L677t idstL677t class9"linet na9.stL605t>E6056ta 9if ( 90 to(typ="+coe=tru." class="sref">trc_fram._valid6ta c3E6066ta 9 90="+copd:'G p#L561t idstL561t class9"linet na9.stL607t>E6076ta 1E5986ta }12atasync_fram._valid6taize" clende">2atasync"+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+cod." class="sref">ta 2to(typ="+code=pG _std_get_cmd_cof">get_cmd_cod.6ta ( top="2t6.13E5996ta 1ursk">tra_wq6ta ;1tra=dev" class="sref">2erep="+code=in_framrepe=ur,d:'G p#L640t idstL640t class9"linet na9.stL610t>E6116ta 1E6116ta static 9to(ty91 2to(typ="+code=opd_222222222222222222'G class="sref">cmdr3pletstcc_">context6ta ;1conte3E6126ta {1E6136ta 9struc91 e='G _cmdt class="srsk">tra_wq6ta ;1tra=dev" class="sref">2eresp="+code=in_framrespe=urpd:'G p#L653t idstL653t class9"linet na9.stL614t>E6146ta 1E6156ta 9retur91to(typ="+codeG eclass="sref">2eresp"+coam._finish6ta resp"+coe=urv" class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="sheadns"+coam._finish6ta rx_headns"+coode= +d:'G p#L653t idstL653t class9"linet na9.stL616t>E6166ta 9 91 to(typ="+code=PN 222222222class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" classmax_iref">max_payload_len6ta max_iref">max_pode= +d:'G p#L653t idstL653t class9"linet na9.stL617t>E6176ta }12ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="stail"+coam._finish6ta rx_tail"+coode=pd:'G p#L653t idstL653t class9"8inet na9.stL618t>E6186ta 1E6196ta static 9to(ty91="+code=checksum" class="sreresp="+code=in_framrespe=urb" class="sref">ur;2toalloc6ruct skca ->2to(typ=;2toalloc6ruct skc"+codclass="sref">2eresp"+coam._finish6ta resp"+coe=urpeclass="sref">2eGFP_KERNELa ->2to(typ=GFP_KERNEL13E6206ta {1E6216ta 9struc92 2to(typ="+code=opd_2e=tru."TDOWN" class="sreENMEMxt6ta ;1E6226ta 1E6236ta 9retur92 _STD_FRAME_POSTrc_fram._valid6ta c32ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2t6.13urrep="+code=in_framrepe=ur, e=scm.stL689t9tresp="+code=in_framrespe=urdeclass="sref">2eresp"+coam._finish6ta resp"+coe=urdeclass="sref">2efr3pletstcca ->2to(typ=.r3pletstcc"+copd:'G p#L640t idstL640t class9"linet na9.stL624t>E6246ta }1cmdr3pletstcc_">context6ta ;1conte3len6ta ;1E6266ta static 92ruct92 to(typ="+code=PN 2class="sref">2ev6tpkfree_skca ->2to(typ=(typkfree_skca+code=scm.stL689t9tresp="+code=in_framrespe=uropd:'G p#L677t idstL677t class9"linet na9.stL627t>E6276ta 9.2to(923E6286ta 9.2to(92 to(typ="+code=tru." class="sref">trc_fram._valid6ta c3E6296ta 9.2to(9213E6306ta 9.2to(933E6316ta 9.2to(93"+code=inlinG _std_rx_fram._ss_ack6tendep="2async_fram._valid6taize" clendep="2async"+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+cod." class="sref">ta 2to(typ="+code=pG _std_get_cmd_cof">get_cmd_cod.6ta ( top="2t6.13E6326ta 1ursk">tra_wq6ta ;1tra=dev" class="sref">2erep="+code=in_framrepe=ur,d:'G p#L640t idstL640t class9"linet na9.stL633t>E6336ta 9.2to(93 2to(typ="+code=urb" llll_std_rx_fram._size" clende sync_.r3plets_ext6ta ;1E6346ta 9.2to(93 goto to(typ="+code================='G class="sref">cmdr3pletstcc_">context6ta ;1conte3E6356ta 9.2to(93="+copd:'G p#L621t idstL621t class9"linet na9.stL636t>E6366ta 9.2to(93="+code=fram.e='G _cmdt class="srsk">tra_wq6ta ;1tra=dev" class="sref">2eresp="+code=in_framrespe=urpd:'G p#L653t idstL653t class9"linet na9.stL637t>E6376ta 1E6386ta 9.2to(93o(typ="+code=d eclass="sref">2eresp"+coam._finish6ta resp"+coe=urv" class="sref">2ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="sheadns"+coam._finish6ta rx_headns"+coode= +d:'G p#L653t idstL653t class9"linet na9.stL639t>E6396ta 9.2to(93 to(typ="+code=opd_2rb" llll_std_rx_fram._sv6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" classmax_iref">max_payload_len6ta max_iref">max_pode= +d:'G p#L653t idstL653t class9"linet na9.stL640t>E6406ta };12ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="stail"+coam._finish6ta rx_tail"+coode=pd:'G p#L653t idstL653t class9"linet na9.stL641t>E6416ta 1E6426ta static 9to(ty94689t idstL689t class="linet resp="+code=in_framrespe=urb" class="sref">uralloc6skca ->2to(typ=alloc6skc"+codclass="sref">2eresp"+coam._finish6ta resp"+coe=urpeclass="sref">2eGFP_KERNELa ->2to(typ=GFP_KERNEL13E6436ta {1E6446ta 9retur94 goto to(typ="+code=e=tru."TDOWN" class="sreENMEMxt6ta ;1E6456ta 9 94t6.13E6466ta }1rc_fram._valid6ta c32ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2t6.13urrep="+code=in_framrepe=ur, e=scm.stL689t9tresp="+code=in_framrespe=urdeclass="sref">2eresp"+coam._finish6ta resp"+coe=urdeclass="sref">2efr3pletstcca ->2to(typ=.r3pletstcc"+copd:'G p#L640t idstL640t class9"linet na9.stL647t>E6476ta 1dr3pletstcc_">context6ta ;1conte3E6486ta static 9oid 94o(typ="+code=dev"_STD_FRAME_IDENrc_fram._valid6ta c3E6496ta {1E6506ta 9struc953E6516ta 9struc95 2to(typ="+coe=tru." class="sref">trc_fram._valid6ta c3E6526ta 9 to(t95689t pd:'G p#L610t idstL610t class9"linet na9.stL653t>E6536ta 1E6546ta 9 to(t95489t e>/* success */2t6.13t1<.13E65>len6ta ;1/* success */2t6.13t * ize" clendep="2directeasync"+3E6566ta 9switc953/* success */2t6.13t *"+3E6576ta 9case 9:1/* success */2t6.13t * The functionts6.ds a piority p=" directly2toot;2t=hip omitre t;2t=+cod3E6586ta 9 95 e>/* success */2t6.13t * de=de. It'soo(tynded2toobe used2by phainre mephanism ofoe=ce59tdt commandsod3E6596ta 9case 95 to(e>/* success */2t6.13t * w;2re t;2thost has2toorequest e9t y sre l2t=hunk ofo">2aobefore schedulre e=3E6606ta 9case 96 to(e>/* success */2t6.13t * nnte p=" from t;2tde=de.e=3E6616ta 9 96 2to(e>/* success */2t6.13t *6.13E6626ta 9 96689t e=inlinG _std_rx_fram._ss_ack6tendep="2directeasync_fram._valid6taize" clendep="2directeasync"+code=urb" class="sref">ur'G 6ta * to(typ="+code=dev" class="sref">2ev6ta , void * to(typ="+cod." class="sref">ta 2to(typ="+code=pG _std_get_cmd_cof">get_cmd_cod.6ta ( top="2t6.13E6636ta 9 96 2to(typ="+code=urb" llllllllllle=urb" class="sref">ursk">tra_wq6ta ;1tra=dev" class="sref">2erep="+code=in_framrepe=ur,d:'G p#L640t idstL640t class9"linet na9.stL664t>E6646ta 9 96 goto to(typ="+code=================e=opd_2_STD_FRAME_POSTize" clende sync_.r3plets_ext6ta ;1E6656ta 9case 96 to(typ="+code=opd_222222222222222222222222'G class="sref">cmdr3pletstcc_">context6ta ;1conte3E6666ta 9defau96="+copd:'G p#L621t idstL621t class9"linet na9.stL667t>E6676ta 9 96 2to(typ="+coe='G _cmdt class="srsk">tra_wq6ta ;1tra=dev" class="sref">2eresp="+code=in_framrespe=urpd:'G p#L653t idstL653t class9"linet na9.stL668t>E6686ta 9 96="+code=fram.e='G _cmdt class="sref">'G _cmd6ta * to(typ="+code=cmdt class="sref">cmd6ta = 2to(typ="+code=depd:'G p#L653t idstL653t class9"linet na9.stL669t>E6696ta 9 96p="+code=tx_u' _std_rx_fram._src_fram._valid6ta c3E6706ta 9}12ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="sheadns"+coam._finish6ta rx_headns"+coode= +d:'G p#L653t idstL653t class9"linet na9.stL671t>E6716ta 1E6716ta 1E6716ta 12ev6ta ->2to(typ="+code=in_urb" class="sref"s6ta ->2to(typ="+code=rx_fram._size" class="stail"+coam._finish6ta rx_tail"+coode=pd:'G p#L653t idstL659t class8"linet na8.stL679t>E6797ta 1E679sass="sref"O9E4od:'G p#L615t id p#L653tT85t class8216oxyp="+code=DUMP_PREFIX_NONE" class9"linet na9.stL654t>E6546ta 9 to(t954E1Tt;2to(typ=T p#L653t i216letstcc_">context6ta ;1cS9fer6ta ;erk9 class="sref">urresp"+co9m._fi97;12ev6ta , 26.13 class="string">"Urb failure (status Sendre */2tand 0x, 2toxyp="+code=DUMP_PREFIX_NONE" clf">get_cmd_cod.6ta ( top="2t6.13E669t>E6776ta91E6686ta 8 86="+(typ="+code=interfac." class="srp9 (!873dr3pletstcc_">context6ta ;1conte32eresp"+coam._finish6ta resp"+coe=urpeclass="sref">2eGFP_KERNELa ->7t idstL697t class8"linet na8.stL690t>E698"+coode= +d:'kca+code=scm.stL689t9tresp="+code1t idstL691t class8"linet na8.stL691t>E698ss9"linet na9.stL671t>E6716ta 1E6706ta 8}1E6726ta 8 to(t87689t idstL689t class="linet f6ta ->2to(typ="+code=status9ref">2ev69a , void * to(typ="+code9lass=98fram._is_cmresp="+code=in_frod.6ta ( top="2t6.13E6736ta 1E6 class8"linet na8.stL674t>E6746ta 8 to(t87 goto to(typclass="sref">urf6ta ->2to(typ="+code=status" class="sre9 8 9 8 to(typ="+code=opd_9dev"_986ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26652t class8"linet na8.stL675t>E6756ta 8 to(t87="+code=print_hex_dump_2ebugf6ta ->2to(typ="+code=status" class="sref"resp"+coam._finish6ta res9errosfer_9uffer6ta ;erros3E6766ta 8 87="+code=fram." class="sref">f6ta ->2to(typ="+code=status" class="sref".r3pletstcca ->2to(typ=.r3pletstcc"+co _std_get_cmd_cofr3pletstcc9->2to(9yp="+code=interfac." cla9s="sr99tic 9oid 94o(typ="+code=dev"_STD_FRA 8}1<9o88 to(typ="+code=opd_29STD_F99ldo(typpG _std_fram.6ta * e=status" class="sref".r3pletstcc_">context6ta ;1conte3context6ta ;1conte3E6786ta 8i9ef">cmd6t9 ;1E6916ta 1E6826ta 8}1E6836ta 1E6846ta 8if (!88="+code=opd_2d9opd_2ev_d9g6ta (&2to(typ="+cod9=2ev"9class="sref">2esp"+coe=urdeclass="sref">2efr3pletstcca - 8.2to(83="+code=fram." class="sref">(ty9ref">2ev69a , 26.13 class="string"9"99=ur,d:'G p#L640t i"2t694 2to(typ="+code=opd_222222222de=fram." class="sref">dr3pletstcc_">context6ta ;1conte3E6006ta static 9 idstL6779 class8"linet na8.stL5959>E5959ta 8 } else83="+code=fram." class="sref">(ty9r 8 97t>E5976ta 8retur99="+c99D_FRAME_IDENrc_fram._valid6ta c32ev6ta , 26.13 class="string"p#L621t idstL621t class9"linet na9.stL667t>E6676ta ->2to(9yp=list_add_tailcode=2ev9 clas9="sref">2ef6takca+code=scm.stL689t9tresp="+cod10"It 10&quoist_add_tailcode=2ev10&qu>10&qcmd_co/pre>a+code=scm.stL689t9tresp="+cod10&1uot;It 10&88 to(typ="+code=opd_210&88>10&615t idstL615t class9"linet na9.stL649t>E6496ta {110&ree_skca+code=scm.stL689t9tresp="+cod10&3uot;It 10& idstL653t class8"linet10& i>10&ss9"linet na9.stL671t>E6716ta 1wq_etstcc;2to(t(e>/* success */2t6.13t * nwork_ succe="sref".r3pletswork_ succedefau96="+copd:'G work="sref".r3pletsworkL615t id p#L653tT85t class8216oxyp10&5uot;It 10& , 26.13 class="string"10& ,>10& sync_.r3plets_epG _std_get_cmd_cof10&6uot;It 10&toxyp="+code=DUMP_PREFI10&to>10&'G p#L640t idstL640t class9"linente p=" from t;2tde=de.e=32ev6ta nte p=" from t;2tde=de.e=3context6;2to(tywork="sref".r3pletsntext6;2to(tyworkss9"linet na9.stL600t>E6006ta static 10&7uot;It 10&class8"linet na8.stL59510&cl>10&od:'G p#L615t idstL615t class9"linet na9.stL635t>E6356ta 9.2to(93="+copd:'G 10&8uot;It 10&t>E5976ta 8retur10&t>>10&_iref">max_pode= +d:'G p#L653t id10&9uot;It 10&p=list_add_tailcode=2ev10&p=>10&" class="srefx_payload_len6ta x_p132ev6ta ->2tot>E6636ta 9 96inet na9.stL663t>E6636ta 9 96"2t688 'G _rx_fram._is_cmv6ta -linet na9.stL600t>E6006ta static 101quot;It 10" class="sref">ta 2to(t10" c>10" ass="sref">2esp"+coe=urdeclass="sref">2efr3pletstcca - !=ass="sref">2eresp"INPROGRESS._finish6ta resINPROGRESSL615t id p#L653tT85t class8216oxyp1011uot;It 10 class="sref">2erep="+co10 cl>10"etstcc_">context6ta ;12ef6ta ->2to(typ="+code=owork="sref".r3pletsntexworkss9"linet na9.stL600t>E6006ta static 1012uot;It 10ets_ext6ta ;110"ree_skca+code=scm.stL689t9tresp="+cod1013uot;It 10->2to(typ=.r3pletstcc10-&g>10"ss9"linet na9.stL671t>E6716ta 1c10;1<>10"4ore schedula9.ststd_fram.6ta * wq_ets="sref".r3pletstcc_">wq_ets(e>/* success */2t6.13t * nwork_ succe="sref".r3pletswork_ succedefau96="+copd:'G work="sref".r3pletsworkL615t id p#L653tT85t class8216oxyp1015uot;It 10dstL685t class9"linet na10dst>10" sync_.r3plets_epG _std_get_cmd_cof1016uot;It 10/opd:'G p#L653t idstL10/op>10"'G p#L640t idstL640t class9"linente p=" from t;2tde=de.e=32ev6ta nte p=" from t;2tde=de.e=3contexwork="sref".r3pletsntexworkss9"linet na9.stL600t>E6006ta static 1017uot;It 10dns"+coam._finish6ta rx10dns>10"#L640t idstL640t class9"linet na9.sinet na9.stL666t>E6666ta 9defau96="+copd:'G p#L621t idstL621t class9"linet na9.stL667t>E6676ta 10"8uot;It 10ax_iref">max_payload_len10ax_>10"t>E6366ta idstL615t class9"linet na9.stL635t>E6356ta 9.2to(93="+copd:'G 1019uot;It 10ss9"linet na9.stL617t>E610ss9>10"9s9"linet na9.stL671t>E6716ta 11061 class="srefx_payload_len6t to(tbuildo(typpG "+codclass="sref">2ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2t6.13urrep="+code=in_framrepe=uropd:'G p#L61061uot;It 10r;2toalloc6ruct skca -&g10r;2>106_iref">max_pode= +d:'G p#L653t id1062uot;It 10FP_KERNEL13106"+coode= +d:'esp"+coe=urdeclass=inet empty32ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2=dea ->2to(typ=de=de3(ty1063uot;It 10(t9p="2t92to(typ="+codeG10(t9>106x_fram._ss_ack6tendep, void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2t>E6866ta 8 88 to(typ="+code= 8 86689t pd:'G p#L61064uot;It 10easync"+codclass="sref">10eas>106 p#L677t idstL677t class8"linet na8. 9if ( 90689t idstL689t class="linet kfreet7L2to(typ="+cokfree"+codclass="sref">2ef6ta ->2to(typ="+code=opd:'G p#L677t idstL677t class9"linet na9.stL603t>E6036ta 1065uot;It 10e=urdeclass="sref">2eres10e=u>106=ur,d:'G p#L640t it clas9"linet na9.stL603t>E6036ta 1066uot;It 10 idstL640t class9"linet 10 id>106'G p#L640tkca+code=scm.stL689t9tresp="+cod1027uot;It 10s9"linet na9.stL6o(typ6210s9">106;11066ta ->2to(typ="+code=2ev" class="sref">2ev6ta , 26.13 class="string"inet firet entry32ev6ta , void * to(typ="+codeclass="sref">2ef6tget_cmd_cod.6ta ( top="2=dea ->2to(typ=de=de32ev6ta nte pna9.stL666t>E6666ta 9defaofr3pletstcc_">co_FRAME_POSTf">get_cmd_cod.6ta ( top="2t6.131069s9"linet na9.stL671t>E6716ta 110spta ->2to(typ="+code=2ev"inet destL656t class8"linet desf">2ev6ta , void * to(typ 8if ( 89 goto to(typ="+code= _STD_FRAME_POSTf">get_cmd_cod.6ta ( top="2t6.1310s_iref">max_pode= +d:'G p#L653t id1032uot;It 10>E6316ta 9.2to(9310>E610s_12ef6ta ->2to(typ="+code=opd:'G p#L677t idstL677t class9"linet na9.stL603t>E6036ta 10657ot;It 10(t class="sref">ta 2to(ty(t cls_1<9"linet na9.stL671t>E6716ta 12erep="+codeaclas_1E6826ta 8}1E6836ta 1E6726ta t;2to(typ="+code=+code=de)d:'G p#L677t idstL677t class8"lline_ip="2pendre e=uroopd:'G p#L685t idstL6L652t idstL652t class8"linet na8.stL676t>E6 class8"linet na8.stL674t>E6746ta "linet na9.stL603t>E6036ta 10657ot;It 10e=ts_ext6ta ;12efr3pletstcca -&g8.2to(83="+code=fram." class="sref">(ty9r_1E6246ta }1cmdr3pletstcc_">contex+code=de)d:'G p#L677t idstL677t class8"llinet na8.stL672t>E6726ta "linet na9.stL603t>E6036ta 10657ot;It 10s9cons9cmdr3pletstcc_">contex+code=de)d:'G p#L677t idstL677t class8"llineta ;1conte3E6006ta static 9 _1E6476ta 1E6036ta 10664ot;It 10sps"+coam._finish6ta rx_hsps"+>sps" p#L640tkca+code=scm.stL689t9tresp="+cod10274ot;It 10(9_iref">max_payload_len6t(9_ir>spsref">max_pode= +d:'G p#L653t id10324ot;It 10>E9"linet na9.stL640t>E640>E9"l>spsto(9yp="294 to(typ="+code 'G p#L615t idstL615t class8"linet na8.stL68ass="sref">2ev6ta , 26.13 class="string"p#L621t idstL621t class9"linet na9.stL667t>E6676ta -spsot;It 10(t3sps3_skca+code=scm.stL689t9tresp="+cod10134ot;It 10ea" class="sref">uralloc6sea" c>sps4ef">max_pode= +d:'G p#L653t id10324ot;It 10e=_KERNEL13sps5e scheass="sref">2ev6ta nte pna9 9 677t idstL6et na9.stL663t>E6636ta 9 677t idstL626.13"+code=fram." class="sref">(ty9r_14ot;It 10 i9p="2t94 'G i9p=>sps p#L640t idstL640t class9"linet na9.stL634t>E6346ta 9.2to(93 goto to(typ="+code================='G class="sref">cmdr3pletstcc_">cospsot;It 10s9sync"+codclass="sref">2es9syn>sps640t idstL640t class9"linet na9.sin 96"ioinet na8.stL674t 96"ioi40t ito(typ="+code 'odet; p#L615t idstLodeG class="sref">cmdr3pletstcc_">cospsot;It 10frurdeclass="sref">2eresp"frurd>spsFRAME} class="sref">cmdr3pletstcc_">cospsot;It 10tpdstL640t class9"linet natpdst>sps9"linet na9.stL671t>E6716ta 1E6486sp"li>sp"le schedula9 e=3E6636ta 9 96"2t688 uccess */2t6.13t * nnte p=" from t;2tde=de.e=3E6646ta _ara 8 8_arana9.set na9.stL671t>E6716ta 1sp"repe=ur,d:'G p#L640t idstL640t clast idstL640t class9"linet na9.stL634t>E6346ta 9.2to(93 goto to(typ="+code================='G id p#L653tT85t class8216oxyp10155ot;It 10>Ekfree_skca ->2to(typ=>Ekfr>sp"nc_.r3plets_epG _std_get_cmd_cofr3psp"ot;It 10(te=uropd:'G p#L677t id(te=u>sp" p#L640t idstL640t class9"linet ne pna9 9 677t idstL6et na9.stL663t>E6636ta 9 677t idstL626.133 goto to(typ="ara 8 8arana9.1cmdr3pletstcc_">cosp5ot;It 10ea53sp"4ef">max_pode= +d:'G p#L653t id10325ot;It 10e=ef">trc_fram._valid6ta ce=ef">sp" _std_get3 code="ara 8 8arana9.G p#L653t idstL653t class8"linet na8.stL673t>E6736ta 1E6 iss9>sp"am._is_cmresp="+code=in_frod. 96inet na9.stL663t> 96"2t688 et7L2to(typ="+cokfreara 8 8arana9.G p#L653t idstL65'odet; p#L615t idstLodeG net na9.stL600t>E6006ta static 9 _15ot;It 10s9 9 to(t95489t e>/* s9 >sp"sp"5t idstL615t class9" 8 86689t pd:'G p#L610645ot;It 10tp9:1/* success */2ttp9:1>sp"e_skca+code=scm.stL689t9tresp="+code=106ot;It 10sp e>/* success */2t6.13tsp e>sp t9(typ=925o(typ="+codeGG _STD_FR10686ot;It 10(959t class9"linet na9.stL(959t>sp 96ta 9case 95 to(e>/* "linet na9.stL65ta 9 to(t95689t pd:'G p#L610t idsp ot;It 10>E e9t y sre l2t=hunk ofo">E e9>sp 26ta 9case 95 to(e>#L684t idstL684t class9"linet na9.stL654sp ot;It 10(t9 96689t e=inlinG (t9 >sp 36ta 9case 95 to(e>#L Please notirectl726 pata 2to(typ="+codea"sr>sp class9"linet na9.stL651t>E6#L limit a number 'G ass9"valueitc95rp aaL659sss *t6.13allerofoe=ce59tdt commandsod32erep="+code=in_fre=sre>sp G p#L653t idstL653t class9foe=ce59tdt commandsod3sp to(ty9="2t6953sp */2t6.13t1<.13confrsp t class9"linet na9.stL656t>E65 2. negaL6veitc13ase 'G t893< du"lin RX path G l726 should/not/* s._iudfoe=ce59tdt commandsod3sp65he functionts6.ds a piority pppppas 9 96 cbofoe=ce59tdt commandsod3sp696ta 9case 95 to(e>/*foe=ce59tdt commandsod3Ens"+coam._finish6ta rx_>Ens">sp626ta 9case 95 to(e>#L 3."valtL6potc95ritc13ase 'G succesfult RX pathfoe=ce59tdt commandsod3sp636ta 9case 95 to(e>#Lfoe=ce59tdt commandsod3E6#L A13allerot;2t=hicheck a ass9"valueiwith IS_ERR macro. If*t6.1titrepna9,foe=ce59tdt commandsod3sp6G p#L653t idstL653t class9"rectl72ass9eL6potc95rits"valtLofoe=ce59tdt commandsod3sp6to(ty9="2t6953urresp"+co9ms9las>sp6*/2t6.13t1<.13sp6class9"linetdstL640t class9"linet na9.stL634t>E6346ta 9.2to(93 goto to(typ="linet na9.stL65ta et na9.stL663t>E6636ta tL65ta * success */2t6.13t * nnte p=" from t;2tde=de.e=3E6616ta 9 96 2to(e>/* success */2t6.13t *6.13E662sp6ot;It 10tpto(ty8="2t687="+code=P9 tpto(>sp6G _std_rx_fram._size" clende">2atasytL640t clast idstL640t class9"linet na9.stL634t>E6346ta 9.2to(93 goto to(typ="+ct na8.stL672t>E6726ta "t class9"linet na9.stL662t>E662sp8ot;It 10sp'G p#L619t idstL6199 sp'G >sp'Gc_.r3plets_epG _std_get_cmd_cofr3psp8ot;It 10(9=checksum" class="srei9i(9=ch>sp'repe=ur,d:'G idstL615t class9"linet na9.stL635t>E6356ta 9.2to(93="+copd:'G 10198ot;It 10>E class8"linet na8.stL690>E cl>sp'to(9yp="294 stL640t class9"linet ne pna9 9 677t idstL6et na9.stL663t>E6636ta 9 677t idstL626.13to(typ="+cokfreara 8 8arana9.ta 9.2to(93="+copd:'G 10198ot;It 10(t class8"linet na8.stL691(t cl>sp'9"linet na9.stL671t>E6716ta 1E643sp'ot;It 10 i, void * to(typ="+code9l i, v>sp'am._is_cmresp="+code=in_framrespe=urod:'G p#L677t idstL677t class9E6636ta tL6592 to(typ="+code=tru." class="sref">trc_fram. 'G _rx_fram._is_cmv6ta ->2to(typ="+code=+coepd:'G p#L653t idstL653t class9"linet na9.stL645t>E6456ta 9 9t class9"linet na9.stL643t>E643sp'ot;It 10s9oe=uropd:'G p#L677t9is9oe=>sp'oid * to(typ="+codeclass="sref">2ef6t6.13E6636ta 9 96"2t688reet7L2to(typ="+cokfreara 8 8arana9.net na9.stL600t>E6006ta static 9 _18ot;It 10fr8 to(typ="+code=opd_9dfr8 >sp'inish6ta resp"+coe=urdeclass="sref">2efr3pletstcca ->3"+code=fram." class="sref">(ty9r_18ot;It 10tpfer6ta ;erros3sp't>E6476ta 1dr3pletstcc_">context6t na8.stL672t>E6726ta "linet na9.stL603t>E6036ta 10659ot;It 10sp="+code=interfac." cla9ssp="+>sp=">E6476ta 1contextef">2efr3pletstcca ->linet na9.stL603t>E6036ta 10659ot;It 10(98 to(typ="+code=opd_29S(98 >sp=repe=ur,d:'G a+code=scm.stL689t9tresp="+code=109ot;It 10>E1E1sp=md_cod6ta = 2to(typ="+code=depd:'9 sp=ot;It 10(tidstL653t class8"linet9n(tids>sp=0t>E6916ta 1sp=4ef">max_pode= +d:'G p#L653t id10329ot;It 10e=, 26.13 class="string"9&e=, 2>sp= _std_get3 clas9"2t694 2to(typ="+ara 8 8arana9..p#L653t idstL65"2t687 _STD_FRAME_POSTf6ta ->2to(typ="+cod96sp9ot;It 10 ioxyp="+code=DUMP_PREFI9_ ioxy>sp=6_skca+code=scm.stL689t9tresp="+code=109ot;It 10s9lass8"linet na8.stL5959>s9las>sp=E5976ta 8retur99fr>E5>sp=class9"linet.ststd_fram.6ta * wqss="sr 96inet na9.stL663t>E6636ta 96"2t688 uccess */2t6.13t * nntur222222de=fram." ur22to(93 goto to(typ="ur222222de=fram." ur22to("t class9"linet na9.stL662t>E662sp9ot;It 10tp=list_add_tailcode=2ev9 tp=li>sp=9c_.r3plets_epG _std_get_cmd_cofr3ps1uot;It 10&1uoist_add_tailcode=2ev10&1u>10&10">E6476ta 1E6766tef".r3pletstcca ->2etstcc"+co _std_get_cmd_cofr3pletstcc9-&101t;It 10&1u to(typ="+code=opd_29S(18>10&10ref">max_pode= +d:'G p#L653t id1031uot;It 10&1110&10to(9yp="294 switch+coe=urdeclass="sur222222de=fram." ur22to(net na8.stL676t>E6769"liutL615t class9"li9"liut ->3"+code=fram." class="sref">(ty9r_1uot;It 10&1idstL653t class8"linet10&1i>10&100t>E6916ta 1<3ase 0:+code=fram." class="sref">(ty9r_1u4t;It 10&1ia (&2to(typ="+cod9=e1t>10&10#L677t idstL677t clasbreak; 9case 95 to(e>/* success6* success */2t6.13t * w;2re t;2thost hass1uot;It 10&1, 26.13 class="string"10&1,>10&105t>E6916ta 1<3ase ="sref">2eresp"INCONNRESET na8.stL672t>E6ECONNRESETt>E6:+code=fram." class="sref">(ty9r_1u6t;It 10&1,xyp="+code=DUMP_PREFI9_ 1o>10&1G p#L640t i3ase ="sref">2eresp"INNOENT na8.stL672t>E6ENOENTt>E6:+code=fram." class="sref">(ty9r_1u7t;It 10&1,ass8"linet na8.stL5959>s1l>10&10oid * to(typ="+codecl2t92 goto to(t="s_clasdba 8 8="s_clasdbat688 et7L2to(typ="+cokfre'G p#L615t idstL615t class8"linet na8.stL6tc95rfacnet na9.stL663t>tc95rfacnna9.G p#L653t idstL65' _rx_fram._is_cmv6ta ->+code=fram." class="sref">(ty9r_1u8t;It 10&1,E5976ta 8retur99f1>>10&10FRAME_IDENrc_fram._vatyp="+codecl2 9case dst6ta >"59t ur2ot;2tbeen stopped (9"liut %d)"successt+code=fram." class="sref">(ty9r_1u9t;It 10&1,list_add_tailcode=2ev9 t1=>10&10G _std_rx_fram._size" clende">2oe=urdeclass="sur222222de=fram." ur22to(net na8.stL676t>E6769"liutL615t class9"li9"liut ->o _std_get_cmd_cofr3pletstcc9-&1uot;It 10"1class="sref">ta 2to(t10"1c>10"11">E6476ta 12erep="+co10 1l>10"1tstcc_">contex3ase ="sref">2eresp"INSHUTDOWN na8.stL672t>E6ESHUTDOWNt>E6:+code=fram." class="sref">(ty9r_1uot;It 10e1s_ext6ta ;110"11to(9yp="294 default:+code=fram." class="sref">(ty9r_1uot;It 10&1gt;2to(typ=.r3pletstcc10-1g>10"11fram._ss_ack6tendep, void * to(typ="="s_claserr 8 8="s_claserrt688 et7L2to(typ="+cokfre'G p#L615t idstL615t class8"linet na8.stL6tc95rfacnet na9.stL663t>tc95rfacnna9.G p#L653t idstL65' _rx_fram._is_cmv6ta ->+code=fram." class="sref">(ty9r_1uot;It 10;1c10;1<>10"11std_get_cmd_cof">get_cmd_cod.6ta 2 9case dst6ta >"Ur2ofailure (9"liut %d)"successt2oe=urdeclass="sur222222de=fram." ur22to(net na8.stL676t>E6769"liutL615t class9"li9"liut ->o _std_get_cmd_cofr3pletstcc9-&1uot;It 10&1tL685t class9"linet na10d1t>10"115t>E6916ta 110"116_skca+code=scm.stL689t9tresp="+code=11uot;It 10d1s"+coam._finish6ta rx10d1s>10"11max_payload_len10a1_>10"11class9"linet.ststd_fram.6ta * wqabort9.stL666t>E6666ta abort9.st * success */2t6.13t * nnte p=" from t;2tde=de.e=3E6616ta gfpinet na9.stL663t>gfpin26.13to(typ="+cokfreflagtL615t class9"liflagt2to("t class9"linet na9.stL662t>E662s1uot;It 10s19"linet na9.stL617t>E610s19>10"119c_.r3plets_epG _std_get_cmd_cofr3ps1uot;It 10619t idstL619t class9"li10619>1061 class="srefx_p 9case 95 to(e>/* ACR122U does/not/support any 95 and which+aborts 9catsuccess */2t6.13t * w;2re t;2thost hass1uot;It 10r12toalloc6ruct skca -&g10r12>1061296ta 9case 95 to(e>/////////* issued 95 and i.e.pas ACK for standard PNost Addi"ioially,foe=ce59tdt commandsod31061226ta 9case 95 to(e>#////////* it/* haves/stange,t cla13t broken oritccore 969t idstL65,foe=ce59tdt commandsod31061236ta 9case 95 to(e>#////////* when w.13ancel ur2ob59t idn6ta ;110e1s>10612class9"linet na9.stL651t>E6#////////* success */2t6.13t * w;2re t;2thost hass1uot;It 10e1urdeclass="sref">2eres10e1u>10612inish6ta resp"+coe=urdeclass="s'G p#L615t idstL615t class8"linet na8.stL6L61ice_typet; p#L615t idstL61ice_typenat;2tto(typ="+code=staPNost_DEVICE_ACR122Ut; p#L615t idstPNost_DEVICE_ACR122U2to("t class9"linet na9.stL662t>E662s1uot;It 10 1dstL640t class9"linet 10 1d>10612t>E6246ta }1E6036ta 1061uot;It 10s1"linet na9.stL6o(typ6210s1">106111061ta ->2to(typ 9case 95 to(e>/* An acktwillt3ancel n6ta9cat issued 95 and * success */2t6.13t * w;2re t;2thost hass1uot;It 10s1kfree_skca ->2to(ty10t1k>10612class="srefx_payload_len6ta E6636ta aG p#L677t idstE6636ta aG fram. 'G _rx_fram._is_cmv6ta ->2to(typ="+code=flagtL615t class9"liflagt2to("linet na9.stL603t>E6036ta 1061uot;It 10s1e=uropd:'G p#L677t 10s1e>10s13 t9(typ=925o(typ="+codeGG _STD_FR1061uot;It 10(12310s131 ->2to(typ 9case 95 to(e>/* 3ancel n6taur2op omitre* success */2t6.13t * w;2re t;2thost hass1uot;It 10>16316ta 9.2to(9310>1610s_1E6036ta 1061uot;It 10&1 class="sref">ta 2to(ty(1 cls_133_skca+code=scm.stL689t9tresp="+cod10113ot;It 10e1class="sref">2erep="+code1clas_134ef">max_pode= +d:'G p#L653t id10317ot;It 10e1ts_ext6ta ;1E6346ta 9.2to(93 goto to(typ="linet "+code=in_urb" class="srlinet "+code=in * success */2t6.13t * nnte p=" from t;2tde=de.e=3E662s1cons1E6656ta 9case 96 to(typ="+code=opd_22=in_urb" class="sr=in * linet na9.stL603t>E6036ta 1061uot;It 10f1tL621t class9"linet na9.f1tL6s_13ref">max_pode= +d:'G p#L653t id10&1E6696ta 9t 96p="+code=tx_u' _std_rx_fram._src_fram._va114ot;It 10s1s"+coam._finish6ta rx_hs1s"+>s14">E6476ta 1max_payload_len6t(1_ir>s14repe=ur,d:'G p#L640t idstLto(typ="+code=rnet na9.stL671t>E6716ta 1E6716ta 1E669ts14ot;It 10>19"linet na9.stL640t>E640>19"l>s14md_cod6ta = 2to(typ="+code=depd:'9 s1sot;It 10(13s14fram._ss_ack6p"+coe=urdeclass="s=in_urb" class="sr=in * "t class9"linet na9.stL662t>E662s14ot;It 10e1" class="sref">uralloc6se1" c>s14#L677t idstL677t class8"linet na8. =in7t iervet; p#L615t idstnin7t ierve>2to(typ="+code=r=in_urb" class="sr=in * et_cmd_cod.6ta ( net na9.stL671t>E6716ta 1E6696ta 9t 96p="+code=t7t class8"linet na8.stL667t>E669ts14ot;It 10e1_KERNEL13s14tL677t class9"linet na9.stL643t>E643s14ot;It 10 19p="2t94 'G 19p=>s1s p#L640t iclas9"2t694 2to(typ="+=in_urb" class="sr=in * linet na9.stL603t>E6036ta 1061sot;It 10s1sync"+codclass="sref">2es1syn>s1s640t a+code=scm.stL689t9tresp="+cod1011sot;It 10f1urdeclass="sref">2eresp"f1urd>s14ref">max_pode= +d:'G p#L653t id10&1sot;It 10t1dstL640t class9"linet nat1dst>s1s9"linstL640t class9"linet ne pna9target_type_a_urb" class="srlinet target_type_a p#_epG _std_get_cmd_cofr3pletstc_15ot;It 10s1"linet na9.stL648t>E6486s1"li>s15a ->2to(typ="+code=2ev"in__bepd:'G p# 8__bepd26.13to(typ="+cokfrea s7t i_urb" class="sr= s7t i * linet na9.stL603t>E6036ta 10615ot;It 10(1am._valid6ta c3s15o(typpG _std_fram.6ta * 9 96 2to(e>/* success */2t6.1sel7t i_urb" class="sr= l7t i * linet na9.stL603t>E6036ta 10615ot;It 10>1kfree_skca ->2to(typ=>1kfr>s15to(9yp="294 to(typ="+code u 9 96 2to(e>/* success */2t6.1603ityp="+code=in_urb" c603ityp=" * linet na9.stL603t>E6036ta 10615ot;It 10(1e=uropd:'G p#L677t id(1e=u>s150t>E6916ta 1/* success */2t6.1603itydata_urb" class="sr603itydatae>/*[]linet na9.stL603t>E6036ta 10615ot;It 10e153s1"4ef">}to883E6666ta p#acket * linet na9.stL603t>E6036ta 10615ot;It 10e1ef">trc_fram._valid6ta ce1ef">s15tL677t class9"linet na9.stL643t>E643s1"ot;It 10 1ss9"linet na9.stL653t>E6 1ss9>s1"am._it class9"linet na9.stL643t>E643s1"ot;It 10s1 9 to(t95489t e>/* s1 >s1"E6666ta PNost_TYPE_A_SENS_RES_NFCID1>2to(typ="+code=rxL666t>E6666ta x ->3(coe=urdeclass="su 9 96 2to(e>/*)(coe=urdeclass="sbepd_to_cpu 9 96 2tbepd_to_cpu>2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x00C0t3e'G l6)"t class9"linet na9.stL662t>E662s15ot;It 10f1c"+3s1"5t id#def954o(typ="+code=staPNost_TYPE_A_SENS_RES_SSDL666t>E6666ta PNost_TYPE_A_SENS_RES_SSD>2to(typ="+code=rxL666t>E6666ta x ->3(coe=urdeclass="su 9 96 2to(e>/*)(coe=urdeclass="sbepd_to_cpu 9 96 2tbepd_to_cpu>2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x001Ft3e'G l0)"t class9"linet na9.stL662t>E662s15ot;It 10t19:1/* success */2tt19:1>s1"e_skc#def954o(typ="+code=staPNost_TYPE_A_SENS_RES_PLATCONFL666t>E6666ta PNost_TYPE_A_SENS_RES_PLATCONF>2to(typ="+code=rxL666t>E6666ta x ->3(coe=urdeclass="su 9 96 2to(e>/*)(coe=urdeclass="sbepd_to_cpu 9 96 2tbepd_to_cpu>2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x0F00t3e'G l8)"t class9"linet na9.stL662t>E662s16ot;It 10s1 e>/* success */2t6.13ts1 e>s1 t9(typ=925o(typ="+codeGG _STD_FR10616ot;It 10(159t class9"linet na9.stL(159t>s1 96ta #def954o(typ="+code=staPNost_TYPE_A_SENS_RES_SSD_JEW.13/* 0x00yp=925o(typ="+codeGG _STD_FR10616ot;It 10>1 e9t y sre l2t=hunk ofo">1 e9>s1 26ta #def954o(typ="+code=staPNost_TYPE_A_SENS_RES_PLATCONF_JEW.13/* 0x0Cyp=925o(typ="+codeGG _STD_FR10616ot;It 10(19 96689t e=inlinG (19 >s169"linet na9.stL671t>E6716ta 1ta 2to(typ="+code1"sr>s1 class#def954o(typ="+code=staPNost_TYPE_A_SEL_PROT na8.stL672t>E6PNost_TYPE_A_SEL_PROT>2to(typ="+code=rxL666t>E6666ta x ->3(c2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x60t3e'G l5"t class9"linet na9.stL662t>E662s16ot;It 10e1sref">2erep="+code=in_fre1sre>s1 G #def954o(typ="+code=staPNost_TYPE_A_SEL_CASCADE na8.stL672t>E6PNost_TYPE_A_SEL_CASCADE>2to(typ="+code=rxL666t>E6666ta x ->3(c2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x04t3e'G l2"t class9"linet na9.stL662t>E662s16ot;It 10 1ta ;1s16am._it class9"linet na9.stL643t>E643s1 ot;It 10s1(typ=.r3pletstcc"+copd:'s1(ty>s16E6PNost_TYPE_A_SEL_PROT_MIFAREe>/* 0t class9"linet na9.stL643t>E643s1 ot;It 10f1conf1s165t id#def954o(typ="+code=staPNost_TYPE_A_SEL_PROT_ISO1444" from t;2tde=dePNost_TYPE_A_SEL_PROT_ISO1444"e>/* 1t class9"linet na9.stL643t>E643s1 ot;It 10t1(typ="+coe='G _cmdt clt1(ty>s16e_skc#def954o(typ="+code=staPNost_TYPE_A_SEL_PROT_DEP from t;2tde=dePNost_TYPE_A_SEL_PROT_DEPe>/* 2t class9"linet na9.stL643t>E643s17ot;It 10s1653t class9"linet na9.sts1653>s165he f#def954o(typ="+code=staPNost_TYPE_A_SEL_PROT_ISO1444"_DEP from t;2tde=dePNost_TYPE_A_SEL_PROT_ISO1444"_DEPe>/* 3t class9"linet na9.stL643t>E643s17ot;It 10(1opd:'G p#L653t idstL6(1opd>s17ref">max_pode= +d:'G p#L653t id10317ot;It 10>1ns"+coam._finish6ta rx_>1ns">s1626ta 9"linetoe=urdeclass="sbooL656t class8"linbooLe>/* success */2t6.1linet target_type_a_is_valtL_urb" class="srlinet target_type_a_is_valtL * success */2t6.13t * nnte p="9target_type_a_urb" class="srlinet target_type_a p#yp="+code=opd_22type_a_urb" class="srtype_a pt+code=fram." class="sref">(ty9r_17ot;It 10(1+d:'G p#L653t idstL65(1+d:>s17fram._ss_ack6tendep, e40t class9"linet target_data9t>E6696ta 9target_data9t>E * "t class9"linet na9.stL662t>E662s17ot;It 10e1 i8E class="ssssss9t>E67e1 i8>s16class_epG _std_get_cmd_cofr3pletstc_17ot;It 10e13s17 _std_get3 code=" 9 96 2to(e>/* success */2t6.1ssL_urb" class="srssL * linet na9.stL603t>E6036ta 10617ot;It 10 1PREFIX_NONE" class9"line 1PRE>s17am._is_cmresp="+code=in_fram 9 96 2to(e>/* success */2t6.1platcon6656ta 9cplatcon6 * linet na9.stL603t>E6036ta 10617ot;It 10s1lass="sref">urresp"+co9ms1las>s17s17inish6ta resp"+coe=urdeclass="starget_data9t>E6696ta 9target_data9t>E * 8.2to(nizeofsuccess */2t6.13t * nnte p="9target_type_a_urb" class="srlinet target_type_a p)"t class9"linet na9.stL662t>E662s16ot;It 10t1to(ty8="2t687="+code=P9 t1to(>s16G _std_rx_fram._sizclas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 10618ot;It 10s1'G p#L619t idstL6199 s1'G >s18 t9(typ=925o(typ="+codeGG _STD_FR10618ot;It 10(1=checksum" class="srei9i(1=ch>s181 ->2to(typ 9case 95 to(e>/* 59t t>Eghticheck of 603it[] and ats[] are/not/* 13t performed/* cauL6 ccess */2t6.13t * w;2re t;2thost hass18ot;It 10>1 class8"linet na8.stL690>1 cl>s1826ta 9case 95 to(e>#////////"rectlvalues are/not/* 13t uL6d * success */2t6.13t * w;2re t;2thost hass18ot;It 10(1 class8"linet na8.stL691(1 cl>s1'9"linet na9.stL671t>E6716ta 1/* Require to( 4.6.3.3 from NFC Forum Digital Spec * success */2t6.13t * w;2re t;2thost hass18ot;It 10e1RAME_POSTrc_fram._vali96e1RAM>s18 _std_get3 code="ssL_urb" class="srssL * v6ta ->2to(typ=PNost_TYPE_A_SENS_RES_SSDL666t>E6666ta PNost_TYPE_A_SENS_RES_SSD>2to(typ="+code=rtype_a_urb" class="srtype_a pnet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts1'ot;It 10 1, void * to(typ="+code9l 1, v>s1'am._is_cmresp="+code=in_framplatcon6656ta 9cplatcon6 * v6ta ->2to(typ=PNost_TYPE_A_SENS_RES_PLATCONFL666t>E6666ta PNost_TYPE_A_SENS_RES_PLATCONF>2to(typ="+code=rtype_a_urb" class="srtype_a pnet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts1'ot;It 10s1oe=uropd:'G p#L677t9is1oe=>s18s1't>E6476ta 1/*) ||yp=925o(typ="+codeGG _STD_FR10619ot;It 10s1="+code=interfac." cla9ss1="+>s1=">E6476ta 1/*)"t class9"linet na9.stL662t>E662s19ot;It 10>1111s192 _std_rx_fram._sizclas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 1061=ot;It 10(1idstL653t class8"linet9n(1ids>s199"linet na9.stL671t>E6716ta 1/* Require to(s 4.8.2.1, 4.8.2.3, 4.8.2.5 and 4.8.2.7 from NFC Forum * success */2t6.13t * w;2re t;2thost hass19ot;It 10e1, 26.13 class="string"9&e1, 2>s19inish6ta resp"+coe=urdeclass="sPNost_TYPE_A_SEL_CASCADE na8.stL672t>E6PNost_TYPE_A_SEL_CASCADE>2to(typ="+code=rtype_a_urb" class="srtype_a pnet na8.stL676t>E6769 l7t i_urb" class="sr= l7t i * )v!6t0"t class9"linet na9.stL662t>E662s19ot;It 10 1oxyp="+code=DUMP_PREFI9_ 1oxy>s19t>E6246ta }1s1las>s1=E5976ta 8retur99f1>E5>s195t idstL615t class9"to(typ="+code=rtrE_POSTf">get_cmd_trE_ * linet na9.stL603t>E6036ta 1061=ot;It 10t1=list_add_tailcode=2ev9 t1=li>s19e_skca+code=scm.stL689t9tresp="+code=12uot;It 10&2uoist_add_tailcode=2ev10&2u>10&20 t9(typ=925o(typ="+codeGG _STD_FR106201t;It 10&2u to(typ="+code=opd_29S(28>10&20ref">hedula9 e=3(ty9r_2uot;It 10&2110&202 _std_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz e40t class9"linet tgt_data9t>E6696ta 9tgt_data9t>E * "t class9"linet na9.stL662t>E662s2uot;It 10&2idstL653t class8"linet10&2i>10&200t>E6_epG _std_get_cmd_cofr3pletstc_2u4t;It 10&2ia (&2to(typ="+cod9=e2t>10&20#L677t idstL6uccess */2t6.13t * nnte p="9target_type_a_urb" class="srlinet target_type_a p#yp="+code=opd_22tgt_type_a_urb" class="srtgt_type_a * linet na9.stL603t>E6036ta 1062uot;It 10&2, 26.13 class="string"10&2,>10&20tL677t class9"linet na9.stL643t>E643s2u6t;It 10&2,xyp="+code=DUMP_PREFI9_ 2o>10&20am._is_cmresp="+code=in_framtgt_type_a_urb" class="srtgt_type_a * v6tsuccess */2t6.13t * nnte p="9target_type_a_urb" class="srlinet target_type_a p#y)p="+code=opd_22tgtydata_urb" class="srtgtydata plinet na9.stL603t>E6036ta 1062u7t;It 10&2,ass8"linet na8.stL5959>s2l>10&20>10&20inish6ta resp"+c!success */2t6.1linet target_type_a_is_valtL_urb" class="srlinet target_type_a_is_valtL * s="+code=in_framtgt_type_a_urb" class="srtgt_type_a * stL661t>E6616ta tgt_data9t>E6696ta 9tgt_data9t>E * ""t class9"linet na9.stL662t>E662s2u9t;It 10&2,list_add_tailcode=2ev9 t2=>10&20G _std_rx_fram._sizclass9"="sref">2eresp"INPROTO6696ta 9NPROTO plinet na9.stL603t>E6036ta 1062uot;It 10"2class="sref">ta 2to(t10"2c>10"21 t9(typ=925o(typ="+codeGG _STD_FR1062u1t;It 10&2lass="sref">2erep="+co10 2l>10"2tstcc_">contexswitch+coe=urdeclass="sPNost_TYPE_A_SEL_PROT na8.stL672t>E6PNost_TYPE_A_SEL_PROT>2to(typ="+code=rtgt_type_a_urb" class="srtgt_type_a * net na8.stL676t>E6769 l7t i_urb" class="sr= l7t i * )t3"+code=fram." class="sref">(ty9r_2uot;It 10e2s_ext6ta ;110"21to(9yp="294 3ase (typ="+code=staPNost_TYPE_A_SEL_PROT_MIFARE na8.stL672t>E6PNost_TYPE_A_SEL_PROT_MIFAREe>/*:+code=fram." class="sref">(ty9r_2uot;It 10&2gt;2to(typ=.r3pletstcc10-2g>10"21fram._ss_ack6tendep, void * to(typ="="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769upported_protocoli_urb" class="sr=upported_protocoli * v6ta ->2to(typ=NFC_PROTO_MIFARE_MASK_urb" class="srNFC_PROTO_MIFARE_MASK plinet na9.stL603t>E6036ta 1062u4t;It 10&2c10;2<>10"21std_get_cmd_cof">get_break; _std_get_cmd_cofr3pletstcc9-&2uot;It 10&2tL685t class9"linet na10d2t>10"215t>E6916ta 1<3ase (typ="+code=staPNost_TYPE_A_SEL_PROT_ISO1444" from t;2tde=dePNost_TYPE_A_SEL_PROT_ISO1444"e>/*:+code=fram." class="sref">(ty9r_2u6t;It 10&2pd:'G p#L653t idstL10/2p>10"21t>E6246ta }1E6036ta 1062u7t;It 10&2s"+coam._finish6ta rx10d2s>10"21oid * to(typ="+codeclbreak; _std_get_cmd_cofr3pletstcc9-&2u8t;It 10&2_iref">max_payload_len10a2_>10"218t>E6916ta 1<3ase (typ="+code=staPNost_TYPE_A_SEL_PROT_DEP from t;2tde=dePNost_TYPE_A_SEL_PROT_DEPe>/*:+code=fram." class="sref">(ty9r_2u9t;It 10&29"linet na9.stL617t>E610s29>10"21t>E6476ta 110622">E6476ta 110622stcc_">contex3ase (typ="+code=staPNost_TYPE_A_SEL_PROT_ISO1444"_DEP from t;2tde=dePNost_TYPE_A_SEL_PROT_ISO1444"_DEPe>/*:+code=fram." class="sref">(ty9r_2uot;It 10F2_KERNEL13106222 _std_rx_fram._sizt694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769upported_protocoli_urb" class="sr=upported_protocoli * v6ta ->2to(typ=NFC_PROTO_ISO1444"_MASK_urb" class="srNFC_PROTO_ISO1444"_MASK p |yp=925o(typ="+codeGG _STD_FR1062uot;It 10&29p="2t92to(typ="+codeG10(29>10622fram._ss_ack6tendep, a ->2to(typ=NFC_PROTO_NFC_DEP_MASK_urb" class="srNFC_PROTO_NFC_DEP_MASK plinet na9.stL603t>E6036ta 1062u4t;It 10&2sync"+codclass="sref">10e2s>10622std_get_cmd_cof">get_break; _std_get_cmd_cofr3pletstcc9-&2uot;It 10e2urdeclass="sref">2eres10e2u>106225t>E6916ta 110622am._it class9"linet na9.stL643t>E643s2uot;It 10s2"linet na9.stL6o(typ6210s2">10622oid * to(typ=t694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * v6ta ->2to(typ=bepd_to_cpu 9 96 2tbepd_to_cpu>2to(typ="+code=rtgt_type_a_urb" class="srtgt_type_a * net na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts2uot;It 10f2am._valid6ta c31062ta ->2to(typ694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769 l7t i_urb" class="sr= l7t i * v6ta ->2to(typ=tgt_type_a_urb" class="srtgt_type_a * net na8.stL676t>E6769 l7t i_urb" class="sr= l7t i * t class8"linet na8.stL667t>E669ts2u9t;It 10&2kfree_skca ->2to(ty10t2k>10622class="srefx_payload_len6ta ="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1yp="+code=in_urb" c603it19t>E * 86ta ->2to(typ=tgt_type_a_urb" class="srtgt_type_a * net na8.stL676t>E676603ityp="+code=in_urb" c603ityp=" * linet na9.stL603t>E6036ta 1062uot;It 10s2e=uropd:'G p#L677t 10s2e>10s23a ->2to(typ="+code=2ev"inmemcpy+code=in_urb" cmemcpy>2to(typ="+code=r="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1+code=in_urb" c603it1 * stL661t>E6616ta tgt_type_a_urb" class="srtgt_type_a * net na8.stL676t>E676603itydata_urb" class="sr603itydatae>/*stL661t>E6616ta ="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1yp="+code=in_urb" c603it19t>E * 7t class8"linet na8.stL667t>E669ts2uot;It 10(22310s23ref">max_pode= +d:'G p#L653t id1032uot;It 10>26316ta 9.2to(9310>2610s_2ta 2to(ty(2 cls_233_skca+code=scm.stL689t9tresp="+cod10123ot;It 10e2class="sref">2erep="+code2clas_234ef">max_pode= +d:'G p#L653t id10327ot;It 10e2ts_ext6ta ;1(ty9r_2cons2E6036ta 1062s24class="srefx_p 9case 95 to(e>/* op"ioial * success */2t6.13t * w;2re t;2thost hass24ot;It 10(2_iref">max_payload_len6t(2_ir>s24repe=ur,d:'G payload_len6ta 9 96 2to(e>/* success */2t6.1systepd:'G p#L653t idsystepd:'o(9y[]linet na9.stL603t>E6036ta 10624ot;It 10>29"linet na9.stL640t>E640>29"l>s24md_co}to883E6666ta p#acket * linet na9.stL603t>E6036ta 1062sot;It 10(23s249"linet na9.stL671t>E6716ta 1uralloc6se2" c>s24class#def954o(typ="+code=staPNost_FELICA_SENSF_NFCID2_DEP_B1L666t>E6666ta PNost_FELICA_SENSF_NFCID2_DEP_B1e>/* 0x01t class9"linet na9.stL643t>E643s24ot;It 10e2_KERNEL13s24G #def954o(typ="+code=staPNost_FELICA_SENSF_NFCID2_DEP_B2+code=in_urb" cPNost_FELICA_SENSF_NFCID2_DEP_B2e>/* 0xFEt class9"linet na9.stL643t>E643s24ot;It 10 29p="2t94 'G 29p=>s24am._it class9"linet na9.stL643t>E643s2sot;It 10s2sync"+codclass="sref">2es2syn>s2s640t 9"linetoe=urdeclass="sbooL656t class8"linbooLe>/* success */2t6.1linet target_felica_is_valtL_urb" class="srlinet target_felica_is_valtL * success */2t6.13t * nnte p="9target_felica_urb" class="srlinet target_felicao(9ypyp="+code=opd_22felica_urb" class="srfelicao(9yt+code=fram." class="sref">(ty9r_2sot;It 10f2urdeclass="sref">2eresp"f2urd>s24FRAME_IDENrc_fram._vatyp="+codeclllllllllllllllllllllllllllll e40t class9"linet target_data9t>E6696ta 9target_data9t>E * "t class9"linet na9.stL662t>E662s2sot;It 10t2dstL640t class9"linet nat2dst>s249c_.r3plets_epG _std_get_cmd_cofr3ps25ot;It 10s2"linet na9.stL648t>E6486s2"li>s25a ->2to(typ"+coe=urdeclass="starget_data9t>E6696ta 9target_data9t>E * 8.2to(nizeofsuccess */2t6.13t * nnte p="9target_felica_urb" class="srlinet target_felicao(9y""t class9"linet na9.stL662t>E662s25ot;It 10(2am._valid6ta c3s25repe=ur,d:'G p# ="clas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 10625ot;It 10>2kfree_skca ->2to(typ=>2kfr>s25md_cod6ta = 2to(typ="+code=depd:'9 s25ot;It 10(2e=uropd:'G p#L677t id(2e=u>s25fram._ss_ack6p"+coe=urdeclass="sfelica_urb" class="srfelicao(9yE662s25ot;It 10e253s25std_get_cmd_cof">get_clas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 10625ot;It 10e2ef">trc_fram._valid6ta ce2ef">s25tL677t class9"linet na9.stL643t>E643s2"ot;It 10 2ss9"linet na9.stL653t>E6 2ss9>s25 p#L640t iclas9"2t694 2to(typ="+trE_POSTf">get_cmd_trE_ * linet na9.stL603t>E6036ta 1062"ot;It 10s2 9 to(t95489t e>/* s2 >s25640t a+code=scm.stL689t9tresp="+cod10125ot;It 10f2c"+3s25ref">max_pode= +d:'G p#L653t id10&25ot;It 10t29:1/* success */2tt29:1>s25940t 9"linet e=3(ty9r_26ot;It 10s2 e>/* success */2t6.13ts2 e>s26">E6476ta 1E6696ta 9tgt_data9t>E * "t class9"linet na9.stL662t>E662s26ot;It 10(259t class9"linet na9.stL(259t>s2 96ta 3plets_epG _std_get_cmd_cofr3ps26ot;It 10>2 e9t y sre l2t=hunk ofo">2 e9>s26to(9yp="294 stL640t class9"linet ne pna9target_felica_urb" class="srlinet target_felicao(9ypyp="+code=opd_22tgt_felica_urb" class="srtgt_felica * linet na9.stL603t>E6036ta 10626ot;It 10(29 96689t e=inlinG (29 >s269"linet na9.stL671t>E6716ta 1ta 2to(typ="+code2"sr>s26o(ty9="2t693 code=ctgt_felica_urb" class="srtgt_felica * v6tsuccess */2t6.13t * nnte p="9target_felica_urb" class="srlinet target_felicao(9ypy)p="+code=opd_22tgtydata_urb" class="srtgtydata plinet na9.stL603t>E6036ta 10626ot;It 10e2sref">2erep="+code=in_fre2sre>s26tL677t class9"linet na9.stL643t>E643s26ot;It 10 2ta ;1s266ram._ss_ack6p"+c!success */2t6.1linet target_felica_is_valtL_urb" class="srlinet target_felica_is_valtL * s code=ctgt_felica_urb" class="srtgt_felica * stL661t>E6616ta tgt_data9t>E6696ta 9tgt_data9t>E * ""t class9"linet na9.stL662t>E662s2 ot;It 10s2(typ=.r3pletstcc"+copd:'s2(ty>s26oid * to(typ="+codeclclass9"="sref">2eresp"INPROTO6696ta 9NPROTO plinet na9.stL603t>E6036ta 1062 ot;It 10f2conf2s26ref">max_pode= +d:'G p#L653t id10&2 ot;It 10t2(typ="+coe='G _cmdt clt2(ty>s269ram._ss_ack6p"+cs code=ctgt_felica_urb" class="srtgt_felica * net na8.stL676t>E676603it2+code=in_urb" c603itto(9y[0]v66ta ->2to(typ=PNost_FELICA_SENSF_NFCID2_DEP_B1L666t>E6666ta PNost_FELICA_SENSF_NFCID2_DEP_B1e>/*) et7L2et7L2yp=925o(typ="+codeGG _STD_FR10627ot;It 10s2653t class9"linet na9.sts2653>s27">E6476ta 1/*""t class9"linet na9.stL662t>E662s27ot;It 10(2opd:'G p#L653t idstL6(2opd>s27repe=ur,d:'G p# ="t694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769upported_protocoli_urb" class="sr=upported_protocoli * v6ta ->2to(typ=NFC_PROTO_NFC_DEP_MASK_urb" class="srNFC_PROTO_NFC_DEP_MASK plinet na9.stL603t>E6036ta 10627ot;It 10>2ns"+coam._finish6ta rx_>2ns">s27to(9yp="294 elL6inet na9.stL603t>E6036ta 10627ot;It 10(2+d:'G p#L653t idstL65(2+d:>s27fram._ss_ack6tendep, t694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769upported_protocoli_urb" class="sr=upported_protocoli * v6ta ->2to(typ=NFC_PROTO_FELICA_MASK_urb" class="srNFC_PROTO_FELICA_MASK plinet na9.stL603t>E6036ta 10627ot;It 10e2 i8E class="ssssss9t>E67e2 i8>s274ef">max_pode= +d:'G p#L653t id10327ot;It 10e23s27 _std_get3 code="memcpy+code=in_urb" cmemcpy>2to(typ="+code=r="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676= sf7t i_urb" class="sr= sf7t i * , et7L2to(typ="+cokfretgt_felica_urb" class="srtgt_felica * net na8.stL676t>E676ds2t6. 9 96 2top2t6. * , 97t class8"linet na8.stL667t>E669ts27ot;It 10 2PREFIX_NONE" class9"line 2PRE>s27am._is_cmresp="+code=in_fram="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676= sf7t i9t>E6696ta 9= sf7t i9t>E * v6t9t class8"linet na8.stL667t>E669ts27ot;It 10s2lass="sref">urresp"+co9ms2las>s27s275t idstL615t class9" 8 86689t pd:'G p#L610626ot;It 10t2to(ty8="2t687="+code=P9 t2to(>s27e_skca+code=scm.stL689t9tresp="+code=128ot;It 10s2'G p#L619t idstL6199 s2'G >s28 t9(typ=925o(typ="+codeGG _STD_FR10628ot;It 10(2=checksum" class="srei9i(2=ch>s281lass9"cess */2t6.13t * nnte p="9target_jeweL656t class8"line p="9target_jeweLo(9yp"+code=fram." class="sref">(ty9r_28ot;It 10>2 class8"linet na8.stL690>2 cl>s28to(9yp="294 to(typ="+code __bepd:'G p# 8__bepd26.13to(typ="+cokfrea s7t i_urb" class="sr= s7t i * linet na9.stL603t>E6036ta 10628ot;It 10(2 class8"linet na8.stL691(2 cl>s280t>E6916ta 1/* success */2t6.1jeweLtL_urb" class="srjeweLtLo(9y[4]linet na9.stL603t>E6036ta 10628ot;It 10e2x_fram._ip="2loc e=uro9de2x_f>s284ef">}to883E6666ta p#acket * linet na9.stL603t>E6036ta 10628ot;It 10e2RAME_POSTrc_fram._vali96e2RAM>s28tL677t class9"linet na9.stL643t>E643s2'ot;It 10 2, void * to(typ="+code9l 2, v>s2'am._i9"linetoe=urdeclass="sbooL656t class8"linbooLe>/* success */2t6.1linet target_jeweL_is_valtL_urb" class="srlinet target_jeweL_is_valtL * success */2t6.13t * nnte p="9target_jeweL656t class8"line p="9target_jeweLo(9ypyp="+code=opd_22jeweL656t class8"linjeweLo(9yt+code=fram." class="sref">(ty9r_2'ot;It 10s2oe=uropd:'G p#L677t9is2oe=>s28oid * to(typ="+codeclllllllllllllllllllllllllllllllllllllllll e40t class9"linet target_data9t>E6696ta 9target_data9t>E * "t class9"linet na9.stL662t>E662s28ot;It 10f28 to(typ="+code=opd_9df28 >s2'inish"+code=fram." class="sref">(ty9r_28ot;It 10t2fer6ta ;erros3s28class="srefx_payload_len6ta 9 96 2to(e>/* success */2t6.1ssL_urb" class="srssL * linet na9.stL603t>E6036ta 10629ot;It 10s2="+code=interfac." cla9ss2="+>s29a ->2to(typ="+code=2ev"in 9 96 2to(e>/* success */2t6.1platcon6656ta 9cplatcon6 * linet na9.stL603t>E6036ta 10629ot;It 10(28 to(typ="+code=opd_29S(28 >s29ref">max_pode= +d:'G p#L653t id10329ot;It 10>2121s292 _std_rx_fp"+coe=urdeclass="starget_data9t>E6696ta 9target_data9t>E * 8.2to(nizeofsuccess */2t6.13t * nnte p="9target_jeweL656t class8"line p="9target_jeweLo(9y""t class9"linet na9.stL662t>E662s2=ot;It 10(2idstL653t class8"linet9n(2ids>s29fram._ss_ack6tendep, clas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 10629ot;It 10e2ta (&2to(typ="+cod9=e2ta >s294ef">max_pode= +d:'G p#L653t id10329ot;It 10e2, 26.13 class="string"9&e2, 2>s29inish6ta res 9case 95 to(e>/* Require to( 4.6.3.3 from NFC Forum Digital Spec * success */2t6.13t * w;2re t;2thost hass29ot;It 10 2oxyp="+code=DUMP_PREFI9_ 2oxy>s29am._is_cmresp="+code=in_framssL_urb" class="srssL * v6ta ->2to(typ=PNost_TYPE_A_SENS_RES_SSDL666t>E6666ta PNost_TYPE_A_SENS_RES_SSD>2to(typ="+code=rjeweL656t class8"linjeweLo(9ynet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts2=ot;It 10s2lass8"linet na8.stL5959>s2las>s29oid * to(typ=t694 2to(typ="+platcon6656ta 9cplatcon6 * v6ta ->2to(typ=PNost_TYPE_A_SENS_RES_PLATCONFL666t>E6666ta PNost_TYPE_A_SENS_RES_PLATCONF>2to(typ="+code=rjeweL656t class8"linjeweLo(9ynet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts2=ot;It 10f2>E5976ta 8retur99f2>E5>s29ref">max_pode= +d:'G p#L653t id10&2=ot;It 10t2=list_add_tailcode=2ev9 t2=li>s299ram._ss_ack6p"+cs code=c=sL_urb" class="srssL * v66ta ->2to(typ=PNost_TYPE_A_SENS_RES_SSD_JEW.13/* et7L2et7L2yp=925o(typ="+codeGG _STD_FR1063uot;It 10&3uoist_add_tailcode=2ev10&3u>10&30">E6476ta 1/*)"t class9"linet na9.stL662t>E662s3uot;It 10&3idstL653t class8"linet10&3i>10&30fram._ss_ack6tendep, clas9"2t694 2to(typ="+falL6et na9.stL663t>falL6 * linet na9.stL603t>E6036ta 1063u4t;It 10&3ia (&2to(typ="+cod9=e3t>10&304ef">max_pode= +d:'G p#L653t id1033uot;It 10&3, 26.13 class="string"10&3,>10&30inish6ta resclas9"2t694 2to(typ="+trE_POSTf">get_cmd_trE_ * linet na9.stL603t>E6036ta 1063u6t;It 10&3,xyp="+code=DUMP_PREFI9_ 3o>10&30am._ia+code=scm.stL689t9tresp="+code=13u7t;It 10&3,ass8"linet na8.stL5959>s3l>10&30>10&30inish9"linet e=3(ty9r_3u9t;It 10&3,list_add_tailcode=2ev9 t3=>10&30G _std_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz e40t class9"linet tgt_data9t>E6696ta 9tgt_data9t>E * "t class9"linet na9.stL662t>E662s3uot;It 10"3class="sref">ta 2to(t10"3c>10"31 t9(t"+code=fram." class="sref">(ty9r_3u1t;It 10&3lass="sref">2erep="+co10 3l>10"3tstcc_">contexsccess */2t6.13t * nnte p="9target_jeweL656t class8"line p="9target_jeweLo(9ypyp="+code=opd_22tgt_jeweL656t class8"lintgt_jeweL * linet na9.stL603t>E6036ta 1063uot;It 10e3s_ext6ta ;110"31md_cod6ta = 2to(typ="+code=depd:'9 s3uot;It 10&3gt;2to(typ=.r3pletstcc10-3g>10"310t>E6916ta 1c10;3<>10"314ef">max_pode= +d:'G p#L653t id1033uot;It 10&3tL685t class9"linet na10d3t>10"31inish6ta resp"+c!success */2t6.1linet target_jeweL_is_valtL_urb" class="srlinet target_jeweL_is_valtL * sto(ty8="2t689sttgt_jeweL656t class8"lintgt_jeweL * stL661t>E6616ta tgt_data9t>E6696ta 9tgt_data9t>E * ""t class9"linet na9.stL662t>E662s3u6t;It 10&3pd:'G p#L653t idstL10/3p>10"31t>E6246ta }12eresp"INPROTO6696ta 9NPROTO plinet na9.stL603t>E6036ta 1063u7t;It 10&3s"+coam._finish6ta rx10d3s>10"31max_payload_len10a3_>10"31a ->2to(typ694 2to(typ="+="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769upported_protocoli_urb" class="sr=upported_protocoli * v6ta ->2to(typ=NFC_PROTO_JEW.1_MASK_urb" class="srNFC_PROTO_JEW.1_MASK plinet na9.stL603t>E6036ta 1063u9t;It 10&39"linet na9.stL617t>E610s39>10"31class="srefx_payload_len6ta ="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * v6ta ->2to(typ=bepd_to_cpu 9 96 2tbepd_to_cpu>2to(typ="+code=rtgt_jeweL656t class8"lintgt_jeweL * net na8.stL676t>E6769 s7t i_urb" class="sr= s7t i * 7t class8"linet na8.stL667t>E669ts3uot;It 10639t idstL619t class9"li10639>10632a ->2to(typ="+code=2ev"in="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1yp="+code=in_urb" c603it19t>E * v6t4t class8"linet na8.stL667t>E669ts3u1t;It 10&32toalloc6ruct skca -&g10r32>10632repe=ur,d:'G payload_len6ta memcpy+code=in_urb" cmemcpy>2to(typ="+code=r="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1+code=in_urb" c603it1 * stL661t>E6616ta tgt_jeweL656t class8"lintgt_jeweL * net na8.stL676t>E676jeweLtL_urb" class="srjeweLtLo(9ystL661t>E6616ta ="s_tgt_urb" class="sr603_tgt pnet na8.stL676t>E676603it1yp="+code=in_urb" c603it19t>E * 7t class8"linet na8.stL667t>E669ts3uot;It 10F3_KERNEL1310632md_cod6ta = 2to(typ="+code=depd:'9 s3uot;It 10&39p="2t92to(typ="+codeG10(39>10632fram._ss_ack6class9" 8 86689t pd:'G p#L61063u4t;It 10&3sync"+codclass="sref">10e3s>10632std_ga+code=scm.stL689t9tresp="+code=13uot;It 10e3urdeclass="sref">2eres10e3u>10632tL677t class9"linet na9.stL643t>E643s3uot;It 10 3dstL640t class9"linet 10 3d>106326lass9"cess */2t6.13t * nnte p="9type_b_prot_info_urb" class="srlinet type_b_prot_infoo(9yp"+code=fram." class="sref">(ty9r_3uot;It 10s3"linet na9.stL6o(typ6210s3">10632oid * to(typ=t694 2to(typ="+ 9 96 2to(e>/* success */2t6.1bitrat_POSTf">get_cmd_bitrat_ plinet na9.stL603t>E6036ta 1063uot;It 10f3am._valid6ta c31063ta ->2to(typ694 2to(typ="+ 9 96 2to(e>/* success */2t6.1fsci typeet na9.stL663t>fsci type plinet na9.stL603t>E6036ta 1063u9t;It 10&3kfree_skca ->2to(ty10t3k>10632class="srefx_payload_len6ta 9 96 2to(e>/* success */2t6.1fwi_adc_fo_urb" class="srfwi_adc_fo plinet na9.stL603t>E6036ta 1063uot;It 10s3e=uropd:'G p#L677t 10s3e>10s33a -&g}to883E6666ta p#acket * linet na9.stL603t>E6036ta 1063uot;It 10(32310s33ref">max_pode= +d:'G p#L653t id1033uot;It 10>36316ta 9.2to(9310>3610s_3326ta #def954o(typ="+code=staPNost_TYPE_B_PROT_FCSI3E6666ta x ->3et7L2 0xF0t3e'G l4"t class9"linet na9.stL662t>E662s3uot;It 10&3 class="sref">ta 2to(ty(3 cls_333_skc#def954o(typ="+code=staPNost_TYPE_B_PROT_TYPE3E6666ta x ->3et7L2 0x0Ft3e'G l0)t class9"linet na9.stL662t>E662s3u4t;It 10&3class="sref">2erep="+code3clas_33class#def954o(typ="+code=staPNost_TYPE_B_PROT_TYPE_RFU_MASK_urb" class="srPNost_TYPE_B_PROT_TYPE_RFU_MASKe>/* 0x8t class9"linet na9.stL662t>E662s3uot;It 10e3ts_ext6ta ;1E643s3(ty9r_3uot;It 10s3cons3/*[4]linet na9.stL603t>E6036ta 1063s34class="srefx_9"cess */2t6.13t * nnte p="9type_b_prot_info_urb" class="srlinet type_b_prot_infoo(9yp*/2t6.13t * nnterot_info_urb" class="srlrot_infoo(9ylinet na9.stL603t>E6036ta 10634ot;It 10(3_iref">max_payload_len6t(3_ir>s34repe=}to883E6666ta p#acket * linet na9.stL603t>E6036ta 10634ot;It 10>39"linet na9.stL640t>E640>39"l>s34md_cod6ta = 2to(typ="+code=depd:'9 s3sot;It 10(33s343_skc#def954o(typ="+code=staPNost_TYPE_B_OPC_SENSB_RES+code=in_urb" cPNost_TYPE_B_OPC_SENSB_RESe>/* 0x50t class9"linet na9.stL643t>E643s34ot;It 10e3" class="sref">uralloc6se3" c>s344ef">max_pode= +d:'G p#L653t id10334ot;It 10e3_KERNEL13s345lass9"cess */2t6.13t * nnte p="9target_type_b_urb" class="srlinet target_type_bo(9yp"+code=fram." class="sref">(ty9r_34ot;It 10 39p="2t94 'G 39p=>s346lass="srefx_9"cess */2t6.13t * nnte p="9type_b_9 s7t i_urb" class="sre p="9type_b_9 s7t io(9ypa8.stL676t>E6769 sb7t i_urb" class="sr= sb7t i * linet na9.stL603t>E6036ta 1063sot;It 10s3sync"+codclass="sref">2es3syn>s34oid * to(typ=t694 2to(typ="+ 9 96 2to(e>/* success */2t6.1attrib7t i9t>E6696ta 9attrib7t i9t>E * linet na9.stL603t>E6036ta 1063sot;It 10f3urdeclass="sref">2eresp"f3urd>s34a ->2to(typ694 2to(typ="+u 9 96 2to(e>/* success */2t6.1attrib7t i6696ta 9attrib7t ie>/*[]linet na9.stL603t>E6036ta 10634ot;It 10t3dstL640t class9"linet nat3dst>s349c_.r}to883E6666ta p#acket * linet na9.stL603t>E6036ta 10635ot;It 10s3"linet na9.stL648t>E6486s3"li>s35 t9(typ=925o(typ="+codeGG _STD_FR10635ot;It 10(3am._valid6ta c3s35ref">hedula9success */2t6.1booL656t class8"linbooLe>/* success */2t6.1linet target_type_b_is_valtL_urb" class="srlinet target_type_b_is_valtL * success */2t6.13t * nnte p="9target_type_b_urb" class="srlinet target_type_bo(9ypyp="+code=opd_22type_b_urb" class="srtype_bo(9yt+code=fram." class="sref">(ty9r_35ot;It 10>3kfree_skca ->2to(typ=>3kfr>s352 _std_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz e40t class9"linet target_data9t>E6696ta 9target_data9t>E * "t class9"linet na9.stL662t>E662s35ot;It 10(3e=uropd:'G p#L677t id(3e=u>s350t>E6_epG _std_get_cmd_cofr3pletstc_35ot;It 10e353s35std_get_cmd_cp"+coe=urdeclass="starget_data9t>E6696ta 9target_data9t>E * 8.2to(nizeofsuccess */2t6.13t * nnte p="9target_type_b_urb" class="srlinet target_type_bo(9y""t class9"linet na9.stL662t>E662s3s_epG _s3ef">trc_fram._valid6ta ce3ta 3t5It 10s2lass8"linet na8.stL5959>s2las>s29oid * to(typ=t694 2to(typ="+platcon6656ta 9cplatcon6 * v6ta ->2to(typ=PNost_TYPE_A_SENS_RES_PLATCONFL666t>E6666ta PNost_TYPE_A_SENS_RES_Po(typ=PNost_TYPE_A_SENS_RstaPNr_26ot;It 73036ta35linetoe=urdeclass="sbooL656t class8"l3 10f2c"+3<3opd:'G p#L659t f2c"+>s35ref"357eofsuccess */2t6.13t * nnte p="9t;2to(typ=>3kfr>s352 _std_rx3uot;It 10639t idstL619tass="sref">2es3syn>s34oid * to(ty.f3tL621t class9"linet na9.f3tL6s_33a ->2to(D_JEW.1e>/* et7L2et7L2yp=925o(3t>E643s34ot;It 10e3" class="sref">uralloc6se3" c>s344ef">mas8"linet na8.stL5959>s2las>s29oid *(e>/* succe>/* success */2tt29:1>s23940t 35ta9t>E6696ta 9>2to(typ=PNost_TYPE_A_SENS_RES_PLATCONFL666t>E6666ta PNost_TYPE_A_SENS_RES_Po(typ=p#acket *_urb" class="srlinet targ3t_fou3d_feli6ta PNost_TYPE_A_SENS_RES_Po(typllllllllll3lllll e40t class9"linet t3t_dat36zeofsuccess */2t6.13t * nnte p="66ta x ->3(c2to(typ="+code=rxL666t>E6666ta x ->3et7L2 0x0Ft3e'G l0)t 9t;2to(typ=>3kfr>s352 _std_rx3uot;It 10639t idstL619tass="sref">2es3syn>s34oid * to(ty.f3tL621t class9max_payload_len6t(3_ir>s34repe=}to883.f3tL621t class9kca ->2to(ty10t3k>10632class="sref+code3c6ta PNost_TYPE_A_SENS_RES_Po(typlbooLe>/* s sre l2t=hunk ofo">2 e9>s36to(9369upported_protocoli_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuASKe>/* 0x8t class9"linet na9.stL662t>E662s3uot;It 10e3ts_ext6ta ;1s2las>s29oid et_felica_3rb" class="srlinet target3felic36>E6036ta 1061=ot;It 10(1idstL653t class8"linet9n(1ids>s199"linet na9.stL671t>E6716ta 1s23o(ty93"2t693 code=ctgt_felica_urb" 3lass="srtg3_felica * v6tsuccess */236.13t3* nnte p="9tar 10&3,xyp="+code=DUMP_PREFI9_ 3o>10&30am._ia+code=scm.stL689t9tresp="+code=13u7t;It10 2ta ;1<3o(typize" clende 2ta >s236ram.3ss_acks9"linet na9.stL643t>E643s3uot;It _felica_is3valtL_urb" class="srlinet3targe36linetoe=urdeclass="sbooL656t class8"l3PROTO6696t3 9NPROTO plinet 3a9.st36_is_valtL_uruccess */2t6.13t * nnt="s_target_urb" classtrc_fram._valid6ta ce3ta 3t_urb" classt+code=opd_22type_b_urb" clastL661t>E6616ta 9 96 2to(e>/* yp="+code=opd_22tgtydata_urb" class="srtgtydata pt+code=fram." class="sref">(ty9r_3u9t;It 10&3,list_add_tailcode=2ev9 t3=>10&30G _std_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzz10t2(typ="3coe='G _cmdt clt2(ty>s239ram.36ta9t>E6696ta 9target_data9t>E * "t class9"linet na9.stL662t>E662s2sot;It ass="sref">ta 2to(t10"3c>10"31 t9(t"+code=fram." class="sref">(ty9r_3u1t;Itrb" class=3srtgt_felica * net na8.s3L676t36;2to(typ"+coe=urdeclass="starget_data93rb" class=3srtgt_felica * net na8.s3L676t37_infoo(9yp*/2t6.13t * nnterot_info_urb" clype_bo(9yt+code=fram." class="sref">(ty9r_35ot;It 10>3kfree_skca -&ggbo(9yt+code=fram." clasggbo(9yt+ccode=scm.stL689t9tresp="+code=13u7t;Itrb" class=3sr603_tgt pnet na8.stL636t>E637ef954o(typ="+code=staPNost_TYPE_B_PROT 10627ot;I3 10(2+d:'G p#L653t ids3L65(237class="sr= s7t i * linet nggbo(9yt+code=fram." clasggbo(9yt+ccode+code=opd_22tgtydata_urb" class="srtgtydata code=fram." class="sref">(ty9r_35ot;It 10It 10&3c10;3<>10"314ef">max_pode= +d:'G p#L653t id1033uot;It rb" class=3sr603_tgt pnet na8.stL636t>E6372t693 code=ctgt_felica_urb" 310e23s23 _s37zeofsuccess */2t6* s="+code=in_framtgt_type_a_urb" get_type_b_urb" class="srlinet target_type_bo(9ypyp="+code7t i * linet nggbo(9yt+code=fram." clasggbo(9yt+ccodeE662s3u6t;It 10&3pd:'G p#L653t idstL10/3p>10"31t>E6246ta }12eresp"INb" cmemcpy3gt;2to(typ="+code=r="s_tg3_urb"37 9cplatcon6 * v6ta ->2to0&3s"+coam._finish6ta rx10d3s>10"31s235t id37_urb" class="sr= s7t i * v6ta ->2to(typ=bepd_to_cpu 9 96 2tbepd_to_cpu44"_MASK_urb" class="srNFC_PROTO_ISO1444"_MASK p |yp=925o(typ="+codeGG _STD_FR1062uot;It 1B10&29p="2t92to(typ="+codeG10(29>10622frBass="srefx_payload_len6ta ="s_tgt_urb" clas p#L610623ot;It 10t2to(ty8="2t687="3code=37s_ack6p"+cs code=c=sL_urb" cl3 10s2'G 3p#L619t idstL6199 s2'G >s38 t9(37appdatae>/*[4_ga+code=scm.stL689t9tresp="+code=13uot;It10(2=check3um" class="srei9i(2=ch>s231lass3"cess s9"linet na9.stL643t>E643s3uot;It 656t class3"line p="9target_jeweLo(93p"+co38ef954o(typ="+code=staPNost_TYPE_B_PROT 8__bepd36.13to(typ="+cokfrea s7t3i_urb3 classaltL_uruccess */2t6.13t * nnt="s_target_urb"rc_fram._valid6ta ce3ta 3t_urb"+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." class="sref">(ty9r_3u9t;62s3u6t;It 10&3pd653t idstL10/3p>1ata pt+code=fram." class="sref">(ty9r_3u9t;It 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzzo(e>/* suc3ess */2t6.1jeweLtL_urb" c3ass="38>E6036ta 1063u4t;s9"linet na9.stL662t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code=fram." class="sref">(ty9r_3u1t;It p#acket 3 linet na9.stL603t>E6036t3 30628ottyp"+coe=urdeclass="starget_data9310 2, void3* to(typ="+code9l 2, v>s23am._i38 9cplatcon6 =opd_22type_b_urb" clastL661t>E6616ta 9 96 2to(e>/*sr= s7t i * v6ta ->2to(typ=bepd_to_cpu 9=scm.stL689t9tresp="+code=13uot;It1="sr603_t3uccess */2t6.1linet targe3_jewe38felica_is_valtL662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;It10f2p=.r3p3lllll e40t class9"linet t3rget_382to(typ694 2to(typ="+="s_tgt_urb" clas 10t2fer6t3 ;erros3s38clas38d_protocoli_urb" class="sr=uppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s - modula>s24=%d"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx_fram._sizzzzzzzzzzzzzzzzzzzzzzzzzo10s2'G 3ess */2t6.1ssL_urb" class3"srss38t>E6696ta 9tgt_dat 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_currrc_fram._valid6toll_mod_currcode==scm.stL689t9tresp="+code=13uot;Ito(e>/* suc3ess */2t6.1platcon6656ta 3 39dula9success */2t6.1booL656t class8"li10>2121s232 _399upported_pro/2t6.13t * nnte p="9d653t idstL10/3p>1ata D_JE1=fram." class="sref">(ty9r_3u1t;It>E6696ta 3 9target_data9t>E * 3.2to(39>E6036ta 1061=ot;It 10(10&3s"+coam._finish6ta rx10d3s>10"31falL6 * linet na93stL60392t693 code=ctgt_felica_urb" 310e2, 26.13 class="string"9&e2, 2>s23inish39 nnte p="9target_felica_urb"memsE6616ta 9 memsE6+code9 96 2top2t6. *2tgtydata_urb" class="srtgtydata 0,t class9"linet na9.stL662t>E66stL661t>E6616ta 9 96 2to(e>/)==scm.stL689t9tresp="+code=13uot;Ito0 2, void33 from NFC Forum Digital 3pec *39cess */2t6.13t * nnte p="9type_b_9 s7rssL * v63a ->2to(typ=PNost_TYPE3A_SEN3_RES_SSDL666t>switcht6.13t * nnte p="devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_currrc_fram._valid6toll_mod_currcode=fx_9"cess */2t6.13t * nnte p="9type 9cplat3on6 * v6ta ->2to(typ=3Nost_3YPE_A_SENS_REST_ISO1444"_DEPe>/*:+code=fPOLL_MOD_106KBPS_At;It 10e3ts_ext6ta ;1POLL_MOD_106KBPS_AE_A__fram._sizt694 2to(typ="+="s_tgt_310t2=list_3dd_tailcode=2ev9 t2=li>s239ram.39ta9t>E6696ta 92t>E662s2sot;Itrct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3ta 3t_urb" class="sr603_target p#yp="+code=opd_22_tgt_urb" e9 96 2top2t6. *2tgtydata_urb" class="srtgtydata t 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rx_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code==scm.stL689t9tresp="+code=13uot;Ito10s2'G 3* v66ta ->2to(typ=PNos3_TYPE39t>E6696ta 9tgt16ta 1/*:+code=fPOLL_MOD_212KBPS_>s274et;It 10e3ts_ext6ta ;1POLL_MOD_212KBPS_>s274eE_A__fram._sizt694 2to(typ="+="s_tgt_4ss="srssL 4* v!6ta ->2to(typ=PNos4_TYPE4A_SENS_RES_SSDT_ISO1444"_DEPe>/*:+code=fPOLL_MOD_424KBPS_>s274et;It 10e3ts_ext6ta ;1POLL_MOD_424KBPS_>s274eE_A__fram._sizt694 2to(typ="+="s_tgt_4s2="srssL 4* 9target_data9t>E * 4(typ=4Nost_TYPE_A_SENS_RE 92t>E662s2sot;Itrct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3ta 3t_urb" class="sr603_target p#yp="+code=opd_22603_tgt_urb9 96 2top2t6. *2tgtydata_urb" class="srtgtydata t 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rx_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code==scm.stL689t9tresp="+code=13uot;I4lL6et na9.4tL663t>falL6 * linet na94stL604t>E6036ta 1063u4t;16ta 1s24inish404E_A_SENS_REST_ISO1444"_DEPe>/*:+code=fPOLL_MOD_106KBPS_E662s3uot;It 10&3idstL653tPOLL_MOD_106KBPS_E662sE_A__fram._sizt694 2to(typ="+="s_tgt_4s56et na9.4t from NFC Forum Digital 4036ta40 9cplatcon6 * v6ta -2t>E662s2sot;Itrct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3ta 3t_urb" ass="sr603_target p#yp="+code=opd_22603_tgt_urb9 96 2top2t6. *2tgtydata_urb" class="srtgtydata t 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rx_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code==scm.stL689t9tresp="+code=13uot;I4l66et na9.4t ->2to(typ=PNost_TYPE40E6036ta 1063u16ta 1/*:+code=fPOLL_MOD_847KBPS_B3uot;It 10&3idstL653tPOLL_MOD_847KBPS_BE_A__fram._sizt694 2to(typ="+="s_tgt_4s86et na9.4td_tailcode=2ev9 t2=li>s24_foun40ta9t>E6696ta 92t>E662s2sot;Itrct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3ta 3t_urb" classtrc_fram._valid6ta ce3ta 3t_urb" classt+code9 96 2top2t6. *2tgtydata_urb" class="srtgtydata t 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rx_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code==scm.stL689t9tresp="+code=13uot;I4l96et na9.4t v66ta ->2to(typ=PNos4t_dat49t>E6696ta 9tgt16ta 12erep="+co10 3l>10"4tstcc41ost_TYPE_A_SEdefault_fram._sizt694 2to(typ="+="s_tgt_4et_jeweL654t class8"line p="9target_4eweLo419upported_protocoli_urb" class="sr=uppordev_errrc_fram._valid6ppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata fram._sizt694 2to(typ="+="s_tgt_4e2="srssL 4typ=.r3pletstcc10-3g>10"340t>E641ta9t>E6696ta 9target_data9p3t * w;2re t=oping">"Unknow* wurr10 2toll modula>s24"s_cmres==scm.stL689t9tresp="+code=13uot;I4ss8"lintgt4jeweL * v6tsuccess */2t6413t *41>E6036ta 1063u4t;It 10&30&3s"+coam._finish6ta rx10d3s>10"3110"34inish414E_A_SENS_RESs9"linet na9.stL643t>E643s3uot;It4_jeweL_is_4altL_urb" class="srlinet 4arget41cess */2t6.13t * nnte p="9type_b_9 s4PROTO6696t4 9NPROTO plinet 4a9.st41felica_is_valtL 2t>E662s2sot;Itrct;2to(typ=bepd_rc 9=fram." class="sref">(ty9r_3u1t;I410&3_iref"4max_payload_len10a3_>10"34a -&g4103t>E6036ta 1062 ot;It 12t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I4s="sr603_t4t pnet na8.stL676t>E6764uppor41s_ack6p"+cs code=c=sL_urb" cl4s="sr603_t4t pnet na8.stL676t>E6764 s7t41_SENS_RES_SSD_JEW!c603it1 * stL661t>E6616ta tgt_jeweL656t class8".f3tL621t class9u44"_MASK_urb" class="srNFC_PROTO_ISO1444"_MASK p |yp=92ode3cl.13t * nnte p="devrc_fram._valid6devata 96 2tbepd_to_cppoll_urb" class="srNFC_PROTO_poll_urb" clas(e>/)=fx_9"cess */2t6.13t * nnte p="9typ4s="sr603_t4t pnet na8.stL676t>E676403it142t>E6696ta 9tgtrb" class="sr=uppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ4st_jeweL654gt;2to(typ="+code=r="s_tg4_urb"429upported_protocoli_uuuuuuuuuuuuup3t * w;2re t=oping">"The Tg _urb" doesn't have the desired urb" cla"s_cmres==scm.stL689t9tresp="+code=13uot;I410&39p="2t42to(typ="+codeG10(39>10634fram.42>E6036ta 1061=ot;It 10(10&3s"+coam._finisAGAIN rx10d3s>10"3110632stds9"linet na9.stL643t>E643s3uot;It4 10e3urdec4ass="sref">2eres10e3u>10642tL6742cess */2t6.13t * nnte p="9target_type410 3dstL644t class9"linet 10 3d>106346lass42lass="sr603_tgt pnet na8.sppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ4sROTO6696t4lass="srlinet type_b_prot4infoo4203t>E6036ta 1063uuuuup3t * w;2re t=oping">"Ta 3 _urb" - ISO1444"_ urb" clas: 0x%x"s_cmres _9"cess */2t6.13t * nnte p="9typ4s0&3_iref"4ess */2t6.1bitrat_POSTf">4et_cm42ta9t>E6696ta 9targ603it1 * stL661t>E6616ta tgt_jeweL656t class8".f3tL621t class9u44"_MASK_urb" class="srNFC_PROTO_ISO1444"_MASK p |yp=9==scm.stL689t9tresp="+code=13uot;I41="sr603_t4ess */2t6.1fsci typeet na4.stL642s_ack6p"+cs code=c=sL_urb" cl4o(e>/* suc4ess */2t6.1fwi_adc_fo_urb4 clas4="srfwi_adc_fo plinet na9.sdevrc_fram._valid6devata 96 2tbepd_to_cp>10"availableMASK ss="srNFC_PROTO_>10"availableMASK s 925o(typ="+codeGG 1t>E6616ta tgt_jeweL656t class8".f3tL621t class9u44"_MASK_urb" class="srNFC_PROTO_ISO1444"_MASK p |yp=9=scm.stL689t9tresp="+code=13uot;I4 p#acket 4 linet na9.stL603t>E6036t4 43dula9success */2t6.1booL656t class8"l410>36316ta4 9.2to(9310>3610s_3426ta 43lass="sr603_tgt pnet na8.s 96 2tost_urb"rc_fram._valid6 96 2tost_urb"+code plinet na9.sdevrc_fram._valid6devata 96 2tbepd_to_cpppordev653t idstL10/3pppordevd_rx_69 96 2top2t6. *2tgtydata_urb" class="srtgtydata 1==scm.stL689t9tresp="+code=13uot;I4_FCSI3E643s3uot;It410 3>2t4(typ=.r3pletstcc" 3>s_346lass4"cess */2t6.13t * nnte p="9type_b_9 s4t i_urb" c4ass="sre p="9type_b_9 s74 io(94p"+code=tL_urb" class="srlinin"9type_ 3o>10&30am.tL"9tye3s>1voido(typ="+codeGG ta ce3poll_next_modrc_fram._valid6ta ce3poll_next_mod+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata =fram." class="sref">(ty9r_3u1t;I4o(e>/* suc4ess */2t6.1op2t6. 9 4 96 24op2t6.x_9"cess */2t6.13t * nnte p="9typ4o(e>/* suc4ess */2t6.1603it+code=in_4rb" c403ite>/*[4]linet na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_currrc_fram._valid6toll_mod_currcode+codet na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_currrc_fram._valid6toll_mod_currcode++ 1= %net na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curbata_urb" class="poll_mod_curbayp=9=scm.stL689t9tresp="+code=13uot;I4 (e>/* suc4ess */2t6.1appdata_urb" c4ass="43p=925o(typ="+codeGG _STD_FR10628ot;It4_b_prot_in4o_urb" class="srlinet typ4_b_pr44dula9success */2t6.1booL656t class8"l4 p#acket 4 linet na9.stL603t>E6036t4 44_is_valtL_urvoido(typ="+codeGG ta ce3poll_reset_mod_lisata_urb" class="pa ce3poll_reset_mod_lisa+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata =fram." class="sref">(ty9r_3u1t;I410(33s343_skc4def954x_9"cess */2t6.13t * nnte p="9typ4SENSB_RES+4ode=in_urb" cPNost_TYPE_B4OPC_S44nte p="9target_jeweL656t cladevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curbata_urb" class="poll_mod_curbayp=9+coe=scm.stL689t9tresp="+code=13uot;I410e3_KERNE413s345lass44 class9"linet na9.stL643t>E643s3uot;It4b_urb" cla4s="srlinet target_type_bo49yp"+44cess */2t6.13t * nnte p="9type_b_9 s4_b_9 s7t 4_urb" class="sre p="9type4b_9 446is_valtL_urvoido(typ="+codeGG ta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." class="sref">(ty9r_3u9t;62s3u6t;It 10&3mod_inde3class="sref">2emod_inde3ata =fram." class="sref">(ty9r_3u1t;I41(e>/* suc4ess */2t6.1attrib7t i9t>E4696ta44p2t6.x_9"cess */2t6.13t * nnte p="9typ4o(e>/* suc4ess */2t6.1attrib7t i66964a 4 9attrib7t ie>/*[]linet na9devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_act6.1ta_urb" class="poll_mod_act6.1ata [t_jeweL656t cladevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curbata_urb" class="poll_mod_curbayp=9] =_9"cess */2t6.13t * nnte p="9typ4o(e>/* suc4 linet na9.stL603t>E6036t4 44t>E6696ta 9tgtde=opd_22tgtydata_urb" class=poll_modula>s24i * linet na9.stL603tpoll_modula>s24i;It 10)9 96 2top2t6. *poll_modta_urb" class="poll_modata [t_jeweL656t clamod_inde3class="sref">2emod_inde3ata 3E6666ta 410(3am._va4id6ta c3s34ref">45="+code=in_urb" c603it19t>E devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curbata_urb" class="poll_mod_curbayp=9++E6666ta 41p#acket 4uccess */2t6.1linet targe4_type4b_is_vs9"linet na9.stL643t>E643s3uot;It4zzzzzzzzzz4zzzzz e40t class9"linet t4rget_45ef954o(typ="+code=staPNost_TYPE_B_OPC4 10e353s45std_4et_cmdaltL_urvoido(typ="+codeGG ta ce3poll_create_mod_lisata_urb" class="pa ce3poll_create_mod_lisa+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata o(typ="+code=staPNost_TYPE_B_OPC4 0e3_KERNE4 9target_data9t>E * 4.2to(4izeofsuccess ********************************pt+code=fram." cd:'G pPN">(ty9r3ef954rb" class="srlinim_urb" class="srNFC_PROTO_im_urb" clasata pt+code=fram." cd:'G pPN">(ty9r3ef954rb" class="srlintm_urb" class="srNFC_PROTO_tm_urb" clasata =fram." class="sref">(ty9r_3u1t;I4* to(typ=t494 2to(typ="+platcon6656t4 4 9cplx_9"cess */2t6.13t * nnte p="9typ4=PNost_TYP4_A_SENS_RstaPNr_26ot;It 74036ta45RES_SSDL666t>E6666ta PNost_ta ce3poll_reset_mod_lisata_urb" class="pa ce3poll_reset_mod_lisa+code>3kfree_skca -&devrc_fram._valid6devata =E6666ta 41(e>/* suc4opd:'G p#L659t f2c"+>s45ref"452to(typ694 2to(typ="+="s_tgt_urb" cla4*(e>/* suc4e>/* success */2tt29:1>s24940t 45ta9t>E6696ta _JEW.13E6696ta .132 e9>s46to(9469upported_protocoli_u(typ="+codeGG ta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fPOLL_MOD_106KBPS_At;It 10e3ts_ext6ta ;1POLL_MOD_106KBPS_AE_A_=E6666ta 4et_felica_4rb" class="srlinet target4felic46ef954o(typ="+code=staPNost_TYPE_B_OPC410e2"sref"4ta 2to(typ="+code2"sr>s24o(ty9463a9t>E6696ta _JEW13s246ram.46 9cplatcon6 * v6ta -2t>E662s2sot;Itta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fPOLL_MOD_212KBPS_>s274et;It 10e3ts_ext6ta ;1POLL_MOD_212KBPS_>s274eE_A_=E6666ta 4ePNost_TYP4valtL_urb" class="srlinet4targe4603t>E6036ta 1063u2t>E662s2sot;Itta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fPOLL_MOD_424KBPS_>s274et;It 10e3ts_ext6ta ;1POLL_MOD_424KBPS_>s274eE_A_=E6666ta 4e(e>/* suc4 9NPROTO plinet 4a9.st46ta9t>E6696ta s9"linet na9.stL643t>E643s3uot;It410t2(typ="4coe='G _cmdt clt2(ty>s249ram.46s_ack6p"+cs code=c=sL_urb" cl4rb" class=4srtgt_felica * net na8.s4L676t46_SENS_RES_SSD_JEW13E610s39>10"31class="sref= p2to(typ="+code=r=sL_urb" cl4rb" class=4srtgt_felica * net na8.s4L676t47t>E6696ta 9tgtrb" class="sr=uta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fPOLL_MOD_106KBPS_E662s3uot;It 10&3idstL653tPOLL_MOD_106KBPS_E662sE_A_=E6666ta 4rb" class=4sr603_tgt pnet na8.stL646t>E647ef954o(typ="+code=staPNost_TYPE_B_PRO4 10627ot;I4 10(2+d:'G p#L653t ids4L65(247class="sr= s_JEW13E647>E6036ta 1063u4t;rb" class="sr=uta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fPOLL_MOD_847KBPS_B3uot;It 10&3idstL653tPOLL_MOD_847KBPS_BE_A_=E6666ta 4r0e3_KERNE4'G p#L684t idse23s24 _s47cess */2t6.13t * nnte p="9target_type4b" cmemcpy4gt;2to(typ="+code=r="s_tg4_urb"47 9cplatcon6 /2t6.13t * nnte p="9m_urb" class="srNFC_PROTO_tm_urb" clasata =fram." class="sref">(ty9r_3u1t;I4s="sr603_t4t pnet na8.stL676t>E6764 sf74703t>E6036ta 1063u2t>E662s2sot;Itta ce3poll_add_modrc_fram._valid6ta ce3poll_add_mod+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." code=fLISTEN_MOD3uot;It 10&3idstL653tLISTEN_MODE_A_=E6666ta 4r(e>/* suc4etstcc"+copd:'G9 f2p=.>s245t id47_urb"s9"linet na9.stL643t>E643s3uot;It4 p#L610624ot;It 10t2to(ty8="2t687="4code=47s_ack6p"+cs code=c=sL_urb" cl4 10s2'G 4p#L619t idstL6199 s2'G >s48 t9(47appdaaltL_uruccess */2t6.13t * nnt="saltrt3poll_comple/ood:'10f3a>1063tnnt="saltrt3poll_comple/o+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata =opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&resp:'G pPNost_Trespata =fram." class="sref">(ty9r_3u1t;I410(2=check4um" class="srei9i(2=ch>s241lass48>contexsccess */2t6.13t * nnte p="9tar4656t class4"line p="9target_jeweLo(94p"+co48lass="sr603_tgt pnet na8.sE6036ta 10631ata It 10&3,list_add_ttstcc_">c10;3<>10"314 _std_rxE6666ta 4 8__bepd46.13to(typ="+cokfrea s7t4i_urb48class="sr= s_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+codeE6666ta 4 0e2"sref"4ess */2t6.1jeweLtL_urb" c4ass="482t693 code=ctgt_felica_urb" 4 p#acket 4 linet na9.stL603t>E6036t4 48 nnte p="9target_felica_urb"ppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 410 2, void4* to(typ="+code9l 2, v>s24am._i48cess */2t6.13t * nnte p="9type_b_9 s41="sr603_t4uccess */2t6.1linet targe4_jewe48RES_SSDL666t>E6666ta PNost_6b9d653t idstL10/3p6b9data 25o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr03E6666ta 410f2p=.r3p4lllll e40t class9"linet t4rget_48_urb" class="sr= s7t i * v9d653t idstL10/3p>1ata D5o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr13E6666ta 41 p#L610624 ;erros3s48clas48d_protocoli_urb" class="sr=u_ttstcc_">c10;3<>10"314 _std_rxD5o9 96 2top2t6. *resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr23E6666ta 4110s2'G 4ess */2t6.1ssL_urb" class4"srss48"srfwi_adc_fo plinet na9.s aG p#L653t idstL10/3p>11 t9(t"+codeD5o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD- 2;uup3t * w;2re tcomment">/* 6b9d + 9d */s_cmres/opd:'G p#acketL666t>E6666ta 4o(e>/* suc4ess */2t6.1platcon6656ta 4 49dula9success */2t6.1booL656t class8"l410>2121s242 _499upported_pro/2t6.13t * nnte p="6b9d653t idstL10/3p6b9data )fx_9"cess */2t6.13t * nnte p="9typ4>E6696ta 4 9target_data9t>E * 4.2to(49>E6036ta 1061=ot;2t>E662s2sot;Itrct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3ta 3t_urb"od:'10f3a>1063tnnt="sta 3t_urb"+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." pd653t idstL10/3p>1ata pt+code=fram." _ttstcc_">c10;3<>10"314 _std_rx_62t>E662s2sot;It aG p#L653t idstL10/3p>11 t9(t"+code==scm.stL689t9tresp="+code=13uot;I4lL6et na9.4tL663t>falL6 * linet na94stL60492t693 code=ctgt_felica_urb" 410e2, 26.14 class="string"9&e2, 2>s24inish49zeofsuccess *********p3t * w;2re tcomment">/* We must =oop the toll af6er a pyp=" ta 3 _urb" */s_cmres/opd:'G p#acketL666t>E6666ta 4o0 2, void43 from NFC Forum Digital 4pec *49 9cplatcon6 * v6ta -tL 2t>E662s2sot;Itrct;2to(typ=bepd_rc 9 == 0)fx_9"cess */2t6.13t * nnte p="9typ4>="sr603_t4a ->2to(typ=PNost_TYPE4A_SEN4903t>E6036ta 1063u 1063u2t>E662s2sot;Itta ce3poll_reset_mod_lisata_urb" class="pa ce3poll_reset_mod_lisa+code>3kfree_skca -&devrc_fram._valid6devata =E6666ta 4 9cplat4on6 * v6ta ->2to(typ=4Nost_49ta9t>E6696ta 9targgggg_ga+code=scm.stL689t9tresp="+code=13uot;I410t2=list_4dd_tailcode=2ev9 t2=li>s249ram.49ta9t>E6696ta 9s9"linet na9.stL643t>E643s3uot;It4o10s2'G 4* v66ta ->2to(typ=PNos4_TYPE49t>E6696ta s9"linet na9.stL643t>E643s3uot;It5a 95platcon6 * v!6ta ->2t5(typ=50dula9success */2t6.1booL656t class8"l5ss="srssL 5* v!6ta ->2to(typ=PNos5_TYPE5A_SENS_RES_SSDIt 10(10&3s"+coam._finisAGAIN rx10d3s>10"31E * 5(typ=5Nost_Ts9"linet na9.stL643t>E643s3uot;It5a3="srssL 5*L663t>falL6 * linet na95stL60502t693 code=ctgt_felica_urb" 5a46et na9.5tclass="string"9&e2, 2>s25inish504E_A_altL_ur=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&pa ce3alloc3poll_tg_fr2, ta_urb" class="pa ce3alloc3poll_tg_fr2, +code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata =fram." class="sref">(ty9r_3u1t;I5s56et na9.5t from NFC Forum Digital 5036ta50 9cplx_9"cess */2t6.13t * nnte p="9typ5l66et na9.5t ->2to(typ=PNost_TYPE50E6036ta =opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I5s76et na9.5tn6 * v6ta ->2to(typ=5inish50 9attrib7t i9t>E * linet na9.stL603t>E6036ta 0>3kfree_skca -&class="sr603_target 603_tgt_ur It 10&3,list_addnclassrc_fram._valid6nclasst_ur It 10&3,list_addgtrc_fram._valid6gt 9=scm.stL689t9tresp="+code=13uot;I5s86et na9.5td_tailcode=2ev9 t2=li>s25_foun50s_ack6p"+cs code=c=sL_urb" cl5l96et na9.5t v66ta ->2to(typ=PNos5t_dat50appdatae>/*[4]linet na9.stL603t>E6036ta 10634ot;It 10&3,list_addgtyt="sref">2es3syn>sgtyt=" 925o(typ="+codeGG devrc_fram._valid6devata 96 2tbepd_to_cpgtrc_fram._valid6gt 9=scm.stL689t9tresp="+code=13uot;I5 10&3lass=5sref">2erep="+co10 3l>10"5tstcc51="+code=in_urb" c603it19t>E cla_ata_urb" class=" cla_a;It 10t3pd:'G p#Lgtyt=" p#L653t idstL10/3pgtyt=" p#L 925o(typ="+codeGG devrc_fram._valid6devata 96 2tbepd_to_cpgt p#L653t idstL10/3pgt(t"+codeE6666ta 5et_jeweL655t class8"line p="9target_5eweLo51ef954o(typ="+code=staPNost_TYPE_B_PRO5e2="srssL 5typ=.r3pletstcc10-3g>10"350t>E651class="sr= s7t i * linet nE6036ta 10632es3syn>s603_tg_par2,"s="sr18]25o{0x1, 0xfe,*p3t * w;2re tcomment">/* DEP */s_cmres/opd:'G p#acketL666t>E6666ta 5ss8"lintgt5jeweL * v6tsuccess */2t6513t *51>E6036ta 1063u4t;;;;;;;;;;;;;;;;;0x0,;0x0,;0x0,;0x0,;0x0,;0x0,;p3t * w;2re tcomment">/* random */s_cmres/opd:'G p#acketL666t>E6666ta 5s46et na9.5class9"linet na10d3t>10"35inish51zeofsuccess *************************0x0,;0x0,;0x0,;0x0,;0x0,;0x0,;0x0,;0x0,/opd:'G p#acketL666t>E6666ta 5s56et na9.5altL_urb" class="srlinet 5arget51 9cplatcon6 * v6ta -****************0xff, 0xff};;p3t * w;2re tcomment">/* System p# */s_cmres/opd:'G p#acketL666t>E6666ta 5s66et na9.5 9NPROTO plinet 5a9.st51linetoe=urdeclass="sbooL656t class8"l510&3_iref"5max_payload_len10a3_>10"35a -&g51 9attrib7t i9t>E * linet na9.stL603t>E6036ta 1063sot;It 1mifare_par2,"sref">2es3syn>smifare_par2,"s="sr6]25o{0x1, 0x1,;p3t * w;2re tcomment">/* c>s44ef */s_cmres/opd:'G p#acketL666t>E6666ta 5s86et na9.5t pnet na8.stL676t>E6765uppor51ta9t>E6696ta 9target_data9t>E0x0,;0x0,;0x0,/opd:'G p#acketL666t>E6666ta 5s96et na9.5t pnet na8.stL676t>E6765 s7t51t>E6696ta 9tgt_datet_data9t>E0x40};;p3t * w;2re tcomment">/* SEL44ef for DEP */s_cmres/opd:'G p#acketL666t>E6666ta 5s="sr603_t5t pnet na8.stL676t>E676503it152dula9success */2t6.1booL656t class8"l5st_jeweL655gt;2to(typ="+code=r="s_tg5_urb"529upported_prounsigneds_L662t>E662s2sot;Itskt p#L653t idstL10/3pskt p#L 925o36 +;p3t * w;2re tcomment">/* m p# (1), mifare (6),s_cmres/opd:'G p#acketL666t>E6666ta 5s2="srssL 52to(typ="+codeG10(39>10635fram.52>E603p3t * w;2re tcomment">atcon6 * v6ta -***********************603_tg (18), nclass (10), gt(t"+ (1) */s_cmres/opd:'G p#acketL666t>E6666ta 5ss8"lintgt54t;It 10&3sync"+codclass=5sref"52>E6036ta 1063u4t;;;;;;;;;;;;;;;;0t3pd:'G p#Lgtyt=" p#L653t idstL10/3pgtyt=" p#L 92+/opd:'G p#acketL666t>E6666ta 5s46et na9.5ass="sref">2eres10e3u>10652tL6752zeofsuccess ************************1;uup3t * w;2re tcomment">/* t"+ Tk*/s_cmres/opd:'G p#acketL666t>E6666ta 5s56et na9.5t class9"linet 10 3d>106356lass52cess */2t6.13t * nnte p="9type_b_9 s5sROTO6696t5lass="srlinet type_b_prot5infoo52RES_SSDL666t>E6666ta PNost_sktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3sktrc_fram._valid6ta ce3alloc3skt+code>3kfree_skca -&devrc_fram._valid6devata pt+code=fram." skt p#L653t idstL10/3pskt p#L 9=E6666ta 5s0&3_iref"5ess */2t6.1bitrat_POSTf">5et_cm527eofsuccess */2t6* s="+code=in_frsktrc_fram._valid6skt 9=fram." class="sref">(ty9r_3u1t;I51="sr603_t5ess */2t6.1fsci typeet na5.stL652ta9t>E6696ta 9>2to(typ=PNost_TYPENULs3uot;It 10&3idsNULscodeE6666ta 5o(e>/* suc5ess */2t6.1fwi_adc_fo_urb5 clas52_feli6ta PNost_TYPE_A_SENS_RES_Po(ty5 p#acket 5 linet na9.stL603t>E6036t5 53="+code=in_urb3t * w;2re tcomment">/* DEP ISO1444 only */s_cmres/opd:'G p#acketL666t>E6666ta 510>36316ta5 9.2to(9310>3610s_3526ta 53lass="sr603_t0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 1=25o(typ="+codeGG tL653tINIT_TARGETdDEP3uot;It 10&3idstL653tINIT_TARGETdDEPcodeE6666ta 5_FCSI3/* MIFARE par2," */s_cmres/opd:'G p#acketL666t>E6666ta 5146et na9.5ASK_urb" class="srPNost_T5PE_B_53 nnte p="9target_felica_urb"memcpysref">2es3syn>smemcpy+code>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 6), 1063sot;It 1mifare_par2,"sref">2es3syn>smifare_par2,"s="s 6)E6666ta 5_56et na9.5(typ=.r3pletstcc" 3>s_356lass5"cess */2t6.13t * nnte p="9type_b_9 s5t i_urb" c5ass="sre p="9type_b_9 s75 io(9536e3s>10632stdb3t * w;2re tcomment">/* F03_tg par2," */s_cmres/opd:'G p#acketL666t>E6666ta 510&3_iref"5ess */2t6.1op2t6. 9 5 96 253 9attrib7t i9t>E * linclass="sr603_target 603_tgt_ur25o(typ="+codeGG skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 18)E6666ta 5_="sr603_t5ess */2t6.1603it+code=in_5rb" c503ite>/*[4]linet na9.stL603t>memcpysref">2es3syn>smemcpy+code>3kfree_skca -&class="sr603_target 603_tgt_ur 0t3pd:'G p#L603_tg_par2,"sref">2es3syn>s603_tg_par2,"s="s 18)E6666ta 5_(e>/* suc5ess */2t6.1appdata_urb" c5ass="53appdatae>/*[4]linet na9.stL6 3trandom_tyt="sref">2es3syn>sg 3trandom_tyt="+code>3kfree_skca -&class="sr603_target 603_tgt_ur +;2 6)E6666ta 5_b_prot_in5o_urb" class="srlinet typ5_b_pr54dula9success */2t6.1booL656t class8"l5 p#acket 5 linet na9.stL603t>E6036t5 541e3s>10632stdb3t * w;2re tcomment">/* NFCID3 */s_cmres/opd:'G p#acketL666t>E6666ta 510(33s353_skc54class="sr= s7t i * linet nnclassrc_fram._valid6nclasst_ur25o(typ="+codeGG skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 10)E6666ta 5_TYPE32es3syn>smemcpy+code>3kfree_skca -&nclassrc_fram._valid6nclasst_ur >3kfree_skca -&class="sr603_target 603_tgt_ur 8)E6666ta 5b_urb" cla5s="srlinet target_type_bo59yp"+54cess */2t6.13t * nnte p="9type_b_9 s5_b_9 s7t 5_urb" class="sre p="9type5b_9 546e3s>10632stdb3t * w;2re tcomment">/* General tyt=" */s_cmres/opd:'G p#acketL666t>E6666ta 510&3_iref"5ess */2t6.1attrib7t i9t>E5696ta54 9attrib0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 1=25o(typ="+codeGG gtyt=" p#L653t idstL10/3pgtyt=" p#L 9E6666ta 5b="sr603_t5ess */2t6.1attrib7t i66965a 54s_ack6p"+cs code=c=sL_urb" cl5o(e>/* suc5 linet na9.stL603t>E6036t5 54appdatae>/*[4]linet na9.stL6 trc_fram._valid6gt 925o(typ="+codeGG skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 (typ="+codeGG gtyt=" p#L653t idstL10/3pgtyt=" p#L 9)E6666ta 510(3am._va5id6ta c3s35ref">55="+code=in_urb" c603it19t>E memcpysref">2es3syn>smemcpy+code>3kfree_skca -& trc_fram._valid6gt 9 (typ="+codeGG gtyt="sref">2es3syn>sgtyt=" 9 (typ="+codeGG gtyt=" p#L653t idstL10/3pgtyt=" p#L 9)E6666ta 51p#acket 5uccess */2t6.1linet targe5_type55ef954o(typ="+code=staPNost_TYPE_B_PRO5zzzzzzzzzz5zzzzz e40t class9"linet t5rget_552e3s>10632stdb3t * w;2re tcomment">/* L"+ Tk */s_cmres/opd:'G p#acketL666t>E6666ta 5 10e353s55std_553 9attrib0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 1=25oe=scm.stL689t9tresp="+code=13uot;I5 0e3_KERNE5 9target_data9t>E * 5.2to(55cess */2t6.13t * nnte p="9target_type5* to(typ=t594 2to(typ="+platcon6656t5 55 9cplatcon6 >2to(typ=PNost_TYPEsktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I5=PNost_TYP5_A_SENS_RstaPNr_26ot;It 75036ta55RES_Ss9"linet na9.stL643t>E643s3uot;It51(e>/* suc5opd:'G p#L659t f2c"+>s55ref"552to(typ694 2to(typ="+="s_tgt_urb" cla5*(e>/* suc5e>/* success */2tt29:1>s25940t 55ta9t>#def */o(typ="+codeGG tL653tCMD_DATAEXCH_HEAD_LEN rx10d3s>10"31/* suc5_urb" class="srlinet targ5t_fou55t>E66#def */o(typ="+codeGG tL653tCMD_DATAEXCH_DATA_MAXLEN rx10d3s>10"31E66altL_uruccess */2t6.13t * nnt="s_m_g 3t1 t9(comple/ood:'10f3a>1063tnnt="s_m_g 3t1 t9(comple/o+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata ,rvoido0>3kfree_skca -&ard653t idstL10/3pardata ,yp694 2to(typ="+="s_tgt_urb" cla5lp#acket 5 sre l2t=hunk ofo">2 e9>s56to(9569upported_protocoli_uuuuuuuuuuuuuuuuuuuuuuu=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&resp:'G pPNost_Trespata =fram." class="sref">(ty9r_3u1t;I5et_felica_5rb" class="srlinet target5felic56ef954x_9"cess */2t6.13t * nnte p="9typ510e2"sref"5ta 2to(typ="+code2"sr>s25o(ty956nte p="9target_jeweL656t claet na9.stL603t>E6036ta 1063sot;It 1altLuss="srNFC_PROTO_IltLus 9=scm.stL689t9tresp="+code=13uot;I5l0e3_KERNE5_felica * v6tsuccess */256.13t56cess */2t6.13t * nnte p="9target_type510 2ta ;1<5o(typize" clende 2ta >s256ram.56lass="sr603_tgt pnet na8.sppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 5ePNost_TYP5valtL_urb" class="srlinet5targe56linetoe=urdeclass="sbooL656t class8"l5e(e>/* suc5 9NPROTO plinet 5a9.st567eofsuccess */2t6pt+code=fram." IS_ERRt>E6486s3"li>s3IS_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata ==fram." class="sref">(ty9r_3u1t;I5e(e>/* suc5coe='G _cmdt clt2(ty>s259ram.56ta9t>E6696ta 9>2to(typ=PNost_TYPEPTR_ERRt>E6486s3"li>s3PTR_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 5e(e>/* suc5srtgt_felica * net na8.s5L676t56_feli6ta PNost_TYPE_A_SENS_RES_Po(ty5rb" class=5srtgt_felica * net na8.s5L676t57="+code=in_urb" c603it19t>E ltLuss="srNFC_PROTO_IltLus 925o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr03E6666ta 5rb" class=5sr603_tgt pnet na8.stL656t>E657lass="sr603_tgt pnet na8.s kt_pul"sr603_target kt_pul"+code>3kfree_skca -&resp:'G pPNost_Trespata ,t class9b" c603it19t>E ltLuss="srNFC_PROTO_IltLus 9)==scm.stL689t9tresp="+code=13uot;I5 10627ot;I5 10(2+d:'G p#L653t ids5L65(257ef954o(typ="+code=staPNost_TYPE_B_OPC5r0e2"sref"5sr603_tgt pnet na8.stL656t>E657>E6036ta /2t6pt+code=fram." ltLuss="srNFC_PROTO_IltLus 92!= 0)fx_9"cess */2t6.13t * nnte p="9typ5r0e3_KERNE5'G p#L684t idse23s25 _s57zeofsuccess *********pt pnet na8.sppor_m_deact6.ate"rc_fram._valid6 9m_deact6.ate"+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpppordev653t idstL10/3pppordevd_rx==scm.stL689t9tresp="+code=13uot;I5 0 2ta ;1<5gt;2to(typ="+code=r="s_tg5_urb"57 9cplatcon6 * v6ta -2t>E662s2sot;Itdevrc_fram._valid6devata 96 2tbepd_to_cp>10"m p#rc_fram._valid6>10"m p# 925oe=scm.stL689t9tresp="+code=13uot;I5s="sr603_t5t pnet na8.stL676t>E6765 sf75703t>E6036ta 1063u2t>E662s2sot;Itdev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 5r(e>/* suc5etstcc"+copd:'G9 f2p=.>s255t id5703t>E6036ta 1062 ot;It 1e=scm.stL689t9tresp="+code=13uot;I5s(e>/* suc5ot;It 10t2to(ty8="2t687="5code=57ta9t>E6696ta s9"linet na9.stL643t>E643s3uot;It5 10s2'G 5p#L619t idstL6199 s2'G >s58 t9(57_feli6ta PNost_TYPE_A_SENS_RES_Po(ty510(2=check5um" class="srei9i(2=ch>s251lass58="+code=in_ur>2to(typ=PNost_TYPE 9m_d t9(receYPE"rc_fram._valid6 9m_d t9(receYPE"+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpppordev653t idstL10/3pppordevd_rx pt+code=fram." resp:'G pPNost_Trespata =E6666ta 5656t class5"line p="9target_jeweLo(95p"+co58_is_vs9"linet na9.stL643t>E643s3uot;It5 8__bepd56.13to(typ="+cokfrea s7t5i_urb58ef954o(typ="+code=staPNost_TYPE_B_OPC5 0e2"sref"5ess */2t6.1jeweLtL_urb" c5ass="58t_cmdaltL_urvoido(typ="+codeGG ta ce3wq_tg_g 3t1 t9od:'10f3a>1063tnnt="swq_tg_g 3t1 t9+code=opd_22type_b_urb" clawork_=opd_2od:'10f3a>1063twork_=opd_2;It 10>3kfree_skca -&workod:'10f3a>1063tworkata =fram." class="sref">(ty9r_3u1t;I5 p#acket 5 linet na9.stL603t>E6036t5 58 nntex_9"cess */2t6.13t * nnte p="9typ510 2, void5* to(typ="+code9l 2, v>s25am._i58 9cplatcon6 =opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o(typ="+codeGG contaoder_od:'G pPNost_Tcontaoder_od+code>3kfree_skca -&workod:'10f3a>1063tworkata =opd_22type_b_urb" class="src_fram._valid6ta ce;It _62t>E662s2sot;It a_workod:'10f3a>1063t a_workata =E6666ta 56="sr603_t5uccess */2t6.1linet targe5_jewe58linetoe=urdeclass="sbooL656t class8"l510f2p=.r3p5lllll e40t class9"linet t5rget_58_urb" class="=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I51 p#L610625 ;erros3s58clas58d_protocoli_u_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I5110s2'G 5ess */2t6.1ssL_urb" class5"srss58_feli6ta PNost_TYPE_A_SENS_RES_Po(ty5o(e>/* suc5ess */2t6.1platcon6656ta 5 59="+code=in_urb" c603it19t>E ppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 510>2121s252 _59ef954o(typ="+code=staPNost_TYPE_B_PRO5>E6696ta 5 9target_data9t>E * 5.2to(59class="sr= s7t i * linet nsktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3sktrc_fram._valid6ta ce3alloc3skt+code>3kfree_skca -&devrc_fram._valid6devata 0)E6666ta 5lL6et na9.5tL663t>falL6 * linet na95stL6059>E6036ta /2t6* s="+code=in_frsktrc_fram._valid6skt 9=fram." class="sref">(ty9r_3u1t;I510e2, 26.15 class="string"9&e2, 2>s25inish59zeofsuccess *********>2tE6666ta 5l0 2, void53 from NFC Forum Digital 5pec *59cess */2t6.13t * nnte p="9type_b_9 s5>="sr603_t5a ->2to(typ=PNost_TYPE5A_SEN59RES_SSDL666t>E6666ta PNost_rct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3send_d t9(asynct;2to(typ=bepd_ta ce3send_d t9(async+code>3kfree_skca -&devrc_fram._valid6devata (typ="+codeGG tL653tCMD_TG_GETdDATet;It 10e3ts_ext6ta ;1CMD_TG_GETdDATeata (typ="+codeGG sktrc_fram._valid6skt 9 */2t6.13t * nnte p="9type_b_9 s5>0f2p=.r3p5on6 * v6ta ->2to(typ=5Nost_59ta9t>E6696ta 9targgggga 1063u2t>E662s2sot;Itnnt="s_m_g 3t1 t9(comple/ood:'10f3a>1063tnnt="s_m_g 3t1 t9(comple/o+cod (typ="+codeGG NULs3uot;It 10&3idsNULscode)E6666ta 5l p#L610625dd_tailcode=2ev9 t2=li>s259ram.59s_ack6p"+cs code=c=sL_urb" cl5o10s2'G 5* v66ta ->2to(typ=PNos5_TYPE59_SENS_RES_SSD_JEW13E6696ta 9tgtrb" class="sr=udev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&sktrc_fram._valid6skt 9=E6666ta 6ss="srssL 6* v!6ta ->2to(typ=PNos6_TYPE60ef954o(typ="+code=staPNost_TYPE_B_PRO6s2="srssL 6* 9target_data9t>E * 6(typ=60class="sr= s>2tE6666ta 6a3="srssL 6*L663t>falL6 * linet na96stL60602t693s9"linet na9.stL643t>E643s3uot;It6a46et na9.6tclass="string"9&e2, 2>s26inish60cess */2t6.13t * nnte p="9target_type6s56et na9.6t from NFC Forum Digital 6036ta60 9cpl#def */o(typ="+codeGG ATR_REQ_GB_OFFSETrc_fram._valid6ATR_REQ_GB_OFFSET9cpla17*/2t6.13t * nnte p="9target_type6s66et na9.6t ->2to(typ=PNost_TYPE603kfree_skca -&resp:'G pPNost_Trespata =fram." class="sref">(ty9r_3u1t;I6s76et na9.6tn6 * v6ta ->2to(typ=6inish60p2t6.x_9"cess */2t6.13t * nnte p="9typ6s86et na9.6td_tailcode=2ev9 t2=li>s26_foun603ite>/*[4]linet na9.stL603t>class="sref">(ty9r_3u9t;62s3u6t;It 10&3modood:'10f3a>1063tm p# 9 It 10&3,list_addcm"rc_fram._valid6cm"+cod (typ="+codeGG comm"m p#rc_fram._valid6comm"m p# 925o(typ="+codeGG +codCOMM_PASSIVE3uot;It 10&3idsNcodCOMM_PASSIVE 9 It 10&3,list_addgtrc_fram._valid6gt 9=scm.stL689t9tresp="+code=13uot;I6l96et na9.6t v66ta ->2to(typ=PNos6t_dat60appdatae>/*[4]linet na9.stL6 cla_ata_urb" class=" cla_a;It 10t3pd:'G p#Lgt p#L653t idstL10/3pgt(t"+codeE6666ta 6 10&3lass=6sref">2erep="+co10 3l>10"6tstcc61="+code=in_ur_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I6et_jeweL656t class8"line p="9target_6eweLo61ef954o(typ="+code=staPNost_TYPE_B_PRO6e2="srssL 6typ=.r3pletstcc10-3g>10"360t>E661class="sr= s7t i * linet nppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 6ss8"lintgt6jeweL * v6tsuccess */2t6613t *612t693 code=ctgt_felica_urb" 6s46et na9.6class9"linet na10d3t>10"36inish61zeofsuccess *_JEW1310"36a -&g61 9attrib7t i9t>E * linmodood:'10f3a>1063tm p# 925o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr03E6666ta 6s86et na9.6t pnet na8.stL676t>E6766uppor613ite>/*[4]linet na9.stL603t>cm"rc_fram._valid6cm"+codD5o9 96 2top2t6. *resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sr13E6666ta 6s96et na9.6t pnet na8.stL676t>E6766 s7t61_feli6ta PNost_TYPE_A_SENS_RES_Po(ty6s="sr603_t6t pnet na8.stL676t>E676603it162="+code=in_urb" c603it19t>E ppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Ta 3 m p# 0x%x t"+ %d\n"s_cmres 6ta PNost_TYPE_A_SENS_RES_Po(ty6st_jeweL656gt;2to(typ="+code=r="s_tg6_urb"629upported_protocoli_uuuuu62s3u6t;It 10&3modood:'10f3a>1063tm p# 9 13E6666ta 6s2="srssL 62to(typ="+codeG10(39>10636fram.62ef954o(typ="+code=staPNost_TYPE_B_OPC6ss8"lintgt64t;It 10&3sync"+codclass=6sref"62>E6036ta /2t6W131063tm p# 92ode3cl.13t * nnte p="tL653tINIT_TARGETdRESP_FRAME10&29p="2t92to(typ="tL653tINIT_TARGETdRESP_FRAME10&29code= ==_9"cess */2t6.13t * nnte p="9typ6s46et na9.6ass="sref">2eres10e3u>10662tL6762zeofsuccess *****.13t * nnte p="tL653tINIT_TARGETdRESP_ACTIVE3uot;It 10&3idstL653tINIT_TARGETdRESP_ACTIVEata =fram." class="sref">(ty9r_3u1t;I6s56et na9.6t class9"linet 10 3d>106366lass62 9cplatcon6 * v6ta -2t>E662s2sot;Itcomm"m p#rc_fram._valid6comm"m p# 925o(typ="+codeGG +codCOMM_ACTIVE3uot;It 10&3ids+codCOMM_ACTIVE 9=scm.stL689t9tresp="+code=13uot;I6sROTO6696t6lass="srlinet type_b_prot6infoo62linetoe=urdeclass="sbooL656t class8"l6s0&3_iref"6ess */2t6.1bitrat_POSTf">6et_cm627eofsuccess */2t6W131063tm p# 92ode3cl.13t * nnte p="tL653tINIT_TARGETdRESP_DEP3uot;It 10&3idstL653tINIT_TARGETdRESP_DEPcode= == 0)fdb3t * w;2re tcomment">/* Only DEP ISO1444e" */s_cmres/opd:'G p#acketL666t>E6666ta 61="sr603_t6ess */2t6.1fsci typeet na6.stL662ta9t>E6696ta 9>2to0&3s"+coam._finisOPNOTSUPP3uot;It 10&3idssOPNOTSUPP 9=scm.stL689t9tresp="+code=13uot;I6s96et na9.6ess */2t6.1fwi_adc_fo_urb6 clas62_feli6ta PNost_TYPE_A_SENS_RES_Po(ty6 p#acket 6 linet na9.stL603t>E6036t6 63="+code=in_urb" c603it19t>E trc_fram._valid6gt 925o(typ="+codeGG cm"rc_fram._valid6cm"+codD+ (typ="+codeGG ATR_REQ_GB_OFFSETrc_fram._valid6ATR_REQ_GB_OFFSET9cpl=scm.stL689t9tresp="+code=13uot;I610>36316ta6 9.2to(9310>3610s_3626ta 63lass="sr603_tgt pnet na8.sgt p#L653t idstL10/3pgt(t"+codeD5o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD- W133kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpppordev653t idstL10/3pppordevd_rx (typ="+codeGG NcodeG10(2+codDEPr0&29p="2t92to(typ="+codeG10(2+codDEPr0&29(e>/ 6ta PNost_TYPE_A_SENS_RES_Po(ty6146et na9.6ASK_urb" class="srPNost_T6PE_B_63zeofsuccess ***********************2t>E662s2sot;Itcomm"m p#rc_fram._valid6comm"m p# 9 (typ="+codeGG gtrc_fram._valid6gt 9 (typ="+codeGG gt p#L653t idstL10/3pgt(t"+code==scm.stL689t9tresp="+code=13uot;I6156et na9.6(typ=.r3pletstcc" 3>s_366lass63 9cplatcon6 /2t6.13t * nnte p="rct;2to(typ=bepd_rc 92< 0)fx_9"cess */2t6.13t * nnte p="9typ6t i_urb" c6ass="sre p="9type_b_9 s76 io(96303t>E6036ta 1063u2t>E662s2sot;Itppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ6t0&3_iref"6ess */2t6.1op2t6. 9 6 96 263ta9t>E6696ta 9targgggga p3t * w;2re t=oping">"Error wh"+ signaop2g ta 3 act6.ation"s_cmres==scm.stL689t9tresp="+code=13uot;I61="sr603_t6ess */2t6.1603it+code=in_6rb" c63ta9t>E6696ta 9>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I6_(e>/* suc6ess */2t6.1appdata_urb" c6ass="63t>E6696ta s9"linet na9.stL643t>E643s3uot;It6_b_prot_in6o_urb" class="srlinet typ6_b_pr64dula9success */2t6.1booL656t class8"l6 p#acket 6 linet na9.stL603t>E6036t6 64lass="sr603_tgt pnet na8.sdevrc_fram._valid6devata 96 2tbepd_to_cp>10"m p#rc_fram._valid6>10"m p# 925o1=scm.stL689t9tresp="+code=13uot;I610(33s363_skc64class="sr= s7t i * linet nqueue_workod:'10f3a>1063tqueue_work+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpwqrc_fram._valid6wq 9 9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cp a_workod:'10f3a>1063t a_workata =E6666ta 6_TYPE3s365lass64 nnte p="9tarot;It 1e=scm.stL689t9tresp="+code=13uot;I6b_urb" cla6s="srlinet target_type_bo69yp"+64cess s9"linet na9.stL643t>E643s3uot;It6_ i_urb" c6_urb" class="sre p="9type6b_9 64linetoe=urdeclass="sbooL656t class8"l610&3_iref"6ess */2t6.1attrib7t i9t>E6696ta64 altL_urvoido(typ="+codeGG ta ce3lisaen"m p#_timer653t idstL10/3pta ce3lisaen"m p#_timer+codeunsignedslo2g 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="s=fram." class="sref">(ty9r_3u1t;I6b="sr603_t6ess */2t6.1attrib7t i66966a 64s_ackx_9"cess */2t6.13t * nnte p="9typ6o(e>/* suc6 linet na9.stL603t>E6036t6 64appdatae>/*[4=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25oe=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10)96 2tbepd_to_cpdstcc_">c10;3<>10"3class="s=scm.stL689t9tresp="+code=13uot;I610(3am._va6id6ta c3s36ref">65dula9success */2t6.1booL656t class8"l61p#acket 6uccess */2t6.1linet targe6_type65lass="sr603_tgt pnet na8.sppordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Lisaen m p# timeout"s_cmres==scm.stL689t9tresp="+code=13uot;I6zzzzzzzzzz6zzzzz e40t class9"linet t6rget_65ef954o(typ="+code=staPNost_TYPE_B_OPC6 10e353s65std_65nte p="9target_jeweL656t cladevrc_fram._valid6devata 96 2tbepd_to_cpcancel3lisaenrc_fram._valid6cancel3lisaen 925o1=scm.stL689t9tresp="+code=13uot;I6 0e3_KERNE6 9target_data9t>E * 6.2to(65cess */2t6.13t * nnte p="9target_type6* to(typ=t694 2to(typ="+platcon6656t6 65lass="sr603_tgt pnet na8.sta ce3poll_next_modrc_fram._valid6ta ce3poll_next_mod+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I6z i_urb" c6_A_SENS_RstaPNr_26ot;It 76036ta65linetoe=urdeclass="sbooL656t class8"l61(e>/* suc6opd:'G p#L659t f2c"+>s65ref"65 9attrib7t i9t>E * linqueue_workod:'10f3a>1063tqueue_work+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpwqrc_fram._valid6wq 9 9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cppoll_workod:'10f3a>1063tpoll_workata ==scm.stL689t9tresp="+code=13uot;I6z="sr603_t6e>/* success */2tt29:1>s26940t 65ta9t>s9"linet na9.stL643t>E643s3uot;It6*(e>/* suc6_urb" class="srlinet targ6t_fou65_feli6ta PNost_TYPE_A_SENS_RES_Po(ty6llllllllll6lllll e40t class9"linet t6t_dat66t>E66altL_uruccess */2t6.13t * nnt="spoll_comple/ood:'10f3a>1063tnnt="spoll_comple/o+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata voido0>3kfree_skca -&ard653t idstL10/3pardata ,yp694 2to(typ="+="s_tgt_urb" cla6lp#acket 6 sre l2t=hunk ofo">2 e9>s66to(9669upported_protocoli_uuuuuuuuuuuuuuuu=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&resp:'G pPNost_Trespata =fram." class="sref">(ty9r_3u1t;I6et_felica_6rb" class="srlinet target6felic66ef954x_9"cess */2t6.13t * nnte p="9typ610e2"sref"6ta 2to(typ="+code2"sr>s26o(ty966nte p="9targe=opd_22type_b_urb" class="sspoll_modulationss="srNFC_PROTO_ss="sspoll_modulations;It 10>3kfree_skca -&cur_modrc_fram._valid6cur_mods="s=scm.stL689t9tresp="+code=13uot;I6l0e3_KERNE6_felica * v6tsuccess */266.13t66zeofsuccess *_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I610 2ta ;1<6o(typize" clende 2ta >s266ram.66cess */2t6.13t * nnte p="9type_b_9 s6ePNost_TYP6valtL_urb" class="srlinet6targe66RES_SSDL666t>E6666ta PNost_6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 6e(e>/* suc6 9NPROTO plinet 6a9.st662to(typ694 2to(typ="+="s_tgt_urb" cla6e(e>/* suc6coe='G _cmdt clt2(ty>s269ram.66ta9t>E6696ta /2t6pt+code=fram." IS_ERRt>E6486s3"li>s3IS_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata ==fx_9"cess */2t6.13t * nnte p="9typ6e(e>/* suc6srtgt_felica * net na8.s6L676t66t>E6696ta 9tgtt_jeweL656t clarct;2to(typ=bepd_rc 925o(typ="+codeGG PTR_ERRt>E6486s3"li>s3PTR_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 6rb" class=6srtgt_felica * net na8.s6L676t67dula9success */2t6.1booL656t class8"l6rb" class=6sr603_tgt pnet na8.stL666t>E6679upported_protocoli_u2t>E662s2sot;Itppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s Poll comple/o error %d"s_cmres 6ta PNost_TYPE_A_SENS_RES_Po(ty6 10627ot;I6 10(2+d:'G p#L653t ids6L65(267>E6036ta 1061=ot;_protocoli_u2t>E662s2sot;It__func__t>E6486s3"li>s35 func__d_rx 13E6666ta 6r0e2"sref"6sr603_tgt pnet na8.stL666t>E6672t693 code=ctgt_felica_urb" 6r0e3_KERNE6'G p#L684t idse23s26 _s67zeofsuccess *********tL 2t>E662s2sot;Itrct;2to(typ=bepd_rc 9 == 0&3s"+coam._finisNOENTrc_fram._valid6sNOENTcode= x_9"cess */2t6.13t * nnte p="9typ6 0 2ta ;1<6gt;2to(typ="+code=r="s_tg6_urb"67 9cplatcon6 * v6ta -********tL 2t>E662s2sot;Itdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_counata_urb" class="poll_mod_couna9cpla!= 0)_9"cess */2t6.13t * nnte p="9typ6 PNost_TYP6t pnet na8.stL676t>E6766 sf76703t>E6036ta 1063uuuuuuuuuuuuuuuuu>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I6r(e>/* suc6etstcc"+copd:'G9 f2p=.>s265t id6703t>E6036ta 1062 elsescm.stL689t9tresp="+code=13uot;I6r(e>/* suc6ot;It 10t2to(ty8="2t687="6code=67ta9t>E6696ta 9target_data9t>E gotorb" c603it19t>E lopspoll:'G pPNost_Tslopspoll 9=scm.stL689t9tresp="+code=13uot;I6r(e>/* suc6p#L619t idstL6199 s2'G >s68 t9(67t>E6696ta 9tgt} else /2t6.13t * nnte p="rct;2to(typ=bepd_rc 92< 0)fx_9"cess */2t6.13t * nnte p="9typ610(2=check6um" class="srei9i(2=ch>s261lass68t>E6696ta 9tgttttttttt2t>E662s2sot;Itppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ61b" class=6"line p="9target_jeweLo(96p"+co689upported_protocoli_uuuuuuuuuuuuuuuuuuuuup3t * w;2re t=oping">"Error %d wh"+ runnp2g poll"s_cmres pt+code=fram." rct;2to(typ=bepd_rc 9=E6666ta 6 8__bepd66.13to(typ="+cokfrea s7t6i_urb68>E6036ta 1061=ot;_protocogotorb" c603it19t>E lopspoll:'G pPNost_Tslopspoll 9=scm.stL689t9tresp="+code=13uot;I6 0e2"sref"6ess */2t6.1jeweLtL_urb" c6ass="68>E6036ta 1063u4t;s9"linet na9.stL643t>E643s3uot;It6 p#acket 6 linet na9.stL603t>E6036t6 68zeofsuccess *s9"linet na9.stL643t>E643s3uot;It6 0 2ta ;1<6* to(typ="+code9l 2, v>s26am._i68cess */2t6.13t * nnte p="9type_b_9 s66="sr603_t6uccess */2t6.1linet targe6_jewe68RES_SSDL666t>E6666ta PNost_cur_modrc_fram._valid6cur_mods="s25o(typ="+codeGG devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_act6.ood:'10f3a>1063tnoll_mod_act6.oata [2t>E662s2sot;Itdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curr653t idstL10/3ppoll_mod_currata 3E6666ta 610f2p=.r3p6lllll e40t class9"linet t6rget_682to(typ694 2to(typ="+="s_tgt_urb" cla61 p#L610626 ;erros3s68clas68ta9t>E6696ta /2t6pt+code=fram." cur_modrc_fram._valid6cur_mods="s 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD== 0)f{db3t * w;2re tcomment">/* Ta 3 m p# */s_cmres/opd:'G p#acketL666t>E6666ta 6110s2'G 6ess */2t6.1ssL_urb" class6"srss68t>E6696ta 9tgtt_jeweL656t cladel_timer653t idstL10/3pdel_timer+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cplisaen"timer653t idstL10/3plisaen"timer 9=E6666ta 6o(e>/* suc6ess */2t6.1platcon6656ta 6 69t>E6696ta 9tgtrb" class="sr=urct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3initsta 3tcomple/ood:'10f3a>1063tnnt="sinitsta 3tcomple/o+code96 2tbepd_to_cpdevrc_fram._valid6devata p3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 610>2121s262 _699upported_protocoli_ugotorb" c603it19t>E donood:'10f3a>1063tdono 9=scm.stL689t9tresp="+code=13uot;I6>E6696ta 6 9target_data9t>E * 6.2to(69class="sr= ss9"linet na9.stL643t>E643s3uot;It6lL6et na9.6tL663t>falL6 * linet na96stL60692t693 code=ctgt_felica_urb" 610e2, 26.16 class="string"9&e2, 2>s26inish69zeofsuccess *b3t * w;2re tcomment">/* Initiator m p# */s_cmres/opd:'G p#acketL666t>E6666ta 6l0 2, void63 from NFC Forum Digital 6pec *69lass="sr603_tgt pnet na8.srct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3sta tspoll_comple/ood:'10f3a>1063tnnt="ssta tspoll_comple/o+code96 2tbepd_to_cpdevrc_fram._valid6devata p3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 61="sr603_t6a ->2to(typ=PNost_TYPE6A_SEN69RES_SSDL666t>/2t6* s="+code=in_frrct;2to(typ=bepd_rc 9=/opd:'G p#acketL666t>E6666ta 610f2p=.r3p6on6 * v6ta ->2to(typ=6Nost_69ta9t>E6696ta 9gotorb" c603it19t>E donood:'10f3a>1063tdono 9=scm.stL689t9tresp="+code=13uot;I6> p#L610626dd_tailcode=2ev9 t2=li>s269ram.69s_ack6p"+cs code=c=sL_urb" cl6o10s2'G 6* v66ta ->2to(typ=PNos6_TYPE69_SENS_RES_SSD_JEW* s="+code=in_frdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_counata_urb" class="poll_mod_couna9cpl)fx_9"cess */2t6.13t * nnte p="9typ7a 97platcon6 * v!6ta ->2t7(typ=70t>E6696ta 9tgtrb" class="sr=u6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Pollp2g has be"+ sloped."s_cmres==scm.stL689t9tresp="+code=13uot;I7ss="srssL 7* v!6ta ->2to(typ=PNos7_TYPE709upported_protocoli_ugotorb" c603it19t>E donood:'10f3a>1063tdono 9=scm.stL689t9tresp="+code=13uot;I7s2="srssL 7* 9target_data9t>E * 7(typ=70class="sr= ss9"linet na9.stL643t>E643s3uot;It7a3="srssL 7*L663t>falL6 * linet na97stL60702t693 code=ctgt_felica_urb" 7a46et na9.7tclass="string"9&e2, 2>s27inish70 nnte p="9target_felica_urb"ta ce3poll_next_modrc_fram._valid6ta ce3poll_next_mod+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I7s56et na9.7t from NFC Forum Digital 7036ta70lass="sr603_tgt pnet na8.squeue_workod:'10f3a>1063tqueue_work+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpwqrc_fram._valid6wq 9 9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cppoll_workod:'10f3a>1063tpoll_workata ==scm.stL689t9tresp="+code=13uot;I7s66et na9.7t ->2to(typ=PNost_TYPE70E donood:'10f3a>1063tdono 9:oe=urdeclass="sbooL656t class8"l7s86et na9.7td_tailcode=2ev9 t2=li>s27_foun703ite>/*[4]linet na9.stL603t>dev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 7l96et na9.7t v66ta ->2to(typ=PNos7t_dat70appdatae>/*[4>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I7 10&3lass=7sref">2erep="+co10 3l>10"7tstcc71dula9success */2t6.1booL656t class8"l7et_jeweL657t class8"line p="9target_7eweLo71ef954b" c603it19t>E lopspoll:'G pPNost_Tslopspoll 9:oe=urdeclass="sbooL656t class8"l7e2="srssL 7typ=.r3pletstcc10-3g>10"370t>E671class="sr= s7t i * linet nppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Pollp2g operation has be"+ slopped"s_cmres==scm.stL689t9tresp="+code=13uot;I7ss8"lintgt7jeweL * v6tsuccess */2t6713t *712t693 code=ctgt_felica_urb" 7s46et na9.7class9"linet na10d3t>10"37inish71 nnte p="9target_felica_urb"ta ce3poll_reset_mod3lisarc_fram._valid6ta ce3poll_reset_mod3lisa+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I7s56et na9.7altL_urb" class="srlinet 7arget71lass="sr603_tgt pnet na8.sdevrc_fram._valid6devata 96 2tbepd_to_cppoll_protocolss="srNFC_PROTO_soll_protocols 925oe=scm.stL689t9tresp="+code=13uot;I7e66et na9.7 9NPROTO plinet 7a9.st716ppdatae>/*[4>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I7 76et na9.7max_payload_len10a3_>10"37a -&g71 s9"linet na9.stL643t>E643s3uot;It7s86et na9.7t pnet na8.stL676t>E6767uppor71s_ack6p"+cs code=c=sL_urb" cl7s96et na9.7t pnet na8.stL676t>E6767 s7t71_felialtL_ur=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&ta ce3alloc3soll_in_fr6t>rc_fram._valid6ta ce3alloc3soll_in_fr6t>+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 6p"+cs code=c=sL_urb" cl7s="sr603_t7t pnet na8.stL676t>E676703it172t>E6696ta 9tgttttttttttttttttttttttttt=opd_22type_b_urb" class="sspoll_modulationss="srNFC_PROTO_ss="sspoll_modulations;It 10>3kfree_skca -&modrc_fram._valid6mod+cod=/opd:'G p#acketL666t>E6666ta 7st_jeweL657gt;2to(typ="+code=r="s_tg7_urb"729uppox_9"cess */2t6.13t * nnte p="9typ7s2="srssL 72to(typ="+codeG10(39>10637fram.72class="sr= s=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I7ss8"lintgt74t;It 10&3sync"+codclass=7sref"722t693 code=ctgt_felica_urb" 7s46et na9.7ass="sref">2eres10e3u>10672tL6772 nnte p="9target_felica_urb"sktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3sktrc_fram._valid6ta ce3alloc3skt+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&modrc_fram._valid6mod+cod 96 2tbepd_to_cpp#L653t idstL10/3pt"+code=E6666ta 7s56et na9.7t class9"linet 10 3d>106376lass72 9cplatcon6 /2t6* s="+code=in_frsktrc_fram._valid6skt 9=fram." class="sref">(ty9r_3u1t;I7sROTO6696t7lass="srlinet type_b_prot7infoo7203t>E6036ta 1063u>2to(typ=PNost_TYPENULs3uot;It 10&3idsNULscodeE6666ta 7s76et na9.7ess */2t6.1bitrat_POSTf">7et_cm722to(typ694 2to(typ="+="s_tgt_urb" cla71="sr603_t7ess */2t6.1fsci typeet na7.stL6723ite>/*[4]linet na9.stL603t>memcpysref">2es3syn>smemcpy+code>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 (typ="+codeGG modrc_fram._valid6mod+cod 96 2tbepd_to_cpp#L653t idstL10/3pt"+code= 9 96 2top2t6. *modrc_fram._valid6mod+cod 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="s >3kfree_skca -&modrc_fram._valid6mod+cod 96 2tbepd_to_cpp#L653t idstL10/3pt"+code=E6666ta 7s96et na9.7ess */2t6.1fwi_adc_fo_urb7 clas72_feli6ta PNost_TYPE_A_SENS_RES_Po(ty7 p#acket 7 linet na9.stL603t>E6036t7 73="+code=in_ur>2to(typ=PNost_TYPEsktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I710>36316ta7 9.2to(9310>3610s_3726ta 73_is_vs9"linet na9.stL643t>E643s3uot;It712="srssL 7d:'G pPNost_TYPE_B_PRO7_FCSI73ef954o(typ="+code=staPNost_TYPE_B_OPC7_TYPE3(ty9r_3u1t;I7146et na9.7ASK_urb" class="srPNost_T7PE_B_73 nntex_9"cess */2t6.13t * nnte p="9typ7156et na9.7(typ=.r3pletstcc" 3>s_376lass73 9cplatcon6 =opd_22type_b_urb" class="sspoll_modulationss="srNFC_PROTO_ss="sspoll_modulations;It 10>3kfree_skca -&modrc_fram._valid6mod+cod=scm.stL689t9tresp="+code=13uot;I71ROTO6696t7ass="sre p="9type_b_9 s77 io(97303t>E6036ta =opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I7t0&3_iref"7ess */2t6.1op2t6. 9 7 96 273ta9t>E6696ta _L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I71="sr603_t7ess */2t6.1603it+code=in_7rb" c733ite>/*[4]linet na9.stL603t>class="sref">(ty9r_3u9t;62s3u6t;It 10&3cmd_cop#rc_fram._valid6cmd_cop# 9=scm.stL689t9tresp="+code=13uot;I7196et na9.7ess */2t6.1appdata_urb" c7ass="73_feli6ta PNost_TYPE_A_SENS_RES_Po(ty7_b_prot_in7o_urb" class="srlinet typ7_b_pr74="+code=in_urb" c603it19t>E modrc_fram._valid6mod+cod25o(typ="+codeGG devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_act6.ood:'10f3a>1063tnoll_mod_act6.oata [2t>E662s2sot;Itdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curr653t idstL10/3ppoll_mod_currata 3E6666ta 7 p#acket 7 linet na9.stL603t>E6036t7 74ef954o(typ="+code=staPNost_TYPE_B_PRO710(33s373_skc74class="sr= s7t i * linet n6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s mod t"+ %d\n"s_cmres 6ta PNost_TYPE_A_SENS_RES_Po(ty7_TYPE3E6036ta 1063u4t;= s7t i * linet n__func__t>E6486s3"li>s35 func__d_rx 13E6666ta 7_46et na9.713s375lass74cess */2t6.13t * nnte p="9target_type7b_urb" cla7s="srlinet target_type_bo79yp"+74 9cplatcon6 /2t6.13t * nnte p="modrc_fram._valid6mod+cod 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD== 0)f{d*b3t * w;2re tcomment">/* Lisaen m p# */s_cmres/opd:'G p#acketL666t>E6666ta 7_ i_urb" c7_urb" class="sre p="9type7b_9 7403t>E6036ta 1063u2t>E662s2sot;Itcmd_cop#rc_fram._valid6cmd_cop# 925o(typ="+codeGG PN5 ;1CMD_TG_INIT_AS_TARGETrc_fram._valid6PN5 ;1CMD_TG_INIT_AS_TARGET 9=scm.stL689t9tresp="+code=13uot;I710&3_iref"7ess */2t6.1attrib7t i9t>E7696ta74ta9t>E6696ta 9get_felica_urb"sktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3poll_tg_fr6t>rc_fram._valid6ta ce3alloc3soll_tg_fr6t>+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I7b="sr603_t7ess */2t6.1attrib7t i66967a 74ta9t>E6696ta s else {d*b3t * w;2re tcomment">/* Pollp2g m p# */s_cmres/opd:'G p#acketL666t>E6666ta 7_96et na9.7 linet na9.stL603t>E6036t7 74t>E6696ta 9tgtt_jeweL656t clacmd_cop#rc_fram._valid6cmd_cop# 925oo(typ="+codeGG PN5 ;1CMD_IN_LIST_PASSIVE_TARGETrc_fram._valid6PN5 ;1CMD_IN_LIST_PASSIVE_TARGET 9=scm.stL689t9tresp="+code=13uot;I710(3am._va7id6ta c3s37ref">75t>E6696ta 9tgtrb" class="sr=usktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3poll_in_fr6t>rc_fram._valid6ta ce3alloc3soll_in_fr6t>+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&modrc_fram._valid6mod+cod==scm.stL689t9tresp="+code=13uot;I71p#acket 7uccess */2t6.1linet targe7_type75lass="sr603_ts9"linet na9.stL643t>E643s3uot;It7zzzzzzzzzz7zzzzz e40t class9"linet t7rget_75ef954o(typ="+code=staPNost_TYPE_B_OPC7 10e353s75std_75nte p="9targe/2t6* s="+code=in_frsktrc_fram._valid6skt 9=fx_9"cess */2t6.13t * nnte p="9typ7 0e3_KERNE7 9target_data9t>E * 7.2to(75zeofsuccess *********pt pnet na8.sppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Failed to allocate skt."s_cmres==scm.stL689t9tresp="+code=13uot;I7* to(typ=t794 2to(typ="+platcon6656t7 75 9cplatcon6 * v6ta ->2to0&3s"+coam._finisNOMEMrc_fram._valid6sNOMEM 9=scm.stL689t9tresp="+code=13uot;I71 i_urb" c7_A_SENS_RstaPNr_26ot;It 77036ta756ass="sr603_ts9"linet na9.stL643t>E643s3uot;It7z0&3_iref"7opd:'G p#L659t f2c"+>s75ref"752to(typ694 2to(typ="+="s_tgt_urb" cla7z="sr603_t7e>/* success */2tt29:1>s27940t 753ite>/*[4]linet na9.stL603t>rct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3send_cmd_asynct;2to(typ=bepd_ta ce3send_cmd_async+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&cmd_cop#rc_fram._valid6cmd_cop# 9 (typ="+codeGG sktrc_fram._valid6skt 9 ess */2t6.13t * nnt="spoll_comple/ood:'10f3a>1063tnnt="spoll_comple/o+cod 6ta PNost_TYPE_A_SENS_RES_Po(ty7*(e>/* suc7_urb" class="srlinet targ7t_fou75t>E6696ta 9tgttttttttttttttttttt(typ=PNost_TYPENULs3uot;It 10&3idsNULscode==scm.stL689t9tresp="+code=13uot;I7llllllllll7lllll e40t class9"linet t7t_dat760te p="9targe/2t6et na9.stL603t>rct;2to(typ=bepd_rc 92< 0)fx_9"cess */2t6.13t * nnte p="9typ7lp#acket 7 sre l2t=hunk ofo">2 e9>s76to(9769upported_protocoli_u>3kfree_skca -&dev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&sktrc_fram._valid6skt 9=E6666ta 7et_felica_7rb" class="srlinet target7felic76>E6036ta 1061=ot;pt pnet na8.sppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"Pollp2g loop error %d"s_cmres pt+code=fram." rct;2to(typ=bepd_rc 9=E6666ta 710e2"sref"7ta 2to(typ="+code2"sr>s27o(ty976nte p="9targes9"linet na9.stL643t>E643s3uot;It7l0e3_KERNE7_felica * v6tsuccess */276.13t76cess */2t6.13t * nnte p="9target_type710 2ta ;1<7o(typize" clende 2ta >s276ram.76 9cplatcon6 >2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I7ePNost_TYP7valtL_urb" class="srlinet7targe76RES_Ss9"linet na9.stL643t>E643s3uot;It7l0&3_iref"7 9NPROTO plinet 7a9.st762to(typ694 2to(typ="+="s_tgt_urb" cla7e(e>/* suc7coe='G _cmdt clt2(ty>s279ram.76ta9t>altL_urvoido(typ="+codeGG ta ce3wqspoll:'G pPNost_Tta ce3wqspoll+code=opd_22type_b_urb" clawork_=opd_2:'G pPNost_Twork_=opd_2;It 10>3kfree_skca -&workod:'10f3a>1063tworkata =yp694 2to(typ="+="s_tgt_urb" cla7e(e>/* suc7srtgt_felica * net na8.s7L676t76t>E66x_9"cess */2t6.13t * nnte p="9typ7rb" class=7srtgt_felica * net na8.s7L676t770te p="9targe=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o>3kfree_skca -&conta *r_od:'G pPNost_Tconta *r_od+code>3kfree_skca -&workod:'10f3a>1063tworkata ,r=opd_22type_b_urb" class="src_fram._valid6ta ce;It ess */2t6.13t * noll_workod:'10f3a>1063tpoll_workata ==scm.stL689t9tresp="+code=13uot;I7rb" class=7sr603_tgt pnet na8.stL676t>E6779upported_pro=opd_22type_b_urb" class="sspoll_modulationss="srNFC_PROTO_ss="sspoll_modulations;It 10>3kfree_skca -&cur_modrc_fram._valid6cur_mods="s=scm.stL689t9tresp="+code=13uot;I7 10627ot;I7 10(2+d:'G p#L653t ids7L65(277>E6036ta _L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I7r0e2"sref"7sr603_tgt pnet na8.stL676t>E6772t693 code=ctgt_felica_urb" 7r0e3_KERNE7'G p#L684t idse23s27 _s77 nnte p="9target_felica_urb"cur_modrc_fram._valid6cur_mods="s25o(typ="+codeGG devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_act6.ood:'10f3a>1063tnoll_mod_act6.oata [2t>E662s2sot;Itdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curr653t idstL10/3ppoll_mod_currata 3s275t id7703t>E6036ta 1062 p3t * w;2re t=oping">"%s cancel3lisaen %d modulation t"+ %d"s_cmres 6ta PNost_TYPE_A_SENS_RES_Po(ty7r(e>/* suc7ot;It 10t2to(ty8="2t687="7code=77ta9t>E6696ta 9targ7t i * linet n__func__t>E6486s3"li>s35 func__d_rx 133kfree_skca -&cur_modrc_fram._valid6cur_mods="s 96 2tbepd_to_cpp#L653t idstL10/3pt"+code==scm.stL689t9tresp="+code=13uot;I7r(e>/* suc7p#L619t idstL6199 s2'G >s78 t9(77_feli6ta PNost_TYPE_A_SENS_RES_Po(ty710(2=check7um" class="srei9i(2=ch>s271lass780te p="9targe/2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cpcancel3lisaenrc_fram._valid6cancel3lisaen 925= 1)fx_9"cess */2t6.13t * nnte p="9typ71b" class=7"line p="9target_jeweLo(97p"+co789upported_protocoli_uet na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cpcancel3lisaenrc_fram._valid6cancel3lisaen 925oe=scm.stL689t9tresp="+code=13uot;I7 8__bepd76.13to(typ="+cokfrea s7t7i_urb78>E6036ta 1061=ot;(typ="+codeGG ta ce3abort_cm"rc_fram._valid6ta ce3abort_cm"+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&GFP_ATOMICrc_fram._valid6GFP_ATOMICcode==scm.stL689t9tresp="+code=13uot;I7 0e2"sref"7ess */2t6.1jeweLtL_urb" c7ass="78nte p="9targes9"linet na9.stL643t>E643s3uot;It7 p#acket 7 linet na9.stL603t>E6036t7 78cess */2t6.13t * nnte p="9target_type7 0 2ta ;1<7* to(typ="+code9l 2, v>s27am._i78lass="sr603_tgt pnet na8.srct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3send_poll_fr6t>rc_fram._valid6ta ce3send_poll_fr6t>+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I76="sr603_t7uccess */2t6.1linet targe7_jewe78RES_SSDL666t>/2t6et na9.stL603t>rct;2to(typ=bepd_rc 9=yp694 2to(typ="+="s_tgt_urb" cla710f2p=.r3p7lllll e40t class9"linet t7rget_7803t>E6036ta 1062 >2t=scm.stL689t9tresp="+code=13uot;I76(e>/* suc7 ;erros3s78clas78s_ack6p"+cs code=c=sL_urb" cl7110s2'G 7ess */2t6.1ssL_urb" class7"srss78_SENS_RES_SSD_JEW>3kfree_skca -&cur_modrc_fram._valid6cur_mods="s 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD== 0 9 ode3cl.13t * nnte p="devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_counata_urb" class="poll_mod_couna9cpla 1= code=ctgt_felica_urb" 7o(e>/* suc7ess */2t6.1platcon6656ta 7 79t>E6696ta 9tgtrb" class="sr=umod_timer653t idstL10/3pmod_timer+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cplisaen"timer653t idstL10/3plisaen"timer 9 >3kfree_skca -&jiffiess="srNFC_PROTO_jiffies>E669+ (typ="+codeGG PN5 ;1LISTEN_TIMErc_fram._valid6PN5 ;1LISTEN_TIME;It 10 (typ="+codeGG HZrc_fram._valid6HZata ==scm.stL689t9tresp="+code=13uot;I710>2121s272 _79ef954o(typ="+code=staPNost_TYPE_B_PRO7>E6696ta 7 9target_data9t>E * 7.2to(79class="sr= s>2t=scm.stL689t9tresp="+code=13uot;I7lL6et na9.7tL663t>falL6 * linet na97stL60792t693s9"linet na9.stL643t>E643s3uot;It710e2, 26.17 class="string"9&e2, 2>s27inish79cess */2t6.13t * nnte p="9target_type7l0 2, void73 from NFC Forum Digital 7pec *79lass=altL_uruccess */2t6.13t * nnt="ssta tspollrc_fram._valid6ta ce3sta tspoll+code=opd_22type_b_urb" clanpordev653t idstL10/3pppordevd_rx10>3kfree_skca -&npordev653t idstL10/3pppordevd_rx 6ta PNost_TYPE_A_SENS_RES_Po(ty71="sr603_t7a ->2to(typ=PNost_TYPE7A_SEN7903t>E6036ta 1063u 9tgtrb" class="sr=uud:'G pPN">(ty9r3ef954trb" class="sr=uim_protocolss="srNFC_PROTO_im_protocols 9 >3kfree_skca -&ud:'G pPN">(ty9r3ef954trb" class="sr=utm_protocolss="srNFC_PROTO_tm_protocols 9= code=ctgt_felica_urb" 7o0f2p=.r3p7on6 * v6ta ->2to(typ=7Nost_79ta9t>x_9"cess */2t6.13t * nnte p="9typ7> p#L610627dd_tailcode=2ev9 t2=li>s279ram.79ta9t>E6696ta =opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o>3kfree_skca -&ppor 3tdrvdstcc_">c10;3<>10"3ppor 3tdrvdstc+code>3kfree_skca -&npordev653t idstL10/3pppordevd_rx==scm.stL689t9tresp="+code=13uot;I7110s2'G 7* v66ta ->2to(typ=PNos7_TYPE79_feli6ta PNost_TYPE_A_SENS_RES_Po(ty8a 98platcon6 * v!6ta ->2t8(typ=80="+code=in_urb" c603it19t>E 6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata */2t6.13t * nnte p="9type_b_9 s8ss="srssL 8* v!6ta ->2to(typ=PNos8_TYPE809upported_protocoli_un_urb3t * w;2re t=oping">"%s: im protocols 0x%x tm protocols 0x%x"s_cmres 6ta PNost_TYPE_A_SENS_RES_Po(ty8s2="srssL 8* 9target_data9t>E * 8(typ=80>E6036ta 1061=ot;n_urb" c603it19t>E __func__t>E6486s3"li>s35 func__d_rx 13falL6 * linet na98stL60802t693 code=ctgt_felica_urb" 8a46et na9.8tclass="string"9&e2, 2>s28inish80 nnte p="9tar/2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cp>10"act6.o_prots="srNFC_PROTO_t10"act6.o_prot 9=fx_9"cess */2t6.13t * nnte p="9typ8s56et na9.8t from NFC Forum Digital 8036ta80 9cplatcon6 * v6ta -pt pnet na8.sppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ8s66et na9.8t ->2to(typ=PNost_TYPE80E6036ta 1063u 9tgtr3t * w;2re t=oping">"Cannot poll with a ta 3 already act6.ate""s_cmres==scm.stL689t9tresp="+code=13uot;I8s76et na9.8tn6 * v6ta ->2to(typ=8inish8003t>E6036ta 1062 >2to0&3s"+coam._finisBUSYrc_fram._valid6sBUSY 9=scm.stL689t9tresp="+code=13uot;I8s86et na9.8td_tailcode=2ev9 t2=li>s28_foun803ite>/*[4]lins9"linet na9.stL643t>E643s3uot;It8l96et na9.8t v66ta ->2to(typ=PNos8t_dat80_feli6ta PNost_TYPE_A_SENS_RES_Po(ty8 10&3lass=8sref">2erep="+co10 3l>10"8tstcc810te p="9targe/2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cp>10"m p#rc_fram._valid6>10"m p# 9=fx_9"cess */2t6.13t * nnte p="9typ8et_jeweL658t class8"line p="9target_8eweLo819upported_protocoli_u2t>E662s2sot;Itppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ8e2="srssL 8typ=.r3pletstcc10-3g>10"380t>E681>E6036ta 1061=ot;n_ur 9tgtr3t * w;2re t=oping">"Cannot poll while already bep2g act6.ate""s_cmres==scm.stL689t9tresp="+code=13uot;I8ss8"lintgt8jeweL * v6tsuccess */2t6813t *81>E6036ta 1063u4t;>2to0&3s"+coam._finisBUSYrc_fram._valid6sBUSY 9=scm.stL689t9tresp="+code=13uot;I8s46et na9.8class9"linet na10d3t>10"38inish81 nnte p="9tars9"linet na9.stL643t>E643s3uot;It8s56et na9.8altL_urb" class="srlinet 8arget81cess */2t6.13t * nnte p="9type_b_9 s8e66et na9.8 9NPROTO plinet 8a9.st81RES_SSDL666t>/2t6et na9.stL603t>tm_protocolss="srNFC_PROTO_tm_protocols 9=fx_9"cess */2t6.13t * nnte p="9typ8e76et na9.8max_payload_len10a3_>10"38a -&g81ta9t>E6696ta 9get_felica_urb"devrc_fram._valid6devata 96 2tbepd_to_cpgtrc_fram._valid6gt 925o(typ="+codeGG ppor 3tlocalr neralrbytess="srNFC_PROTO_ppor 3tlocalr neralrbytes+code>3kfree_skca -&npordev653t idstL10/3pppordevd_rx 9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cpgb_p#L653t idstL10/3pgb_p#L 9==scm.stL689t9tresp="+code=13uot;I8s86et na9.8t pnet na8.stL676t>E6768uppor81ta9t>E6696ta 9/2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cpgtrc_fram._valid6gt 9255o(typ="+codeGG NULs3uot;It 10&3idsNULscode=scm.stL689t9tresp="+code=13uot;I8s96et na9.8t pnet na8.stL676t>E6768 s7t81t>E6696ta 9tgtttttttttet na9.stL603t>tm_protocolss="srNFC_PROTO_tm_protocols 925oe=scm.stL689t9tresp="+code=13uot;I8s="sr603_t8t pnet na8.stL676t>E676803it182t>E6696ta s9"linet na9.stL643t>E643s3uot;It8st_jeweL658gt;2to(typ="+code=r="s_tg8_urb"82ef954o(typ="+code=staPNost_TYPE_B_PRO8s2="srssL 82to(typ="+codeG10(39>10638fram.82class="sr= s7t i * linet ndevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_curr653t idstL10/3ppoll_mod_currata 25oe=scm.stL689t9tresp="+code=13uot;I8ss8"lintgt84t;It 10&3sync"+codclass=8sref"82nte p="9target_jeweL656t clannt="spoll_create_mod3lisarc_fram._valid6ta ce3poll_create_mod3lisa+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&im_protocolss="srNFC_PROTO_im_protocols 9 >3kfree_skca -&tm_protocolss="srNFC_PROTO_tm_protocols 9==scm.stL689t9tresp="+code=13uot;I8s46et na9.8ass="sref">2eres10e3u>10682tL6782 nnte p="9target_felica_urb"devrc_fram._valid6devata 96 2tbepd_to_cppoll_protocolss="srNFC_PROTO_soll_protocols 925o>3kfree_skca -&im_protocolss="srNFC_PROTO_im_protocols 9=scm.stL689t9tresp="+code=13uot;I8s56et na9.8t class9"linet 10 3d>106386lass82lass="sr603_tgt pnet na8.sdevrc_fram._valid6devata 96 2tbepd_to_cplisaen"protocolss="srNFC_PROTO_lisaen"protocols 925o>3kfree_skca -&tm_protocolss="srNFC_PROTO_tm_protocols 9=scm.stL689t9tresp="+code=13uot;I8s66et na9.8lass="srlinet type_b_prot8infoo82linetoe=urdeclass="sbooL656t class8"l8s76et na9.8ess */2t6.1bitrat_POSTf">8et_cm82ta9t>E6696ta >2to(typ=PNost_TYPEta ce3send_poll_fr6t>rc_fram._valid6ta ce3send_poll_fr6t>+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I81="sr603_t8ess */2t6.1fsci typeet na8.stL682ta9t>s9"linet na9.stL643t>E643s3uot;It8s96et na9.8ess */2t6.1fwi_adc_fo_urb8 clas82_feli6ta PNost_TYPE_A_SENS_RES_Po(ty8 p#acket 8 linet na9.stL603t>E6036t8 83t>E66altL_urvoido(typ="+codeGG ta ce3 lopspoll:'G pPNost_Tta ce3 lopspoll+code=opd_22type_b_urb" clanpordev653t idstL10/3pppordevd_rx10>3kfree_skca -&npordev653t idstL10/3pppordevd_rx=scm.stL689t9tresp="+code=13uot;I810>36316ta8 9.2to(9310>3610s_3826ta 839uppox_9"cess */2t6.13t * nnte p="9typ812="srssL 8d:'G pPNost_TYPE_B_PRO8_FCSI83class="sr= s=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o>3kfree_skca -&ppor 3tdrvdstcc_">c10;3<>10"3ppor 3tdrvdstc+code>3kfree_skca -&npordev653t idstL10/3pppordevd_rx==scm.stL689t9tresp="+code=13uot;I8_TYPE310&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 8156et na9.8(typ=.r3pletstcc" 3>s_386lass83cess */2t6.13t * nnte p="9type_b_9 s81ROTO6696t8ass="sre p="9type_b_9 s78 io(98303t>E6036ta 96 2tbepd_to_cpdel_timer653t idstL10/3pdel_timer+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cplisaen"timer653t idstL10/3plisaen"timer 9=E6666ta 8t0&3_iref"8ess */2t6.1op2t6. 9 8 96 2832to(typ694 2to(typ="+="s_tgt_urb" cla81="sr603_t8ess */2t6.1603it+code=in_8rb" c83ta9t>E6696ta /2t6* s="+code=in_frdevrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_counata_urb" class="poll_mod_couna9cpl)fx_9"cess */2t6.13t * nnte p="9typ8196et na9.8ess */2t6.1appdata_urb" c8ass="83t>E6696ta 9tgtt_jeweL656t cla6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ8_b_prot_in8o_urb" class="srlinet typ8_b_pr84t>E6696ta 9tgtttttttttttttp3t * w;2re t=oping">"Pollp2g operation was not runnp2g"s_cmres==scm.stL689t9tresp="+code=13uot;I8 p#acket 8 linet na9.stL603t>E6036t8 849upported_protocoli_u>2t=scm.stL689t9tresp="+code=13uot;I810(33s383_skc84class="sr= ss9"linet na9.stL643t>E643s3uot;It8_TYPE3s385lass84 nnte p="9target_felica_urb"ta ce3abort_cm"rc_fram._valid6ta ce3abort_cm"+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&GFP_KERNEs3uot;It 10&3idsGFP_KERNEs 9=E6666ta 8b_urb" cla8s="srlinet target_type_bo89yp"+84lass="sr603_tgt pnet na8.sta ce3poll_reset_mod3lisarc_fram._valid6ta ce3poll_reset_mod3lisa+code>3kfree_skca -&devrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I8_ i_urb" c8_urb" class="sre p="9type8b_9 84RES_Ss9"linet na9.stL643t>E643s3uot;It810&3_iref"8ess */2t6.1attrib7t i9t>E8696ta842to(typ694 2to(typ="+="s_tgt_urb" cla8b="sr603_t8ess */2t6.1attrib7t i66968a 84ta9t>altL_uruccess */2t6.13t * nnt="sact6.atesta 3ts_tdep:'G pPNost_Tnnt="sact6.atesta 3ts_tdep+code=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata =scm.stL689t9tresp="+code=13uot;I8_96et na9.8 linet na9.stL603t>E6036t8 84t>E66x_9"cess */2t6.13t * nnte p="9typ810(3am._va8id6ta c3s38ref">850te p="9targe=opd_22type_b_urb" class="s_cmd_act6.atesrespons>rc_fram._valid6ta ce3cmd_act6.atesrespons>;It 10>3kfree_skca -&rsp:'G pPNost_Trspata =scm.stL689t9tresp="+code=13uot;I81p#acket 8uccess */2t6.1linet targe8_type85lass="sr603_t>3kfree_skca -&u 9NP">(ty9r1RES_SS96 2tbepd_to_cpgt_p#L653t idstL10/3pgt_p#L 9=scm.stL689t9tresp="+code=13uot;I810(33E6036ta _L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I8 10e353s85std_852t693 code=ctgt_felica_urb" 8 0e3_KERNE8 9target_data9t>E * 8.2to(85zeofsuccess *=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I8* to(typ=t894 2to(typ="+platcon6656t8 85 9cplatcon6 =opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&resp:'G pPNost_Trespata =scm.stL689t9tresp="+code=13uot;I8* i_urb" c8_A_SENS_RstaPNr_26ot;It 78036ta85linetoe=urdeclass="sbooL656t class8"l8z0&3_iref"8opd:'G p#L659t f2c"+>s85ref"857ass="sr603_t>3kfree_skca -&6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 8z="sr603_t8e>/* success */2tt29:1>s28940t 85s_ack6p"+cs code=c=sL_urb" cl8*(e>/* suc8_urb" class="srlinet targ8t_fou85t>E6696ta >3kfree_skca -&sktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3sktrc_fram._valid6ta ce3alloc3skt+code>3kfree_skca -&devrc_fram._valid6devata sizeofe>3kfree_skca -&class="sref">(ty9r_3u9t) * 2);*b3t * w;2re tcomment">/*TG + Next*/s_cmres/opd:'G p#acketL666t>E6666ta 8llllllllll8lllll e40t class9"linet t8t_dat860te p="9targe/2t6* s="+code=in_frsktrc_fram._valid6skt 9=fram." class="sref">(ty9r_3u1t;I8lp#acket 8 sre l2t=hunk ofo">2 e9>s86to(9869upported_protocoli_u>2to0&3s"+coam._finisNOMEMrc_fram._valid6sNOMEM 9=scm.stL689t9tresp="+code=13uot;I8et_felica_8rb" class="srlinet target8felic86ef954o(typ="+code=staPNost_TYPE_B_OPC810e2"sref"8ta 2to(typ="+code2"sr>s28o(ty986nte p="9targe0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 sizeofe>3kfree_skca -&class="sref">(ty9r_3u9t))25o1;*b3t * w;2re tcomment">/* TG */s_cmres/opd:'G p#acketL666t>E6666ta 8l0e3_KERNE8_felica * v6tsuccess */286.13t864te p="9targe0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 sizeofe>3kfree_skca -&class="sref">(ty9r_3u9t))25o0;*b3t * w;2re tcomment">/* Next */s_cmres/opd:'G p#acketL666t>E6666ta 8l to(typ=t8o(typize" clende 2ta >s286ram.86cess */2t6.13t * nnte p="9type_b_9 s8ePNost_TYP8valtL_urb" class="srlinet8targe8603t>E6036ta 96 2tbepd_to_cpresp:'G pPNost_Trespata 25o(typ="+codeGG ta ce3send_cmd_synct;2to(typ=bepd_ta ce3send_cmd_sync+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&PN5 ;1CMD_IN_ATRrc_fram._valid6PN5 ;1CMD_IN_ATRata >3kfree_skca -&sktrc_fram._valid6skt 9=E6666ta 8l0&3_iref"8 9NPROTO plinet 8a9.st867te p="9targe/2t6>3kfree_skca -&IS_ERRrc_fram._valid6IS_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata ==fram." class="sref">(ty9r_3u1t;I8l="sr603_t8coe='G _cmdt clt2(ty>s289ram.86ta9t>E6696ta 9>2to(typ=PNost_TYPEPTR_ERRrc_fram._valid6PTR_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 8l(e>/* suc8srtgt_felica * net na8.s8L676t86_feli6ta PNost_TYPE_A_SENS_RES_Po(ty8rb" class=8srtgt_felica * net na8.s8L676t87="+code=in_urb" c603it19t>E rsp:'G pPNost_Trspata 25oe=opd_22type_b_urb" class="s_cmd_act6.atesrespons>rc_fram._valid6ta ce3cmd_act6.atesrespons>;It 10)>3kfree_skca -&resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="sE6666ta 8rb" class=8sr603_tgt pnet na8.stL686t>E687lass="sr603_t>3kfree_skca -&rct;2to(typ=bepd_rc 925o(typ="+codeGG rsp:'G pPNost_Trspata 96 2tbepd_to_cpaltLuss="srNFC_PROTO_altLus 92ode3cl.13t * nnte p="PN5 ;1CMD_RET_MASKrc_fram._valid6PN5 ;1CMD_RET_MASKs="sE6666ta 8rt_felica_8 10(2+d:'G p#L653t ids8L65(287>E6036ta _2t6et na9.stL603t>rct;2to(typ=bepd_rc 92!5o(typ="+codeGG PN5 ;1CMD_RET_SUCCESSrc_fram._valid6PN5 ;1CMD_RET_SUCCESS9cpl)fx_9"cess */2t6.13t * nnte p="9typ8r0e2"sref"8sr603_tgt pnet na8.stL686t>E687>E6036ta 1063u4t;>3kfree_skca -&6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ8r0e3_KERNE8'G p#L684t idse23s28 _s87zeofsuccess ********* 1063u4t;>3t * w;2re t=oping">"Ta 3 act6.ation failed (error 0x%x)"s_cmres pt+code=fram." rct;2to(typ=bepd_rc 9=E6666ta 8r0 2ta ;1<8gt;2to(typ="+code=r="s_tg8_urb"87 9cplatcon6 * v6ta -pt pnet na8.sdev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 8 PNost_TYP8t pnet na8.stL676t>E6768 sf78703t>E6036ta tocoli_u>2to0&3s"+coam._finisIOrc_fram._valid6sIOs="sE6666ta 8r0&3_iref"8etstcc"+copd:'G9 f2p=.>s285t id8703t>E6036ta s9"linet na9.stL643t>E643s3uot;It8r(e>/* suc8ot;It 10t2to(ty8="2t687="8code=87s_ack6p"+cs code=c=sL_urb" cl8r(e>/* suc8p#L619t idstL6199 s2'G >s88 t9(87t>E6696ta >3t * w;2re tcomment">/* ATR_RES neral bytes are located at offs 3 16 */s_cmres/opd:'G p#acketL666t>E6666ta 810(2=check8um" class="srei9i(2=ch>s281lass88="+code=in_urb" c603it19t>E gt_p#L653t idstL10/3pgt_p#L 925o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpp#L653t idstL10/3pt"+codeD- 16E6666ta 81b" class=8"line p="9target_jeweLo(98p"+co88lass="sr603_t>3kfree_skca -&rct;2to(typ=bepd_rc 925o(typ="+codeGG pporset_remotes neralrbytess="srNFC_PROTO_pporset_remotes neralrbytes+code>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cpnpordev653t idstL10/3pppordevd_rx (typ="+codeGG rsp:'G pPNost_Trspata 96 2tbepd_to_cpgata_urb" class="gtd_rx (typ="+codeGG gt_p#L653t idstL10/3pgt_p#L 9=E6666ta 8 8__bepd86.13to(typ="+cokfrea s7t8i_urb88ef954o(typ="+code=staPNost_TYPE_B_OPC8 0e2"sref"8ess */2t6.1jeweLtL_urb" c8ass="88nte p="9target_jeweL656t cladev_kfree3sktrc_fram._valid6dev_kfree3skt+code>3kfree_skca -&resp:'G pPNost_Trespata =E6666ta 8 p#acket 8 linet na9.stL603t>E6036t8 88zeofsuccess *>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I8 0 2ta ;1<8* to(typ="+code9l 2, v>s28am._i88lass=s9"linet na9.stL643t>E643s3uot;It86="sr603_t8uccess */2t6.1linet targe8_jewe88linetoe=urdeclass="sbooL656t class8"l810f2p=.r3p8lllll e40t class9"linet t8rget_8803t>EaltL_uruccess */2t6.13t * nnt="sact6.atesta 3:'G pPNost_Tnnt="sact6.atesta 3+code=opd_22type_b_urb" clanpordev653t idstL10/3pppordevd_rx10>3kfree_skca -&npordev653t idstL10/3pppordevd_rx _9"cess */2t6.13t * nnte p="9typ86(e>/* suc8 ;erros3s88clas88ta9t>E6696ta 9targggggggggggggg=opd_22type_b_urb" clanporta 3:'G pPNost_Tnporta 3d_rx10>3kfree_skca -&ta 3:'G pPNost_Tta 3d_rx >3kfree_skca -&ud:'G pPN">(ty9r3ef954trb" class="sr=uprotocol:'G pPNost_Tnrotocol 9=fram." class="sref">(ty9r_3u1t;I8110s2'G 8ess */2t6.1ssL_urb" class8"srss88t>E66x_9"cess */2t6.13t * nnte p="9typ8o(e>/* suc8ess */2t6.1platcon6656ta 8 890te p="9targe=opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o>3kfree_skca -&ppor 3tdrvdstcc_">c10;3<>10"3ppor 3tdrvdstc+code>3kfree_skca -&npordev653t idstL10/3pppordevd_rx==scm.stL689t9tresp="+code=13uot;I810>2121s282 _89lass="sr603_t_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I8>E6696ta 8 9target_data9t>E * 8.2to(89ef954o(typ="+code=staPNost_TYPE_B_OPC8lL6et na9.8tL663t>falL6 * linet na98stL6089nte p="9target_jeweL656t cla6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%sD- nrotocol=%u"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx _9"cess */2t6.13t * nnte p="9typ810e2, 26.18 class="string"9&e2, 2>s28inish89zeofsuccess ********* rb" class="sr=uprotocol:'G pPNost_Tnrotocol 9==scm.stL689t9tresp="+code=13uot;I8>0 2ta ;1<83 from NFC Forum Digital 8pec *89cess */2t6.13t * nnte p="9type_b_9 s81="sr603_t8a ->2to(typ=PNost_TYPE8A_SEN8903t>E6036ta /2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cppoll_mod_counata_urb" class="poll_mod_couna9cpl)fx_9"cess */2t6.13t * nnte p="9typ8o0f2p=.r3p8on6 * v6ta ->2to(typ=8Nost_89ta9t>E6696ta 9get_felica_urb"6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ8> p#L610628dd_tailcode=2ev9 t2=li>s289ram.89ta9t>E6696ta 9targggggggggr3t * w;2re t=oping">"Cannot act6.ate while pollp2g"s_cmres==scm.stL689t9tresp="+code=13uot;I8110s2'G 8* v66ta ->2to(typ=PNos8_TYPE89t>E6696ta 9tgt>2to0&3s"+coam._finisBUSYrc_fram._valid6sBUSY 9=scm.stL689t9tresp="+code=13uot;I9a 99platcon6 * v!6ta ->2t9(typ=90t>E6696ta s9"linet na9.stL643t>E643s3uot;It9ss="srssL 9* v!6ta ->2to(typ=PNos9_TYPE90ef954o(typ="+code=staPNost_TYPE_B_PRO9s2="srssL 9* 9target_data9t>E * 9(typ=90>E6036ta _2t6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cp>10"act6.o_prots="srNFC_PROTO_t10"act6.o_prot 9=fx_9"cess */2t6.13t * nnte p="9typ9a3="srssL 9*L663t>falL6 * linet na99stL6090>E6036ta 1063u4t;>3kfree_skca -&6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ9a46et na9.9tclass="string"9&e2, 2>s29inish90zeofsuccess ********* 1063u4t;>3t * w;2re t=oping">"There is already an act6.e ta 3"s_cmres==scm.stL689t9tresp="+code=13uot;I9s56et na9.9t from NFC Forum Digital 9036ta90 9cplatcon6 * v6ta ->2to0&3s"+coam._finisBUSYrc_fram._valid6sBUSY 9=scm.stL689t9tresp="+code=13uot;I9a66et na9.9t ->2to(typ=PNost_TYPE90E6036ta s9"linet na9.stL643t>E643s3uot;It9s76et na9.9tn6 * v6ta ->2to(typ=9inish902to(typ694 2to(typ="+="s_tgt_urb" cla9s86et na9.9td_tailcode=2ev9 t2=li>s29_foun90ta9t>E6696ta /2t6* s="+code=in_frdevrc_fram._valid6devata 96 2tbepd_to_cpt10"availablo_protss="srNFC_PROTO_t10"availablo_prots 9=fx_9"cess */2t6.13t * nnte p="9typ9a96et na9.9t v66ta ->2to(typ=PNos9t_dat90t>E6696ta 9tgtt_jeweL656t cla6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ9 10&3lass=9sref">2erep="+co10 3l>10"9tstcc91t>E6696ta 9tgtttttttttttttp3t * w;2re t=oping">"There is no availablo ta 3 to act6.ate"s_cmres==scm.stL689t9tresp="+code=13uot;I9et_jeweL659t class8"line p="9target_9eweLo919upported_protocoli_u>2to0&3s"+coam._finisINVAs3uot;It 10&3idssINVAs 9=scm.stL689t9tresp="+code=13uot;I9e2="srssL 9typ=.r3pletstcc10-3g>10"390t>E691class="sr= ss9"linet na9.stL643t>E643s3uot;It9ss8"lintgt9jeweL * v6tsuccess */2t6913t *912t693 code=ctgt_felica_urb" 9s46et na9.9class9"linet na10d3t>10"39inish91 nnte p="9tar/2t6!6et na9.stL603t>devrc_fram._valid6devata 96 2tbepd_to_cp>10"availablo_protss="srNFC_PROTO_t10"availablo_prots 92ode3cl(12<< rb" class="sr=uprotocol:'G pPNost_Tnrotocol 9=)=fx_9"cess */2t6.13t * nnte p="9typ9s56et na9.9altL_urb" class="srlinet 9arget91 9cplatcon6 * v6ta -pt pnet na8.sppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ9e66et na9.9 9NPROTO plinet 9a9.st9103t>E6036ta tocoli_uttttttttttttp3t * w;2re t=oping">"Ta 3 doesn't supportu&gquested nroto %u"s_cmres _9"cess */2t6.13t * nnte p="9typ9e76et na9.9max_payload_len10a3_>10"39a -&g91ta9t>E6696ta 9n6 * v6ta -pt pnet na8.sprotocol:'G pPNost_Tnrotocol 9==scm.stL689t9tresp="+code=13uot;I9s86et na9.9t pnet na8.stL676t>E6769uppor91ta9t>E6696ta 9>2to0&3s"+coam._finisINVAs3uot;It 10&3idssINVAs 9=scm.stL689t9tresp="+code=13uot;I9e96et na9.9t pnet na8.stL676t>E6769 s7t91t>E6696ta s9"linet na9.stL643t>E643s3uot;It9s="sr603_t9t pnet na8.stL676t>E676903it192t>E669"linet na9.stL643t>E643s3uot;It9st_jeweL659gt;2to(typ="+code=r="s_tg9_urb"921nnte p="9tar/2t6pt pnet na8.sprotocol:'G pPNost_Tnrotocol 9255o(typ="+codeGG NFC_PROTO_NFC_DEP:'G pPNost_TNFC_PROTO_NFC_DEP 9=fx_9"cess */2t6.13t * nnte p="9typ9s2="srssL 92to(typ="+codeG10(39>10639fram.92class="sr= s* v6ta -pt pnet na8.srct;2to(typ=bepd_rc 925o(typ="+codeGG ta ce3act6.atesta 3ts_tdep:'G pPNost_Tnnt="sact6.atesta 3ts_tdep+code96 2tbepd_to_cpdevrc_fram._valid6devata ==scm.stL689t9tresp="+code=13uot;I9ss8"lintgt94t;It 10&3sync"+codclass=9sref"92>E6036ta 1063u4t;/2t6et na9.stL603t>rct;2to(typ=bepd_rc 9=fx_9"cess */2t6.13t * nnte p="9typ9s46et na9.9ass="sref">2eres10e3u>10692tL6792zeofsuccess ********* 1063pt pnet na8.sppordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata _9"cess */2t6.13t * nnte p="9typ9s56et na9.9t class9"linet 10 3d>106396lass92 9cplatcon6 * v6ta -ss ********* 1063p3t * w;2re t=oping">"Act6.ating ta 3 with DEP failed %d"s_cmres pt+code=fram." rct;2to(typ=bepd_rc 9=E6666ta 9s66et na9.9lass="srlinet type_b_prot9infoo9203t>E6036ta tocoli_utttttttt>2to(typ=PNost_TYPErct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I9s76et na9.9ess */2t6.1bitrat_POSTf">9et_cm92ta9t>E6696ta 9s9"linet na9.stL643t>E643s3uot;It9s86et na9.9ess */2t6.1fsci typeet na9.stL6923ite>/*[4]lins9"linet na9.stL643t>E643s3uot;It9s96et na9.9ess */2t6.1fwi_adc_fo_urb9 clas92_feli6ta PNost_TYPE_A_SENS_RES_Po(ty9 p#acket 9 linet na9.stL603t>E6036t9 93="+code=in_urb" c603it19t>E devrc_fram._valid6devata 96 2tbepd_to_cp>10"act6.o_prots="srNFC_PROTO_t10"act6.o_prot 925o(typ="+codeGG trotocol:'G pPNost_Tnrotocol 9=scm.stL689t9tresp="+code=13uot;I910>36316ta9 9.2to(9310>3610s_3926ta 93lass="sr603_t>3kfree_skca -&devrc_fram._valid6devata 96 2tbepd_to_cp>10"availablo_protss="srNFC_PROTO_t10"availablo_prots 925oe=scm.stL689t9tresp="+code=13uot;I912="srssL 9d:'G pPNost_TYPE_B_PRO9_FCSI93ef954o(typ="+code=staPNost_TYPE_B_OPC9_TYPE3E6036ta >2toe=scm.stL689t9tresp="+code=13uot;I9146et na9.9ASK_urb" class="srPNost_T9PE_B_93 nntes9"linet na9.stL643t>E643s3uot;It9156et na9.9(typ=.r3pletstcc" 3>s_396lass93cess */2t6.13t * nnte p="9type_b_9 s91ROTO6696t9ass="sre p="9type_b_9 s79 io(99303t>EaltL_urvoido(typ="+codeGG ta ce3deact6.atesta 3:'G pPNost_Tnnt="sdeact6.atesta 3+code=opd_22type_b_urb" clanpordev653t idstL10/3pppordevd_rx10>3kfree_skca -&npordev653t idstL10/3pppordevd_rx _9"cess */2t6.13t * nnte p="9typ9t0&3_iref"9ess */2t6.1op2t6. 9 9 96 293ta9t>E6696ta 9n6 * v6ta ---------=opd_22type_b_urb" clanporta 3:'G pPNost_Tnporta 3d_rx10>3kfree_skca -&ta 3:'G pPNost_Tta 3d_rx=fram." class="sref">(ty9r_3u1t;I91="sr603_t9ess */2t6.1603it+code=in_9rb" c93ta9t>x_9"cess */2t6.13t * nnte p="9typ9196et na9.9ess */2t6.1appdata_urb" c9ass="93t>E6696ta =opd_22type_b_urb" class="src_fram._valid6ta ce;It 10>3kfree_skca -&devrc_fram._valid6devata 25o>3kfree_skca -&ppor 3tdrvdstcc_">c10;3<>10"3ppor 3tdrvdstc+code>3kfree_skca -&npordev653t idstL10/3pppordevd_rx==scm.stL689t9tresp="+code=13uot;I9_b_prot_in9o_urb" class="srlinet typ9_b_pr94t>E669"linet na9.stL643t>E643s3uot;It9 p#acket 9 linet na9.stL603t>E6036t9 949upported_pro=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&sktrc_fram._valid6skt 9=scm.stL689t9tresp="+code=13uot;I910(33s393_skc94class="sr= s=opd_22type_b_urb" clask_bufd:'G pPNost_Tsk_bufd;It 10>3kfree_skca -&resp:'G pPNost_Trespata =scm.stL689t9tresp="+code=13uot;I9_TYPE3s395lass94 nnte p="9tar_L662t>E662s2sot;Itrct;2to(typ=bepd_rc 9=scm.stL689t9tresp="+code=13uot;I9b_urb" cla9s="srlinet target_type_bo99yp"+94cess */2t6.13t * nnte p="9type_b_9 s9_ i_urb" c9_urb" class="sre p="9type9b_9 9403t>E6036ta 7t i * linet n6pordev_dbd653t idstL10/3pppordev_dbd+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata p3t * w;2re t=oping">"%s"s_cmres pt+code=fram." __func__t>E6486s3"li>s35 func__d_rx=E6666ta 910&3_iref"9ess */2t6.1attrib7t i9t>E9696ta942to(typ694 2to(typ="+="s_tgt_urb" cla9b="sr603_t9ess */2t6.1attrib7t i66969a 94ta9t>E6696ta /2t6* s="+code=in_frdevrc_fram._valid6devata 96 2tbepd_to_cpt10"act6.o_prots="srNFC_PROTO_t10"act6.o_prot 9=fx_9"cess */2t6.13t * nnte p="9typ9_96et na9.9 linet na9.stL603t>E6036t9 94t>E6696ta 9tgtt_jeweL656t cla6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata tp3t * w;2re t=oping">"There is no act6.e ta 3"s_cmres==scm.stL689t9tresp="+code=13uot;I910(3am._va9id6ta c3s39ref">95t>E6696ta 9tgt>2t=scm.stL689t9tresp="+code=13uot;I91p#acket 9uccess */2t6.1linet targe9_type95lass="sr603_ts9"linet na9.stL643t>E643s3uot;It910(3310"act6.o_prots="srNFC_PROTO_t10"act6.o_prot 925oe=scm.stL689t9tresp="+code=13uot;I9 0e3_KERNE9 9target_data9t>E * 9.2to(95 nnte p="9target_felica_urb" kt_queuo_pu rc_fram._valid6skt_queuo_pu +code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cpresp_q:'G pPNost_Tresp_qd_rx=E6666ta 9* to(typ=t994 2to(typ="+platcon6656t9 95cess */2t6.13t * nnte p="9type_b_9 s9* i_urb" c9_A_SENS_RstaPNr_26ot;It 79036ta9503t>E6036ta 7t i * linet nsktrc_fram._valid6skt 925o(typ="+codeGG ta ce3alloc3sktrc_fram._valid6ta ce3alloc3skt+code>3kfree_skca -&devrc_fram._valid6devata sizeofe>3kfree_skca -&class="sref">(ty9r_3u9t)=E6666ta 9*0&3_iref"9opd:'G p#L659t f2c"+>s95ref"957te p="9targe/2t6* s="+code=in_frsktrc_fram._valid6skt 9=fram." class="sref">(ty9r_3u1t;I9z="sr603_t9e>/* success */2tt29:1>s29940t 95ta9t>E6696ta 9>2tE6666ta 9*96et na9.9_urb" class="srlinet targ9t_fou95_feli6ta PNost_TYPE_A_SENS_RES_Po(ty9llllllllll9lllll e40t class9"linet t9t_dat960te p="9targe0>3kfree_skca -&skt_puata_urb" class=" kt_pua+code>3kfree_skca -&sktrc_fram._valid6skt 9 1)25o1;*b3t * w;2re tcomment">/* TG*/s_cmres/opd:'G p#acketL666t>E6666ta 9lp#acket 9 sre l2t=hunk ofo">2 e9>s96to(996ef954o(typ="+code=staPNost_TYPE_B_PRO9et_felica_9rb" class="srlinet target9felic96class="sr= s7t i * linet nresp:'G pPNost_Trespata 25o(typ="+codeGG ta ce3send_cmd_synct;2to(typ=bepd_ta ce3send_cmd_sync+code>3kfree_skca -&devrc_fram._valid6devata >3kfree_skca -&PN5 ;1CMD_IN_RELEASErc_fram._valid6PN5 ;1CMD_IN_RELEASEata >3kfree_skca -&sktrc_fram._valid6skt 9=E6666ta 910e2"sref"9ta 2to(typ="+code2"sr>s29o(ty996nte p="9targe/2t6>3kfree_skca -&IS_ERRrc_fram._valid6IS_ERR+code>3kfree_skca -&resp:'G pPNost_Trespata ==fram." class="sref">(ty9r_3u1t;I9l0e3_KERNE9_felica * v6tsuccess */296.13t96zeofsuccess *********>2tE6666ta 9l to(typ=t9o(typize" clende 2ta >s296ram.96cess */2t6.13t * nnte p="9type_b_9 s9ePNost_TYP9valtL_urb" class="srlinet9targe9603t>E6036ta 96 2tbepd_to_cprct;2to(typ=bepd_rc 925o(typ="+codeGG resp:'G pPNost_Trespata 96 2tbepd_to_cpdstcc_">c10;3<>10"3class="s[0]2ode3cl.13t * nnte p="PN5 ;1CMD_RET_MASKrc_fram._valid6PN5 ;1CMD_RET_MASKs="sE6666ta 9l0&3_iref"9 9NPROTO plinet 9a9.st967te p="9targe/2t6>3kfree_skca -&rct;2to(typ=bepd_rc 92!5o(typ="+codeGG PN5 ;1CMD_RET_SUCCESSrc_fram._valid6PN5 ;1CMD_RET_SUCCESS9cpl)/opd:'G p#acketL666t>E6666ta 9l="sr603_t9coe='G _cmdt clt2(ty>s299ram.96ta9t>E6696ta 9t_jeweL656t cla6pordev_err653t idstL10/3pppordev_err+code9 96 2top2t6. *devrc_fram._valid6devata 96 2tbepd_to_cptL6erfacFI9_ 3o>10&30am.tL6erfacFata 96 2tbepd_to_cpdevrc_fram._valid6devata /opd:'G p#acketL666t>E6666ta 9l96et na9.9srtgt_felica * net na8.s9L676t96t>E6696ta 9tgttttttttt 9t3t * w;2re t=oping">"Error 0x%x when*&gleasing the ta 3"s_cmres pt+code=fram." rct;2to(typ=bepd_rc 9=E6666ta 9rb" class=9srtgt_felica * net na8.s9L676t97t>E669"linet na9.stL643t>E643s3uot;It9rb" class=9sr603_tgt pnet na8.stL69