linux/drivers/bluetooth/dtl1_cs.c
<<
< /spa" < spa" class="lxr_search"> Search < /spa" op /div op form ac.12"="ajax+*earch"> n *k=drelesn * of esn *slabesn * /sesn *delayesn *errnoesn *ptracresn *spinlockesn * pubrpaareesn *skbuffesn *suotngesn *s=dtheesn *s=dthe_regesn *bitopses v3.14.1432r* o.h|u)0=drmeasm is300* o.h|u)0=drmeaspowerp300* o.h|u)0=drmeaspp300* o.h|u)0=drmeass3986* o.h|u)0=drmeasmsh6* o.h|u)0=drmeasmsh32r* o.h|u)0=drmeasm="rr300* o.h|u)0=drmeass"rr332r* o.h|u)0=drmeasmur32* o.h|u)0=drmeasv8586* o.h|u)0=drmeasmxa64* o.h|u)0=drmeasmxa6_32r* o.h|u)0=drmeasmxtensm* o.hbitopsesr43 /defs4 de &l3;r418 /def4" 3 a38r521 /def5" 4 a41r522 /d <5n=3rivet32r53 /defs5 de &l3;KIND, g < op KIND, B hrine L-1 devices op KIND, GPLKIND, ck="re#)#L23 buttL23 4 hrine 4 L21 >r519 /def5" 3 a39r62.18/def6" 4 a40r621 /def6" 4 a41r622 /d <6n=3rivet32r6 /defs"6 a hcommen * o6deers6="re#L23 buttL23 a hrine 2 L15 >r6 /defs"6 a hcommen * C6nclic6="re# odef p uct imeasm-alpetl1= info_t12"= a.12 n=rea info_t"re# {L23 buttL23 a hrine 2 L15 >r6 /defs" a hcommen * opdeers6rn=dr p uct imeasm-alpetl1=pcmcia_ oncl12"= a.12 n=reapcmcia_ oncln=dr *imeasm-alpetl1=p_ o12"= a.12 n=reap_ on=dr#L23 buttL23 4 hrine 4 L21 >r617 /def6" 3 a37r618 /def6" 3 a38r619 /def6" 3 a39r72.18/def7" 4 a40r722 /d <7n=3rivet32r7 /defs"7 a hcommen * o7deers7="re#L23 buttL23 a hrine 2 L15 >r7 /defs"7 a hcommen * C7nclic75n=dr p uct imeasm-alpetl1=sk_ on_orm 12"= a.12 n=rear7 /defs"7 a hcommen * o7deers76n=dr unsigned loon imeasm-alpetl1=tx_" cll12"= a.12 n=reatx_" clln=dr#L23 buttL23 4 hrine 4 L21 >r7 /defs" a hcommen * opdeers77"re#L23 buttL23 a hrine L23 >r718 /def7" 3 a38r719 /def7" 3 a39r82.18/def8" 4 a40r821 /def8" 4 a41r822 /d <8n=3rivet32r83 /defs8 de &l3;r8 /defs"8 a hcommen * o8deers8="re#" clas int imeasm-alpetl1= Lonfig12"= a.12 n=rea Lonfign=dr(p uct imeasm-alpetl1=pcmcia_ oncl12"= a.12 n=reapcmcia_ oncln=dr *imeasm-alpetl1=ommn12"= a.12 n=rea mmnn=dr)#L23 buttL23 4 hrine 4 L21 >r8 /defs"8 a hcommen * C8nclic8="re#L23 buttL23 3 hrine 3 L16 >r8 /defs"8 a hcommen * o8deers86"re#L23 buttL23 3 hrine 3 L16 >r8 /defs"8 a hcommen * o8deers8tial developcs of the o;&gi/* Transmit " clls 1lick="re#L22 buttL22 a hrine L22 >r8 /defs" a hcommen * T deers8b//moddefmme imeasm-alpetl1=XMIT_SENDING12"= a.12 n=reaXMIT_SENDINGn=dr 1L22 buttL22 a hrine L22 >r819 /def8" 3 a39rm 9 2.18/def9" 4 a40rm 9 21 /def9" 4 a41r922 /d <9n=3rivet32r9 /defs"9 a hcommen * o9deers94//moddefmme imeasm-alpetl1=RECV_WAIT_DATA12"= a.12 n=reaRECV_WAIT_DATAn=dr 1L22 buttL22 a hrine L22 >r9 /defs"9 a hcommen * C9nclic9="re#L23 buttL23 3 hrine 3 L16 >r9 /defs"9 a hcommen * o9deers96"re#L23 buttL23 3 hrine 3 L16 >r9 /defs"9 a hcommen * o9deers97"re# odef p uct {L23 buttL23 a hrine 2 L15 >r9 /defs"9 a hcommen * T9deers98n=dr imeasm-alpetl1=u812"= a.12 n=reau8n=dr imeasm-alpetl1=t o12"= a.12 n=reat o"re##L23 buttL23 4 hrine 4 L21 >r9 /defs" a hcommen * itdeers99n=dr imeasm-alpetl1=u812"= a.12 n=reau8n=dr imeasm-alpetl1=zero12"= a.12 n=reazero"re##L23 buttL23 4 hrine 4 L21 >r103.18/defs"" a hcommen * pudeerpudn=dr imeasm-alpetl1=us" a h n=reaur1011 /defs0" a hcommen * o01eerpu1"re#} imeasm-alpetl1=__packe 12"= a.12 n=rea__packe n=dr imeasm-alpetl1=nsh_t12"= a.12 n=reansh_tn=dr# tri /ed undcs the Lic/* op Sdrivetl1Hrm evilick="re#L22 buttL22 a hrine L22 >r1012 /defs0" a hcommen * S02eerpu="re#L23 buttL23 a hrine L23 >r1013 /defs0" a hcommen * I03eerpu3//moddefmme imeasm-alpetl1=NSHL12"= a.12 n=reaNSHLn=dr 4 tri /ed undcs the Lic/* op Sdrivetl1Hrm eviLengthilick="re#L22 buttL22 a hrine L22 >r1014 /defs0" a hcommen * i04eerpu="re#L23 buttL23 a hrine 2 L15 >r1015 /defs0" a hcommen * ;05eerpu="re#L23 buttL23 3 hrine 3 L16 >r1016 /defs0" a hcommen * o06eerpu6"re#L23 buttL23 3 hrine 3 L16 >r1017 /defs0" a hcommen * T07eerputial developcs of the o;&gi/* ======================== Interrupt handl on ======================== lick="re#L22 buttL22 a hrine L22 >r1018 /defs0" a hcommen * &08eerpu8"re#L23 buttL23 3 hrine 3 L16 >r1019 /defs0" a hcommen * a09eerpu9"re#L23 buttL23 3 hrine 3 L16 >r1m3.18/defss" a hcommen * ppubre1hed by" clas int imeasm-alpetl1= wrill12"= a.12 n=rea wrilln=dr(unsigned int imeasm-alpetl1=iobasl12"= a.12 n=reaiobasln=dr, int imeasm-alpetl1=fifo_sizl12"= a.12 n=reafifo_sizln=dr, imeasm-alpetl1=__u812"= a.12 n=rea__u8n=dr *imeasm-alpetl1=bun12"= a.12 n=reabunn=dr, int imeasm-alpetl1= ut"= a.12 n=rea en"re#)L23 buttL23 3 hrine 3 L16 >r1m11 /defs"" a hcommen * op1eerpr1m12 /defss" a hcommen * SSoftw112n=dr int imeasm-alpetl1=actualut"= a.12 n=reaactualn=dr = 0#L23 buttL23 4 hrine 4 L21 >r1m13 /defss" a hcommen * IIS&qu113"re#L23 buttL23 a hrine L23 >r1m14 /defss" a hcommen * iimpli1d. See tri /ed undcs the Lic/* Tx FIFO should be empty lick="re#L22 buttL22 a hrine L22 >r1m15 /defss" a hcommen * ;;>115n=dr if (!(imeasm-alpetl1=inb12"= a.12 n=reainbn=dr(imeasm-alpetl1=iobasl12"= a.12 n=reaiobasln=dr + imeasm-alpetl1=UART_LSR12"= a.12 n=reaUART_LSR"re#) & imeasm-alpetl1=UART_LSR_THRE12"= a.12 n=reaUART_LSR_THRE"re#))L23 buttL23 3 hrine 3 L16 >r1m16 /defss" a hcommen * oop 116n=dr /0#L23 buttL23 4 hrine 4 L21 >r1m17 /defss" a hcommen * TT e t117"re#L23 buttL23 a hrine L23 >r1m18 /defss" a hcommen * &<d118 See tri /ed undcs the Lic/* Fill FIFO withicurre L f one lick="re#L22 buttL22 a hrine L22 >r1m19 /defss" a hcommen * aare C119n=dr while ((imeasm-alpetl1=fifo_sizl12"= a.12 n=reafifo_sizln=dr-- ncli 0) && (imeasm-alpetl1=actualut"= a.12 n=reaactualn=dr =dri imeasm-alpetl1= ut"= a.12 n=rea en"re#)) {L23 buttL23 a hrine 2 L15 >r1m2.18/def1s" a hcommen * 1op 120n=dr developcs of the o;&gi/* Transmit next byte lick="re#L22 buttL22 a hrine L22 >r1m21 /def1s" a hcommen */ 1 op 1 r1212 /defs"" a hcommen * Sooftw122rn=d dmeasm-alpetl1=actualut"= a.12 n=reaactualn=dr++#L23 buttL23 4 hrine 4 L21 >r1213 /defs_prude <r1214 /defss" 2 a24_cs.c" r1216 /defss" 2 a26r1217 /defss" 2 a27r1m18 /def1s" 2 a28r1m19 /def1s" 2 a29r1m2.18/def1s" 3 a30r1m21 /def1s" 3 a31r1m22 /d <1rn=3rivet32KIND, Unknown onclKIND, ck="re#)#L23 buttL23 4 hrine 4 L21 >r1313 /defs"" a hcommen * ISdeer133n=dr #L23 buttL23 4 hrine 4 L21 >r1314 /defss" 3 a34r1m15 /def1s" 3 a35_cs.c" r1m17 /def1s" 3 a37r1318 /def1s" 3 a38r1319 /def1s" 3 a39r1m2.18/def1s" 4 a40r1m21 /def1s" 4 a41r1m22 /d <14n=3rivet32r143 /defs14 de &l3;r1m /defs"1 a hcommen * o1pdeer144n=dr }L23 buttL23 4 hrine 4 L21 >r1m15 /def14" 3 a35_cs.c" r1m17 /def14" 3 a37r1418 /def14" 3 a38r1m19 /def14" 3 a39r152.18/def15" 4 a40r1521 /def15" 4 a41r1522 /d <15n=3rivet32r153 /defs15 de &l3;r15 /defs"15 a hcommen * o15deer154n=dr #L23 buttL23 4 hrine 4 L21 >r15 /defs"1 a hcommen * C1oncli15="re#L23 buttL23 3 hrine 3 L16 >r1516 /def15" 3 a36r1517 /def15" 3 a37r1518 /def15" 3 a38r1519 /def15" 3 a39r1621 /def16" 4 a41r1622 /d <16n=3rivet32r163 /defs16 de &l3;r16 /defs"16 a hcommen * o16deer164n=dr cmeasm-alpetl1=k and_"kb12"= a.12 n=reak and_"kbn=dr(imeasm-alpetl1="kb12"= a.12 n=rea"kbn=dr)#L23 buttL23 4 hrine 4 L21 >r16 /defs"16 a hcommen * C16ncli165n=dr } else {L23 buttL23 a hrine 2 L15 >r1616 /defs"" a hcommen * opdeer166n=dr dmeasm-alpetl1=skb_pullut"= a.12 n=reaskb_pulln=dr(imeasm-alpetl1="kb12"= a.12 n=rea"kbn=dr, imeasm-alpetl1= ut"= a.12 n=rea en"re#)#L23 buttL23 4 hrine 4 L21 >r1617 /def16" 3 a37r1618 /def16" 3 a38r1619 /def16" 3 a39r172.18/def17" 4 a40r1721 /def17" 4 a41r1722 /d <17n=3rivet32r173 /defs17 de &l3;r17 /defs"17 a hcommen * o17deer17. See tmeasm-alpetl1=clear_bit12"= a.12 n=reaclear_bitn=dr(imeasm-alpetl1=XMIT_SENDING12"= a.12 n=reaXMIT_SENDINGn=dr, &(imeasm-alpetl1=info12"= a.12 n=reainfo"re#-nclicmeasm-alpetl1=tx_" cll12"= a.12 n=reatx_" clln=dr))#L23 buttL23 4 hrine 4 L21 >r17 /defs"17 a hcommen * C17ncli175n=dr}L23 buttL23 4 hrine 4 L21 >r17 /defs"17 a hcommen * o17deer176"re#L23 buttL23 3 hrine 3 L16 >r17 /defs"1 a hcommen * o1pdeer177"re#L23 buttL23 a hrine L23 >r1718 /def17" 3 a38r1719 /def17" 3 a39r182.18/def18" 4 a40r1821 /def18" 4 a41r1822 /d <18n=3rivet32r183 /defs18 de &l3;KIND, B hrine : op 28f0rol ata =KIND, ck="re#)#L23 buttL23 4 hrine 4 L21 >r18 /defs"18 a hcommen * o18deer18. See ces (imeasm-alpetl1=i12"= a.12 n=reain=dr = 0# imeasm-alpetl1=i12"= a.12 n=reain=dr =dri imeasm-alpetl1="kb12"= a.12 n=rea"kbn=dr-nclicmeasm-alpetl1= ut"= a.12 n=rea en"re## imeasm-alpetl1=i12"= a.12 n=reain=dr++) {L23 buttL23 a hrine 2 L15 >r18 /defs"18 a hcommen * C18ncli185n=dr imeasm-alpetl1=printn12"= a.12 n=reaprintnn=dr(is, WITHOUT Wp on">KIND, %02xKIND, ck="re#, imeasm-alpetl1="kb12"= a.12 n=rea"kbn=dr-nclicmeasm-alpetl1=data12"= a.12 n=rea atan=dr[imeasm-alpetl1=i12"= a.12 n=reain=dr])#L23 buttL23 4 hrine 4 L21 >r18 /defs"18 a hcommen * o18deer186n=dr }L23 buttL23 4 hrine 4 L21 >r18 /defs"18 a hcommen * o18deer187n=dr imeasm-alpetl1=printn12"= a.12 n=reaprintnn=dr(is, WITHOUT Wp on">KIND, \nKIND, ck="re#)#L23 buttL23 4 hrine 4 L21 >r1818 /defs"" a hcommen * &ldeer188"re#L23 buttL23 3 hrine 3 L16 >r1819 /def18" 3 a39r1 21 /def19" 4 a41r1922 /d <19n=3rivet32r193 /defs19 de &l3;r19 /defs"19 a hcommen * o19deer19="re#L23 buttL23 a hrine 2 L15 >r19 /defs"19 a hcommen * C19ncli195oeasm-alpetl1=MO6NG12petl1=info12"= ameasm-alpetl1=printn12"= a.12 n=reap26je#))L23 buttL23 a hrine L22 >1r9 /1efs"9 a hcommen * C9nclic9="re#L23 1buttL23 1 3 hrine 3 L16 >1r9 /19commen * o18deer186n=dr tL23 4 hrine 4 L21 >r16 /defs"16 a hcommen * o16deer164n=dr cmeasm-alpetl1=k rine 3 1 L16 >r9 /defs"9 1 a hc1mmen "= a.12 n=reainfo"re#)#L23 buttL23 4or r1718 /def17" 3 a38r10122 /def20lpetl1=info12n=d do {L23 buttL23 a hrine 2 L15 >r1m17 /defs" 2 a28r1011 /defs0" a hcommeid imeasm-alpetl1 a 1 /defs0" a m17 /defs" 2 a28r19 2 /def20/* Tx FIFO sho do {L23 buttL23 bogusuttL23 4 hrine bogusuttL2 4 hridefs" 2 a28r10152 /def20" a hcommen * ;05eerpu="re#L23 but2L23 2 hrine 3 L16 >r10162 /def20commen * drivei_pr1udeer1/b//mo{L23 buttL23 a hrine 2 L15 >r1m21 /def1s" 3 a31r1m22 /d <1rn=3rivet32r10182 /def20" 3 a38r2L23 2 hrine 3 L16 >r10192 /def210petl1=info12"= a.12 n=reainfo"re#)#L23 buttL23 2petl1=bun22"= a.12 n=reabunn=dr, i2t ime21m-alpetl1= ut"= a.12 n=rea en"re##L23 but223 32hrine 3 L16 >r1m11 2/defs2" a hcomm {L23 buttL23 a hrine 2 L15 >r1m17 /def14" 3 a37r1m132 /def2s" a hcom.c" r172.18/def17" 4 a40r172.18/def8" 4 a40r1622 /d NUL="re#L23 buttL23UL=n=re a.12 n=reainfo"re#, p uct imeasm-alpet2118 See 2 tri /ed undcs the 2ic/* 21" 3 a38r172.18/def8" 4 a40r1718 /def17" 3 HCI_MAX_FRAME_SIZE#-nclicmeasm-alHCI_MAX_FRAME_SIZE 718 /def17" 3 GFP_ATOMIC#-nclicmeasm-alGFP_ATOMICeaXMIT_" r1m22 /d <1rn=3rivetCan't alloc 3 memol anew 3 tr1udeer132rn=d dmeasm-alpetl1=BT_ERR12"2 120n=dr2 developcs2of th2 o;&gi/* Transmit nextetl1=i12"= a.12 n=reain=dr++) {L23 buttL23 3 hrine 3 L16 >r172.18/d buttL23 a hrine L23 > o {L23 buttL23 s lick="re#L22 buttL22 a hrine L dmeasm-alpetl1=BT_ERR12"2 3 32n=reaiobasln=dr + imeasm2alpet21=UART_TX12"= a.12 n=retl1=i12"= a.12 n=reain=dr++) {L23 buttL23 3 hrine 3 L16 >r172.18/d buttL23 4 hrine 4 L21 > o {L23 buttL23 rpu="re#L23 buttL23 a dmeasm-alpetl1=BT_ERR12"2 SSoftw12n=d dmeas2-alpe22alpetl1= ut"= a.12 n=rea ennnnnnnnnon=dr))L23 buttL23 3 hrine 3 L16 >r24 hrine 2 L21 >r1213 /defs_p2ude &22_" cll12"= a.12 n=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 2L23 2 hrine 4 L21 >r12142 /def224n=dr #L23 but2_pr1udeer225n=dr /dme2sm-al226ncli165n=dr a info_t"re# *i_pu dmeasm-alpe6bcl12a1=UAR a d;&g sm2alp172.18/d buttL23 4 hrine 4ine "re##L23 buttL234 hrieasm- hrine 2las voidp2ude5se2 L21 >L2deere5se24_bitn=dr(imeasm-alpetl1=XMIT_SENDING12"= a.12 n=56.e1 >r1418 /def14" 3 a38r1m17 /f2en 2-= a.12i_pr1udeer1/b//L23 buttL23 712i_pr1udeer1/b//L23 buttL23 712-easm-_" cll12"-23 buttL23 =d dmeasm-alpetl1=BT_ERR12"2 120n=dr2 developcs2of th2 o;&gi/* Tra--ING12"= a.12 n=56.e1 >r1418 /def14" 3 s" 2 a261r9 /19commen s" 2 a27r1m19 /def1s" 2 2 a2923 a hrine 2 L15 >r182.18/def18" 4 a2measm-alp2tl1=info12"= a.12 n=reai2fo"re2)L23 buttL23 3 hhhhhhhhhswitchl1=info12"= a.12 n=reainfo"re#-nclicmeasm-alpetl1rxmeasm-eap_ on=drtL23 3 2ualut"= a212 n=rea12 a.12 n=reainfo"re#, p uct imeasm-alpet2rtl1=BT_ERer1/b//mo{L23 buttL23 2 a 23 imeasm2alpet21=UART_TX12"= acre#tualn=dr =dri 2measm2alpetl1= ut"= a.12 ntl1="kb12"= a.12i_:a.12 n=reainfo"re#, p uct imeasm-alpet2r buttL23 d if (!imeasm-alp2tl1=i23 int imeasm-alpetl1=i"-23 buttL23 =d dmeasm-alpetl1=BT_ERR12"2 120n=dr2 ttL23 3 2ualut"= a212 n=reaactualn=dr =dri 2measm2alpet a.12 n=reaXMIT_WAITINGn=dr 8L9 butING12"= a.12 n=56.e1 >r1418 /def14" 3 s buttL23 L15 >r1m22 /d <1rn23rive23IT_WAITINGn=dr, &(imeasm-ttL23 =d dmeasm-alpetl1=BT_ERR12"2 120n=dr2 developcs2of th2 o;&gi/* Traactualn=dr =dri 2m info_t"re# *i_pu dmt32r1314 /defss" 32 a32r24 )/def20" 3 a38r812 >r1319 2def1s" 3 a39L2deere5se24_bitn=taia.12 n=reaXMIT_Staia Tra--ING12"= a.12 n=56.e1 >r1418 /def14" 3 cmeasm-al2etl1=tx_" cll12"= a.12 n2reatx24 imeasm2alpet21=UART_TX12"= aatx_en ttL23 =d 4 hrine 4ine "re##L23 buttL234 hrieasm- hrine 2las voidp2ude5se2 L21 >L2deere5se24_bitn=er18="re#L23 buttL23 --ING12"= a.12 n=56.e1 >r1418 /def14" 3 c buttL23 n=3rivet32r812 sm-alpet2i14="re#L23 buttL23 2 3 hr2ne 3 L16 >r1m16 atx_en ttL23 =d = a.12 n=reainfo"re#-nclicmeasm-alpetl1=tx_" cll12" ut"= a.12 n=rea ennnnnnnnnon=dr))L23 buttL23 3 hrine 3 L16 >r24 hrit nextetl1=i12"= a.12 n=reain=dr++) {L23 /def224n=dr 2unsigned int imeasm-alpe2l1=io24L23 a hrine L22 >1r9 /1efs"9 n=reap_ 2on=dr-nclicmeasm-alpetl12re by25" 3 a38r24 )/def20" 3 a38r812 4 hr2ne 4 L21 >r152.18/d2f15" 2 a40r24 )/def224n=dr MIT_WAKEU2n=dr, &(imeasm-alpet21=inf212"= a.12 n=reainfo"re#-nclicmmmmmmmmmmmmmmmmm #L23 buttL23 4 hrine 42r))#L23 2uttL23 4 hrine 4 2 L2125 int imeasm-alpetl1=i"-23 buttL23 cre#t0x82:a.12 n=reainfo"re#, p uct imeasm-alpet21 a.12 n=2uttL23 a hrine 2 L232>r153 /defs15 de &l"-23 buttL23 cre#t0x83:a.12 n=reainfo"re#, p uct imeasm-alpet21l1=info125 /defs"15 a hcomm2n 2 o15deer154n=dr ttL23 cre#t0x84:a.12 n=reainfo"re#, p uct imeasm-alpet21sm-alpet215 /defs"1 a hcom2en 25e 3 L16 >r1m16 atx_en ttL23 L21m-alpetl1=i12"= a.12 spetl1="kb1to the rinelay * itdeers99n=dr imeasm-alpetl1=u812"= a.12 L16 >21516 /def15" 3 a36L2deere5se24_bitn=dreainfo"re#-ncliceasm-aleasm /de*)iobasl12"= a.12 n=reaiobasln=dr = imeasm-alpetl1=info12"= a.12 n=reainfo"re#-nclicmeasm-al #L23 buttL23 4 hrine 42l12"= a.12 n=rea"kb_ queuln=dr(&a2p;(im2asm-alpetl1=info12"= aatx_en ttL23 buttL23 bt_c2las voidp2ude5sbt_c2meas2-alpe22alpetl1= ut"= a.12 n=rea ennnnnnnnnon=dr))L23 buttL23 3 hrine 3 L16 >r24 )/def20" 3 a38r24 ) #L23 buttL23 4 hrine 42l4deer1492/def16" 4 a40r172.18/def1 de &l32r172.18/def8" 4 a40<2 a28riner++) {L12"= tL2 28f0ro dl ata =KIND, ck="re#)#L23 bubt_c2las voidp2ude5sbt_c2meas2-alpe22alpetl1= ut"= a.12 n=rea ennnnnnnnnon=dr))L23 buttL23 3 hrine 3 L16 >r24 )/def20" 3 a38r19 /defs"19 a hco ut"= a.12 n=rea ennnnnnnnnon=dr))L23 buttL23 3 hrine 3 L16 >r24 ) #L23 buttL23 4 hrine 42ll1=info12 cmeas2-alpe2l1=k and_"kb12"= a.12 n=reak aaaaaaaaaaaaaaaaa #L23 buttL23 4 hrine 42=sm-alpet2 2measm2alpetl1=skb_pullut"= aaaaaaaaaaaaaaaaa.12 n=retl1=i12"= a.12 n=reain=dr++) {L232"= a.12 2=rea"kbn=dr, imeasm-alpe2l1= 2ut"= a.12 n=rea en"re#)#L23 buttL23 4 h2ine 4 2 L21 >r1617 /def16" 3 2 a37<2n=drivei_pr16deer16b// r161"re#L23 L2sm-alGFP_ATOMICeaXMIT_" r172.18 4 L22 >r1619 /def16" 3 a32L23 2 hrine 4 L21 >r1mimeasm-alpetl1=UAR2_LSR_21" buttL23 3 hrine 3 L16 >r172.18 a.12 n=212 n=reabyte_txn=dr += i2easm-27a12"= a.12 n=rea atan=dr, imeeeeeeeee #L23 buttL23 4 hrine 42 4 hr2ne 4 L21 >r1721 /d2f17" 27 imeasm2alpet21=UART_TX12"= a.12 n=retl1=i12"= a.12 n=reain=dr++) {L23"= a.12 n2reainfo"re#-nclicmeasm-a2petl127/d buttL23 4 hrine 4 L21 > o {L23tL23 24 hrine 4 L21 >r1732 /def27IT_WAITINGn=dr, &.12 n=retl1=i12"= a.12 n=reain=dr++) {L23"l1=info12a hrine L23 >r17 2/defs217 a hcommen * o17deer17. See 2tmeasm-al2etl1=clear_bit12"= a.12 2=reac27r19 2 /def20/* Tx FIFL21m-alpetl1=i12"= a.12 Make sure we do=drivei_212y herb1too longL23 buttL23 3 hrine 3 L16 >r172.18/def1 a h2ommen * o17deer176"r2#L23 27sl12"= a.12 n=reaiobastl1=info12"= a.12 2 hrine L22 >r10122 /def20lpetl++E"re#)32 a hcommen * ;05eerpu="re#L23 b a hc2mmen * o1pdeer177"re2L23 28=drivei_pr16deer16b// #L23 buttL23 4 hrine 42k_ on12"2 a.12 n=rear1m12 /defss" a hcommen * SSoftw112n=dr int imeasm-alpetl1=actualut"= a.12 n=reaactualnD2n=dr int imeasm-nD2r24 ) #L23 buttL23 4 hrine 420r1821 2/def128reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in2sm-alpetl2=printn12"= a.12 n=reapr2ntnn=28/d buttL23 4 hrine 4 L21 > o {L232"= a.12 2=reain=dr =dri imeasm-al2etl1=2kb12"=21 >r163 a hrine rq aa d;&g s rq aa ere5se24_bitn=dNDINinterrupne 3 1 L16 >r9 /deterrupnuttL2l2=us" a h n=rer165n=dr er1dr))#L /de*eere5se24_bitn=dre/desne 3 1 L16 >rre/desnr24 )uttL23 4 hrine 4 L21 > o {L232l1=info12"re## imeasm-alpetl1=i122= a.12 n=rea a.12 n=reainfo"re#, p uct imeasm-alpet2a.12 n=re2printnn=dr(is, WITHOUT W2 on28* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a hc1mmen "= a.12 n=reainfo"re#)#L23 bu12"= a.12 n=reatxqnre/desne 3 1 L16 >rre/desnr24 #L23 buttL23 4 hrine 420 a h212 n=rea"kbn=dr-nclicmea2m-alp2tl1=data12"= a2sm-alpetl2=us" a h n=reaur10122 /def20lpetl1=info12n=d do {L23 buttL23 a hr#-nclicme2sm-alpetl1=flowmasn12"= 2.12 n2reaflowmasnn=dl2=us" a h n=reir=2r ime2sm-alp eirdr))#L-alpe22alpetl1=lsr=2r ime2sm-alp lsrmen * o1pdeer177"re#Lrrs91"r 4 hrine 4 dr172IRQ_NON men * o1pdeer177"re#Lrrs91"r 4 hrine 4 d3 42alpetl1=XMIT_WAITING12"=2a.12 2=reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in2o12"= a.12 n=reainfo"re#-nclicmeas2-alpe2l1=tx_" cll12"defs0" a hcommeid imeasm-alpetl1 a 1 /def || 0" a hcommeid imeasm-alpetl1 a 1 /defpetl1=info12"= a.12 n=reainfo"re#-nclicmeasm-al)uttL23 4 hrine 4 L21 > o {L23e2 n=dr(i2easm-alpetl1=info12"= a.22 n=r29IT_WAITINGn=dr, &FL21m-alpetl1=i12"= a.12 our rq handler s sharedGn=dr 1L22 buttL22 a hrine L22 >r8121 >r193 2defs19 de &l3;r172IRQ_NON men * o1pdeer177"re#Lrrs91"r 4 hrine 4 d.12 n=re2 a hcommen * C192cli1929en 2-= a.12i_pr1udeer1/b//L23 buttL23 712tl1=print212"= a.12 n=reap26je#))L23 bu299lpetl1=u812"= a.12 n=reau8n dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 a38r2L23 2 hrine 3 L16 >r10192 /def210petl1=info12"= a.12 n=reainfo"re#)#L23 buttL23 2petl1=bun22"= buttL23 713 a hcom3en * C9nclic9="re#L23 1bu3tL23 1 3 hrine 3 L16 >1r9 /19commen3 * o183eer186n=dr tL23 4 h3ine 301lpetl1=u812"= a.12 n=reau8nspin_loc dmeasm-aspin_loc uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" 4 a40r182.18/def18" 4 a3=dr2imeas30m-alpetl1= ut"= a.12 3=rea 30alpetl1=u812"= a.12 n=reau8n ir=2r ime2sm-alp eirdr))e 2 L21 >r1213 /defs_p2ude &22_" cll12"= a.12 n=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 2L23 II2n=dr int imeaII2alpetl1=actualut"= a.12 n=reaactII2_IDn=dr int imeaII2_IDL23 buttL23 2petl1=bun22"= buttL23 713 4r2imeas30lpetl1=XMIT_WAITING12"=3 a383rn=drivei_pr17"re#L23 buttL23 ir=2r ime2sm-alp eirdr)) 2 a.12 n=reainfo"re#, p uct imeasm-alpet3tri /ed 3nd2s the2Lic/* =reaflowm3snn=d30/d buttL23 4 hrine 4 L21 > o {L23ine 2 3 L15 >r1m17 /defs" 2 328r813udeers/b/3mod 5 2 hrine 4 3 L213>r19 2 /def20/* Tx FIFO sho do {L23 lsr=2r ime2sm-alp lsrmen e 2 L21 >r1213 /defs_p2ude &22_" cll12"= a.12 n=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 2L23 112n=dr int imeasm-alpet buttL23 2petl1=bun22"= buttL23 713 9eers/b/3m2"= a.12 n=reap26je#))L3rpu="30t"= a.12 n=rea en"re#)#L23 buttL23 4 h3vei_pr1ud3er1/b//mo{L23 buttL23 3 a 31=drivei_pr16deer16b//switchl1=info12"= a.12 nir=2r ime2sm-alp eirdr)) 2 a.12 n=reainfo"re#, p uct imeasm-alpet32========3===== Interrupt2handl20-3lpetl31_FRAME_SIZE 718 cre#tualn=dr =dri 2m imeaII2_RLSIn=dr int imeaII2_RLSIFRAM:a.12 n=reainfo"re#, p uct imeasm-alpet3a hrine 3 L15 >r1m22 /d <1rn33rive31lloc 3 memol anew 3 tr1u r161"re#L23 L23 buttL23 3 hrine 3 L16 >r172.18/def8" 4 a40r1718 /def17"3n=dr, i2t3ime21m-alpetl1= ut"= a312 n=31a12"= a.12 n=rea atan=dr, ime #L23 buttL23 4 hrine 43>r1m11 2/3efs2" a hcomm {L23 3buttL31 imeasm2alpet21=UART_cre#tualn=dr =dri 2m imeaII2_RDIn=dr int imeaII2_RDIFRAM:a.12 n=reainfo"re#, p uct imeasm-alpet3ari /ed 3r14b//mo 3nsign3d int imeasm-alpetl1=indcs2the L21m-alpetl1=i12"= a.12 R deterrupnGn=dr 1L22 buttL22 a hrine L22 >r813= 0#L23 3ut2L23 2 hrine 4 3 L2131IT_WAITINGn=dr, &(imeasm-alpetl1=info12"ommen * o16deer164n=dr cmeasm-al07) != 0)) {L23 buttL23 a hrine 2 L15 >r1 21 /def19" 4 3"re#L23 3uttL23 3 2impli1d. 3ee 3 tri /ed undcs2the=dr, ime #L23 buttL23 4 hrine 43>deers/b/30r172eaactualnTHR dr)) 2 a.12 n=reainfo"re#, p uct imeasm-alpet3118 See 3 tri /ed undcs the 3ic/* 31" 3 a38r8133 HCI_MAX3FRAME_SIZE#-nclicmeasm-a3HCI_M3X_FRAME_SIZE 718 /def17" 3 GFP_ATOMIC#-nclicmea L2p; ((imeasm-alpetl1=flowmasn12"= a.12 n=reaflowmasnn=dr & 0x07) != 0)) {L23 buttL23 a hrine 2 L15 >r1 21 /def19" 4 3 L15 3r1m22 /d <1rn=3rivetCan3#39;t3alloc 3 memol anew 3 tr1u.12 n=retl1=i12"= a.12 n=reain=dr++) {L23/d buttL33 a hrine L23 > o3{L23 buttL23 s lick="re#L22 #L23 buttL23 4 hrine 43etl1=BT_E3R12"2 3 32n=reaioba3ln=dr3+ imeasm2alpet21=UART_default:a.12 n=reainfo"re#, p uct imeasm-alpet3 buttL233 3 hrine 3 L16 3r172.32 int imeasm-alpetl1=indcs2the r161"re#L23 L23 buttL23 3 hrine 3 L16 >r172.18/def8" 4 a40r1317 /32en 2-= a.12i_pr1udeer1/b//L23 buttL23 713i_pr1udee31/b//L23 buttL23 712-3asm-_3 cll12"-23 buttL23 L21m-alpetl1=i12"= a.12 Make sure we do=drivei_212y herb1too longL23 buttL23 3 hrine 3 L16 >r172.18/def3s" 2 a36r10122 /def20lpetl++E"re#)100)uttL23 4 hrine 4 L21 > o {L23s" 2 a37r1m19 /def1s" 2 3 a2933 a hrine 2 L15 >r182.18/def18" 4 a3measm-alp3tl1=info12"= a.12 n=reai3fo"re3)L23 buttL23 3 h= a.12 n=reau8n ir=2r ime2sm-alp eirdr))e 2 L21 >r1213 /defs_p2ude &22_" cll12"= a.12 n=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 2L23 II2n=dr int imeaII2alpetl1=actualut"= a.12 n=reaactII2_IDn=dr int imeaII2_IDL23 buttL23 L15 >r182.18/def18" 4 a3mtl1=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in3r buttL233d if (!imeasm-alp3tl1=i33 int imeasm-a.12 n=retl1=i12"= a.12 n=reain=dr++) {L23s buttL233 L15 >r1m22 /d <1rn33rive33r1m132 /def2s" a hcom.c" r1314 /defss" 33 a333eer193n=dr }L23 buttmsr=2r ime2sm-alp msrmen e 2 L21 >r1213 /defs_p2ude &22_" cll12"= a.12 n=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 2L23 M12n=dr int imeaMm-alpet buttL23 2petl1=bun22"= buttL23 713asm-alpet31=XMIT_WAITING12"= a.12 3=reaX33en 2-= a.12i_pr1udeer1/b//L23 buttL23 713r_pr1udee3etl1=tx_" cll12"= a.12 n3reatx33 21 cll12"= aetl1=info12"= a.12 n=reainfo"re#-nclicmeasm-alpetl1rxmeasm-eap_ oni_latc fo_t"re# *i_pu ni_latc 21 cl^l1=info12"= a.12 msr=2r ime2sm-alp msrmen e1=actualut"= a.12 n=reaactMm-_RIn=dr int imeaMm-_RIuttL((2 a.12 n=reainfo"re#, p uct imeasm-alpet317 /def13" 3 a37r121msr=2r ime2sm-alp msrmen e1=actualut"= a.12 n=reaactMm-_RIn=dr int imeaMm-_RIuttL buttL23 2petl1=bun22"= buttL23 713= a.12 n=3easet_bitn=dr(imeasm-alp3tl1=X34_FRAME_SIZE 718 alut"= a.12 n=r a39r1319 3def1s" 3 a39r1 21 /def19" 4 3asm-alpet31=XMIT_SENDING12"= a.12 3=reaX3IT_SENDINGn=dr, &(Fere5se24_bitn=r=2r ime2sm-alp r bu12"= a.12 n=reatxqIRQ_HANDLEDn=dr intIRQ_HANDLEDL23 buttL23 2petl1=bun22"= buttL23 713cmeasm-al3etl1=tx_" cll12"= a.12 n3reatx34 imeasm2alpet.12 n=retl1=i12"= a.12 n=reain=dr++) {L23c buttL233n=3rivet32 o {L23= a.12 n=3easet_bitn=dr(imeasm-alp3tl1=X346er193n=dr }L23 buttspin_unloc dmeasm-aspin_unloc uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" 4 a401r9 /19commen3petl1=" c3t12"= a.12 n=reas crtn=d3#L23 35"kb12"= a.12i_pr1udeer1/b//L23 buttL23 314deer1493=dr int i3easm-35 a hrine 2 L15 >r182.18/def18" 4 a3 4 hr3ne 4 L21 >r152.18/d3f15" 3 a4 L21m-alpetl1=i12"= a.12 ========================8rinedeterface ========================823 buttL23 3 hrine 3 L16 >r172.18/def3MIT_WAKEU3n=dr, &(imeasm-alpet31=inf35reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in3r))#L23 3uttL23 4 hrine 4 3 L2135/d buttL23 4 hrine 4 L21 > o {L231 a.12 n=3uttL23 a hrine 3 L2335b12"=21 >r16l2=us" a h n=r21 > mci opr18="re#L23 butt21 > mci opr1uttL223 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)uttL23 4 hrine 4 L21 > o {L231l1=info135 /defs"15 a hcomm3n 35n=rea a.12 n=reainfo"re#, p uct imeasm-alpet31sm-alpet315 /defs"1 a hcom3en 35* ;;>115n=ere5se24_bitn=set3931516 /def15" 3 a36r182.18/def18" 4 a3= a.12 n=3ea"kbn=dr-nclicmeasm-alp3tl1=d36a en"re##L23 but223 32hrine 3 L163n=d 3 if (imeasm-alpe3l1= 3ut"= a21 >r16l2=us" a h n=r21 > mci fluR fo_t"re# *i_pu 21 > mci fluR uttL223 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)uttL23 4 hrine 4 L21 > o {L23 de &l33r9 /defs"9 1 a hc1mmen "= a.12 n=reainfo"re#)#L23 bu12"= a.12 n=reatxqmci get3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=dr & 0xn=reainfo"re#-nclicmeasm-al)fo12n=d do {L23 buttL23 a h3ll1=info13 cmeas3-alpe367 a hcommen * o17deer17. See 3=sm-alpet3 3measm3alpetl1=skb_pu L21m-alpetl1=i12"= a.12 Drop TX queun=dr])#L23 buttL23 4 hrine 4 L21 >r18 32"= a.12 3=rea"kbn=dr, imeasm-alpe3l1= 369lpetl1=u812"= a.12 n=reau8nlicmqueun_purg_pr19deer19dn=drlicmqueun_purg_uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" 4 a40r1617 /def16" 3 3 a37<37L23 1 3 hrine 3 L16 >1r9 /19commen3 /def16"33 a38r1619 /def16" 3 a33r1721 /d3f17" 37reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in3"= a.12 n3reainfo"re#-nclicmeasm-a3petl137/d b21 >r16l2=us" a h n=r21 > mci cloll"= a.12 n=reain21 > mci clolluttL223 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)uttL23 4 hrine 4 L21 > o {L23tL23 34 hrine 4 L21 >r1733 /def37IT_WA a.12 n=reainfo"re#, p uct imeasm-alpet3"l1=info13a hrine L23 >r17 3/defs377dee>r1011 /defs0" a hcommetest_and_ a39 o {L23tsm-alpet3etl1=clear_bit12"= a.12 3=reac37r19 2 /def20/* Tx FIlpetl1=nfo12n=d do {L23 buttL23 a h3 "= a.12 3ommen * o17deer176"r3#L23 37t"= a.12 n=rea en"re#)#L23 buttL23 4 h3 a hc3mmen * o1pdeer177"re3L23 38=drivei_pr16ds" a h n=r21 > mci fluR fo_t"re# *i_pu 21 > mci fluR uttL2snn=dr & 0xn=reainfo"re#-nclicmeasm-al)fo12n=d do {L23 buttL23 a h3k_ on12"3 a.12 n=rear1821 3/def138reaXMIT_WAITINGn=dr, &(imeasm-alpetl1=in3sm-alpetl3=printn12"= a.12 n=reapr3ntnn=38/d buttL23 4 hrine 4 L21 > o {L232"= a.12 3=reain=dr =dri imeasm-al3etl1=38b12"=21 >r16l2=us" a h n=r21 > mci spet_1="kbainfo"re#-nclic21 > mci spet_1="kbuttL223 buttL23 4 hrisk_buffpr19deer19dn=drli_buff 3 1 a hc1mmen "= mmen * o19deer19="re#LuttL23 4 hrine 4 L21 > o {L232l1=info13"re## imeasm-alpetl1=i123= a.13 n=rea a.12 n=reainfo"re#, p uct imeasm-alpet3a.12 n=re3printnn=dr(is, WITHOUT W3 on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a hc1mmen "= a.12 n=reainfo"re#)#L23 bufo12n=d do {L23 buttL23 a h30"= a.12 312 n=rea"kbn=dr-nclicmea3m-alp3tl1=data12"= a23 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a hc1mmen "= n=reainfo"re#-nclicmeasm-aleasm23 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1)2snn=dr & 0xmmen * o19deer19="re# >L2deere5se24_bitn=dreainfo"re#-ncliceasm-al)fo12n=d do {L23 buttL23 a h3defs"18 3 a hcommen * o18de3r186n3dr }L2323 buttL23 4 hrisk_buffpr19deer19dn=drli_buff 3 1 a hc1mmen "= mpr19deer19dn=drl bufo12n=d do {L23 buttL23 a h3d_ on12"3 &ldeer188"re#L23 buttL33 391lpetl1=u812"= a.12 n=reau8nAR a d;&g sm2alp172.1= a.12 n=reau8nAR d;&g sm2a bufo12n=d do {L23 buttL23 a h3drn=drive3sm-alpetl1=flowmasn12"= 3.12 n39 a hrine 2 L15 >r182.18/def18" 4 a3dr172.18/def8" 4 a40r1718 /def17"3o12"= a.13 n=reainfo"re#-nclicmeas3-alpe39 int imeasm-alpetl1=ilpetl1=-" a hcommeENODEVtL23 3 hriENODEV bufo12n=d do {L23 buttL23 a h3d"= a.12 3easm-alpetl1=info12"= a.32 n=r39IT_WAITINGn=d.12 n=retl1=i12"= a.12 n=reain=dr++) {L231 >r193 3defs19 de &l3;n * o19deer11 >m-al.alut"= a.12 n=r md_txn=drivei_pr18deemd_txm-al++fo12n=d do {L23 buttL23 a h4=dr2imeas40m-alpetl1= ut"= a.12 4=rea 40T_SENDINGn=dr, &(Fere5se24_bitn=AR d;&g sm2a bu.alut"= a.12 n=r a hcommen * o9deer1=inx81fo12n=d do {L23 buttL23 a h4=4r2imeas40lpetl1=XMIT_WAITING12"=4 a3840 imeasm2alpet21=UART_ #L23 buttL23 4 hrine 44tri /ed 4nd2s the2Lic/* =reaflowm4snn=d405lpetl1=u812"cre#tualn=dr =dri 2m.18/ACL8L9 _PKT transiivet to .18/ACL8L9 _PKTlpet:a.12 n=reainfo"re#, p uct imeasm-alpet4H6i /ed 4nasm-alpetl1=info12"= a.428n * o19deer11 >m-al.alut"= a.12 n=racl_txn=drivei_pr18deacl_txm-al++fo12n=d do {L23 buttL23 a h4=7i /ed 4nefs19 de &l3;r19 2 /def20/* Tx FI #L23 buttL23 4 hrine 44t9i /ed 4n2"= a.12 n=reap26je#))L4rpu="409lpetl1=u812"cre#tualn=dr =dri 2m.18/SCO8L9 _PKT transiivet to .18/SCO8L9 _PKTlpet:a.12 n=reainfo"re#, p uct imeasm-alpet4vei_pr1ud4er1/b//mo{L23 buttL23 4 a 41=drivei_pr16deer16b//l_txm-al++fo12n=d do {L23 buttL23 a h4=7i /ed 4nefs19 de &l3;r1617 12 n=reai4fo"re#, p uct imeasm-al4et32=4======3===== Interrupt;r1617 12 n=reainfo"re#, p uct imeasm-al4et3a 4rine 3 L15 >r1m22 * C194 L214>r19 2 /def20/* Tx FI measm-alp4_pr8_alloc3 >r1718 /def47"3n=4r, i2t3ime21m-n=reaioba3ln=dr3+ imeasm2alpet21=UART_default:a4 #423 buttL23 4 hrine4 43>r4m11 2/3efs2" a hcnclicmeas3-alpe39 int imILSEQalpetl1=ilpetl1=ILSEQ a hcommeENODEVtL23 3 hriENODEV bufo412 n=reai4fo"re#, p uct imeasm-al4et3ar4 /ed 3r14b//m} hcommeENODEVtL23 3 hriENODEV bufo412 n=reain a hrine L22 >4813= 41ttL233 L15 >r1m22 /d <1rn33rive33r1m1324 hrine 24 L15 >r1 21 /def19" 4 3"r41e 4 3 L21 >r1314 /defss"40 tri /ed undcs2the ere5se24_bitn=AR zercli1939* ;;>zercalut"= a hcommeENODEVtL23 3 hriENODEV bufo41n=d 23 buttL23 4 hrine4 43>d41 n=re3 a hcommen * C40 tri /ed undcs2the ere5se24_bitn=AR "re# *i_pu dmt3248133 4CI_MAX3FRAME_S19deer19r24 hrit nextetl1=i12"= a.12 n=reain=dr++) {L23 /d412 n=reai4fo"re#, p uct imeasm-al4et3 4uttL233 3 n=dr, imeasm-alpe3lcopy_from_uct ar_)#L23 bu12"= a.12 pe3lcopy_from_uct ar_)#L2nfo12"= a.12 bt_c2las voidp2ude5sbt_c2meas2-a buttL23 3 h =d {L23 buttL23 =d nfo12"= a.12 bt_c2laser19dn=drli_buff 3 buttL23 3 he#-nclicmci =re 3 1)2snn=dr & 0xmmen "re# *i_pu dmt32r1317 /32en 2-4 a.12i_pr4udeer1/b//L23 buttL23 4713i_4r1udee31/b//L2n 3measm3a rep3 =d2.18/dpetl1= header a kb_pu L21m-alpetl1=i12"= a.12 Drop TX queun=dr])#L23 4 3 h4ine 3 L16 >r172.18/4ef3s"43 a hc3mmen * o1pdeer177"memcpyer19dn=drli_bufmemcpynfo12"= a.12 bt_c2las v 0 tri /ed undcs v 0 nfo12"= a.12 bt_c2laser19dn=drli_buff 3 buttL23 3 hrine 3 L16 >r24 hrit ne/RUNNi/hcommen * C40 tri /ed undcs2the e buttL23 3 hrine 3 L16 >r24 hrit nextetl1=i12"= a.12 n=reain=dr++) {L23 /d4tL23 44 hrine 4 L21 > o 4L23s"43 o183eer186n=dr tL23 4 =reau8nlidp2ude5se2 L21 =reau8nlidp2unfo12rg_pr19deer19dn=drlicmqueun_purg_uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" buttL23 3 heer19dn=drli_buff 3 xtetl1=i12"= a.12 n=reain=dr++) {L23 /d4thrine 2423 buttL23 4 hrine4 43ri4e 3 3 L16 >r1m19 /def1s" 2 3 a2933 a h4ine 2 4 L15 >r182.18/def18" 4 4 a3me43imeas30m-alpetl1= ut"= a.13eer139n=dr }L23TOMIC#-nclicmea L2p; ((imeasm-alpetl1=flowmasn12"= a.12 n=reaflowmasnn=dr & 0x07) != 0)) {L23 buttL23 4ttL23 4 L15 >r182.18/def18" 4 4 a3mt41=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI4_WAITINGn4dr, &(imeasm-alpetl14in3r 43ttL233 3 n=dr, imeasm-alimeasm- r161"re#L23 L2L23 4 hrins voidp2ude5sbt_c2meas2-alr & 0x07) != 0)) {L23 buttL23 4t2 n=reain12"= a.12 n=reain=dr++) 4L23s 4uttL233 L15 >r1m22 /d <1rn33rive33r1m1324/def2s" 4 a hcom.c" r1617 /def16" 3 3 a37<37L23 14ttL23 42petl1=bun22"= buttL23 4713= 4.12 n=3=reain=dr =dri imeasm-al3etl1=38b1ioct3333ttL23 ere5se2438b1ioct323 L2a"kbn=dr-nclicmea3m-alp3tl1=data12"= a23 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a h,ea"kbn=dr-nclicmea2m-alp2tl1=cmd o19deer11 >m-al.a a h,eea"kbn=dr- Makeo12"= a.1221 >n rg o19deer11 >m-alrg 3 hc1mmen "= mmen * o19deer19="re#Lu4asm-alpet41=info12"= a.12 n=reainf4"r3 >41319 =dkt_ a hcommen *dkt_ Tra 2 a. hrine 24 L15 >r1 21 /def19" 4 3as4-alpet31=XMIT_nclicmeas3-alpe39 int imeaIOCTLCM-alp r bu12"= ameaIOCTLCM- o 4L23= 44ttL233 L15 >r1m22 /d <1rn33rive33r1m1324asm-alpet41=info12"= a.12 n=reainf4"r3tl4=info13"= a.12 n=reainfo"re#-nc3icmea347 4a hcommen4 * o17deer17. See 4 3 s4-alpet3ne 4 L21 >r152.18/d3f15" 3 a4 L21m-alpetlCar er&icesl1=i12"= aaction========================8rinedeterface ========================823 buttL24asm-alpet41=info12"= a.12 n=reainf4"r3t_44print312"= a.12 n=reap26je#))L33 bu39t"= a.1 n=retl1=412"= a.12 n=reain=dr++) 4L23 n4reap_ 3on=dr-nclicmeasm-alpetl13re by35L23 14 3 hrin4 3 L16 >1r9 /19com4en3pe4512 n=3=reain=dr =dri imeasm-al3etl1=2"=21 >r16l2=us" a r21 > mci=dri imeasm-al3etl1= on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a h hc1mmen "= mmen * o19deer19="re#Lu4 a.12i_pr4udeer1/b//L23 buttL23 4 31445319 =dkt_ a hcommen *dkt_ Tra 2 a.ine 2 4 L15 >r182.18/def18" 4 4 a3 45alpet31=XMIT_a"kbn=dr- Makeo12"= a.1221 >n"re#-nclicmeasm-alpetl1=p_ o hcommeENODEVtL23 3 hriENODEV bufo4 3 h4ine 3 L16 >r172.18/4ef3MI454lpet31=XMIT_a"kbn=dr-nclicmea2m-alp2tl1=data12"= a2sm-alpetl2=us" =reau8n dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 a38r2L23 2 hrine 3 L16 >r10192 /def210petl1=info12"= a.12 n=reainfo"re#)#L23 b4_WAITINGn4dr, &(imeasm-alpetl14in3r)45ttL233 3 a"kbn=dr-nclicmea3m-alp3tl1=data12"= a23 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a hetl1=info12"= a.12 n=reainfo"re#)#L23 b4_L23 44 hrine 4 L21 > o 4L231 45ttL233 L15 >r1m22 /d <1rn33rive33r1m1324tL23 44 hrine 4 L21 > o 4L231l45e 4 3 L21 >r1314 /defss" a.12 n=r24_ 35* ;;>115na.12 n=r24_ nfo12rg_pr19deer19dn=drlicmqueun_purg_uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" 4 a40r1317 /32en 2-4asm-alpet41=info12"= a.12 n=reainf4"r3 45a.12 3=rea"kbn=dr, imeasm-alpe3l1= 36head24_ 35* ;;>115ne3l1= 36head24_ nfo12rg_pr19deer19dn=drlicmqueun_purg_uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" a40r182.18/def18" 4 4 a3= 46imeas30m-alpetl1= ut"= a.12anew 3 tr1udeer132rn=d dmeasm-alpetl1=BT_ERR12"2 120n=dr2 e L21 >L23 2 hrine 4 L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b4##L23 bu4223 32hrine 3 4163n=46=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI4tL23 44 hrine 4 L21 > o 4L23 46ttL233 3 n=dr, imeasm-alpm3en 35* ;;>115n=ere5se24_bitn=set39r1m22 /d <1rn33rive33r1m13242n=d 4 do {L23 buttL23 4 h3ll46e 4 3 L21 >ne 4 L21 >r152.18/dI_ ialize72.18/def8" inedeterface ========================823 buttL24a hcommen4 * o17deer17. See 4 3=s46 n=re3 a hcommen * C"re#-nclicmci =re 3 1 a hc1mr-nclicmea3m-alp3tlallocl1=data12"= a23 buttL2allocl1=de24_brn=drivei_pr19deer19dn=dr if (((im41sm-alpet4 4 hrine 4 L21 >r14 32"461udee3etl1=tx_" cer191r9 /19com4en3 47=====3===== Interruptnclicmeas3-alpe39 int imeaMEMalpetl1=ilpetl1=-"MEM o 4L23tL4712 n=3l1=XMIT_WAITING12"= a.41=drivei_pr16deer16b//l_txm-al++fo12n=d bu-nclicmeasm-alpebu-=infc1mr-nclicmea3m-al =drPCCAR-alp r bu12"= a =drPCCAR- a hetl1=info12"= a.12 n=reainfo"re#)#L23 b4_n=d 4fo"re#, p uct imeasm-al4et3"l47e 4 3 L21 >r1314 /defss"1 > mco"re#)#L23 bu12"= a.12 n=restxqmci get3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=a40 o 4L23ts47 n=re3 a hcommen * CSET_ =dDEV_sm-alpetl1=ilpetl1SET_ =dDEV_sm-3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=a4UNNi/hcommen * C dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 a38r16l2=us" r21 > mcen 1mmen "= a.12 n=rse2438b12"=21 >r16l2=us" a h n=r21 > mce5se24_bitn=dreainfo"re#-ncliceasm-al)fo42n=d 4 do {L23 buttL23 4 h3k_48 o183eer186n=dr tL23 441=drivei_pr16deer16b//l_txm-al++fo12n=d b21 >r16l2=us" 21 > mci n 1mmen "= a.12 n=rse2438b1 b21 >r16l2=us" a h n=r21 > mci e5se24_bitn=dreainfo"re#-ncliceasm-al)fo42n=d 4udeer1/b//L23 buttL23 4 3 mci n 1mmen "= a.12 n=rse2438b18=drivei_pr16ds" a h n=r21 > mci e5se24_bitn=dreainfo"re#-ncliceasm-al)fo42ne 2 4 do {L23 buttL23 4 h30<48imeas30m-alpetl1= ut"= a.141=drivei_pr16deer16b//l_txm-al++fo12n=d end o19deer11 >m-a end> mcen 1mmen "= a.12 n=rse2438b12"=21 >r16l2=us" a h n=r21 > mci spet_1="kbe5se24_bitn=dreainfo"re#-ncliceasm-al)fo42#L23 bu412"= a.12 n=reain=dr++) 4L232348=BT_E3R12"2 3n=dr, imeasm-al41=drivei_pr16deer16b//l_txm-al++fo12n=d ioct3333ttL23 ereioct323 Ln 1mmen "= a.12 n=rse2438b1ioct3333ttL23 ere5se2438b1ioct323 Le5se24_bitn=dreainfo"re#-ncliceasm-al)fo42WAITINGn4dr, &(imeasm-alpetl14in3sm4alpetl3=printn12"= a.12 n=reapr3ntnn=38/d bu4tL23 44 hrine 4 L21 > o 4L232"4812 n=3easet_bitn=dr(imeasm-alp3tl n=r24rqsa&(imeasm-alpepp3tl n=r24rqsa&anfo12rg_pr19deer19dn=drlicmqueun_purg_uttL2"re#L22 buttL22 a hrine L22 >r1 2.18/def19" 4a40 o 4L232l48info13"= a.12 n=reainfo"re#-nc3icmea347 412 n=reai4fo"re#, p uct imeasm-al4et3a.48alpet3 3measm3aRestx t"= inedeterface ========================823 buttL242n=d 4 do {L23 buttL23 4 h30"48a.12 3=rea"kbn=dr, imeasm-aloutetl1=BT_ERR12"2 outenfo120a40r182.18/def18" 4 4 a3d<4912 n=312 n=reabyte_txn=dr += i3easm-37a en"r412 n=reai4fo"re#, p uct imeasm-al4et3d34 43alpetl1>ne 4 L21 >r152.18/dI_ ialize7t"= inedeterface ========================823 buttL24measm-alp4_pr8_alloc3 >r1718 /def47"3o149ttL233 3 n=dr, imeasm-aloutetl1=BT_ERR12"2 outenfo12eatx_" cll"= a.12 n=LCR_WLEN8info"re#)#L23 buttLLCR_WLEN8snn=a40r1213 / dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 a38r2L23 2 hrine 3 L16 >r10192 /def210pn=reatx_" cll"= a.12 n=reainfo"re#)#L23 buttL23 23defs19 de &l3;r121msr=2r ime2sm-alp msrmen e1=actualut"= a.12 n=reaactMm-_RIn=dr int imeaMm-_RIuttL b52 n=rea e5"re#)#L23 buttL23 5 h4 50eap_ 3on=dr-nclicmeasm-alpetl13re by35L23 1512 n=reai5fo"re#, p uct imeasm-al5et4 50on12"3 &ldeer1" 3 a38r1 2.18/def19" 4a40r1314 /defss" 3lee }L23TOMIC#-nc 3lee nfo1220001e5se24_bitn=dreainfo"re#-ncliceasm-al)fo5 8 n=reai5f * o17deer17. See 5 h4=850rs/b/3ivei_p2ne 2 L15 >r1317 /32en 2-5 #523 buttL23 4 hrine5 44t9501udee31/b//L2n 3measm3aRegisve6d2.18/def8" inedeterface ========================823 buttL2512 n=reai5fo"re#, p uct imeasm-al5et4ve5_pr1ud4er1/b//_" cll12"= a.12 n3r38b1regisve6l1=data12"= a23 buttL2regisve6l1=d3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=) < 0 a hcommen=reainfo"re#-nclicmeasm-al)2 a512 n=reai5fo"re#, p uct imeasm-al5et32=5======3===== Interrupt;r1m22n=dr, imeasm-al-alpetl1 a 1 /def || 0" a hcommeid imeasm-alpetl1 a 1 /defpetl1=infc1mr-nclicmea3m-al L21 >L23 2 hrine 4 L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5measm-alp5_pr8_alloc3 >r1718 /def57"3n=51imeas40m-alpetl1= ut"= a.12 4=rea n=r261"r1=data12"= a23 buttL2261"r1=d3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=) L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5mn=d 523 buttL23 4 hrine5 43>r5m11 2/3efs2" a hcnclicmeas3-alpe39 int imeasm-alpetl1=ilpetl1=-" a hcommeENODEVtL23 3 hriENODEV bufo512 n=reai5fo"re#, p uct imeasm-al5et3ar5 /ed 3r14b//m}hcommeENODEVtL23 3 hriENODEV bufo512 n=reai5 a hrine L22 >5813= 51ttL233 L15 >r1m22 /d <1rn33rive33r1m1325 hrine 25 L15 >r1 21 /def19" 5 3"r51e 4 3 L21 er179n=dr{L23 bu3tL23 38vei_pr16deer1lpetl1=nfo51n=d 523 buttL23 4 hrine5 43>d51alpetpetl1=info12"= a.32 n=r39IT_WAITINGn=d.151 #5fo"re#, p uct imeasm-al5et3a951print312"= a.12 n=reap26je#))L33 bu39t"= a.512 n=reai5fo"re#, p uct imeasm-al5et31152eap_ 3on=dr-nclicmeasm-alpetl13re by35L23 15 buttL22 5 a hrine L22 >58133 5212 n=3=reain=dr =dri imeasm-al3etl1= b21 >r16l2=us" a h21 > mci c=dri imeasm-al3etl1= on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a h hc1mmen "= mmen * o19deer19="re#Lu5 hrine 25 L15 >r1 21 /def19" 5 3 52319 =dkt_ a hcommen *dkt_ Tra 2 a5 n=retl1=512"= a.12 n=reain=dr++) 5L23/d52alpet31=XMIT_a"kbn=dr- Makeo12"= a.1221 >n"re#-nclicmeasm-alpetl1=p_ o hcommeENODEVtL23 3 hriENODEV bufo5 #523 buttL23 4 hrine5 43et524lpet31=XMIT_a"kbn=dr-nclicmea2m-alp2tl1=data12"= a2sm-alpetl2=us" =reau8n dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 a38r2L23 2 hrine 3 L16 >r10192 /def210petl1=info12"= a.12 n=reainfo"re#)#L23 b512 n=reai5fo"re#, p uct imeasm-al5et3 52ttL233 3 a"kbn=dr-nclicmea3m-alp3tl1=data12"= a23 buttL23 4 hrimci =reainfo"re#-nclicmci =re 3 1 a h=reau8n dmeasm-alpetl1=BT_ERR12"2L22 2 hrine pre#-nclicmci =re 3 1 a hetl1=info12"= a.12 n=reainfo"re#)#L23 b512 n=reai523 buttL23 4 hrine5 43e 52ttL233 L15 >r1m22 /d <1rn33rive33r1m13251hrine 2523 buttL23 4 hrine5 43er52info13a hrine L23 >r17 3/d"re#-nclicmci =re 3 1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)u5 n=retl1=512"= a.12 n=reain=dr++) 5L23/d52alpet3etl1=clear_bit12"= a.1as3-alpe39 int imeasm-alpetl1=ilpetl1=-" a hcommeENODEVtL23 3 hriENODEV bufo5 a.12i_pr5udeer1/b//L23 buttL23 5713i_52print312"= a.12 n=reap26je#))L33 bu39t"= a.5 3 h5ine 3 L16 >r172.18/5ef3s"53 a hc3mmen * o1pdeer177"rse2438b1 b21 >r16l2=us" a h n=r21 > mci dr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=) L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5tL23 54 hrine 4 L21 > o 5L23s"53on12"3 a.12 n=rear1 2.18/def19" 4a40r182.18/def18" 4 5 a3me5312 n=312 n=reabyte_txn=dr += i3easm-37a en"r5ttL23 5 L15 >r182.18/def18" 4 5 a3mt53 43alpetl1>ne 4 L21 >r152.18/dRestx t"= inedeterface ========================823 buttL25_WAITINGn5dr, &(imeasm-alpetl15in3r 53ttL233 3 n=dr, imeasm-aloutetl1=BT_ERR12"2 outenfo120a40r1m22 /d <1rn33rive33r1m1325/def2s" 5 a hcom.c" ne 4 L21 >r152.18/d icmeoffcs2the L21s inedeterface ========================823 buttL25ttL23 52petl1=bun22"= buttL23 5713as53 n=re3 a hcommen * Coutetl1=BT_ERR12"2 outenfo120a40r1 2.18/def19" 4a40542 o183eer186n=dr tL23 4.n=runregisve6l1=data12"= a23 buttL2unregisve6l1=dmci dr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=) L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5 hrine 25 L15 >r1 21 /def19" 5 3as54imeas30m-alpetl1= ut"= a.14n=r261"r1=data12"= a23 buttL2261"r1=d3drvdr(imeasm-alpetl1=Xmci get3drvdr(ilowmasnn=) L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5ttL23 52petl1=bun22"= buttL23 5713cm54=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI5 n=retl1=512"= a.12 n=reain=dr++) 5L23c 54ttL233 3 er179n=dr{L23 bu3tL23 38vei_pr16deer1lpetl1=nfo5tL23 54 hrine 4 L21 > o 5L23= 54ttL23petl1=info12"= a.32 n=r39IT_WAITINGn=d.15asm-alpet51=info12"= a.12 n=reainf5"r3tl5=info13"= a.12 n=reainfo"re#-nc3icmea347 5a hcommen5 * o17deer17. See 5 3 s5-alpet3=reain=dr =dri imeasm-al3etl1=prob1 >r16l2=us" a hprob13drvda"kbn=dr-nclicmea3m-alpcmcia_/def8" L22 >r10182 /decmcia_/def8" 4 hrimci =reainfoer1 L22 >r1 2.18/r1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)u5asm-alpet51=info12"= a.12 n=reainf5"r3t_54print=dkt_ a hcommen *dkt_ Tra 2 a5 n=retl1=512"= a.12 n=reain=dr++) 5L23 n55 a hc3mmen * o1pdeer177"rse24 on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a hc1mmen "= a.12 n=reainfo"re#)#L23 bufo5 3 hrin5 3 L16 >1r9 /19com5en3pe55on12"3 a.12 n=reane 4 L21 >r152.18/dCre 7new 18/def8" inedeterface ========================823 buttL25ine 2 5 L15 >r182.18/def18" 4 5 a3 55imeas30m-alpetl1= ut"= a.12anew 3 tr1udeer132rn=d 1mmen "= a.12 n=revm_kzalloc }L232witcrevm_kzallocnfo12rg_prhrimci =reainfoer1 L22 >r1 2.18/r1 a h a38L23 2 hrGFP_KERNE1snn=) L21 >r1mimeasm-alpetl1=UAR2_LSR_21" b5 3 h5ine 3 L16 >r172.18/5ef3MI554lpet31=XMIT_ L23 >r17 3/d L16 >r9 /defs"9 1 a h hc1mmen "= mmen * o19deer19="re#Lu5_WAITINGn5dr, &(imeasm-alpetl15in3r)55ttL233 3 ear_bit12"= a.1as3-alpe39 int imeaMEMalpetl1=ilpetl1=-"MEM o 5L231 55ttL233 L15 >r1m22 /d <1rn33rive33r1m1325tL23 54 hrine 4 L21 > o 5L231l55e 4 3 L21 >r1314 /defss" dmeasm-alpetl1=BT_ERR12"2L22 2 hrine L22 >r10182 /def20" 3 1mmen "= a.12 n=er1 L22 >r1 2.18/r1 a h hcommeENODEVtL23 3 hriENODEV bufo5_ hcommen5fo"re#, p uct imeasm-al5et31s55 n=re3 a hcommen * Cer1 L22 >r1 2.18/r1 a h a38r10182 /deVtL a h=reau8n dmeasm-alpetl1=BT_ERR12 hcommeENODEVtL23 3 hriENODEV bufo5_sm-alpet51=info12"= a.12 n=reainf5"r3 55print312"= a.12 n=reap26je#))L33 bu39t"= a.52 n=rea e5"re#)#L23 buttL23 5 h3l156 a hc3mmen * o1pdeer177"er1 L22 >r1 2.18/r1 a h a38r16l2=us" a h2onfig3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a hc hcommeENODEVtL23 3 hriENODEV bufo52ne 2 5 L15 >r182.18/def18" 4 5 a3= 56=driv3i_pr18deer18dn=dr 3imeas3-alpet.15##L23 bu5223 32hrine 3 5163n=56=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI5tL23 54 hrine 4 L21 > o 5L23 56lpetl3=printn12"= a.12 n=reapr3ntnn=38/d bu512 n=reai5fo"re#, p uct imeasm-al5et3l 56a.12 3=reainvoid1=dri imeasm-al3etl1=detasm-alpetl1=skb_quetl1=detasm3drvda"kbn=dr-nclicmea3m-alpcmcia_/def8" L22 >r10182 /decmcia_/def8" 4 hrimci =reainfoer1 L22 >r1 2.18/r1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)u52n=d 5 do {L23 buttL23 5 h3ll56info13"re## imeasm-alpetl1=i123= a.13 n=rea a5a hcommen5 * o17deer17. See 5 3=s56 n=re3 a hcommen * Crse24 on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a h 1mmen "= a.12 n=er1 L22 >r1 2.18/r1 a h a38r10182 /deVtL a h hcommeENODEVtL23 3 hriENODEV bufo52sm-alpet5 4 hrine 4 L21 >r15 32"56print312"= a.12 n=reap26je#))L33 bu39t"= a.5asm-alpet51=info12"= a.12 n=reainf5"r3in57 a hc3mmen * o1pdeer177"rse24 b21 >r16l2=us" a h21 > mci c=dri imeasm-al3=n12"= a.12 n=reaflowmasnn=dr & 0x07) != 0)) {L23 buttL23 5 3 hrin5 3 L16 >1r9 /19com5en3 57 o183eer186n=dr tL23 4ecmcia_/isable_/def8" L22 >r10182 /decmcia_/isable_/def8"3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a hc hcommeENODEVtL23 3 hriENODEV bufo52n=d 5 do {L23 buttL23 5 h3 457drive3i_pr18deer18dn=dr 3imeas3-alpet.152ne 2 512"= a.12 n=reain=dr++) 5L23 5.12 n=312 n=reabyte_txn=dr += i3easm-37a en"r5##L23 bu5223 32hrine 3 5163 57=BT_E3=reain=dr =dri imeasm-al3etl1= onfche L22 >r1 2.18etl1= onfche 3drvda"kbn=dr-nclicmea3m-alpcmcia_/def8" L22 >r10182 /decmcia_/def8" 4 hrimci =reainfo L22 >r10182 /def20" 3 ,nvoid1 hrimci =reainfo te__)#L23 bu12"= a.12 te__)#L2 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)u5_WAITINGn5dr, &(imeasm-alpetl15in3"=57ttL233"re## imeasm-alpetl1=i123= a.13 n=rea a5tL23 54 hrine 4 L21 > o 5L23tL5712 n=3l1=XMIT dr(imeasm-alpetl L22 >r10182 /def20" 3 a38r2L23 2 hrinend o19deer11 >m-aend> mc) || cll12"= a.12 n3r L22 >r10182 /def20" 3 a38r2L23 2 hrinend o19deer11 >m-aend> mc < 8)c1mmen "= n=reainfo"re#-nclicmeasm-al)u5_n=d 5fo"re#, p uct imeasm-al5et3"l57L23 3_pr1udeer225n=d2"= a.1as3-alpe39 int imeasm-alpetl1=ilpetl1=-" a hcommeENODEVtL23 3 hriENODEV bufo5tL23 54 hrine 4 L21 > o 5L23ts57rs/b/3ivei_p2ne 2 L15 >r1317 /32en 2-52n=d 5 do {L23 buttL23 5 h3 "57a.12 3=rea"kbn=dr, imeasm-al L22 >r10182 /def20" 3 a38r2L23 2 hrin"re#-nclicmeasm-alpetl1=p_ om L2= ~L23 2 hrinIO_m.18/SATH_WIDT12 n=reaactualn=IO_m.18/SATH_WIDT1 a hcommeENODEVtL23 3 hriENODEV bufo52 n=rea e5"re#)#L23 buttL23 5 h3 5 a hc3mmen * o1pdeer177" L22 >r10182 /def20" 3 a38r2L23 2 hrin"re#-nclicmeasm-alpetl1=p_ om|reau8n IO_m.18/SATH_WIDT1_8info"re#)#L23 IO_m.18/SATH_WIDT1_8 a hcommeENODEVtL23 3 hriENODEV bufo52 3 hrin5 do {L23 buttL23 5 h3k_58on12"3 a.12 n=rear10182 /def20" 3 c hcommeENODEVtL23 3 hriENODEV bufo52ne 2 5 do {L23 buttL23 5 h30<58=driv3i_pr18deer18dn=dr 3imeas3-alpet.152#L23 bu512"= a.12 n=reain=dr++) 5L232358=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI52WAITINGn5dr, &(imeasm-alpetl15in3sm5alpetl3=reain=dr =dri imeasm-al3etl1= onfig >r16l2=us" a h2onfig3drvda"kbn=dr-nclicmea3m-alpcmcia_/def8" L22 >r10182 /decmcia_/def8" 4 hrimci =reainfoer1 L22 >r1 2.18/r1 a hc1mmen "= n=reainfo"re#-nclicmeasm-al)u5tL23 54 hrine 4 L21 > o 5L232"5812 n=3"re## imeasm-alpetl1=i123= a.13 n=rea a52n=d 54 hrine 4 L21 > o 5L232l58e 4 3 L21 >r1314 /defss"rse24 on38* ;;>115n=ere5se24_bitn=dNDINin rine 3 1 L16 >r9 /defs"9 1 a h 1mmen "= a.12 n=er1 L22 >r1 2.18/r1 a h a38r10182 /deVtL a h hcommeENODEVtL23 3 hriENODEV bufo512 n=reai5fo"re#, p uct imeasm-al5et3a.58alpet3 =dr =dri imeasm-al32"=buttL23 3 hrf210petl1=info12"= a.12 n=reainfo"re#)#L23 b52n=d 5 do {L23 buttL23 5 h30"58print312"= a.12 n=reap26je#))L33 bu39t"= a.52n=d 5 do {L23 buttL23 5 h3de59 a hc3mmen ne 4 L21 >r152.18/dLook for a generainfull-sized window inedeterface ========================823 buttL252n=d 5 do {L23 buttL23 5 h3d_59 o183eer186n=dr tL23 4er1 L22 >r1 2.18/r1 a h a38r2L23 2 hrinend o19deer11 >m-aend> mc = 8etl1=info12"= a.12 n=reainfo"re#)#L23 b52n=d 5 do {L23 buttL23 5 h3dr592 o183eer186n=dr tL23 42"=buttL23 3 hrf210p 1mmen "= a.12 n=ecmcia_loop= onfig >r16l2=us" ecmcia_loop= onfig3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a ha40r1 2.18etl1= onfche 3drv buttL23 3 hrL21 >L23 2 hrine 4 c hcommeENODEVtL23 3 hriENODEV bufo52ne 2 5 L15 >r182.18/def18" 4 5 a3d<59imeas30m-alpe_" cll12"= a.12 n3r2"=buttL23 3 hrf210pc1mmen "= n=reainfo"re#-nclicmeasm-al)u512 n=reai5fo"re#, p uct imeasm-al5et3d35911 2/3efs2" a hcgoto40m-a"ailed210petl1=info12"= a.12 n=reainfo"re#)#L23 b5measm-alp5_pr8_alloc3 >r1718 /def57"3o159lpetl3=printn12"= a.12 n=reapr3ntnn=38/d bu5mL23 5 do {L23 buttL23 5 h3d"5912 n=3easet_bitn=dr(imeasm-a2"=buttL23 3 hrf210p 1mmen "= a.12 n=ecmcia_request_ir L22 >r1 2.1ecmcia_request_ir 3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a ha40m-a"ailed210petl1=info12"= a.12 n=reainfo"re#)#L23 b5mn=d 5 do {L23 buttL23 5 h3tl59print312"= a.12 n=reap26je#))L33 bu39t"= a.62 n=rea e6"re#)#L23 buttL23 6 h4 60 a hc3mmen * o1pdeer177"2"=buttL23 3 hrf210p 1mmen "= a.12 n=ecmcia_enable_/def8" L22 >r10182 /decmcia_enable_/def8"3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a hc hcommeENODEVtL23 3 hriENODEV bufo612 n=reai6fo"re#, p uct imeasm-al6et4 60I_MAX3FRAME_S19dell12"= a.12 n3r2"=buttL23 3 hrf210pc1mmen "= n=reainfo"re#-nclicmeasm-al)u612 n=reai6fo"re#, p uct imeasm-al6et4Hi60ine 3 L15 >r1m22goto40m-a"ailed210petl1=info12"= a.12 n=reainfo"re#)#L23 b62n=d 6 do {L23 buttL23 6 h4=d6012 n=312 n=reabyte_txn=dr += i3easm-37a en"r62n=d 6 do {L23 buttL23 6 h4=460=BT_E3R12"2 3n=dr, imeasm-al2"=buttL23 3 hrf210p 1mmen "= a.12 n=sm-372"=21 >r16l2=us" a r21 > mci=dri imeasm-al3=n12"= a.12 n=reaflowmasnn=dr & 0x07) != 0)) {L23 buttL23 6 #623 buttL23 4 hrine6 44tr605_MAX3FRAME_S19dell12"= a.12 n3r2"=buttL23 3 hrf210pc1mmen "= n=reainfo"re#-nclicmeasm-al)u616 #62 do {L23 buttL23 6et4H66 /ed 4nasm-al5 >r1m22goto40m-a"ailed210petl1=info12"= a.12 n=reainfo"re#)#L23 b627 #622"= a.12 n=reain=dr++) 6 h4=760info13"= a.12 n=reainfo"re#-nc3icmea347 6 8 n=reai6f * o17deer17. See 6 h4=860alpet3etl1=cler179n=dr{L23 bu3tL23 38vei_pr16deer1lpetl1=nfo6 #623 buttL23 4 hrine6 44t960print312"= a.12 n=reap26je#))L33 bu39t"= a.612 n=reai6fo"re#, p uct imeasm-al6et4ve6_pr1ud0m-a"ailed210p:312"= a.12 n=reap26je#))L33 bu39t"= a.612 n=reai6fo"re#, p uct imeasm-al6et32=61 o183eer186n=dr tL23 4etl1=detasm-alpetl1=skb_quetl1=detasm3drvdr(imeasm-alpetler1 L22 >r1 2.18/r1 a hc hcommeENODEVtL23 3 hriENODEV bufo612 n=reai6fo"re#, p uct imeasm-al6et3a 612 o183eer186n2"= a.1=dri imeasm-al32"=buttL23 3 hrf210petl1=info12"= a.12 n=reainfo"re#)#L23 b6measm-alp6_pr8_alloc3 >r1718 /def67"3n=61=driv3i_pr18deer18dn=dr 3imeas3-alpet.16mn=d 623 buttL23 4 hrine6 43>r61=BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI612 n=reai6fo"re#, p uct imeasm-al6et3ar61lpetl3=reain onst a"kbn=dr-nclicmea3m-alecmcia_/def8"_id o19deer11 >m-aecmcia_/def8"_id o18306813= 6112 n=3easet_bitn=dr(imeasm-aPCMCIA_sm-ICE_PROD_IDfo"re#, p m-alpePCMCIA_sm-ICE_PROD_IDfo3drvdrcomme3 buttL23 3 hripetl1=Mobile Phones"kb123 u , rcomme3 buttL23 3 hriDTL-1"kb123 u , 0xe1bfdd64, 0xe168480d),"re## imeasm-alpetl1=i123= a.13 n=rea a617 #6 L15 >r1 21 /def19" 6 3"r61e 4 3 L21 >r1314 /defss"PCMCIA_sm-ICE_PROD_IDfo"re#, p m-alpePCMCIA_sm-ICE_PROD_IDfo3drvdrcomme3 buttL23 3 hripetl1=Mobile Phones"kb123 u , rcomme3 buttL23 3 hriDTL-4"kb123 u , 0xe1bfdd64, 0x9102bc82),"re## imeasm-alpetl1=i123= a.13 n=rea a618 n=reai623 buttL23 4 hrine6 43>d61 n=re3 a hcommen * CPCMCIA_sm-ICE_PROD_IDfo"re#, p m-alpePCMCIA_sm-ICE_PROD_IDfo3drvdrcomme3 buttL23 3 hriSocktx"kb123 u , rcomme3 buttL23 3 hriCF"kb123 u , 0xb38bcc2e, 0x44ebf863),"re## imeasm-alpetl1=i123= a.13 n=rea a61 #6fo"re#, p uct imeasm-al6et3a961a.12 3=rea"kbn=dr, imeasm-alPCMCIA_sm-ICE_PROD_IDfo"re#, p m-alpePCMCIA_sm-ICE_PROD_IDfo3drvdrcomme3 buttL23 3 hriSocktx"kb123 u , rcomme3 buttL23 3 hriCF+ Plpeonal NetworklCar "kb123 u , 0xb38bcc2e, 0xe732bae3),"re## imeasm-alpetl1=i123= a.13 n=rea a612 n=reai6fo"re#, p uct imeasm-al6et31162 a hc3mmen * o1pdeer177"PCMCIA_sm-ICE_rL21 >L23 2 hrPCMCIA_sm-ICE_rL21BT_E3er1/b//mo{L23 buttL23 3 a 33reaXMI6 buttL22 6 a hrine L22 >68133 6212 n=}etl1=info12"= a.12 n=reainfo"re#)#L23 b6 hrine 26 L15 >r1 21 /def19" 6 3 62319 * o1pdeer177"MODULE_sm-ICE_TABLE >L23 2 hrMODULE_sm-ICE_TABLE3drvdr(imeasm-alpetl cmcia o19deer11 >m-aecmcia a ha40m-aecmcia_/te_tx o1830m-aetl1=/te_tx210p 1m3"re## imeasm-alpetl1=i123= a.13 n=rea a612 n=reai6fo"re#, p uct imeasm-al6et3 62ttL233 3 .0m-aowntx/ed 4nasm-al5 1mmen "= a.12 n=THIS_MODULE o19deer11 >m-aTHIS_MODULE a ha"re## imeasm-alpetl1=i123= a.13 n=rea a612 n=reai623 buttL23 4 hrine6 43e 626tL233 3 .0m-a4 hr/ed 4nasm-al5 >= rcomme3 buttL23 3 hri.13 n=r"kb123 u ,"re## imeasm-alpetl1=i123= a.13 n=rea a617 #623 buttL23 4 hrine6 43er62info13a hrine.0r16l2=us" prob13drv4nasm-al5 1mmen "= a.12 n=etl1=prob1 >r16l2=us" a hprob13drv,"re## imeasm-alpetl1=i123= a.13 n=rea a618 n=reai612"= a.12 n=reain=dr++) 6L23/d62alpet3etl1=cl.0r172.18/6ef3s"63 a hc}etl1=info12"= a.12 n=reainfo"re#)#L23 b6tL23 64 hrine 4 L21 > o 6L23s"63on12"men "= a.12 n=module_ecmcia_/te_tx o19deer11 >m-amodule_ecmcia_/te_tx3drvdr(imeasm-alpetletl1=/te_tx o19deer11 >m-aetl1=/te_tx210pc hcommeENODEVtL23 3 hriENODEV bufo6thrine 2623 buttL23 4 hrine6 43ri632 o18
The original LXR software by the commeENODhttp://ine 3forge.net/projects/lxx >LXR 1 >runity a ha4this experir152al L23 ion by commeENODmailto:lxx@ ux.no">lxx@ ux.no a h.
lxx. ux.no kindly hosted by commeENODhttp://www.redpill- pro.no">Redpill L pro AS a ha4provider of L uxn onsult and operreaons seref8"s since 1995.