halmac_bit2.h 2.6 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2016 - 2018 Realtek Corporation. All rights reserved.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. ******************************************************************************/
  15. #ifndef __RTL_WLAN_BITDEF_H__
  16. #define __RTL_WLAN_BITDEF_H__
  17. #include "halmac_hw_cfg.h"
  18. #define CPU_OPT_WIDTH 0x1F
  19. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  21. #define BIT_WRITE_ENABLE BIT(31)
  22. #endif
  23. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  24. #define BIT_MEM_RMV_SIGN BIT(31)
  25. #endif
  26. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  27. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME BIT(31)
  29. #endif
  30. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  33. #define BIT_SHIFT_LLTE_RWM 30
  34. #define BIT_MASK_LLTE_RWM 0x3
  35. #define BIT_LLTE_RWM(x) (((x) & BIT_MASK_LLTE_RWM) << BIT_SHIFT_LLTE_RWM)
  36. #define BITS_LLTE_RWM (BIT_MASK_LLTE_RWM << BIT_SHIFT_LLTE_RWM)
  37. #define BIT_CLEAR_LLTE_RWM(x) ((x) & (~BITS_LLTE_RWM))
  38. #define BIT_GET_LLTE_RWM(x) (((x) >> BIT_SHIFT_LLTE_RWM) & BIT_MASK_LLTE_RWM)
  39. #define BIT_SET_LLTE_RWM(x, v) (BIT_CLEAR_LLTE_RWM(x) | BIT_LLTE_RWM(v))
  40. #endif
  41. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42. #define BIT_MEM_RMV_2PRF1 BIT(29)
  43. #define BIT_MEM_RMV_2PRF0 BIT(28)
  44. #endif
  45. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  46. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47. #define BIT_SHIFT_GTAB_ID 28
  48. #define BIT_MASK_GTAB_ID 0x7
  49. #define BIT_GTAB_ID(x) (((x) & BIT_MASK_GTAB_ID) << BIT_SHIFT_GTAB_ID)
  50. #define BITS_GTAB_ID (BIT_MASK_GTAB_ID << BIT_SHIFT_GTAB_ID)
  51. #define BIT_CLEAR_GTAB_ID(x) ((x) & (~BITS_GTAB_ID))
  52. #define BIT_GET_GTAB_ID(x) (((x) >> BIT_SHIFT_GTAB_ID) & BIT_MASK_GTAB_ID)
  53. #define BIT_SET_GTAB_ID(x, v) (BIT_CLEAR_GTAB_ID(x) | BIT_GTAB_ID(v))
  54. #endif
  55. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  56. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  57. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  58. #define BIT_MULRW BIT(27)
  59. #endif
  60. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  61. #define BIT_MEM_RMV_1PRF1 BIT(27)
  62. #define BIT_MEM_RMV_1PRF0 BIT(26)
  63. #define BIT_MEM_RMV_1PSR BIT(25)
  64. #endif
  65. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  66. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  67. HALMAC_8881A_SUPPORT)
  68. #define BIT_SHIFT_MBIDCAM_ADDR 24
  69. #define BIT_MASK_MBIDCAM_ADDR 0x1f
  70. #define BIT_MBIDCAM_ADDR(x) \
  71. (((x) & BIT_MASK_MBIDCAM_ADDR) << BIT_SHIFT_MBIDCAM_ADDR)
  72. #define BITS_MBIDCAM_ADDR (BIT_MASK_MBIDCAM_ADDR << BIT_SHIFT_MBIDCAM_ADDR)
  73. #define BIT_CLEAR_MBIDCAM_ADDR(x) ((x) & (~BITS_MBIDCAM_ADDR))
  74. #define BIT_GET_MBIDCAM_ADDR(x) \
  75. (((x) >> BIT_SHIFT_MBIDCAM_ADDR) & BIT_MASK_MBIDCAM_ADDR)
  76. #define BIT_SET_MBIDCAM_ADDR(x, v) \
  77. (BIT_CLEAR_MBIDCAM_ADDR(x) | BIT_MBIDCAM_ADDR(v))
  78. #endif
  79. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  80. #define BIT_MEM_RMV_ROM BIT(24)
  81. #endif
  82. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  83. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  84. #define BIT_CPRST BIT(23)
  85. #endif
  86. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  87. HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  88. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  89. #define BIT_CTS_EN BIT(16)
  90. #endif
  91. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  92. #define BIT_SHIFT_R_OFDM_LEN_V1 16
  93. #define BIT_MASK_R_OFDM_LEN_V1 0xffff
  94. #define BIT_R_OFDM_LEN_V1(x) \
  95. (((x) & BIT_MASK_R_OFDM_LEN_V1) << BIT_SHIFT_R_OFDM_LEN_V1)
  96. #define BITS_R_OFDM_LEN_V1 (BIT_MASK_R_OFDM_LEN_V1 << BIT_SHIFT_R_OFDM_LEN_V1)
  97. #define BIT_CLEAR_R_OFDM_LEN_V1(x) ((x) & (~BITS_R_OFDM_LEN_V1))
  98. #define BIT_GET_R_OFDM_LEN_V1(x) \
  99. (((x) >> BIT_SHIFT_R_OFDM_LEN_V1) & BIT_MASK_R_OFDM_LEN_V1)
  100. #define BIT_SET_R_OFDM_LEN_V1(x, v) \
  101. (BIT_CLEAR_R_OFDM_LEN_V1(x) | BIT_R_OFDM_LEN_V1(v))
  102. #endif
  103. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  104. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  105. HALMAC_8822C_SUPPORT)
  106. #define BIT_SHIFT_COUNTER_BASE 16
  107. #define BIT_MASK_COUNTER_BASE 0x1fff
  108. #define BIT_COUNTER_BASE(x) \
  109. (((x) & BIT_MASK_COUNTER_BASE) << BIT_SHIFT_COUNTER_BASE)
  110. #define BITS_COUNTER_BASE (BIT_MASK_COUNTER_BASE << BIT_SHIFT_COUNTER_BASE)
  111. #define BIT_CLEAR_COUNTER_BASE(x) ((x) & (~BITS_COUNTER_BASE))
  112. #define BIT_GET_COUNTER_BASE(x) \
  113. (((x) >> BIT_SHIFT_COUNTER_BASE) & BIT_MASK_COUNTER_BASE)
  114. #define BIT_SET_COUNTER_BASE(x, v) \
  115. (BIT_CLEAR_COUNTER_BASE(x) | BIT_COUNTER_BASE(v))
  116. #define BIT_SHIFT_AGG_VALUE2 16
  117. #define BIT_MASK_AGG_VALUE2 0x7f
  118. #define BIT_AGG_VALUE2(x) (((x) & BIT_MASK_AGG_VALUE2) << BIT_SHIFT_AGG_VALUE2)
  119. #define BITS_AGG_VALUE2 (BIT_MASK_AGG_VALUE2 << BIT_SHIFT_AGG_VALUE2)
  120. #define BIT_CLEAR_AGG_VALUE2(x) ((x) & (~BITS_AGG_VALUE2))
  121. #define BIT_GET_AGG_VALUE2(x) \
  122. (((x) >> BIT_SHIFT_AGG_VALUE2) & BIT_MASK_AGG_VALUE2)
  123. #define BIT_SET_AGG_VALUE2(x, v) (BIT_CLEAR_AGG_VALUE2(x) | BIT_AGG_VALUE2(v))
  124. #endif
  125. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  126. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  127. #define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1 BIT(15)
  128. #endif
  129. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  130. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  131. HALMAC_8822C_SUPPORT)
  132. #define BIT_SHIFT_XTAL_DRV_RF1 13
  133. #define BIT_MASK_XTAL_DRV_RF1 0x3
  134. #define BIT_XTAL_DRV_RF1(x) \
  135. (((x) & BIT_MASK_XTAL_DRV_RF1) << BIT_SHIFT_XTAL_DRV_RF1)
  136. #define BITS_XTAL_DRV_RF1 (BIT_MASK_XTAL_DRV_RF1 << BIT_SHIFT_XTAL_DRV_RF1)
  137. #define BIT_CLEAR_XTAL_DRV_RF1(x) ((x) & (~BITS_XTAL_DRV_RF1))
  138. #define BIT_GET_XTAL_DRV_RF1(x) \
  139. (((x) >> BIT_SHIFT_XTAL_DRV_RF1) & BIT_MASK_XTAL_DRV_RF1)
  140. #define BIT_SET_XTAL_DRV_RF1(x, v) \
  141. (BIT_CLEAR_XTAL_DRV_RF1(x) | BIT_XTAL_DRV_RF1(v))
  142. #endif
  143. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  144. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  145. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  146. #define BIT_DISABLE_B0 BIT(13)
  147. #endif
  148. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  149. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  150. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  151. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  152. #define BIT_ATIMEND BIT(12)
  153. #endif
  154. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  155. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  156. #define BIT_SHIFT_GTAB_ID_V1 12
  157. #define BIT_MASK_GTAB_ID_V1 0x7
  158. #define BIT_GTAB_ID_V1(x) (((x) & BIT_MASK_GTAB_ID_V1) << BIT_SHIFT_GTAB_ID_V1)
  159. #define BITS_GTAB_ID_V1 (BIT_MASK_GTAB_ID_V1 << BIT_SHIFT_GTAB_ID_V1)
  160. #define BIT_CLEAR_GTAB_ID_V1(x) ((x) & (~BITS_GTAB_ID_V1))
  161. #define BIT_GET_GTAB_ID_V1(x) \
  162. (((x) >> BIT_SHIFT_GTAB_ID_V1) & BIT_MASK_GTAB_ID_V1)
  163. #define BIT_SET_GTAB_ID_V1(x, v) (BIT_CLEAR_GTAB_ID_V1(x) | BIT_GTAB_ID_V1(v))
  164. #endif
  165. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  166. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  167. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  168. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  169. #define BIT_SHIFT_WATCH_DOG_RECORD_V1 10
  170. #define BIT_MASK_WATCH_DOG_RECORD_V1 0x3fff
  171. #define BIT_WATCH_DOG_RECORD_V1(x) \
  172. (((x) & BIT_MASK_WATCH_DOG_RECORD_V1) << BIT_SHIFT_WATCH_DOG_RECORD_V1)
  173. #define BITS_WATCH_DOG_RECORD_V1 \
  174. (BIT_MASK_WATCH_DOG_RECORD_V1 << BIT_SHIFT_WATCH_DOG_RECORD_V1)
  175. #define BIT_CLEAR_WATCH_DOG_RECORD_V1(x) ((x) & (~BITS_WATCH_DOG_RECORD_V1))
  176. #define BIT_GET_WATCH_DOG_RECORD_V1(x) \
  177. (((x) >> BIT_SHIFT_WATCH_DOG_RECORD_V1) & BIT_MASK_WATCH_DOG_RECORD_V1)
  178. #define BIT_SET_WATCH_DOG_RECORD_V1(x, v) \
  179. (BIT_CLEAR_WATCH_DOG_RECORD_V1(x) | BIT_WATCH_DOG_RECORD_V1(v))
  180. #endif
  181. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  182. HALMAC_8881A_SUPPORT)
  183. #define BIT_R_8051_SPD BIT(9)
  184. #endif
  185. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  186. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  187. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  188. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  189. #define BIT_R_IO_TIMEOUT_FLAG_V1 BIT(9)
  190. #endif
  191. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  192. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  193. HALMAC_8822C_SUPPORT)
  194. #define BIT_EN_RTS_REQ BIT(9)
  195. #endif
  196. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  197. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  198. #define BIT_EN_WATCH_DOG_V1 BIT(8)
  199. #endif
  200. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  201. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  202. HALMAC_8822C_SUPPORT)
  203. #define BIT_EN_EDCA_REQ BIT(8)
  204. #define BIT_SHIFT_AGG_VALUE1 8
  205. #define BIT_MASK_AGG_VALUE1 0x7f
  206. #define BIT_AGG_VALUE1(x) (((x) & BIT_MASK_AGG_VALUE1) << BIT_SHIFT_AGG_VALUE1)
  207. #define BITS_AGG_VALUE1 (BIT_MASK_AGG_VALUE1 << BIT_SHIFT_AGG_VALUE1)
  208. #define BIT_CLEAR_AGG_VALUE1(x) ((x) & (~BITS_AGG_VALUE1))
  209. #define BIT_GET_AGG_VALUE1(x) \
  210. (((x) >> BIT_SHIFT_AGG_VALUE1) & BIT_MASK_AGG_VALUE1)
  211. #define BIT_SET_AGG_VALUE1(x, v) (BIT_CLEAR_AGG_VALUE1(x) | BIT_AGG_VALUE1(v))
  212. #endif
  213. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  214. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  215. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  216. HALMAC_8822C_SUPPORT)
  217. #define BIT_DIS_TXDMA_PRE BIT(7)
  218. #endif
  219. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  220. HALMAC_8881A_SUPPORT)
  221. #define BIT_RAM_DL_SEL BIT(7)
  222. #endif
  223. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  224. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  225. HALMAC_8822C_SUPPORT)
  226. #define BIT_EN_PTCL_REQ BIT(7)
  227. #endif
  228. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  229. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  230. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  231. HALMAC_8822C_SUPPORT)
  232. #define BIT_DIS_RXDMA_PRE BIT(6)
  233. #endif
  234. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  235. HALMAC_8881A_SUPPORT)
  236. #define BIT_WINTINI_RDY BIT(6)
  237. #endif
  238. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  239. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  240. HALMAC_8822C_SUPPORT)
  241. #define BIT_EN_SCH_REQ BIT(6)
  242. #endif
  243. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  244. HALMAC_8822C_SUPPORT)
  245. #define BIT_CLR_HGQ_REQ_BLOCK BIT(5)
  246. #endif
  247. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  248. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  249. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  250. HALMAC_8822C_SUPPORT)
  251. #define BIT_TXFLAG_EXIT_L1_EN BIT(2)
  252. #endif
  253. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  254. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  255. #define BIT_DATA_FW_STS_FILTER BIT(2)
  256. #endif
  257. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  258. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  259. #define BIT_EN_RXDMA_ALIGN_V1 BIT(1)
  260. #endif
  261. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  262. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  263. #define BIT_CTRL_FW_STS_FILTER BIT(1)
  264. #endif
  265. #if (HALMAC_8881A_SUPPORT)
  266. #define BIT_AFE_MBIAS BIT(1)
  267. #endif
  268. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  269. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)
  270. #define BIT_SHIFT_MDIO_REG_ADDR 0
  271. #define BIT_MASK_MDIO_REG_ADDR 0x1f
  272. #define BIT_MDIO_REG_ADDR(x) \
  273. (((x) & BIT_MASK_MDIO_REG_ADDR) << BIT_SHIFT_MDIO_REG_ADDR)
  274. #define BITS_MDIO_REG_ADDR (BIT_MASK_MDIO_REG_ADDR << BIT_SHIFT_MDIO_REG_ADDR)
  275. #define BIT_CLEAR_MDIO_REG_ADDR(x) ((x) & (~BITS_MDIO_REG_ADDR))
  276. #define BIT_GET_MDIO_REG_ADDR(x) \
  277. (((x) >> BIT_SHIFT_MDIO_REG_ADDR) & BIT_MASK_MDIO_REG_ADDR)
  278. #define BIT_SET_MDIO_REG_ADDR(x, v) \
  279. (BIT_CLEAR_MDIO_REG_ADDR(x) | BIT_MDIO_REG_ADDR(v))
  280. #endif
  281. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  282. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  283. #define BIT_EN_TXDMA_ALIGN_V1 BIT(0)
  284. #endif
  285. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  286. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  287. HALMAC_8822C_SUPPORT)
  288. #define BIT_SHIFT_AGG_VALUE0 0
  289. #define BIT_MASK_AGG_VALUE0 0x7f
  290. #define BIT_AGG_VALUE0(x) (((x) & BIT_MASK_AGG_VALUE0) << BIT_SHIFT_AGG_VALUE0)
  291. #define BITS_AGG_VALUE0 (BIT_MASK_AGG_VALUE0 << BIT_SHIFT_AGG_VALUE0)
  292. #define BIT_CLEAR_AGG_VALUE0(x) ((x) & (~BITS_AGG_VALUE0))
  293. #define BIT_GET_AGG_VALUE0(x) \
  294. (((x) >> BIT_SHIFT_AGG_VALUE0) & BIT_MASK_AGG_VALUE0)
  295. #define BIT_SET_AGG_VALUE0(x, v) (BIT_CLEAR_AGG_VALUE0(x) | BIT_AGG_VALUE0(v))
  296. #endif
  297. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  298. HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  299. #define BIT_SHIFT_BW_CFG 0
  300. #define BIT_MASK_BW_CFG 0x3
  301. #define BIT_BW_CFG(x) (((x) & BIT_MASK_BW_CFG) << BIT_SHIFT_BW_CFG)
  302. #define BITS_BW_CFG (BIT_MASK_BW_CFG << BIT_SHIFT_BW_CFG)
  303. #define BIT_CLEAR_BW_CFG(x) ((x) & (~BITS_BW_CFG))
  304. #define BIT_GET_BW_CFG(x) (((x) >> BIT_SHIFT_BW_CFG) & BIT_MASK_BW_CFG)
  305. #define BIT_SET_BW_CFG(x, v) (BIT_CLEAR_BW_CFG(x) | BIT_BW_CFG(v))
  306. #endif
  307. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  308. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  309. #define BIT_MGNT_FW_STS_FILTER BIT(0)
  310. #endif
  311. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  312. HALMAC_8822B_SUPPORT)
  313. #define BIT_ISO_MD2PP BIT(0)
  314. #endif
  315. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  316. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  317. HALMAC_8822C_SUPPORT)
  318. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  319. #define BIT_SHIFT_SDIO_INT_TIMEOUT 16
  320. #define BIT_MASK_SDIO_INT_TIMEOUT 0xffff
  321. #define BIT_SDIO_INT_TIMEOUT(x) \
  322. (((x) & BIT_MASK_SDIO_INT_TIMEOUT) << BIT_SHIFT_SDIO_INT_TIMEOUT)
  323. #define BITS_SDIO_INT_TIMEOUT \
  324. (BIT_MASK_SDIO_INT_TIMEOUT << BIT_SHIFT_SDIO_INT_TIMEOUT)
  325. #define BIT_CLEAR_SDIO_INT_TIMEOUT(x) ((x) & (~BITS_SDIO_INT_TIMEOUT))
  326. #define BIT_GET_SDIO_INT_TIMEOUT(x) \
  327. (((x) >> BIT_SHIFT_SDIO_INT_TIMEOUT) & BIT_MASK_SDIO_INT_TIMEOUT)
  328. #define BIT_SET_SDIO_INT_TIMEOUT(x, v) \
  329. (BIT_CLEAR_SDIO_INT_TIMEOUT(x) | BIT_SDIO_INT_TIMEOUT(v))
  330. #endif
  331. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  332. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  333. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  334. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  335. #define BIT_PWC_EV12V BIT(15)
  336. #endif
  337. #if (HALMAC_8192F_SUPPORT)
  338. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  339. #define BIT_PWC_ON2EF BIT(15)
  340. #endif
  341. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  342. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  343. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  344. #define BIT_IO_ERR_STATUS BIT(15)
  345. #endif
  346. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  347. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  348. #define BIT_PWC_EBCOEB BIT(15)
  349. #endif
  350. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  351. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  352. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  353. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  354. #define BIT_PWC_EV25V BIT(14)
  355. #endif
  356. #if (HALMAC_8192F_SUPPORT)
  357. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  358. #define BIT_PWC_EV2EF BIT(14)
  359. #endif
  360. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  361. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  362. #define BIT_CMD53_W_MIX BIT(14)
  363. #endif
  364. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  365. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  367. HALMAC_8881A_SUPPORT)
  368. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  369. #define BIT_PA33V_EN BIT(13)
  370. #endif
  371. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  372. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  373. #define BIT_CMD53_TX_FORMAT BIT(13)
  374. #endif
  375. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  376. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  377. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  378. HALMAC_8881A_SUPPORT)
  379. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  380. #define BIT_PA12V_EN BIT(12)
  381. #endif
  382. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  383. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  384. #define BIT_CMD53_R_TIMEOUT_MASK BIT(12)
  385. #endif
  386. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  387. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  388. #define BIT_PC_A15V BIT(12)
  389. #endif
  390. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  391. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  392. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  393. HALMAC_8881A_SUPPORT)
  394. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  395. #define BIT_UA33V_EN BIT(11)
  396. #define BIT_UA12V_EN BIT(10)
  397. #endif
  398. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  399. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  400. #define BIT_SHIFT_CMD53_R_TIMEOUT_UNIT 10
  401. #define BIT_MASK_CMD53_R_TIMEOUT_UNIT 0x3
  402. #define BIT_CMD53_R_TIMEOUT_UNIT(x) \
  403. (((x) & BIT_MASK_CMD53_R_TIMEOUT_UNIT) \
  404. << BIT_SHIFT_CMD53_R_TIMEOUT_UNIT)
  405. #define BITS_CMD53_R_TIMEOUT_UNIT \
  406. (BIT_MASK_CMD53_R_TIMEOUT_UNIT << BIT_SHIFT_CMD53_R_TIMEOUT_UNIT)
  407. #define BIT_CLEAR_CMD53_R_TIMEOUT_UNIT(x) ((x) & (~BITS_CMD53_R_TIMEOUT_UNIT))
  408. #define BIT_GET_CMD53_R_TIMEOUT_UNIT(x) \
  409. (((x) >> BIT_SHIFT_CMD53_R_TIMEOUT_UNIT) & \
  410. BIT_MASK_CMD53_R_TIMEOUT_UNIT)
  411. #define BIT_SET_CMD53_R_TIMEOUT_UNIT(x, v) \
  412. (BIT_CLEAR_CMD53_R_TIMEOUT_UNIT(x) | BIT_CMD53_R_TIMEOUT_UNIT(v))
  413. #endif
  414. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  415. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  416. #define BIT_ISO_AFE_OUTPUT_SIGNAL BIT(10)
  417. #endif
  418. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  419. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  420. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  421. HALMAC_8881A_SUPPORT)
  422. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  423. #define BIT_ISO_RFDIO BIT(9)
  424. #endif
  425. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  426. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  427. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  428. #define BIT_REPLY_ERRCRC_IN_DATA BIT(9)
  429. #endif
  430. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  431. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  432. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  433. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  434. #define BIT_ISO_EB2CORE BIT(8)
  435. #endif
  436. #if (HALMAC_8192F_SUPPORT)
  437. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  438. #define BIT_ISO_EF2PP BIT(8)
  439. #endif
  440. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  441. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  442. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  443. #define BIT_EN_CMD53_OVERLAP BIT(8)
  444. #endif
  445. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  446. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  447. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  448. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  449. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  450. #define BIT_ISO_DIOE BIT(7)
  451. #endif
  452. #if (HALMAC_8192F_SUPPORT)
  453. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  454. #define BIT_ISO_EXTIO BIT(7)
  455. #endif
  456. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  457. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  458. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  459. #define BIT_REPLY_ERR_IN_R5 BIT(7)
  460. #endif
  461. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  462. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  463. #define BIT_ISO_DIOP BIT(6)
  464. #endif
  465. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  466. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  467. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  468. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  469. #define BIT_ISO_WLPON2PP BIT(6)
  470. #endif
  471. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  472. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  473. HALMAC_8822C_SUPPORT)
  474. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  475. #define BIT_R18A_EN BIT(6)
  476. #endif
  477. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  478. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  479. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  480. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  481. #define BIT_ISO_IP2MAC_WA2PP BIT(5)
  482. #endif
  483. #if (HALMAC_8192F_SUPPORT)
  484. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  485. #define BIT_ISO_WA2PP BIT(5)
  486. #endif
  487. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  488. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  489. HALMAC_8822C_SUPPORT)
  490. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  491. #define BIT_SDIO_CMD_FORCE_VLD BIT(5)
  492. #endif
  493. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  494. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  495. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  496. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  497. #define BIT_ISO_PD2CORE BIT(4)
  498. #endif
  499. #if (HALMAC_8192F_SUPPORT)
  500. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  501. #define BIT_ISO_PD2PP BIT(4)
  502. #endif
  503. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  504. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  505. HALMAC_8822C_SUPPORT)
  506. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  507. #define BIT_INIT_CMD_EN BIT(4)
  508. #endif
  509. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  510. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  511. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  512. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  513. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  514. #define BIT_ISO_PA2PCIE BIT(3)
  515. #endif
  516. #if (HALMAC_8192F_SUPPORT)
  517. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  518. #define BIT_ISO_PA2PD BIT(3)
  519. #endif
  520. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  521. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  522. #define BIT_RXINT_READ_MASK_DIS BIT(3)
  523. #endif
  524. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  525. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  526. #define BIT_EN_32K_TRANS BIT(3)
  527. #endif
  528. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  529. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  530. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  531. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  532. #define BIT_ISO_UD2CORE BIT(2)
  533. #endif
  534. #if (HALMAC_8192F_SUPPORT)
  535. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  536. #define BIT_ISO_UD2PP BIT(2)
  537. #endif
  538. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  539. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  540. HALMAC_8822C_SUPPORT)
  541. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  542. #define BIT_EN_RXDMA_MASK_INT BIT(2)
  543. #endif
  544. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  545. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  546. #define BIT_ISO_HD2CORE BIT(2)
  547. #endif
  548. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  549. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  550. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  551. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  552. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  553. #define BIT_ISO_UA2USB BIT(1)
  554. #endif
  555. #if (HALMAC_8192F_SUPPORT)
  556. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  557. #define BIT_ISO_UA2UD BIT(1)
  558. #endif
  559. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  560. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  561. HALMAC_8822C_SUPPORT)
  562. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  563. #define BIT_EN_MASK_TIMER BIT(1)
  564. #endif
  565. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  566. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  567. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  568. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  569. #define BIT_ISO_WD2PP BIT(0)
  570. #endif
  571. #if (HALMAC_8192F_SUPPORT)
  572. /* 2 REG_SYS_ISO_CTRL (Offset 0x0000) */
  573. #define BIT_ISO_WL2PP BIT(0)
  574. #endif
  575. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  576. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  577. HALMAC_8822C_SUPPORT)
  578. /* 2 REG_SDIO_TX_CTRL (Offset 0x10250000) */
  579. #define BIT_CMD_ERR_STOP_INT_EN BIT(0)
  580. #endif
  581. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  582. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  583. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  584. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  585. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  586. #define BIT_FEN_MREGEN BIT(15)
  587. #endif
  588. #if (HALMAC_8192F_SUPPORT)
  589. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  590. #define BIT_FEN_WLMACPON BIT(15)
  591. #endif
  592. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  593. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  594. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  595. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  596. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  597. #define BIT_FEN_HWPDN BIT(14)
  598. #endif
  599. #if (HALMAC_8192F_SUPPORT)
  600. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  601. #define BIT_AIP_PD12_N BIT(14)
  602. #endif
  603. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  604. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  605. HALMAC_8881A_SUPPORT)
  606. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  607. #define BIT_EN_25_1 BIT(13)
  608. #endif
  609. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  610. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  611. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  612. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  613. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  614. #define BIT_FEN_ELDR BIT(12)
  615. #endif
  616. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  617. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  618. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  619. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  620. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  621. #define BIT_FEN_DCORE BIT(11)
  622. #endif
  623. #if (HALMAC_8192F_SUPPORT)
  624. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  625. #define BIT_FEN_WLMACPOF BIT(11)
  626. #endif
  627. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  628. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  629. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  630. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  631. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  632. #define BIT_FEN_CPUEN BIT(10)
  633. #endif
  634. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  635. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  636. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  637. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  638. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  639. #define BIT_FEN_DIOE BIT(9)
  640. #endif
  641. #if (HALMAC_8192F_SUPPORT)
  642. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  643. #define BIT_FEN_EXTIO BIT(9)
  644. #endif
  645. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  646. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  647. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  648. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  649. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  650. #define BIT_FEN_PCIED BIT(8)
  651. #define BIT_FEN_PPLL BIT(7)
  652. #define BIT_FEN_PCIEA BIT(6)
  653. #define BIT_FEN_DIO_PCIE BIT(5)
  654. #define BIT_FEN_USBD BIT(4)
  655. #define BIT_FEN_UPLL BIT(3)
  656. #define BIT_FEN_USBA BIT(2)
  657. #endif
  658. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  659. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  660. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  661. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  662. #define BIT_FEN_BB_GLB_RSTN BIT(1)
  663. #endif
  664. #if (HALMAC_8192F_SUPPORT)
  665. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  666. #define BIT_FEN_WLPHYGLB BIT(1)
  667. #endif
  668. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  669. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  670. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  671. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  672. #define BIT_FEN_BBRSTB BIT(0)
  673. #endif
  674. #if (HALMAC_8192F_SUPPORT)
  675. /* 2 REG_SYS_FUNC_EN (Offset 0x0002) */
  676. #define BIT_FEN_WLPHYFUN BIT(0)
  677. #endif
  678. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  679. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  680. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  681. HALMAC_8881A_SUPPORT)
  682. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  683. #define BIT_SOP_EABM BIT(31)
  684. #endif
  685. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  686. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  687. #define BIT_SKP_ALD BIT(31)
  688. #endif
  689. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  690. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  691. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  692. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  693. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  694. #define BIT_SOP_ACKF BIT(30)
  695. #define BIT_SOP_ERCK BIT(29)
  696. #endif
  697. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  698. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  699. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  700. HALMAC_8881A_SUPPORT)
  701. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  702. #define BIT_SOP_ESWR BIT(28)
  703. #endif
  704. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  705. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  706. #define BIT_SOP_AFEP BIT(28)
  707. #endif
  708. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  709. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  710. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  711. HALMAC_8881A_SUPPORT)
  712. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  713. #define BIT_SOP_PWMM BIT(27)
  714. #endif
  715. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  716. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  717. #define BIT_SOP_EPWM BIT(27)
  718. #endif
  719. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  720. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  721. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  722. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  723. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  724. #define BIT_SOP_EECK BIT(26)
  725. #endif
  726. #if (HALMAC_8192F_SUPPORT)
  727. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  728. #define BIT_PMC_RATIO_BIT2 BIT(25)
  729. #endif
  730. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  731. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  732. #define BIT_SOP_ANA_CLK_DIVISION_2 BIT(25)
  733. #endif
  734. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  735. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  736. #define BIT_ROP_ENXT BIT(25)
  737. #endif
  738. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  739. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  740. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  741. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  742. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  743. #define BIT_SOP_EXTL BIT(24)
  744. #endif
  745. #if (HALMAC_8192F_SUPPORT)
  746. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  747. #define BIT_PMC_RATIO_BIT1 BIT(23)
  748. #endif
  749. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  750. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  751. #define BIT_CHIPOFF_EN BIT(23)
  752. #endif
  753. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  754. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  755. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  756. HALMAC_8881A_SUPPORT)
  757. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  758. #define BIT_SYM_OP_RING_12M BIT(22)
  759. #endif
  760. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  761. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  762. #define BIT_DIS_USB3_SUS_ALD BIT(22)
  763. #endif
  764. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  765. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  766. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  767. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  768. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  769. #define BIT_ROP_SWPR BIT(21)
  770. #endif
  771. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  772. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  773. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  774. HALMAC_8881A_SUPPORT)
  775. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  776. #define BIT_DIS_HW_LPLDM BIT(20)
  777. #endif
  778. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  779. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  780. #define BIT_SOP_ALD BIT(20)
  781. #endif
  782. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  783. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  784. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  785. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  786. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  787. #define BIT_OPT_SWRST_WLMCU BIT(19)
  788. #define BIT_RDY_SYSPWR BIT(17)
  789. #endif
  790. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  791. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  792. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  793. HALMAC_8881A_SUPPORT)
  794. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  795. #define BIT_EN_WLON BIT(16)
  796. #endif
  797. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  798. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  799. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  800. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  801. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  802. #define BIT_APDM_HPDN BIT(15)
  803. #endif
  804. #if (HALMAC_8192F_SUPPORT)
  805. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  806. #define BIT_PMC_RATIO_BIT0 BIT(14)
  807. #endif
  808. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  809. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  810. #define BIT_HSUS BIT(14)
  811. #define BIT_PDN_SEL BIT(13)
  812. #endif
  813. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  814. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  815. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  816. HALMAC_8881A_SUPPORT)
  817. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  818. #define BIT_AFSM_PCIE_SUS_EN BIT(12)
  819. #endif
  820. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  821. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  822. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  823. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  824. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  825. #define BIT_AFSM_WLSUS_EN BIT(11)
  826. #endif
  827. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  828. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  829. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  830. HALMAC_8881A_SUPPORT)
  831. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  832. #define BIT_APFM_SWLPS BIT(10)
  833. #endif
  834. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  835. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  836. #define BIT_APFM_SWLPS_EN BIT(10)
  837. #endif
  838. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  839. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  840. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  841. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  842. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  843. #define BIT_APFM_OFFMAC BIT(9)
  844. #endif
  845. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  846. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  847. #define BIT_HW_AUTO_CTRL_EXT_SWR BIT(9)
  848. #endif
  849. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  850. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  851. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  852. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  853. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  854. #define BIT_APFN_ONMAC BIT(8)
  855. #endif
  856. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  857. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  858. #define BIT_USE_INTERNAL_SWR_AND_LDO BIT(8)
  859. #endif
  860. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  861. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  862. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  863. HALMAC_8881A_SUPPORT)
  864. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  865. #define BIT_CHIP_PDN_EN BIT(7)
  866. #endif
  867. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  868. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  869. #define BIT_BT_SUSEN BIT(7)
  870. #endif
  871. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  872. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  873. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  874. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  875. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  876. #define BIT_RDY_MACDIS BIT(6)
  877. #endif
  878. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  879. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  880. #define BIT_PD_RF BIT(5)
  881. #endif
  882. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  883. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  884. HALMAC_8881A_SUPPORT)
  885. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  886. #define BIT_RING_CLK_12M_EN BIT(4)
  887. #endif
  888. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  889. /* 2 REG_SDIO_CMD11_VOL_SWITCH (Offset 0x10250004) */
  890. #define BIT_SHIFT_CMD11_SEQ_END_DELAY 4
  891. #define BIT_MASK_CMD11_SEQ_END_DELAY 0xf
  892. #define BIT_CMD11_SEQ_END_DELAY(x) \
  893. (((x) & BIT_MASK_CMD11_SEQ_END_DELAY) << BIT_SHIFT_CMD11_SEQ_END_DELAY)
  894. #define BITS_CMD11_SEQ_END_DELAY \
  895. (BIT_MASK_CMD11_SEQ_END_DELAY << BIT_SHIFT_CMD11_SEQ_END_DELAY)
  896. #define BIT_CLEAR_CMD11_SEQ_END_DELAY(x) ((x) & (~BITS_CMD11_SEQ_END_DELAY))
  897. #define BIT_GET_CMD11_SEQ_END_DELAY(x) \
  898. (((x) >> BIT_SHIFT_CMD11_SEQ_END_DELAY) & BIT_MASK_CMD11_SEQ_END_DELAY)
  899. #define BIT_SET_CMD11_SEQ_END_DELAY(x, v) \
  900. (BIT_CLEAR_CMD11_SEQ_END_DELAY(x) | BIT_CMD11_SEQ_END_DELAY(v))
  901. #endif
  902. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  903. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  904. #define BIT_ENPDN BIT(4)
  905. #endif
  906. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  907. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  908. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  909. HALMAC_8881A_SUPPORT)
  910. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  911. #define BIT_PFM_WOWL BIT(3)
  912. #endif
  913. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  914. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  915. #define BIT_SW_WAKE BIT(3)
  916. #endif
  917. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  918. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  919. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  920. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  921. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  922. #define BIT_PFM_LDKP BIT(2)
  923. #endif
  924. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  925. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  926. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  927. HALMAC_8881A_SUPPORT)
  928. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  929. #define BIT_WL_HCI_ALD BIT(1)
  930. #endif
  931. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  932. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  933. #define BIT_ANA_CLK_DIVISION_2 BIT(1)
  934. #define BIT_SHIFT_CMD11_SEQ_SAMPLE_INTERVAL 1
  935. #define BIT_MASK_CMD11_SEQ_SAMPLE_INTERVAL 0x7
  936. #define BIT_CMD11_SEQ_SAMPLE_INTERVAL(x) \
  937. (((x) & BIT_MASK_CMD11_SEQ_SAMPLE_INTERVAL) \
  938. << BIT_SHIFT_CMD11_SEQ_SAMPLE_INTERVAL)
  939. #define BITS_CMD11_SEQ_SAMPLE_INTERVAL \
  940. (BIT_MASK_CMD11_SEQ_SAMPLE_INTERVAL \
  941. << BIT_SHIFT_CMD11_SEQ_SAMPLE_INTERVAL)
  942. #define BIT_CLEAR_CMD11_SEQ_SAMPLE_INTERVAL(x) \
  943. ((x) & (~BITS_CMD11_SEQ_SAMPLE_INTERVAL))
  944. #define BIT_GET_CMD11_SEQ_SAMPLE_INTERVAL(x) \
  945. (((x) >> BIT_SHIFT_CMD11_SEQ_SAMPLE_INTERVAL) & \
  946. BIT_MASK_CMD11_SEQ_SAMPLE_INTERVAL)
  947. #define BIT_SET_CMD11_SEQ_SAMPLE_INTERVAL(x, v) \
  948. (BIT_CLEAR_CMD11_SEQ_SAMPLE_INTERVAL(x) | \
  949. BIT_CMD11_SEQ_SAMPLE_INTERVAL(v))
  950. #endif
  951. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  952. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  953. #define BIT_PFM_ALDN BIT(1)
  954. #endif
  955. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  956. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  957. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  958. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  959. /* 2 REG_SYS_PW_CTRL (Offset 0x0004) */
  960. #define BIT_PFM_LDALL BIT(0)
  961. #endif
  962. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  963. /* 2 REG_SDIO_CMD11_VOL_SWITCH (Offset 0x10250004) */
  964. #define BIT_CMD11_SEQ_EN BIT(0)
  965. /* 2 REG_SDIO_CTRL (Offset 0x10250005) */
  966. #define BIT_SIG_OUT_PH BIT(0)
  967. /* 2 REG_SDIO_DRIVING (Offset 0x10250006) */
  968. #define BIT_SHIFT_SDIO_DRV_TYPE_D 12
  969. #define BIT_MASK_SDIO_DRV_TYPE_D 0xf
  970. #define BIT_SDIO_DRV_TYPE_D(x) \
  971. (((x) & BIT_MASK_SDIO_DRV_TYPE_D) << BIT_SHIFT_SDIO_DRV_TYPE_D)
  972. #define BITS_SDIO_DRV_TYPE_D \
  973. (BIT_MASK_SDIO_DRV_TYPE_D << BIT_SHIFT_SDIO_DRV_TYPE_D)
  974. #define BIT_CLEAR_SDIO_DRV_TYPE_D(x) ((x) & (~BITS_SDIO_DRV_TYPE_D))
  975. #define BIT_GET_SDIO_DRV_TYPE_D(x) \
  976. (((x) >> BIT_SHIFT_SDIO_DRV_TYPE_D) & BIT_MASK_SDIO_DRV_TYPE_D)
  977. #define BIT_SET_SDIO_DRV_TYPE_D(x, v) \
  978. (BIT_CLEAR_SDIO_DRV_TYPE_D(x) | BIT_SDIO_DRV_TYPE_D(v))
  979. #define BIT_SHIFT_SDIO_DRV_TYPE_C 8
  980. #define BIT_MASK_SDIO_DRV_TYPE_C 0xf
  981. #define BIT_SDIO_DRV_TYPE_C(x) \
  982. (((x) & BIT_MASK_SDIO_DRV_TYPE_C) << BIT_SHIFT_SDIO_DRV_TYPE_C)
  983. #define BITS_SDIO_DRV_TYPE_C \
  984. (BIT_MASK_SDIO_DRV_TYPE_C << BIT_SHIFT_SDIO_DRV_TYPE_C)
  985. #define BIT_CLEAR_SDIO_DRV_TYPE_C(x) ((x) & (~BITS_SDIO_DRV_TYPE_C))
  986. #define BIT_GET_SDIO_DRV_TYPE_C(x) \
  987. (((x) >> BIT_SHIFT_SDIO_DRV_TYPE_C) & BIT_MASK_SDIO_DRV_TYPE_C)
  988. #define BIT_SET_SDIO_DRV_TYPE_C(x, v) \
  989. (BIT_CLEAR_SDIO_DRV_TYPE_C(x) | BIT_SDIO_DRV_TYPE_C(v))
  990. #define BIT_SHIFT_SDIO_DRV_TYPE_B 4
  991. #define BIT_MASK_SDIO_DRV_TYPE_B 0xf
  992. #define BIT_SDIO_DRV_TYPE_B(x) \
  993. (((x) & BIT_MASK_SDIO_DRV_TYPE_B) << BIT_SHIFT_SDIO_DRV_TYPE_B)
  994. #define BITS_SDIO_DRV_TYPE_B \
  995. (BIT_MASK_SDIO_DRV_TYPE_B << BIT_SHIFT_SDIO_DRV_TYPE_B)
  996. #define BIT_CLEAR_SDIO_DRV_TYPE_B(x) ((x) & (~BITS_SDIO_DRV_TYPE_B))
  997. #define BIT_GET_SDIO_DRV_TYPE_B(x) \
  998. (((x) >> BIT_SHIFT_SDIO_DRV_TYPE_B) & BIT_MASK_SDIO_DRV_TYPE_B)
  999. #define BIT_SET_SDIO_DRV_TYPE_B(x, v) \
  1000. (BIT_CLEAR_SDIO_DRV_TYPE_B(x) | BIT_SDIO_DRV_TYPE_B(v))
  1001. #define BIT_SHIFT_SDIO_DRV_TYPE_A 0
  1002. #define BIT_MASK_SDIO_DRV_TYPE_A 0xf
  1003. #define BIT_SDIO_DRV_TYPE_A(x) \
  1004. (((x) & BIT_MASK_SDIO_DRV_TYPE_A) << BIT_SHIFT_SDIO_DRV_TYPE_A)
  1005. #define BITS_SDIO_DRV_TYPE_A \
  1006. (BIT_MASK_SDIO_DRV_TYPE_A << BIT_SHIFT_SDIO_DRV_TYPE_A)
  1007. #define BIT_CLEAR_SDIO_DRV_TYPE_A(x) ((x) & (~BITS_SDIO_DRV_TYPE_A))
  1008. #define BIT_GET_SDIO_DRV_TYPE_A(x) \
  1009. (((x) >> BIT_SHIFT_SDIO_DRV_TYPE_A) & BIT_MASK_SDIO_DRV_TYPE_A)
  1010. #define BIT_SET_SDIO_DRV_TYPE_A(x, v) \
  1011. (BIT_CLEAR_SDIO_DRV_TYPE_A(x) | BIT_SDIO_DRV_TYPE_A(v))
  1012. #endif
  1013. #if (HALMAC_8814B_SUPPORT)
  1014. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1015. #define BIT_CPHY_LDO_CL_EN BIT(19)
  1016. #define BIT_CPHY_LDO_OK BIT(18)
  1017. #endif
  1018. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1019. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1020. HALMAC_8881A_SUPPORT)
  1021. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1022. #define BIT_LDO_DUMMY BIT(15)
  1023. #endif
  1024. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1025. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1026. #define BIT_ANA_CLK_EN BIT(15)
  1027. #endif
  1028. #if (HALMAC_8814B_SUPPORT)
  1029. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1030. #define BIT_DATA_CPU_CLK_EN BIT(15)
  1031. #define BIT_DATA_CPU_PWC BIT(15)
  1032. #endif
  1033. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1034. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1035. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1036. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1037. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1038. #define BIT_CPU_CLK_EN BIT(14)
  1039. #endif
  1040. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1041. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1042. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1043. HALMAC_8881A_SUPPORT)
  1044. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1045. #define BIT_SYMREG_CLK_EN BIT(13)
  1046. #endif
  1047. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1048. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1049. #define BIT_RING_CLK_EN BIT(13)
  1050. #endif
  1051. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1052. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1053. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1054. HALMAC_8881A_SUPPORT)
  1055. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1056. #define BIT_HCI_CLK_EN BIT(12)
  1057. #endif
  1058. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1059. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1060. #define BIT_SYS_CLK_EN BIT(12)
  1061. #endif
  1062. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1063. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1064. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1065. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1066. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1067. #define BIT_MAC_CLK_EN BIT(11)
  1068. #define BIT_SEC_CLK_EN BIT(10)
  1069. #endif
  1070. #if (HALMAC_8814B_SUPPORT)
  1071. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1072. #define BIT_CTRL_SPS_PWM_FREQ BIT(10)
  1073. #endif
  1074. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1075. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1076. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1077. HALMAC_8881A_SUPPORT)
  1078. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1079. #define BIT_PHY_SSC_RSTB BIT(9)
  1080. #define BIT_EXT_32K_EN BIT(8)
  1081. #endif
  1082. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1083. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1084. #define BIT_EXT32K_EN BIT(8)
  1085. #endif
  1086. #if (HALMAC_8814B_SUPPORT)
  1087. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1088. #define BIT_DISABLE_OPEN_SPS_LDO BIT(8)
  1089. #endif
  1090. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1091. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1092. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1093. HALMAC_8881A_SUPPORT)
  1094. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1095. #define BIT_WL_CLK_TEST BIT(7)
  1096. #define BIT_OP_SPS_PWM_EN BIT(6)
  1097. #endif
  1098. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1099. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1100. #define BIT_SHIFT_MAC_CLK_SEL_V1 6
  1101. #define BIT_MASK_MAC_CLK_SEL_V1 0x3
  1102. #define BIT_MAC_CLK_SEL_V1(x) \
  1103. (((x) & BIT_MASK_MAC_CLK_SEL_V1) << BIT_SHIFT_MAC_CLK_SEL_V1)
  1104. #define BITS_MAC_CLK_SEL_V1 \
  1105. (BIT_MASK_MAC_CLK_SEL_V1 << BIT_SHIFT_MAC_CLK_SEL_V1)
  1106. #define BIT_CLEAR_MAC_CLK_SEL_V1(x) ((x) & (~BITS_MAC_CLK_SEL_V1))
  1107. #define BIT_GET_MAC_CLK_SEL_V1(x) \
  1108. (((x) >> BIT_SHIFT_MAC_CLK_SEL_V1) & BIT_MASK_MAC_CLK_SEL_V1)
  1109. #define BIT_SET_MAC_CLK_SEL_V1(x, v) \
  1110. (BIT_CLEAR_MAC_CLK_SEL_V1(x) | BIT_MAC_CLK_SEL_V1(v))
  1111. #endif
  1112. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1113. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1114. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1115. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1116. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1117. #define BIT_LOADER_CLK_EN BIT(5)
  1118. #endif
  1119. #if (HALMAC_8814B_SUPPORT)
  1120. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1121. #define BIT_POW_PC_LDO3 BIT(5)
  1122. #endif
  1123. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1124. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1125. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1126. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1127. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1128. #define BIT_MACSLP BIT(4)
  1129. #endif
  1130. #if (HALMAC_8814B_SUPPORT)
  1131. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1132. #define BIT_POW_PC_LDO2 BIT(4)
  1133. #endif
  1134. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1135. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1136. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1137. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1138. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1139. #define BIT_WAKEPAD_EN BIT(3)
  1140. #endif
  1141. #if (HALMAC_8814B_SUPPORT)
  1142. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1143. #define BIT_ENB_LDO_DIODE_L BIT(3)
  1144. #define BIT_POW_PC_LDO1 BIT(3)
  1145. #endif
  1146. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1147. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1148. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1149. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1150. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1151. #define BIT_ROMD16V_EN BIT(2)
  1152. #endif
  1153. #if (HALMAC_8814B_SUPPORT)
  1154. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1155. #define BIT_AFE_BGEN_PCIE_OP BIT(2)
  1156. #define BIT_POW_PC_LDO0 BIT(2)
  1157. #endif
  1158. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1159. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1160. #define BIT_CKANA8M_EN BIT(1)
  1161. #endif
  1162. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1163. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1164. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1165. #define BIT_CKANA12M_EN BIT(1)
  1166. #endif
  1167. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1168. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1169. #define BIT_ANA8M_EN BIT(1)
  1170. #endif
  1171. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1172. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1173. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1174. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1175. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1176. #define BIT_CNTD16V_EN BIT(0)
  1177. #endif
  1178. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  1179. /* 2 REG_SDIO_MONITOR (Offset 0x10250008) */
  1180. #define BIT_SHIFT_SDIO_INT_START 0
  1181. #define BIT_MASK_SDIO_INT_START 0xffffffffL
  1182. #define BIT_SDIO_INT_START(x) \
  1183. (((x) & BIT_MASK_SDIO_INT_START) << BIT_SHIFT_SDIO_INT_START)
  1184. #define BITS_SDIO_INT_START \
  1185. (BIT_MASK_SDIO_INT_START << BIT_SHIFT_SDIO_INT_START)
  1186. #define BIT_CLEAR_SDIO_INT_START(x) ((x) & (~BITS_SDIO_INT_START))
  1187. #define BIT_GET_SDIO_INT_START(x) \
  1188. (((x) >> BIT_SHIFT_SDIO_INT_START) & BIT_MASK_SDIO_INT_START)
  1189. #define BIT_SET_SDIO_INT_START(x, v) \
  1190. (BIT_CLEAR_SDIO_INT_START(x) | BIT_SDIO_INT_START(v))
  1191. #endif
  1192. #if (HALMAC_8814B_SUPPORT)
  1193. /* 2 REG_SYS_CLK_CTRL (Offset 0x0008) */
  1194. #define BIT_POW_POWER_CUT BIT(0)
  1195. #endif
  1196. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1197. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1198. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1199. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1200. /* 2 REG_SYS_EEPROM_CTRL (Offset 0x000A) */
  1201. #define BIT_SHIFT_VPDIDX 8
  1202. #define BIT_MASK_VPDIDX 0xff
  1203. #define BIT_VPDIDX(x) (((x) & BIT_MASK_VPDIDX) << BIT_SHIFT_VPDIDX)
  1204. #define BITS_VPDIDX (BIT_MASK_VPDIDX << BIT_SHIFT_VPDIDX)
  1205. #define BIT_CLEAR_VPDIDX(x) ((x) & (~BITS_VPDIDX))
  1206. #define BIT_GET_VPDIDX(x) (((x) >> BIT_SHIFT_VPDIDX) & BIT_MASK_VPDIDX)
  1207. #define BIT_SET_VPDIDX(x, v) (BIT_CLEAR_VPDIDX(x) | BIT_VPDIDX(v))
  1208. #define BIT_SHIFT_EEM1_0 6
  1209. #define BIT_MASK_EEM1_0 0x3
  1210. #define BIT_EEM1_0(x) (((x) & BIT_MASK_EEM1_0) << BIT_SHIFT_EEM1_0)
  1211. #define BITS_EEM1_0 (BIT_MASK_EEM1_0 << BIT_SHIFT_EEM1_0)
  1212. #define BIT_CLEAR_EEM1_0(x) ((x) & (~BITS_EEM1_0))
  1213. #define BIT_GET_EEM1_0(x) (((x) >> BIT_SHIFT_EEM1_0) & BIT_MASK_EEM1_0)
  1214. #define BIT_SET_EEM1_0(x, v) (BIT_CLEAR_EEM1_0(x) | BIT_EEM1_0(v))
  1215. #define BIT_AUTOLOAD_SUS BIT(5)
  1216. #endif
  1217. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1218. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1219. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1220. HALMAC_8881A_SUPPORT)
  1221. /* 2 REG_SYS_EEPROM_CTRL (Offset 0x000A) */
  1222. #define BIT_EERPOMSEL BIT(4)
  1223. #endif
  1224. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1225. /* 2 REG_SYS_EEPROM_CTRL (Offset 0x000A) */
  1226. #define BIT_EEPROMSEL BIT(4)
  1227. #endif
  1228. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1229. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1230. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1231. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1232. /* 2 REG_SYS_EEPROM_CTRL (Offset 0x000A) */
  1233. #define BIT_EECS_V1 BIT(3)
  1234. #define BIT_EESK_V1 BIT(2)
  1235. #define BIT_EEDI_V1 BIT(1)
  1236. #define BIT_EEDO_V1 BIT(0)
  1237. #endif
  1238. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  1239. /* 2 REG_SDIO_MONITOR_2 (Offset 0x1025000C) */
  1240. #define BIT_CMD53_WT_EN BIT(23)
  1241. #define BIT_SHIFT_SDIO_CLK_MONITOR 21
  1242. #define BIT_MASK_SDIO_CLK_MONITOR 0x3
  1243. #define BIT_SDIO_CLK_MONITOR(x) \
  1244. (((x) & BIT_MASK_SDIO_CLK_MONITOR) << BIT_SHIFT_SDIO_CLK_MONITOR)
  1245. #define BITS_SDIO_CLK_MONITOR \
  1246. (BIT_MASK_SDIO_CLK_MONITOR << BIT_SHIFT_SDIO_CLK_MONITOR)
  1247. #define BIT_CLEAR_SDIO_CLK_MONITOR(x) ((x) & (~BITS_SDIO_CLK_MONITOR))
  1248. #define BIT_GET_SDIO_CLK_MONITOR(x) \
  1249. (((x) >> BIT_SHIFT_SDIO_CLK_MONITOR) & BIT_MASK_SDIO_CLK_MONITOR)
  1250. #define BIT_SET_SDIO_CLK_MONITOR(x, v) \
  1251. (BIT_CLEAR_SDIO_CLK_MONITOR(x) | BIT_SDIO_CLK_MONITOR(v))
  1252. #endif
  1253. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1254. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  1255. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1256. HALMAC_8881A_SUPPORT)
  1257. /* 2 REG_EE_VPD (Offset 0x000C) */
  1258. #define BIT_SHIFT_VPD_DATA 0
  1259. #define BIT_MASK_VPD_DATA 0xffffffffL
  1260. #define BIT_VPD_DATA(x) (((x) & BIT_MASK_VPD_DATA) << BIT_SHIFT_VPD_DATA)
  1261. #define BITS_VPD_DATA (BIT_MASK_VPD_DATA << BIT_SHIFT_VPD_DATA)
  1262. #define BIT_CLEAR_VPD_DATA(x) ((x) & (~BITS_VPD_DATA))
  1263. #define BIT_GET_VPD_DATA(x) (((x) >> BIT_SHIFT_VPD_DATA) & BIT_MASK_VPD_DATA)
  1264. #define BIT_SET_VPD_DATA(x, v) (BIT_CLEAR_VPD_DATA(x) | BIT_VPD_DATA(v))
  1265. #endif
  1266. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  1267. /* 2 REG_SDIO_MONITOR_2 (Offset 0x1025000C) */
  1268. #define BIT_SHIFT_SDIO_CLK_CNT 0
  1269. #define BIT_MASK_SDIO_CLK_CNT 0x1fffff
  1270. #define BIT_SDIO_CLK_CNT(x) \
  1271. (((x) & BIT_MASK_SDIO_CLK_CNT) << BIT_SHIFT_SDIO_CLK_CNT)
  1272. #define BITS_SDIO_CLK_CNT (BIT_MASK_SDIO_CLK_CNT << BIT_SHIFT_SDIO_CLK_CNT)
  1273. #define BIT_CLEAR_SDIO_CLK_CNT(x) ((x) & (~BITS_SDIO_CLK_CNT))
  1274. #define BIT_GET_SDIO_CLK_CNT(x) \
  1275. (((x) >> BIT_SHIFT_SDIO_CLK_CNT) & BIT_MASK_SDIO_CLK_CNT)
  1276. #define BIT_SET_SDIO_CLK_CNT(x, v) \
  1277. (BIT_CLEAR_SDIO_CLK_CNT(x) | BIT_SDIO_CLK_CNT(v))
  1278. #endif
  1279. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1280. /* 2 REG_EE_VPD (Offset 0x000C) */
  1281. #define BIT_SHIFT_VDP_DATA 0
  1282. #define BIT_MASK_VDP_DATA 0xffffffffL
  1283. #define BIT_VDP_DATA(x) (((x) & BIT_MASK_VDP_DATA) << BIT_SHIFT_VDP_DATA)
  1284. #define BITS_VDP_DATA (BIT_MASK_VDP_DATA << BIT_SHIFT_VDP_DATA)
  1285. #define BIT_CLEAR_VDP_DATA(x) ((x) & (~BITS_VDP_DATA))
  1286. #define BIT_GET_VDP_DATA(x) (((x) >> BIT_SHIFT_VDP_DATA) & BIT_MASK_VDP_DATA)
  1287. #define BIT_SET_VDP_DATA(x, v) (BIT_CLEAR_VDP_DATA(x) | BIT_VDP_DATA(v))
  1288. #endif
  1289. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1290. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  1291. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1292. #define BIT_SW18_C2_BIT0 BIT(31)
  1293. #endif
  1294. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1295. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1296. #define BIT_C2_L_BIT0 BIT(31)
  1297. #endif
  1298. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1299. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1300. #define BIT_SHIFT_R1_L1_V1 30
  1301. #define BIT_MASK_R1_L1_V1 0x3
  1302. #define BIT_R1_L1_V1(x) (((x) & BIT_MASK_R1_L1_V1) << BIT_SHIFT_R1_L1_V1)
  1303. #define BITS_R1_L1_V1 (BIT_MASK_R1_L1_V1 << BIT_SHIFT_R1_L1_V1)
  1304. #define BIT_CLEAR_R1_L1_V1(x) ((x) & (~BITS_R1_L1_V1))
  1305. #define BIT_GET_R1_L1_V1(x) (((x) >> BIT_SHIFT_R1_L1_V1) & BIT_MASK_R1_L1_V1)
  1306. #define BIT_SET_R1_L1_V1(x, v) (BIT_CLEAR_R1_L1_V1(x) | BIT_R1_L1_V1(v))
  1307. #endif
  1308. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1309. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  1310. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1311. #define BIT_SHIFT_SW18_C1 29
  1312. #define BIT_MASK_SW18_C1 0x3
  1313. #define BIT_SW18_C1(x) (((x) & BIT_MASK_SW18_C1) << BIT_SHIFT_SW18_C1)
  1314. #define BITS_SW18_C1 (BIT_MASK_SW18_C1 << BIT_SHIFT_SW18_C1)
  1315. #define BIT_CLEAR_SW18_C1(x) ((x) & (~BITS_SW18_C1))
  1316. #define BIT_GET_SW18_C1(x) (((x) >> BIT_SHIFT_SW18_C1) & BIT_MASK_SW18_C1)
  1317. #define BIT_SET_SW18_C1(x, v) (BIT_CLEAR_SW18_C1(x) | BIT_SW18_C1(v))
  1318. #endif
  1319. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1320. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1321. #define BIT_SHIFT_C1_L 29
  1322. #define BIT_MASK_C1_L 0x3
  1323. #define BIT_C1_L(x) (((x) & BIT_MASK_C1_L) << BIT_SHIFT_C1_L)
  1324. #define BITS_C1_L (BIT_MASK_C1_L << BIT_SHIFT_C1_L)
  1325. #define BIT_CLEAR_C1_L(x) ((x) & (~BITS_C1_L))
  1326. #define BIT_GET_C1_L(x) (((x) >> BIT_SHIFT_C1_L) & BIT_MASK_C1_L)
  1327. #define BIT_SET_C1_L(x, v) (BIT_CLEAR_C1_L(x) | BIT_C1_L(v))
  1328. #endif
  1329. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1330. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1331. #define BIT_SHIFT_C3_L1_V1 28
  1332. #define BIT_MASK_C3_L1_V1 0x3
  1333. #define BIT_C3_L1_V1(x) (((x) & BIT_MASK_C3_L1_V1) << BIT_SHIFT_C3_L1_V1)
  1334. #define BITS_C3_L1_V1 (BIT_MASK_C3_L1_V1 << BIT_SHIFT_C3_L1_V1)
  1335. #define BIT_CLEAR_C3_L1_V1(x) ((x) & (~BITS_C3_L1_V1))
  1336. #define BIT_GET_C3_L1_V1(x) (((x) >> BIT_SHIFT_C3_L1_V1) & BIT_MASK_C3_L1_V1)
  1337. #define BIT_SET_C3_L1_V1(x, v) (BIT_CLEAR_C3_L1_V1(x) | BIT_C3_L1_V1(v))
  1338. #define BIT_SHIFT_C2_L1_V1 26
  1339. #define BIT_MASK_C2_L1_V1 0x3
  1340. #define BIT_C2_L1_V1(x) (((x) & BIT_MASK_C2_L1_V1) << BIT_SHIFT_C2_L1_V1)
  1341. #define BITS_C2_L1_V1 (BIT_MASK_C2_L1_V1 << BIT_SHIFT_C2_L1_V1)
  1342. #define BIT_CLEAR_C2_L1_V1(x) ((x) & (~BITS_C2_L1_V1))
  1343. #define BIT_GET_C2_L1_V1(x) (((x) >> BIT_SHIFT_C2_L1_V1) & BIT_MASK_C2_L1_V1)
  1344. #define BIT_SET_C2_L1_V1(x, v) (BIT_CLEAR_C2_L1_V1(x) | BIT_C2_L1_V1(v))
  1345. #endif
  1346. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1347. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1348. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1349. #define BIT_SHIFT_REG_FREQ_L 25
  1350. #define BIT_MASK_REG_FREQ_L 0x7
  1351. #define BIT_REG_FREQ_L(x) (((x) & BIT_MASK_REG_FREQ_L) << BIT_SHIFT_REG_FREQ_L)
  1352. #define BITS_REG_FREQ_L (BIT_MASK_REG_FREQ_L << BIT_SHIFT_REG_FREQ_L)
  1353. #define BIT_CLEAR_REG_FREQ_L(x) ((x) & (~BITS_REG_FREQ_L))
  1354. #define BIT_GET_REG_FREQ_L(x) \
  1355. (((x) >> BIT_SHIFT_REG_FREQ_L) & BIT_MASK_REG_FREQ_L)
  1356. #define BIT_SET_REG_FREQ_L(x, v) (BIT_CLEAR_REG_FREQ_L(x) | BIT_REG_FREQ_L(v))
  1357. #define BIT_REG_EN_DUTY BIT(24)
  1358. #endif
  1359. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1360. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1361. #define BIT_SHIFT_C1_L1_V1 24
  1362. #define BIT_MASK_C1_L1_V1 0x3
  1363. #define BIT_C1_L1_V1(x) (((x) & BIT_MASK_C1_L1_V1) << BIT_SHIFT_C1_L1_V1)
  1364. #define BITS_C1_L1_V1 (BIT_MASK_C1_L1_V1 << BIT_SHIFT_C1_L1_V1)
  1365. #define BIT_CLEAR_C1_L1_V1(x) ((x) & (~BITS_C1_L1_V1))
  1366. #define BIT_GET_C1_L1_V1(x) (((x) >> BIT_SHIFT_C1_L1_V1) & BIT_MASK_C1_L1_V1)
  1367. #define BIT_SET_C1_L1_V1(x, v) (BIT_CLEAR_C1_L1_V1(x) | BIT_C1_L1_V1(v))
  1368. #define BIT_REG_TYPE_L_V3 BIT(23)
  1369. #endif
  1370. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1371. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1372. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1373. #define BIT_SHIFT_REG_MODE 22
  1374. #define BIT_MASK_REG_MODE 0x3
  1375. #define BIT_REG_MODE(x) (((x) & BIT_MASK_REG_MODE) << BIT_SHIFT_REG_MODE)
  1376. #define BITS_REG_MODE (BIT_MASK_REG_MODE << BIT_SHIFT_REG_MODE)
  1377. #define BIT_CLEAR_REG_MODE(x) ((x) & (~BITS_REG_MODE))
  1378. #define BIT_GET_REG_MODE(x) (((x) >> BIT_SHIFT_REG_MODE) & BIT_MASK_REG_MODE)
  1379. #define BIT_SET_REG_MODE(x, v) (BIT_CLEAR_REG_MODE(x) | BIT_REG_MODE(v))
  1380. #endif
  1381. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1382. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1383. #define BIT_FPWM_L1_V1 BIT(22)
  1384. #endif
  1385. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1386. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1387. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1388. #define BIT_REG_EN_SP BIT(21)
  1389. #define BIT_REG_AUTO_L BIT(20)
  1390. #endif
  1391. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1392. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1393. HALMAC_8881A_SUPPORT)
  1394. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1395. #define BIT_SW18_SELD_BIT0 BIT(19)
  1396. #endif
  1397. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1398. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1399. #define BIT_SHIFT_V15ADJ_L1 19
  1400. #define BIT_MASK_V15ADJ_L1 0x7
  1401. #define BIT_V15ADJ_L1(x) (((x) & BIT_MASK_V15ADJ_L1) << BIT_SHIFT_V15ADJ_L1)
  1402. #define BITS_V15ADJ_L1 (BIT_MASK_V15ADJ_L1 << BIT_SHIFT_V15ADJ_L1)
  1403. #define BIT_CLEAR_V15ADJ_L1(x) ((x) & (~BITS_V15ADJ_L1))
  1404. #define BIT_GET_V15ADJ_L1(x) (((x) >> BIT_SHIFT_V15ADJ_L1) & BIT_MASK_V15ADJ_L1)
  1405. #define BIT_SET_V15ADJ_L1(x, v) (BIT_CLEAR_V15ADJ_L1(x) | BIT_V15ADJ_L1(v))
  1406. #endif
  1407. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1408. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1409. HALMAC_8881A_SUPPORT)
  1410. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1411. #define BIT_SW18_POWOCP BIT(18)
  1412. #endif
  1413. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1414. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1415. #define BIT_SHIFT_IN_L1 16
  1416. #define BIT_MASK_IN_L1 0x7
  1417. #define BIT_IN_L1(x) (((x) & BIT_MASK_IN_L1) << BIT_SHIFT_IN_L1)
  1418. #define BITS_IN_L1 (BIT_MASK_IN_L1 << BIT_SHIFT_IN_L1)
  1419. #define BIT_CLEAR_IN_L1(x) ((x) & (~BITS_IN_L1))
  1420. #define BIT_GET_IN_L1(x) (((x) >> BIT_SHIFT_IN_L1) & BIT_MASK_IN_L1)
  1421. #define BIT_SET_IN_L1(x, v) (BIT_CLEAR_IN_L1(x) | BIT_IN_L1(v))
  1422. #endif
  1423. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1424. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  1425. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1426. #define BIT_SHIFT_SW18_OCP 15
  1427. #define BIT_MASK_SW18_OCP 0x7
  1428. #define BIT_SW18_OCP(x) (((x) & BIT_MASK_SW18_OCP) << BIT_SHIFT_SW18_OCP)
  1429. #define BITS_SW18_OCP (BIT_MASK_SW18_OCP << BIT_SHIFT_SW18_OCP)
  1430. #define BIT_CLEAR_SW18_OCP(x) ((x) & (~BITS_SW18_OCP))
  1431. #define BIT_GET_SW18_OCP(x) (((x) >> BIT_SHIFT_SW18_OCP) & BIT_MASK_SW18_OCP)
  1432. #define BIT_SET_SW18_OCP(x, v) (BIT_CLEAR_SW18_OCP(x) | BIT_SW18_OCP(v))
  1433. #endif
  1434. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1435. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1436. #define BIT_SHIFT_OCP_L1 15
  1437. #define BIT_MASK_OCP_L1 0x7
  1438. #define BIT_OCP_L1(x) (((x) & BIT_MASK_OCP_L1) << BIT_SHIFT_OCP_L1)
  1439. #define BITS_OCP_L1 (BIT_MASK_OCP_L1 << BIT_SHIFT_OCP_L1)
  1440. #define BIT_CLEAR_OCP_L1(x) ((x) & (~BITS_OCP_L1))
  1441. #define BIT_GET_OCP_L1(x) (((x) >> BIT_SHIFT_OCP_L1) & BIT_MASK_OCP_L1)
  1442. #define BIT_SET_OCP_L1(x, v) (BIT_CLEAR_OCP_L1(x) | BIT_OCP_L1(v))
  1443. #endif
  1444. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1445. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1446. #define BIT_SHIFT_STD_L1 14
  1447. #define BIT_MASK_STD_L1 0x3
  1448. #define BIT_STD_L1(x) (((x) & BIT_MASK_STD_L1) << BIT_SHIFT_STD_L1)
  1449. #define BITS_STD_L1 (BIT_MASK_STD_L1 << BIT_SHIFT_STD_L1)
  1450. #define BIT_CLEAR_STD_L1(x) ((x) & (~BITS_STD_L1))
  1451. #define BIT_GET_STD_L1(x) (((x) >> BIT_SHIFT_STD_L1) & BIT_MASK_STD_L1)
  1452. #define BIT_SET_STD_L1(x, v) (BIT_CLEAR_STD_L1(x) | BIT_STD_L1(v))
  1453. #endif
  1454. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1455. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  1456. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1457. #define BIT_SHIFT_CF_L_BIT0_TO_1 13
  1458. #define BIT_MASK_CF_L_BIT0_TO_1 0x3
  1459. #define BIT_CF_L_BIT0_TO_1(x) \
  1460. (((x) & BIT_MASK_CF_L_BIT0_TO_1) << BIT_SHIFT_CF_L_BIT0_TO_1)
  1461. #define BITS_CF_L_BIT0_TO_1 \
  1462. (BIT_MASK_CF_L_BIT0_TO_1 << BIT_SHIFT_CF_L_BIT0_TO_1)
  1463. #define BIT_CLEAR_CF_L_BIT0_TO_1(x) ((x) & (~BITS_CF_L_BIT0_TO_1))
  1464. #define BIT_GET_CF_L_BIT0_TO_1(x) \
  1465. (((x) >> BIT_SHIFT_CF_L_BIT0_TO_1) & BIT_MASK_CF_L_BIT0_TO_1)
  1466. #define BIT_SET_CF_L_BIT0_TO_1(x, v) \
  1467. (BIT_CLEAR_CF_L_BIT0_TO_1(x) | BIT_CF_L_BIT0_TO_1(v))
  1468. #endif
  1469. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1470. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1471. #define BIT_SHIFT_CF_L 13
  1472. #define BIT_MASK_CF_L 0x3
  1473. #define BIT_CF_L(x) (((x) & BIT_MASK_CF_L) << BIT_SHIFT_CF_L)
  1474. #define BITS_CF_L (BIT_MASK_CF_L << BIT_SHIFT_CF_L)
  1475. #define BIT_CLEAR_CF_L(x) ((x) & (~BITS_CF_L))
  1476. #define BIT_GET_CF_L(x) (((x) >> BIT_SHIFT_CF_L) & BIT_MASK_CF_L)
  1477. #define BIT_SET_CF_L(x, v) (BIT_CLEAR_CF_L(x) | BIT_CF_L(v))
  1478. #endif
  1479. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1480. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1481. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1482. #define BIT_SW18_FPWM BIT(11)
  1483. #endif
  1484. #if (HALMAC_8192F_SUPPORT)
  1485. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1486. #define BIT_SPS_FPWM BIT(11)
  1487. #define BIT_WL_CTRL_SPS_PWMFREQ BIT(10)
  1488. #endif
  1489. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1490. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1491. #define BIT_SHIFT_VOL_L1 10
  1492. #define BIT_MASK_VOL_L1 0xf
  1493. #define BIT_VOL_L1(x) (((x) & BIT_MASK_VOL_L1) << BIT_SHIFT_VOL_L1)
  1494. #define BITS_VOL_L1 (BIT_MASK_VOL_L1 << BIT_SHIFT_VOL_L1)
  1495. #define BIT_CLEAR_VOL_L1(x) ((x) & (~BITS_VOL_L1))
  1496. #define BIT_GET_VOL_L1(x) (((x) >> BIT_SHIFT_VOL_L1) & BIT_MASK_VOL_L1)
  1497. #define BIT_SET_VOL_L1(x, v) (BIT_CLEAR_VOL_L1(x) | BIT_VOL_L1(v))
  1498. #endif
  1499. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1500. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  1501. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1502. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1503. #define BIT_SW18_SWEN BIT(9)
  1504. #endif
  1505. #if (HALMAC_8192F_SUPPORT)
  1506. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1507. #define BIT_SPS_SWEN BIT(9)
  1508. #define BIT_HALF_L BIT(9)
  1509. #endif
  1510. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1511. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  1512. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1513. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1514. #define BIT_SW18_LDEN BIT(8)
  1515. #endif
  1516. #if (HALMAC_8192F_SUPPORT)
  1517. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1518. #define BIT_SPS_LDEN BIT(8)
  1519. #endif
  1520. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1521. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  1522. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1523. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  1524. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1525. #define BIT_MAC_ID_EN BIT(7)
  1526. #endif
  1527. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  1528. HALMAC_8814B_SUPPORT)
  1529. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1530. #define BIT_WL_CTRL_XTAL_CADJ BIT(6)
  1531. #endif
  1532. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1533. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1534. #define BIT_LDO11_EN BIT(6)
  1535. #define BIT_AFE_P3_PC BIT(5)
  1536. #define BIT_AFE_P2_PC BIT(4)
  1537. #define BIT_AFE_P1_PC BIT(3)
  1538. #endif
  1539. #if (HALMAC_8192F_SUPPORT)
  1540. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1541. #define BIT_AFE_MBEN_PCIE_OPT BIT(2)
  1542. #endif
  1543. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1544. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1545. #define BIT_AFE_P0_PC BIT(2)
  1546. #endif
  1547. #if (HALMAC_8192F_SUPPORT)
  1548. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1549. #define BIT_AFE_MBEN BIT(1)
  1550. #endif
  1551. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  1552. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1553. HALMAC_8881A_SUPPORT)
  1554. /* 2 REG_SYS_SWR_CTRL1 (Offset 0x0010) */
  1555. #define BIT_AFE_BGEN BIT(0)
  1556. #endif
  1557. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  1558. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1559. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1560. #define BIT_POW_ZCD_L BIT(31)
  1561. #endif
  1562. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1563. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  1564. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1565. #define BIT_SDIO_CRCERR_MSK BIT(31)
  1566. #endif
  1567. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1568. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1569. #define BIT_IO_READY_SIGNAL_ERR_MSK BIT(31)
  1570. #endif
  1571. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1572. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1573. #define BIT_ENABLE_ZCDOUT_L BIT(30)
  1574. #endif
  1575. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1576. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1577. #define BIT_AUTOZCD_L BIT(30)
  1578. #endif
  1579. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1580. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  1581. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1582. #define BIT_SDIO_HSISR3_IND_MSK BIT(30)
  1583. #endif
  1584. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1585. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1586. #define BIT_SDIO_TX_CRC__MSK BIT(30)
  1587. #endif
  1588. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1589. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  1590. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1591. #define BIT_SDIO_HSISR2_IND_MSK BIT(29)
  1592. #endif
  1593. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  1594. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1595. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1596. #define BIT_SHIFT_REG_DELAY 28
  1597. #define BIT_MASK_REG_DELAY 0x3
  1598. #define BIT_REG_DELAY(x) (((x) & BIT_MASK_REG_DELAY) << BIT_SHIFT_REG_DELAY)
  1599. #define BITS_REG_DELAY (BIT_MASK_REG_DELAY << BIT_SHIFT_REG_DELAY)
  1600. #define BIT_CLEAR_REG_DELAY(x) ((x) & (~BITS_REG_DELAY))
  1601. #define BIT_GET_REG_DELAY(x) (((x) >> BIT_SHIFT_REG_DELAY) & BIT_MASK_REG_DELAY)
  1602. #define BIT_SET_REG_DELAY(x, v) (BIT_CLEAR_REG_DELAY(x) | BIT_REG_DELAY(v))
  1603. #endif
  1604. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1605. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  1606. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1607. #define BIT_SDIO_HEISR_IND_MSK BIT(28)
  1608. #endif
  1609. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1610. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1611. HALMAC_8822C_SUPPORT)
  1612. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1613. #define BIT_SDIO_CTWEND_MSK BIT(27)
  1614. #define BIT_SDIO_ATIMEND_E_MSK BIT(26)
  1615. #endif
  1616. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  1617. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  1618. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1619. #define BIT_SDIIO_ATIMEND_MSK BIT(25)
  1620. #endif
  1621. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1622. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1623. #define BIT_SDIO_ATIMEND_MSK BIT(25)
  1624. #endif
  1625. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1626. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1627. #define BIT_SHIFT_SW18_V15ADJ 24
  1628. #define BIT_MASK_SW18_V15ADJ 0x7
  1629. #define BIT_SW18_V15ADJ(x) \
  1630. (((x) & BIT_MASK_SW18_V15ADJ) << BIT_SHIFT_SW18_V15ADJ)
  1631. #define BITS_SW18_V15ADJ (BIT_MASK_SW18_V15ADJ << BIT_SHIFT_SW18_V15ADJ)
  1632. #define BIT_CLEAR_SW18_V15ADJ(x) ((x) & (~BITS_SW18_V15ADJ))
  1633. #define BIT_GET_SW18_V15ADJ(x) \
  1634. (((x) >> BIT_SHIFT_SW18_V15ADJ) & BIT_MASK_SW18_V15ADJ)
  1635. #define BIT_SET_SW18_V15ADJ(x, v) \
  1636. (BIT_CLEAR_SW18_V15ADJ(x) | BIT_SW18_V15ADJ(v))
  1637. #endif
  1638. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1639. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1640. #define BIT_SHIFT_V15ADJ_L1_V1 24
  1641. #define BIT_MASK_V15ADJ_L1_V1 0x7
  1642. #define BIT_V15ADJ_L1_V1(x) \
  1643. (((x) & BIT_MASK_V15ADJ_L1_V1) << BIT_SHIFT_V15ADJ_L1_V1)
  1644. #define BITS_V15ADJ_L1_V1 (BIT_MASK_V15ADJ_L1_V1 << BIT_SHIFT_V15ADJ_L1_V1)
  1645. #define BIT_CLEAR_V15ADJ_L1_V1(x) ((x) & (~BITS_V15ADJ_L1_V1))
  1646. #define BIT_GET_V15ADJ_L1_V1(x) \
  1647. (((x) >> BIT_SHIFT_V15ADJ_L1_V1) & BIT_MASK_V15ADJ_L1_V1)
  1648. #define BIT_SET_V15ADJ_L1_V1(x, v) \
  1649. (BIT_CLEAR_V15ADJ_L1_V1(x) | BIT_V15ADJ_L1_V1(v))
  1650. #endif
  1651. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1652. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1653. HALMAC_8822C_SUPPORT)
  1654. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1655. #define BIT_SDIO_OCPINT_MSK BIT(24)
  1656. #endif
  1657. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1658. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1659. #define BIT_OCPSL BIT(24)
  1660. #endif
  1661. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1662. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1663. HALMAC_8822C_SUPPORT)
  1664. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1665. #define BIT_SDIO_PSTIMEOUT_MSK BIT(23)
  1666. #endif
  1667. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1668. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1669. #define BIT_REG_LDOF_L_V1 BIT(23)
  1670. #endif
  1671. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1672. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1673. HALMAC_8822C_SUPPORT)
  1674. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1675. #define BIT_SDIO_GTINT4_MSK BIT(22)
  1676. #endif
  1677. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1678. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1679. #define BIT_PARSW_DUMMY BIT(22)
  1680. #endif
  1681. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1682. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1683. HALMAC_8822C_SUPPORT)
  1684. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1685. #define BIT_SDIO_GTINT3_MSK BIT(21)
  1686. #endif
  1687. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1688. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1689. #define BIT_CLAMP_MAX_DUTY BIT(21)
  1690. #endif
  1691. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1692. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1693. #define BIT_SHIFT_SW18_VOL 20
  1694. #define BIT_MASK_SW18_VOL 0xf
  1695. #define BIT_SW18_VOL(x) (((x) & BIT_MASK_SW18_VOL) << BIT_SHIFT_SW18_VOL)
  1696. #define BITS_SW18_VOL (BIT_MASK_SW18_VOL << BIT_SHIFT_SW18_VOL)
  1697. #define BIT_CLEAR_SW18_VOL(x) ((x) & (~BITS_SW18_VOL))
  1698. #define BIT_GET_SW18_VOL(x) (((x) >> BIT_SHIFT_SW18_VOL) & BIT_MASK_SW18_VOL)
  1699. #define BIT_SET_SW18_VOL(x, v) (BIT_CLEAR_SW18_VOL(x) | BIT_SW18_VOL(v))
  1700. #endif
  1701. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1702. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1703. #define BIT_SHIFT_VOL_L1_V1 20
  1704. #define BIT_MASK_VOL_L1_V1 0xf
  1705. #define BIT_VOL_L1_V1(x) (((x) & BIT_MASK_VOL_L1_V1) << BIT_SHIFT_VOL_L1_V1)
  1706. #define BITS_VOL_L1_V1 (BIT_MASK_VOL_L1_V1 << BIT_SHIFT_VOL_L1_V1)
  1707. #define BIT_CLEAR_VOL_L1_V1(x) ((x) & (~BITS_VOL_L1_V1))
  1708. #define BIT_GET_VOL_L1_V1(x) (((x) >> BIT_SHIFT_VOL_L1_V1) & BIT_MASK_VOL_L1_V1)
  1709. #define BIT_SET_VOL_L1_V1(x, v) (BIT_CLEAR_VOL_L1_V1(x) | BIT_VOL_L1_V1(v))
  1710. #endif
  1711. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1712. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1713. HALMAC_8822C_SUPPORT)
  1714. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1715. #define BIT_SDIO_HSISR_IND_MSK BIT(20)
  1716. #define BIT_SDIO_CPWM2_MSK BIT(19)
  1717. #endif
  1718. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1719. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1720. #define BIT_SHIFT_TBOX_L1_V1 19
  1721. #define BIT_MASK_TBOX_L1_V1 0x3
  1722. #define BIT_TBOX_L1_V1(x) (((x) & BIT_MASK_TBOX_L1_V1) << BIT_SHIFT_TBOX_L1_V1)
  1723. #define BITS_TBOX_L1_V1 (BIT_MASK_TBOX_L1_V1 << BIT_SHIFT_TBOX_L1_V1)
  1724. #define BIT_CLEAR_TBOX_L1_V1(x) ((x) & (~BITS_TBOX_L1_V1))
  1725. #define BIT_GET_TBOX_L1_V1(x) \
  1726. (((x) >> BIT_SHIFT_TBOX_L1_V1) & BIT_MASK_TBOX_L1_V1)
  1727. #define BIT_SET_TBOX_L1_V1(x, v) (BIT_CLEAR_TBOX_L1_V1(x) | BIT_TBOX_L1_V1(v))
  1728. #endif
  1729. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1730. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1731. HALMAC_8822C_SUPPORT)
  1732. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1733. #define BIT_SDIO_CPWM1_MSK BIT(18)
  1734. #endif
  1735. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1736. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1737. #define BIT_SHIFT_SW18_IN 17
  1738. #define BIT_MASK_SW18_IN 0x7
  1739. #define BIT_SW18_IN(x) (((x) & BIT_MASK_SW18_IN) << BIT_SHIFT_SW18_IN)
  1740. #define BITS_SW18_IN (BIT_MASK_SW18_IN << BIT_SHIFT_SW18_IN)
  1741. #define BIT_CLEAR_SW18_IN(x) ((x) & (~BITS_SW18_IN))
  1742. #define BIT_GET_SW18_IN(x) (((x) >> BIT_SHIFT_SW18_IN) & BIT_MASK_SW18_IN)
  1743. #define BIT_SET_SW18_IN(x, v) (BIT_CLEAR_SW18_IN(x) | BIT_SW18_IN(v))
  1744. #endif
  1745. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1746. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1747. #define BIT_SHIFT_IN_L1_V1 17
  1748. #define BIT_MASK_IN_L1_V1 0x7
  1749. #define BIT_IN_L1_V1(x) (((x) & BIT_MASK_IN_L1_V1) << BIT_SHIFT_IN_L1_V1)
  1750. #define BITS_IN_L1_V1 (BIT_MASK_IN_L1_V1 << BIT_SHIFT_IN_L1_V1)
  1751. #define BIT_CLEAR_IN_L1_V1(x) ((x) & (~BITS_IN_L1_V1))
  1752. #define BIT_GET_IN_L1_V1(x) (((x) >> BIT_SHIFT_IN_L1_V1) & BIT_MASK_IN_L1_V1)
  1753. #define BIT_SET_IN_L1_V1(x, v) (BIT_CLEAR_IN_L1_V1(x) | BIT_IN_L1_V1(v))
  1754. #endif
  1755. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1756. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1757. HALMAC_8822C_SUPPORT)
  1758. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1759. #define BIT_SDIO_C2HCMD_INT_MSK BIT(17)
  1760. #endif
  1761. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1762. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1763. #define BIT_SHIFT_REG_DELAY_V3 17
  1764. #define BIT_MASK_REG_DELAY_V3 0x3
  1765. #define BIT_REG_DELAY_V3(x) \
  1766. (((x) & BIT_MASK_REG_DELAY_V3) << BIT_SHIFT_REG_DELAY_V3)
  1767. #define BITS_REG_DELAY_V3 (BIT_MASK_REG_DELAY_V3 << BIT_SHIFT_REG_DELAY_V3)
  1768. #define BIT_CLEAR_REG_DELAY_V3(x) ((x) & (~BITS_REG_DELAY_V3))
  1769. #define BIT_GET_REG_DELAY_V3(x) \
  1770. (((x) >> BIT_SHIFT_REG_DELAY_V3) & BIT_MASK_REG_DELAY_V3)
  1771. #define BIT_SET_REG_DELAY_V3(x, v) \
  1772. (BIT_CLEAR_REG_DELAY_V3(x) | BIT_REG_DELAY_V3(v))
  1773. #endif
  1774. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1775. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1776. HALMAC_8822C_SUPPORT)
  1777. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1778. #define BIT_SDIO_BCNERLY_INT_MSK BIT(16)
  1779. #endif
  1780. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1781. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1782. #define BIT_REG_CLAMP_D_L_V2 BIT(16)
  1783. #endif
  1784. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  1785. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1786. #define BIT_SHIFT_SW18_TBOX 15
  1787. #define BIT_MASK_SW18_TBOX 0x3
  1788. #define BIT_SW18_TBOX(x) (((x) & BIT_MASK_SW18_TBOX) << BIT_SHIFT_SW18_TBOX)
  1789. #define BITS_SW18_TBOX (BIT_MASK_SW18_TBOX << BIT_SHIFT_SW18_TBOX)
  1790. #define BIT_CLEAR_SW18_TBOX(x) ((x) & (~BITS_SW18_TBOX))
  1791. #define BIT_GET_SW18_TBOX(x) (((x) >> BIT_SHIFT_SW18_TBOX) & BIT_MASK_SW18_TBOX)
  1792. #define BIT_SET_SW18_TBOX(x, v) (BIT_CLEAR_SW18_TBOX(x) | BIT_SW18_TBOX(v))
  1793. #endif
  1794. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1795. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1796. #define BIT_REG_BYPASS_L_V3 BIT(15)
  1797. #endif
  1798. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1799. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1800. #define BIT_SHIFT_TBOX_L1 15
  1801. #define BIT_MASK_TBOX_L1 0x3
  1802. #define BIT_TBOX_L1(x) (((x) & BIT_MASK_TBOX_L1) << BIT_SHIFT_TBOX_L1)
  1803. #define BITS_TBOX_L1 (BIT_MASK_TBOX_L1 << BIT_SHIFT_TBOX_L1)
  1804. #define BIT_CLEAR_TBOX_L1(x) ((x) & (~BITS_TBOX_L1))
  1805. #define BIT_GET_TBOX_L1(x) (((x) >> BIT_SHIFT_TBOX_L1) & BIT_MASK_TBOX_L1)
  1806. #define BIT_SET_TBOX_L1(x, v) (BIT_CLEAR_TBOX_L1(x) | BIT_TBOX_L1(v))
  1807. #endif
  1808. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1809. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1810. #define BIT_ENABLE_ZCDOUT_L_V3 BIT(14)
  1811. #endif
  1812. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  1813. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1814. HALMAC_8881A_SUPPORT)
  1815. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1816. #define BIT_SW18_SEL BIT(13)
  1817. #endif
  1818. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1819. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1820. #define BIT_POW_ZCD_L_V3 BIT(13)
  1821. #define BIT_AREN_L1_V1 BIT(12)
  1822. #endif
  1823. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1824. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1825. #define BIT_SHIFT_SW18_STD 11
  1826. #define BIT_MASK_SW18_STD 0x3
  1827. #define BIT_SW18_STD(x) (((x) & BIT_MASK_SW18_STD) << BIT_SHIFT_SW18_STD)
  1828. #define BITS_SW18_STD (BIT_MASK_SW18_STD << BIT_SHIFT_SW18_STD)
  1829. #define BIT_CLEAR_SW18_STD(x) ((x) & (~BITS_SW18_STD))
  1830. #define BIT_GET_SW18_STD(x) (((x) >> BIT_SHIFT_SW18_STD) & BIT_MASK_SW18_STD)
  1831. #define BIT_SET_SW18_STD(x, v) (BIT_CLEAR_SW18_STD(x) | BIT_SW18_STD(v))
  1832. #endif
  1833. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  1834. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  1835. HALMAC_8881A_SUPPORT)
  1836. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1837. #define BIT_SW18_SD BIT(10)
  1838. #endif
  1839. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  1840. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1841. #define BIT_SW18_AREN BIT(9)
  1842. #endif
  1843. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1844. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1845. #define BIT_SHIFT_OCP_V3 9
  1846. #define BIT_MASK_OCP_V3 0x7
  1847. #define BIT_OCP_V3(x) (((x) & BIT_MASK_OCP_V3) << BIT_SHIFT_OCP_V3)
  1848. #define BITS_OCP_V3 (BIT_MASK_OCP_V3 << BIT_SHIFT_OCP_V3)
  1849. #define BIT_CLEAR_OCP_V3(x) ((x) & (~BITS_OCP_V3))
  1850. #define BIT_GET_OCP_V3(x) (((x) >> BIT_SHIFT_OCP_V3) & BIT_MASK_OCP_V3)
  1851. #define BIT_SET_OCP_V3(x, v) (BIT_CLEAR_OCP_V3(x) | BIT_OCP_V3(v))
  1852. #define BIT_POWOCP_V3 BIT(8)
  1853. #endif
  1854. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  1855. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1856. #define BIT_SHIFT_SW18_R3 7
  1857. #define BIT_MASK_SW18_R3 0x3
  1858. #define BIT_SW18_R3(x) (((x) & BIT_MASK_SW18_R3) << BIT_SHIFT_SW18_R3)
  1859. #define BITS_SW18_R3 (BIT_MASK_SW18_R3 << BIT_SHIFT_SW18_R3)
  1860. #define BIT_CLEAR_SW18_R3(x) ((x) & (~BITS_SW18_R3))
  1861. #define BIT_GET_SW18_R3(x) (((x) >> BIT_SHIFT_SW18_R3) & BIT_MASK_SW18_R3)
  1862. #define BIT_SET_SW18_R3(x, v) (BIT_CLEAR_SW18_R3(x) | BIT_SW18_R3(v))
  1863. #endif
  1864. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1865. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1866. HALMAC_8822C_SUPPORT)
  1867. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1868. #define BIT_SDIO_TXBCNERR_MSK BIT(7)
  1869. #endif
  1870. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1871. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1872. #define BIT_SHIFT_R3_L 7
  1873. #define BIT_MASK_R3_L 0x3
  1874. #define BIT_R3_L(x) (((x) & BIT_MASK_R3_L) << BIT_SHIFT_R3_L)
  1875. #define BITS_R3_L (BIT_MASK_R3_L << BIT_SHIFT_R3_L)
  1876. #define BIT_CLEAR_R3_L(x) ((x) & (~BITS_R3_L))
  1877. #define BIT_GET_R3_L(x) (((x) >> BIT_SHIFT_R3_L) & BIT_MASK_R3_L)
  1878. #define BIT_SET_R3_L(x, v) (BIT_CLEAR_R3_L(x) | BIT_R3_L(v))
  1879. #endif
  1880. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1881. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1882. HALMAC_8822C_SUPPORT)
  1883. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1884. #define BIT_SDIO_TXBCNOK_MSK BIT(6)
  1885. #endif
  1886. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1887. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1888. #define BIT_SHIFT_CF_L_V3 6
  1889. #define BIT_MASK_CF_L_V3 0x3
  1890. #define BIT_CF_L_V3(x) (((x) & BIT_MASK_CF_L_V3) << BIT_SHIFT_CF_L_V3)
  1891. #define BITS_CF_L_V3 (BIT_MASK_CF_L_V3 << BIT_SHIFT_CF_L_V3)
  1892. #define BIT_CLEAR_CF_L_V3(x) ((x) & (~BITS_CF_L_V3))
  1893. #define BIT_GET_CF_L_V3(x) (((x) >> BIT_SHIFT_CF_L_V3) & BIT_MASK_CF_L_V3)
  1894. #define BIT_SET_CF_L_V3(x, v) (BIT_CLEAR_CF_L_V3(x) | BIT_CF_L_V3(v))
  1895. #endif
  1896. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  1897. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1898. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1899. #define BIT_SHIFT_SW18_R2 5
  1900. #define BIT_MASK_SW18_R2 0x3
  1901. #define BIT_SW18_R2(x) (((x) & BIT_MASK_SW18_R2) << BIT_SHIFT_SW18_R2)
  1902. #define BITS_SW18_R2 (BIT_MASK_SW18_R2 << BIT_SHIFT_SW18_R2)
  1903. #define BIT_CLEAR_SW18_R2(x) ((x) & (~BITS_SW18_R2))
  1904. #define BIT_GET_SW18_R2(x) (((x) >> BIT_SHIFT_SW18_R2) & BIT_MASK_SW18_R2)
  1905. #define BIT_SET_SW18_R2(x, v) (BIT_CLEAR_SW18_R2(x) | BIT_SW18_R2(v))
  1906. #endif
  1907. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1908. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1909. HALMAC_8822C_SUPPORT)
  1910. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1911. #define BIT_SDIO_RXFOVW_MSK BIT(5)
  1912. #define BIT_SDIO_TXFOVW_MSK BIT(4)
  1913. #endif
  1914. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1915. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1916. #define BIT_SHIFT_CFC_L_BIT0_TO_1_V1 4
  1917. #define BIT_MASK_CFC_L_BIT0_TO_1_V1 0x3
  1918. #define BIT_CFC_L_BIT0_TO_1_V1(x) \
  1919. (((x) & BIT_MASK_CFC_L_BIT0_TO_1_V1) << BIT_SHIFT_CFC_L_BIT0_TO_1_V1)
  1920. #define BITS_CFC_L_BIT0_TO_1_V1 \
  1921. (BIT_MASK_CFC_L_BIT0_TO_1_V1 << BIT_SHIFT_CFC_L_BIT0_TO_1_V1)
  1922. #define BIT_CLEAR_CFC_L_BIT0_TO_1_V1(x) ((x) & (~BITS_CFC_L_BIT0_TO_1_V1))
  1923. #define BIT_GET_CFC_L_BIT0_TO_1_V1(x) \
  1924. (((x) >> BIT_SHIFT_CFC_L_BIT0_TO_1_V1) & BIT_MASK_CFC_L_BIT0_TO_1_V1)
  1925. #define BIT_SET_CFC_L_BIT0_TO_1_V1(x, v) \
  1926. (BIT_CLEAR_CFC_L_BIT0_TO_1_V1(x) | BIT_CFC_L_BIT0_TO_1_V1(v))
  1927. #endif
  1928. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  1929. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  1930. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1931. #define BIT_SHIFT_SW18_R1 3
  1932. #define BIT_MASK_SW18_R1 0x3
  1933. #define BIT_SW18_R1(x) (((x) & BIT_MASK_SW18_R1) << BIT_SHIFT_SW18_R1)
  1934. #define BITS_SW18_R1 (BIT_MASK_SW18_R1 << BIT_SHIFT_SW18_R1)
  1935. #define BIT_CLEAR_SW18_R1(x) ((x) & (~BITS_SW18_R1))
  1936. #define BIT_GET_SW18_R1(x) (((x) >> BIT_SHIFT_SW18_R1) & BIT_MASK_SW18_R1)
  1937. #define BIT_SET_SW18_R1(x, v) (BIT_CLEAR_SW18_R1(x) | BIT_SW18_R1(v))
  1938. #endif
  1939. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1940. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1941. HALMAC_8822C_SUPPORT)
  1942. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1943. #define BIT_SDIO_RXERR_MSK BIT(3)
  1944. #define BIT_SDIO_TXERR_MSK BIT(2)
  1945. #endif
  1946. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1947. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1948. #define BIT_SHIFT_R3_L1_V1 2
  1949. #define BIT_MASK_R3_L1_V1 0x3
  1950. #define BIT_R3_L1_V1(x) (((x) & BIT_MASK_R3_L1_V1) << BIT_SHIFT_R3_L1_V1)
  1951. #define BITS_R3_L1_V1 (BIT_MASK_R3_L1_V1 << BIT_SHIFT_R3_L1_V1)
  1952. #define BIT_CLEAR_R3_L1_V1(x) ((x) & (~BITS_R3_L1_V1))
  1953. #define BIT_GET_R3_L1_V1(x) (((x) >> BIT_SHIFT_R3_L1_V1) & BIT_MASK_R3_L1_V1)
  1954. #define BIT_SET_R3_L1_V1(x, v) (BIT_CLEAR_R3_L1_V1(x) | BIT_R3_L1_V1(v))
  1955. #endif
  1956. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  1957. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1958. #define BIT_SHIFT_SW18_C3 1
  1959. #define BIT_MASK_SW18_C3 0x3
  1960. #define BIT_SW18_C3(x) (((x) & BIT_MASK_SW18_C3) << BIT_SHIFT_SW18_C3)
  1961. #define BITS_SW18_C3 (BIT_MASK_SW18_C3 << BIT_SHIFT_SW18_C3)
  1962. #define BIT_CLEAR_SW18_C3(x) ((x) & (~BITS_SW18_C3))
  1963. #define BIT_GET_SW18_C3(x) (((x) >> BIT_SHIFT_SW18_C3) & BIT_MASK_SW18_C3)
  1964. #define BIT_SET_SW18_C3(x, v) (BIT_CLEAR_SW18_C3(x) | BIT_SW18_C3(v))
  1965. #endif
  1966. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1967. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1968. HALMAC_8822C_SUPPORT)
  1969. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1970. #define BIT_SDIO_AVAL_MSK BIT(1)
  1971. #endif
  1972. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  1973. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1974. #define BIT_SHIFT_C3_L_C3 1
  1975. #define BIT_MASK_C3_L_C3 0x3
  1976. #define BIT_C3_L_C3(x) (((x) & BIT_MASK_C3_L_C3) << BIT_SHIFT_C3_L_C3)
  1977. #define BITS_C3_L_C3 (BIT_MASK_C3_L_C3 << BIT_SHIFT_C3_L_C3)
  1978. #define BIT_CLEAR_C3_L_C3(x) ((x) & (~BITS_C3_L_C3))
  1979. #define BIT_GET_C3_L_C3(x) (((x) >> BIT_SHIFT_C3_L_C3) & BIT_MASK_C3_L_C3)
  1980. #define BIT_SET_C3_L_C3(x, v) (BIT_CLEAR_C3_L_C3(x) | BIT_C3_L_C3(v))
  1981. #endif
  1982. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  1983. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1984. #define BIT_SW18_C2_BIT1 BIT(0)
  1985. #endif
  1986. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  1987. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  1988. HALMAC_8822C_SUPPORT)
  1989. /* 2 REG_SDIO_HIMR (Offset 0x10250014) */
  1990. #define BIT_RX_REQUEST_MSK BIT(0)
  1991. #endif
  1992. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  1993. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  1994. #define BIT_SHIFT_R2_L1_V1 0
  1995. #define BIT_MASK_R2_L1_V1 0x3
  1996. #define BIT_R2_L1_V1(x) (((x) & BIT_MASK_R2_L1_V1) << BIT_SHIFT_R2_L1_V1)
  1997. #define BITS_R2_L1_V1 (BIT_MASK_R2_L1_V1 << BIT_SHIFT_R2_L1_V1)
  1998. #define BIT_CLEAR_R2_L1_V1(x) ((x) & (~BITS_R2_L1_V1))
  1999. #define BIT_GET_R2_L1_V1(x) (((x) >> BIT_SHIFT_R2_L1_V1) & BIT_MASK_R2_L1_V1)
  2000. #define BIT_SET_R2_L1_V1(x, v) (BIT_CLEAR_R2_L1_V1(x) | BIT_R2_L1_V1(v))
  2001. #endif
  2002. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2003. /* 2 REG_SYS_SWR_CTRL2 (Offset 0x0014) */
  2004. #define BIT_C2_L_BIT1 BIT(0)
  2005. #endif
  2006. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2007. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  2008. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2009. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2010. /* 2 REG_SYS_SWR_CTRL3 (Offset 0x0018) */
  2011. #define BIT_SPS18_OCP_DIS BIT(31)
  2012. #endif
  2013. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2014. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  2015. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2016. #define BIT_SDIO_CRCERR BIT(31)
  2017. #endif
  2018. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2019. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2020. #define BIT_IO_READY_SIGNAL_ERR BIT(31)
  2021. #endif
  2022. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2023. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  2024. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2025. #define BIT_SDIO_HSISR3_IND BIT(30)
  2026. #endif
  2027. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2028. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2029. #define BIT_TX_CRC BIT(30)
  2030. #endif
  2031. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2032. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  2033. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2034. #define BIT_SDIO_HSISR2_IND BIT(29)
  2035. #define BIT_SDIO_HEISR_IND BIT(28)
  2036. #endif
  2037. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2038. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2039. HALMAC_8822C_SUPPORT)
  2040. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2041. #define BIT_SDIO_CTWEND BIT(27)
  2042. #define BIT_SDIO_ATIMEND_E BIT(26)
  2043. #define BIT_SDIO_ATIMEND BIT(25)
  2044. #define BIT_SDIO_OCPINT BIT(24)
  2045. #define BIT_SDIO_PSTIMEOUT BIT(23)
  2046. #define BIT_SDIO_GTINT4 BIT(22)
  2047. #define BIT_SDIO_GTINT3 BIT(21)
  2048. #define BIT_SDIO_HSISR_IND BIT(20)
  2049. #define BIT_SDIO_CPWM2 BIT(19)
  2050. #define BIT_SDIO_CPWM1 BIT(18)
  2051. #define BIT_SDIO_C2HCMD_INT BIT(17)
  2052. #endif
  2053. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2054. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  2055. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2056. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2057. /* 2 REG_SYS_SWR_CTRL3 (Offset 0x0018) */
  2058. #define BIT_SHIFT_SPS18_OCP_TH 16
  2059. #define BIT_MASK_SPS18_OCP_TH 0x7fff
  2060. #define BIT_SPS18_OCP_TH(x) \
  2061. (((x) & BIT_MASK_SPS18_OCP_TH) << BIT_SHIFT_SPS18_OCP_TH)
  2062. #define BITS_SPS18_OCP_TH (BIT_MASK_SPS18_OCP_TH << BIT_SHIFT_SPS18_OCP_TH)
  2063. #define BIT_CLEAR_SPS18_OCP_TH(x) ((x) & (~BITS_SPS18_OCP_TH))
  2064. #define BIT_GET_SPS18_OCP_TH(x) \
  2065. (((x) >> BIT_SHIFT_SPS18_OCP_TH) & BIT_MASK_SPS18_OCP_TH)
  2066. #define BIT_SET_SPS18_OCP_TH(x, v) \
  2067. (BIT_CLEAR_SPS18_OCP_TH(x) | BIT_SPS18_OCP_TH(v))
  2068. #endif
  2069. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2070. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2071. HALMAC_8822C_SUPPORT)
  2072. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2073. #define BIT_SDIO_BCNERLY_INT BIT(16)
  2074. #define BIT_SDIO_TXBCNERR BIT(7)
  2075. #define BIT_SDIO_TXBCNOK BIT(6)
  2076. #define BIT_SDIO_RXFOVW BIT(5)
  2077. #define BIT_SDIO_TXFOVW BIT(4)
  2078. #define BIT_SDIO_RXERR BIT(3)
  2079. #define BIT_SDIO_TXERR BIT(2)
  2080. #define BIT_SDIO_AVAL BIT(1)
  2081. #endif
  2082. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2083. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  2084. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2085. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2086. /* 2 REG_SYS_SWR_CTRL3 (Offset 0x0018) */
  2087. #define BIT_SHIFT_OCP_WINDOW 0
  2088. #define BIT_MASK_OCP_WINDOW 0xffff
  2089. #define BIT_OCP_WINDOW(x) (((x) & BIT_MASK_OCP_WINDOW) << BIT_SHIFT_OCP_WINDOW)
  2090. #define BITS_OCP_WINDOW (BIT_MASK_OCP_WINDOW << BIT_SHIFT_OCP_WINDOW)
  2091. #define BIT_CLEAR_OCP_WINDOW(x) ((x) & (~BITS_OCP_WINDOW))
  2092. #define BIT_GET_OCP_WINDOW(x) \
  2093. (((x) >> BIT_SHIFT_OCP_WINDOW) & BIT_MASK_OCP_WINDOW)
  2094. #define BIT_SET_OCP_WINDOW(x, v) (BIT_CLEAR_OCP_WINDOW(x) | BIT_OCP_WINDOW(v))
  2095. #endif
  2096. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2097. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2098. HALMAC_8822C_SUPPORT)
  2099. /* 2 REG_SDIO_HISR (Offset 0x10250018) */
  2100. #define BIT_RX_REQUEST BIT(0)
  2101. #endif
  2102. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2103. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  2104. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2105. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2106. #define BIT_HREG_DBG BIT(23)
  2107. #endif
  2108. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)
  2109. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2110. #define BIT_SHIFT_HREG_DBG_V1 12
  2111. #define BIT_MASK_HREG_DBG_V1 0xfff
  2112. #define BIT_HREG_DBG_V1(x) \
  2113. (((x) & BIT_MASK_HREG_DBG_V1) << BIT_SHIFT_HREG_DBG_V1)
  2114. #define BITS_HREG_DBG_V1 (BIT_MASK_HREG_DBG_V1 << BIT_SHIFT_HREG_DBG_V1)
  2115. #define BIT_CLEAR_HREG_DBG_V1(x) ((x) & (~BITS_HREG_DBG_V1))
  2116. #define BIT_GET_HREG_DBG_V1(x) \
  2117. (((x) >> BIT_SHIFT_HREG_DBG_V1) & BIT_MASK_HREG_DBG_V1)
  2118. #define BIT_SET_HREG_DBG_V1(x, v) \
  2119. (BIT_CLEAR_HREG_DBG_V1(x) | BIT_HREG_DBG_V1(v))
  2120. #endif
  2121. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2122. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2123. #define BIT_MCU_RST BIT(11)
  2124. #define BIT_WLOCK_90 BIT(10)
  2125. #define BIT_WLOCK_70 BIT(9)
  2126. #endif
  2127. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2128. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  2129. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2130. HALMAC_8881A_SUPPORT)
  2131. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2132. #define BIT_WLMCUIOIF BIT(8)
  2133. #endif
  2134. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2135. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2136. #define BIT_WLOCK_78 BIT(8)
  2137. #endif
  2138. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2139. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  2140. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2141. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2142. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2143. #define BIT_LOCK_ALL_EN BIT(7)
  2144. #endif
  2145. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2146. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  2147. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2148. HALMAC_8881A_SUPPORT)
  2149. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2150. #define BIT_R_DIS_PRST BIT(6)
  2151. #endif
  2152. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2153. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2154. #define BIT_R_DIS_PRST_1 BIT(6)
  2155. #endif
  2156. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2157. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  2158. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2159. HALMAC_8881A_SUPPORT)
  2160. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2161. #define BIT_WLOCK_1C_B6 BIT(5)
  2162. #endif
  2163. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2164. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2165. #define BIT_R_DIS_PRST_0 BIT(5)
  2166. #endif
  2167. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2168. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  2169. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2170. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  2171. /* 2 REG_RSV_CTRL (Offset 0x001C) */
  2172. #define BIT_WLOCK_40 BIT(4)
  2173. #define BIT_WLOCK_08 BIT(3)
  2174. #define BIT_WLOCK_04 BIT(2)
  2175. #define BIT_WLOCK_00 BIT(1)
  2176. #define BIT_WLOCK_ALL BIT(0)
  2177. #endif
  2178. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2179. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2180. HALMAC_8822C_SUPPORT)
  2181. /* 2 REG_SDIO_RX_REQ_LEN (Offset 0x1025001C) */
  2182. #define BIT_SHIFT_RX_REQ_LEN_V1 0
  2183. #define BIT_MASK_RX_REQ_LEN_V1 0x3ffff
  2184. #define BIT_RX_REQ_LEN_V1(x) \
  2185. (((x) & BIT_MASK_RX_REQ_LEN_V1) << BIT_SHIFT_RX_REQ_LEN_V1)
  2186. #define BITS_RX_REQ_LEN_V1 (BIT_MASK_RX_REQ_LEN_V1 << BIT_SHIFT_RX_REQ_LEN_V1)
  2187. #define BIT_CLEAR_RX_REQ_LEN_V1(x) ((x) & (~BITS_RX_REQ_LEN_V1))
  2188. #define BIT_GET_RX_REQ_LEN_V1(x) \
  2189. (((x) >> BIT_SHIFT_RX_REQ_LEN_V1) & BIT_MASK_RX_REQ_LEN_V1)
  2190. #define BIT_SET_RX_REQ_LEN_V1(x, v) \
  2191. (BIT_CLEAR_RX_REQ_LEN_V1(x) | BIT_RX_REQ_LEN_V1(v))
  2192. #endif
  2193. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  2194. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  2195. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2196. HALMAC_8881A_SUPPORT)
  2197. /* 2 REG_RF_CTRL (Offset 0x001F) */
  2198. #define BIT_RF_SDMRSTB BIT(2)
  2199. #endif
  2200. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2201. /* 2 REG_RF0_CTRL (Offset 0x001F) */
  2202. #define BIT_RF0_SDMRSTB BIT(2)
  2203. #endif
  2204. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  2205. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  2206. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2207. HALMAC_8881A_SUPPORT)
  2208. /* 2 REG_RF_CTRL (Offset 0x001F) */
  2209. #define BIT_RF_RSTB BIT(1)
  2210. #endif
  2211. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2212. /* 2 REG_RF0_CTRL (Offset 0x001F) */
  2213. #define BIT_RF0_RSTB BIT(1)
  2214. #endif
  2215. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  2216. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  2217. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2218. HALMAC_8881A_SUPPORT)
  2219. /* 2 REG_RF_CTRL (Offset 0x001F) */
  2220. #define BIT_RF_EN BIT(0)
  2221. #endif
  2222. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2223. /* 2 REG_RF0_CTRL (Offset 0x001F) */
  2224. #define BIT_RF0_EN BIT(0)
  2225. #endif
  2226. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2227. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2228. HALMAC_8822C_SUPPORT)
  2229. /* 2 REG_SDIO_FREE_TXPG_SEQ_V1 (Offset 0x1025001F) */
  2230. #define BIT_SHIFT_FREE_TXPG_SEQ 0
  2231. #define BIT_MASK_FREE_TXPG_SEQ 0xff
  2232. #define BIT_FREE_TXPG_SEQ(x) \
  2233. (((x) & BIT_MASK_FREE_TXPG_SEQ) << BIT_SHIFT_FREE_TXPG_SEQ)
  2234. #define BITS_FREE_TXPG_SEQ (BIT_MASK_FREE_TXPG_SEQ << BIT_SHIFT_FREE_TXPG_SEQ)
  2235. #define BIT_CLEAR_FREE_TXPG_SEQ(x) ((x) & (~BITS_FREE_TXPG_SEQ))
  2236. #define BIT_GET_FREE_TXPG_SEQ(x) \
  2237. (((x) >> BIT_SHIFT_FREE_TXPG_SEQ) & BIT_MASK_FREE_TXPG_SEQ)
  2238. #define BIT_SET_FREE_TXPG_SEQ(x, v) \
  2239. (BIT_CLEAR_FREE_TXPG_SEQ(x) | BIT_FREE_TXPG_SEQ(v))
  2240. #endif
  2241. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2242. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2243. #define BIT_R_SYM_WLPON_EMEM1_EN BIT(31)
  2244. #endif
  2245. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2246. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2247. #define BIT_LPLDH12_RSV1 BIT(31)
  2248. #endif
  2249. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2250. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2251. #define BIT_R_SYM_WLPON_EMEM0_EN BIT(30)
  2252. #endif
  2253. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2254. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2255. #define BIT_LPLDH12_RSV0 BIT(30)
  2256. #endif
  2257. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2258. HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2259. HALMAC_8881A_SUPPORT)
  2260. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2261. #define BIT_SHIFT_LPLDH12_RSV 29
  2262. #define BIT_MASK_LPLDH12_RSV 0x7
  2263. #define BIT_LPLDH12_RSV(x) \
  2264. (((x) & BIT_MASK_LPLDH12_RSV) << BIT_SHIFT_LPLDH12_RSV)
  2265. #define BITS_LPLDH12_RSV (BIT_MASK_LPLDH12_RSV << BIT_SHIFT_LPLDH12_RSV)
  2266. #define BIT_CLEAR_LPLDH12_RSV(x) ((x) & (~BITS_LPLDH12_RSV))
  2267. #define BIT_GET_LPLDH12_RSV(x) \
  2268. (((x) >> BIT_SHIFT_LPLDH12_RSV) & BIT_MASK_LPLDH12_RSV)
  2269. #define BIT_SET_LPLDH12_RSV(x, v) \
  2270. (BIT_CLEAR_LPLDH12_RSV(x) | BIT_LPLDH12_RSV(v))
  2271. #endif
  2272. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2273. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2274. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  2275. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2276. #define BIT_LPLDH12_SLP BIT(28)
  2277. #endif
  2278. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2279. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2280. #define BIT_R_SYM_WLPOFF_P4EN BIT(28)
  2281. #define BIT_R_SYM_WLPOFF_P3EN BIT(27)
  2282. #define BIT_R_SYM_WLPOFF_P2EN BIT(26)
  2283. #define BIT_R_SYM_WLPOFF_P1EN BIT(25)
  2284. #endif
  2285. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2286. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2287. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  2288. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2289. #define BIT_SHIFT_LPLDH12_VADJ 24
  2290. #define BIT_MASK_LPLDH12_VADJ 0xf
  2291. #define BIT_LPLDH12_VADJ(x) \
  2292. (((x) & BIT_MASK_LPLDH12_VADJ) << BIT_SHIFT_LPLDH12_VADJ)
  2293. #define BITS_LPLDH12_VADJ (BIT_MASK_LPLDH12_VADJ << BIT_SHIFT_LPLDH12_VADJ)
  2294. #define BIT_CLEAR_LPLDH12_VADJ(x) ((x) & (~BITS_LPLDH12_VADJ))
  2295. #define BIT_GET_LPLDH12_VADJ(x) \
  2296. (((x) >> BIT_SHIFT_LPLDH12_VADJ) & BIT_MASK_LPLDH12_VADJ)
  2297. #define BIT_SET_LPLDH12_VADJ(x, v) \
  2298. (BIT_CLEAR_LPLDH12_VADJ(x) | BIT_LPLDH12_VADJ(v))
  2299. #endif
  2300. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2301. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2302. #define BIT_R_SYM_WLPOFF_EN BIT(24)
  2303. #define BIT_R_SYM_WLPON_P3EN BIT(21)
  2304. #define BIT_R_SYM_WLPON_P2EN BIT(20)
  2305. #define BIT_R_SYM_WLPON_P1EN BIT(19)
  2306. #define BIT_R_SYM_WLPON_EN BIT(18)
  2307. #endif
  2308. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  2309. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2310. #define BIT_PCIE_CALIB_EN BIT(17)
  2311. #endif
  2312. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2313. HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2314. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  2315. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2316. #define BIT_LDH12_EN BIT(16)
  2317. #endif
  2318. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2319. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2320. HALMAC_8822C_SUPPORT)
  2321. /* 2 REG_SDIO_FREE_TXPG (Offset 0x10250020) */
  2322. #define BIT_SHIFT_MID_FREEPG_V1 16
  2323. #define BIT_MASK_MID_FREEPG_V1 0xfff
  2324. #define BIT_MID_FREEPG_V1(x) \
  2325. (((x) & BIT_MASK_MID_FREEPG_V1) << BIT_SHIFT_MID_FREEPG_V1)
  2326. #define BITS_MID_FREEPG_V1 (BIT_MASK_MID_FREEPG_V1 << BIT_SHIFT_MID_FREEPG_V1)
  2327. #define BIT_CLEAR_MID_FREEPG_V1(x) ((x) & (~BITS_MID_FREEPG_V1))
  2328. #define BIT_GET_MID_FREEPG_V1(x) \
  2329. (((x) >> BIT_SHIFT_MID_FREEPG_V1) & BIT_MASK_MID_FREEPG_V1)
  2330. #define BIT_SET_MID_FREEPG_V1(x, v) \
  2331. (BIT_CLEAR_MID_FREEPG_V1(x) | BIT_MID_FREEPG_V1(v))
  2332. #endif
  2333. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2334. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2335. #define BIT_R_SYM_LDOV12D_STBY BIT(16)
  2336. #endif
  2337. #if (HALMAC_8812F_SUPPORT)
  2338. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2339. #define BIT_BB_POWER_CUT_CTRL_BY_BB BIT(15)
  2340. #endif
  2341. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2342. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2343. #define BIT_WLBBOFF_BIG_PWC_EN BIT(14)
  2344. #define BIT_WLBBOFF_SMALL_PWC_EN BIT(13)
  2345. #endif
  2346. #if (HALMAC_8198F_SUPPORT)
  2347. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2348. #define BIT_POW_REGU_P3 BIT(12)
  2349. #endif
  2350. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2351. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2352. #define BIT_WLMACOFF_BIG_PWC_EN BIT(12)
  2353. #endif
  2354. #if (HALMAC_8198F_SUPPORT)
  2355. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2356. #define BIT_POW_REGU_P2 BIT(11)
  2357. #endif
  2358. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2359. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2360. #define BIT_WLPON_PWC_EN BIT(11)
  2361. #endif
  2362. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2363. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2364. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2365. #define BIT_POW_REGU_P1 BIT(10)
  2366. #endif
  2367. #if (HALMAC_8192F_SUPPORT)
  2368. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2369. #define BIT_MEM_DS_EN BIT(9)
  2370. #endif
  2371. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2372. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2373. #define BIT_R_SYM_WLBBOFF1_P4_EN BIT(9)
  2374. #endif
  2375. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2376. HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  2377. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  2378. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2379. #define BIT_LDOV12W_EN BIT(8)
  2380. #endif
  2381. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2382. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2383. #define BIT_R_SYM_WLBBOFF1_P3_EN BIT(8)
  2384. #endif
  2385. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2386. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2387. #define BIT_SHIFT_ANAPAR_RFC2 8
  2388. #define BIT_MASK_ANAPAR_RFC2 0xff
  2389. #define BIT_ANAPAR_RFC2(x) \
  2390. (((x) & BIT_MASK_ANAPAR_RFC2) << BIT_SHIFT_ANAPAR_RFC2)
  2391. #define BITS_ANAPAR_RFC2 (BIT_MASK_ANAPAR_RFC2 << BIT_SHIFT_ANAPAR_RFC2)
  2392. #define BIT_CLEAR_ANAPAR_RFC2(x) ((x) & (~BITS_ANAPAR_RFC2))
  2393. #define BIT_GET_ANAPAR_RFC2(x) \
  2394. (((x) >> BIT_SHIFT_ANAPAR_RFC2) & BIT_MASK_ANAPAR_RFC2)
  2395. #define BIT_SET_ANAPAR_RFC2(x, v) \
  2396. (BIT_CLEAR_ANAPAR_RFC2(x) | BIT_ANAPAR_RFC2(v))
  2397. #endif
  2398. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2399. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2400. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2401. #define BIT_EX_XTAL_DRV_DIGI BIT(7)
  2402. #endif
  2403. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2404. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2405. #define BIT_R_SYM_WLBBOFF1_P2_EN BIT(7)
  2406. #endif
  2407. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2408. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2409. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2410. #define BIT_EX_XTAL_DRV_USB BIT(6)
  2411. #endif
  2412. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2413. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2414. #define BIT_R_SYM_WLBBOFF1_P1_EN BIT(6)
  2415. #endif
  2416. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2417. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2418. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2419. #define BIT_EX_XTAL_DRV_AFE BIT(5)
  2420. #endif
  2421. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2422. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2423. #define BIT_SHIFT_LDA12_VOADJ 4
  2424. #define BIT_MASK_LDA12_VOADJ 0xf
  2425. #define BIT_LDA12_VOADJ(x) \
  2426. (((x) & BIT_MASK_LDA12_VOADJ) << BIT_SHIFT_LDA12_VOADJ)
  2427. #define BITS_LDA12_VOADJ (BIT_MASK_LDA12_VOADJ << BIT_SHIFT_LDA12_VOADJ)
  2428. #define BIT_CLEAR_LDA12_VOADJ(x) ((x) & (~BITS_LDA12_VOADJ))
  2429. #define BIT_GET_LDA12_VOADJ(x) \
  2430. (((x) >> BIT_SHIFT_LDA12_VOADJ) & BIT_MASK_LDA12_VOADJ)
  2431. #define BIT_SET_LDA12_VOADJ(x, v) \
  2432. (BIT_CLEAR_LDA12_VOADJ(x) | BIT_LDA12_VOADJ(v))
  2433. #endif
  2434. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2435. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2436. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2437. #define BIT_EX_XTAL_DRV_RF2 BIT(4)
  2438. #endif
  2439. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2440. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2441. #define BIT_R_SYM_WLBBOFF_P4_EN BIT(4)
  2442. #endif
  2443. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2444. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2445. #define BIT_REG_VOS BIT(3)
  2446. #endif
  2447. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2448. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2449. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2450. #define BIT_EX_XTAL_DRV_RF1 BIT(3)
  2451. #endif
  2452. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2453. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2454. #define BIT_R_SYM_WLBBOFF_P3_EN BIT(3)
  2455. #endif
  2456. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2457. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2458. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2459. #define BIT_POW_REGU_P0 BIT(2)
  2460. #endif
  2461. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2462. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2463. #define BIT_R_SYM_WLBBOFF_P2_EN BIT(2)
  2464. #define BIT_R_SYM_WLBBOFF_P1_EN BIT(1)
  2465. #endif
  2466. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2467. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2468. #define BIT_LDA12_EN BIT(0)
  2469. #endif
  2470. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2471. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2472. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2473. #define BIT_POW_PLL_LDO BIT(0)
  2474. #endif
  2475. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2476. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2477. HALMAC_8822C_SUPPORT)
  2478. /* 2 REG_SDIO_FREE_TXPG (Offset 0x10250020) */
  2479. #define BIT_SHIFT_HIQ_FREEPG_V1 0
  2480. #define BIT_MASK_HIQ_FREEPG_V1 0xfff
  2481. #define BIT_HIQ_FREEPG_V1(x) \
  2482. (((x) & BIT_MASK_HIQ_FREEPG_V1) << BIT_SHIFT_HIQ_FREEPG_V1)
  2483. #define BITS_HIQ_FREEPG_V1 (BIT_MASK_HIQ_FREEPG_V1 << BIT_SHIFT_HIQ_FREEPG_V1)
  2484. #define BIT_CLEAR_HIQ_FREEPG_V1(x) ((x) & (~BITS_HIQ_FREEPG_V1))
  2485. #define BIT_GET_HIQ_FREEPG_V1(x) \
  2486. (((x) >> BIT_SHIFT_HIQ_FREEPG_V1) & BIT_MASK_HIQ_FREEPG_V1)
  2487. #define BIT_SET_HIQ_FREEPG_V1(x, v) \
  2488. (BIT_CLEAR_HIQ_FREEPG_V1(x) | BIT_HIQ_FREEPG_V1(v))
  2489. #endif
  2490. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  2491. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2492. #define BIT_R_SYM_WLBBOFF_EN BIT(0)
  2493. #endif
  2494. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2495. /* 2 REG_AFE_LDO_CTRL (Offset 0x0020) */
  2496. #define BIT_SHIFT_ANAPAR_RFC1 0
  2497. #define BIT_MASK_ANAPAR_RFC1 0xff
  2498. #define BIT_ANAPAR_RFC1(x) \
  2499. (((x) & BIT_MASK_ANAPAR_RFC1) << BIT_SHIFT_ANAPAR_RFC1)
  2500. #define BITS_ANAPAR_RFC1 (BIT_MASK_ANAPAR_RFC1 << BIT_SHIFT_ANAPAR_RFC1)
  2501. #define BIT_CLEAR_ANAPAR_RFC1(x) ((x) & (~BITS_ANAPAR_RFC1))
  2502. #define BIT_GET_ANAPAR_RFC1(x) \
  2503. (((x) >> BIT_SHIFT_ANAPAR_RFC1) & BIT_MASK_ANAPAR_RFC1)
  2504. #define BIT_SET_ANAPAR_RFC1(x, v) \
  2505. (BIT_CLEAR_ANAPAR_RFC1(x) | BIT_ANAPAR_RFC1(v))
  2506. #endif
  2507. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2508. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2509. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2510. #define BIT_AGPIO_GPE BIT(31)
  2511. #endif
  2512. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2513. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2514. #define BIT_XQSEL_V3 BIT(31)
  2515. #endif
  2516. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2517. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2518. #define BIT_SHIFT_REG_CC 30
  2519. #define BIT_MASK_REG_CC 0x3
  2520. #define BIT_REG_CC(x) (((x) & BIT_MASK_REG_CC) << BIT_SHIFT_REG_CC)
  2521. #define BITS_REG_CC (BIT_MASK_REG_CC << BIT_SHIFT_REG_CC)
  2522. #define BIT_CLEAR_REG_CC(x) ((x) & (~BITS_REG_CC))
  2523. #define BIT_GET_REG_CC(x) (((x) >> BIT_SHIFT_REG_CC) & BIT_MASK_REG_CC)
  2524. #define BIT_SET_REG_CC(x, v) (BIT_CLEAR_REG_CC(x) | BIT_REG_CC(v))
  2525. #endif
  2526. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2527. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2528. #define BIT_CKDELAY_AFE_V1 BIT(30)
  2529. #endif
  2530. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2531. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2532. #define BIT_CKDLY_DIG BIT(28)
  2533. #define BIT_CKDLY_USB BIT(27)
  2534. #endif
  2535. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2536. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2537. #define BIT_SHIFT_XTAL_GPIO_V1 27
  2538. #define BIT_MASK_XTAL_GPIO_V1 0x7
  2539. #define BIT_XTAL_GPIO_V1(x) \
  2540. (((x) & BIT_MASK_XTAL_GPIO_V1) << BIT_SHIFT_XTAL_GPIO_V1)
  2541. #define BITS_XTAL_GPIO_V1 (BIT_MASK_XTAL_GPIO_V1 << BIT_SHIFT_XTAL_GPIO_V1)
  2542. #define BIT_CLEAR_XTAL_GPIO_V1(x) ((x) & (~BITS_XTAL_GPIO_V1))
  2543. #define BIT_GET_XTAL_GPIO_V1(x) \
  2544. (((x) >> BIT_SHIFT_XTAL_GPIO_V1) & BIT_MASK_XTAL_GPIO_V1)
  2545. #define BIT_SET_XTAL_GPIO_V1(x, v) \
  2546. (BIT_CLEAR_XTAL_GPIO_V1(x) | BIT_XTAL_GPIO_V1(v))
  2547. #endif
  2548. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2549. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2550. #define BIT_CKDLY_AFE BIT(26)
  2551. #endif
  2552. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2553. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2554. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2555. #define BIT_SHIFT_XTAL_CAP_XI 25
  2556. #define BIT_MASK_XTAL_CAP_XI 0x3f
  2557. #define BIT_XTAL_CAP_XI(x) \
  2558. (((x) & BIT_MASK_XTAL_CAP_XI) << BIT_SHIFT_XTAL_CAP_XI)
  2559. #define BITS_XTAL_CAP_XI (BIT_MASK_XTAL_CAP_XI << BIT_SHIFT_XTAL_CAP_XI)
  2560. #define BIT_CLEAR_XTAL_CAP_XI(x) ((x) & (~BITS_XTAL_CAP_XI))
  2561. #define BIT_GET_XTAL_CAP_XI(x) \
  2562. (((x) >> BIT_SHIFT_XTAL_CAP_XI) & BIT_MASK_XTAL_CAP_XI)
  2563. #define BIT_SET_XTAL_CAP_XI(x, v) \
  2564. (BIT_CLEAR_XTAL_CAP_XI(x) | BIT_XTAL_CAP_XI(v))
  2565. #endif
  2566. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2567. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2568. #define BIT_SHIFT_XTAL_DIG_DRV_1_TO_0 25
  2569. #define BIT_MASK_XTAL_DIG_DRV_1_TO_0 0x3
  2570. #define BIT_XTAL_DIG_DRV_1_TO_0(x) \
  2571. (((x) & BIT_MASK_XTAL_DIG_DRV_1_TO_0) << BIT_SHIFT_XTAL_DIG_DRV_1_TO_0)
  2572. #define BITS_XTAL_DIG_DRV_1_TO_0 \
  2573. (BIT_MASK_XTAL_DIG_DRV_1_TO_0 << BIT_SHIFT_XTAL_DIG_DRV_1_TO_0)
  2574. #define BIT_CLEAR_XTAL_DIG_DRV_1_TO_0(x) ((x) & (~BITS_XTAL_DIG_DRV_1_TO_0))
  2575. #define BIT_GET_XTAL_DIG_DRV_1_TO_0(x) \
  2576. (((x) >> BIT_SHIFT_XTAL_DIG_DRV_1_TO_0) & BIT_MASK_XTAL_DIG_DRV_1_TO_0)
  2577. #define BIT_SET_XTAL_DIG_DRV_1_TO_0(x, v) \
  2578. (BIT_CLEAR_XTAL_DIG_DRV_1_TO_0(x) | BIT_XTAL_DIG_DRV_1_TO_0(v))
  2579. #define BIT_XTAL_GDIG BIT(24)
  2580. #endif
  2581. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2582. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2583. #define BIT_SHIFT_XTAL_GPIO 23
  2584. #define BIT_MASK_XTAL_GPIO 0x7
  2585. #define BIT_XTAL_GPIO(x) (((x) & BIT_MASK_XTAL_GPIO) << BIT_SHIFT_XTAL_GPIO)
  2586. #define BITS_XTAL_GPIO (BIT_MASK_XTAL_GPIO << BIT_SHIFT_XTAL_GPIO)
  2587. #define BIT_CLEAR_XTAL_GPIO(x) ((x) & (~BITS_XTAL_GPIO))
  2588. #define BIT_GET_XTAL_GPIO(x) (((x) >> BIT_SHIFT_XTAL_GPIO) & BIT_MASK_XTAL_GPIO)
  2589. #define BIT_SET_XTAL_GPIO(x, v) (BIT_CLEAR_XTAL_GPIO(x) | BIT_XTAL_GPIO(v))
  2590. #endif
  2591. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2592. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2593. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2594. #define BIT_SHIFT_XTAL_DRV_DIGI 23
  2595. #define BIT_MASK_XTAL_DRV_DIGI 0x3
  2596. #define BIT_XTAL_DRV_DIGI(x) \
  2597. (((x) & BIT_MASK_XTAL_DRV_DIGI) << BIT_SHIFT_XTAL_DRV_DIGI)
  2598. #define BITS_XTAL_DRV_DIGI (BIT_MASK_XTAL_DRV_DIGI << BIT_SHIFT_XTAL_DRV_DIGI)
  2599. #define BIT_CLEAR_XTAL_DRV_DIGI(x) ((x) & (~BITS_XTAL_DRV_DIGI))
  2600. #define BIT_GET_XTAL_DRV_DIGI(x) \
  2601. (((x) >> BIT_SHIFT_XTAL_DRV_DIGI) & BIT_MASK_XTAL_DRV_DIGI)
  2602. #define BIT_SET_XTAL_DRV_DIGI(x, v) \
  2603. (BIT_CLEAR_XTAL_DRV_DIGI(x) | BIT_XTAL_DRV_DIGI(v))
  2604. #define BIT_XTAL_DRV_USB_BIT1 BIT(22)
  2605. #endif
  2606. #if (HALMAC_8198F_SUPPORT)
  2607. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2608. #define BIT_XTAL_DRV_RF_LATCH_V2 BIT(22)
  2609. #endif
  2610. #if (HALMAC_8814A_SUPPORT)
  2611. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2612. #define BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0 22
  2613. #define BIT_MASK_XTAL_RDRV_RF2_1_TO_0 0x3
  2614. #define BIT_XTAL_RDRV_RF2_1_TO_0(x) \
  2615. (((x) & BIT_MASK_XTAL_RDRV_RF2_1_TO_0) \
  2616. << BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0)
  2617. #define BITS_XTAL_RDRV_RF2_1_TO_0 \
  2618. (BIT_MASK_XTAL_RDRV_RF2_1_TO_0 << BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0)
  2619. #define BIT_CLEAR_XTAL_RDRV_RF2_1_TO_0(x) ((x) & (~BITS_XTAL_RDRV_RF2_1_TO_0))
  2620. #define BIT_GET_XTAL_RDRV_RF2_1_TO_0(x) \
  2621. (((x) >> BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0) & \
  2622. BIT_MASK_XTAL_RDRV_RF2_1_TO_0)
  2623. #define BIT_SET_XTAL_RDRV_RF2_1_TO_0(x, v) \
  2624. (BIT_CLEAR_XTAL_RDRV_RF2_1_TO_0(x) | BIT_XTAL_RDRV_RF2_1_TO_0(v))
  2625. #endif
  2626. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2627. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2628. #define BIT_XTAL_GMN_4 BIT(21)
  2629. #endif
  2630. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2631. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  2632. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  2633. HALMAC_8881A_SUPPORT)
  2634. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2635. #define BIT_SHIFT_MAC_CLK_SEL 20
  2636. #define BIT_MASK_MAC_CLK_SEL 0x3
  2637. #define BIT_MAC_CLK_SEL(x) \
  2638. (((x) & BIT_MASK_MAC_CLK_SEL) << BIT_SHIFT_MAC_CLK_SEL)
  2639. #define BITS_MAC_CLK_SEL (BIT_MASK_MAC_CLK_SEL << BIT_SHIFT_MAC_CLK_SEL)
  2640. #define BIT_CLEAR_MAC_CLK_SEL(x) ((x) & (~BITS_MAC_CLK_SEL))
  2641. #define BIT_GET_MAC_CLK_SEL(x) \
  2642. (((x) >> BIT_SHIFT_MAC_CLK_SEL) & BIT_MASK_MAC_CLK_SEL)
  2643. #define BIT_SET_MAC_CLK_SEL(x, v) \
  2644. (BIT_CLEAR_MAC_CLK_SEL(x) | BIT_MAC_CLK_SEL(v))
  2645. #endif
  2646. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2647. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2648. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2649. #define BIT_XTAL_DRV_USB_BIT0 BIT(19)
  2650. #endif
  2651. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2652. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2653. #define BIT_SHIFT_XTAL_RDRV_1_TO_0 19
  2654. #define BIT_MASK_XTAL_RDRV_1_TO_0 0x3
  2655. #define BIT_XTAL_RDRV_1_TO_0(x) \
  2656. (((x) & BIT_MASK_XTAL_RDRV_1_TO_0) << BIT_SHIFT_XTAL_RDRV_1_TO_0)
  2657. #define BITS_XTAL_RDRV_1_TO_0 \
  2658. (BIT_MASK_XTAL_RDRV_1_TO_0 << BIT_SHIFT_XTAL_RDRV_1_TO_0)
  2659. #define BIT_CLEAR_XTAL_RDRV_1_TO_0(x) ((x) & (~BITS_XTAL_RDRV_1_TO_0))
  2660. #define BIT_GET_XTAL_RDRV_1_TO_0(x) \
  2661. (((x) >> BIT_SHIFT_XTAL_RDRV_1_TO_0) & BIT_MASK_XTAL_RDRV_1_TO_0)
  2662. #define BIT_SET_XTAL_RDRV_1_TO_0(x, v) \
  2663. (BIT_CLEAR_XTAL_RDRV_1_TO_0(x) | BIT_XTAL_RDRV_1_TO_0(v))
  2664. #endif
  2665. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2666. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2667. #define BIT_SHIFT_XTAL_DIG_DRV 18
  2668. #define BIT_MASK_XTAL_DIG_DRV 0x3
  2669. #define BIT_XTAL_DIG_DRV(x) \
  2670. (((x) & BIT_MASK_XTAL_DIG_DRV) << BIT_SHIFT_XTAL_DIG_DRV)
  2671. #define BITS_XTAL_DIG_DRV (BIT_MASK_XTAL_DIG_DRV << BIT_SHIFT_XTAL_DIG_DRV)
  2672. #define BIT_CLEAR_XTAL_DIG_DRV(x) ((x) & (~BITS_XTAL_DIG_DRV))
  2673. #define BIT_GET_XTAL_DIG_DRV(x) \
  2674. (((x) >> BIT_SHIFT_XTAL_DIG_DRV) & BIT_MASK_XTAL_DIG_DRV)
  2675. #define BIT_SET_XTAL_DIG_DRV(x, v) \
  2676. (BIT_CLEAR_XTAL_DIG_DRV(x) | BIT_XTAL_DIG_DRV(v))
  2677. #endif
  2678. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2679. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2680. #define BIT_XTAL_GMP_4 BIT(18)
  2681. #endif
  2682. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2683. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2684. #define BIT_XTAL_GATE_DIG BIT(17)
  2685. #endif
  2686. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2687. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2688. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2689. #define BIT_SHIFT_XTAL_DRV_AFE 17
  2690. #define BIT_MASK_XTAL_DRV_AFE 0x3
  2691. #define BIT_XTAL_DRV_AFE(x) \
  2692. (((x) & BIT_MASK_XTAL_DRV_AFE) << BIT_SHIFT_XTAL_DRV_AFE)
  2693. #define BITS_XTAL_DRV_AFE (BIT_MASK_XTAL_DRV_AFE << BIT_SHIFT_XTAL_DRV_AFE)
  2694. #define BIT_CLEAR_XTAL_DRV_AFE(x) ((x) & (~BITS_XTAL_DRV_AFE))
  2695. #define BIT_GET_XTAL_DRV_AFE(x) \
  2696. (((x) >> BIT_SHIFT_XTAL_DRV_AFE) & BIT_MASK_XTAL_DRV_AFE)
  2697. #define BIT_SET_XTAL_DRV_AFE(x, v) \
  2698. (BIT_CLEAR_XTAL_DRV_AFE(x) | BIT_XTAL_DRV_AFE(v))
  2699. #endif
  2700. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2701. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2702. HALMAC_8822C_SUPPORT)
  2703. /* 2 REG_SDIO_FREE_TXPG2 (Offset 0x10250024) */
  2704. #define BIT_SHIFT_PUB_FREEPG_V1 16
  2705. #define BIT_MASK_PUB_FREEPG_V1 0xfff
  2706. #define BIT_PUB_FREEPG_V1(x) \
  2707. (((x) & BIT_MASK_PUB_FREEPG_V1) << BIT_SHIFT_PUB_FREEPG_V1)
  2708. #define BITS_PUB_FREEPG_V1 (BIT_MASK_PUB_FREEPG_V1 << BIT_SHIFT_PUB_FREEPG_V1)
  2709. #define BIT_CLEAR_PUB_FREEPG_V1(x) ((x) & (~BITS_PUB_FREEPG_V1))
  2710. #define BIT_GET_PUB_FREEPG_V1(x) \
  2711. (((x) >> BIT_SHIFT_PUB_FREEPG_V1) & BIT_MASK_PUB_FREEPG_V1)
  2712. #define BIT_SET_PUB_FREEPG_V1(x, v) \
  2713. (BIT_CLEAR_PUB_FREEPG_V1(x) | BIT_PUB_FREEPG_V1(v))
  2714. #endif
  2715. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2716. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2717. #define BIT_SHIFT_XTAL_ADRV_1_TO_0 16
  2718. #define BIT_MASK_XTAL_ADRV_1_TO_0 0x3
  2719. #define BIT_XTAL_ADRV_1_TO_0(x) \
  2720. (((x) & BIT_MASK_XTAL_ADRV_1_TO_0) << BIT_SHIFT_XTAL_ADRV_1_TO_0)
  2721. #define BITS_XTAL_ADRV_1_TO_0 \
  2722. (BIT_MASK_XTAL_ADRV_1_TO_0 << BIT_SHIFT_XTAL_ADRV_1_TO_0)
  2723. #define BIT_CLEAR_XTAL_ADRV_1_TO_0(x) ((x) & (~BITS_XTAL_ADRV_1_TO_0))
  2724. #define BIT_GET_XTAL_ADRV_1_TO_0(x) \
  2725. (((x) >> BIT_SHIFT_XTAL_ADRV_1_TO_0) & BIT_MASK_XTAL_ADRV_1_TO_0)
  2726. #define BIT_SET_XTAL_ADRV_1_TO_0(x, v) \
  2727. (BIT_CLEAR_XTAL_ADRV_1_TO_0(x) | BIT_XTAL_ADRV_1_TO_0(v))
  2728. #endif
  2729. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2730. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2731. #define BIT_SHIFT_XTAL_RF_DRV 15
  2732. #define BIT_MASK_XTAL_RF_DRV 0x3
  2733. #define BIT_XTAL_RF_DRV(x) \
  2734. (((x) & BIT_MASK_XTAL_RF_DRV) << BIT_SHIFT_XTAL_RF_DRV)
  2735. #define BITS_XTAL_RF_DRV (BIT_MASK_XTAL_RF_DRV << BIT_SHIFT_XTAL_RF_DRV)
  2736. #define BIT_CLEAR_XTAL_RF_DRV(x) ((x) & (~BITS_XTAL_RF_DRV))
  2737. #define BIT_GET_XTAL_RF_DRV(x) \
  2738. (((x) >> BIT_SHIFT_XTAL_RF_DRV) & BIT_MASK_XTAL_RF_DRV)
  2739. #define BIT_SET_XTAL_RF_DRV(x, v) \
  2740. (BIT_CLEAR_XTAL_RF_DRV(x) | BIT_XTAL_RF_DRV(v))
  2741. #endif
  2742. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2743. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2744. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2745. #define BIT_SHIFT_XTAL_DRV_RF2 15
  2746. #define BIT_MASK_XTAL_DRV_RF2 0x3
  2747. #define BIT_XTAL_DRV_RF2(x) \
  2748. (((x) & BIT_MASK_XTAL_DRV_RF2) << BIT_SHIFT_XTAL_DRV_RF2)
  2749. #define BITS_XTAL_DRV_RF2 (BIT_MASK_XTAL_DRV_RF2 << BIT_SHIFT_XTAL_DRV_RF2)
  2750. #define BIT_CLEAR_XTAL_DRV_RF2(x) ((x) & (~BITS_XTAL_DRV_RF2))
  2751. #define BIT_GET_XTAL_DRV_RF2(x) \
  2752. (((x) >> BIT_SHIFT_XTAL_DRV_RF2) & BIT_MASK_XTAL_DRV_RF2)
  2753. #define BIT_SET_XTAL_DRV_RF2(x, v) \
  2754. (BIT_CLEAR_XTAL_DRV_RF2(x) | BIT_XTAL_DRV_RF2(v))
  2755. #endif
  2756. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2757. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2758. #define BIT_XTAL_GAFE BIT(15)
  2759. #endif
  2760. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2761. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2762. #define BIT_XTAL_RF_GATE BIT(14)
  2763. #endif
  2764. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2765. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2766. #define BIT_SHIFT_XTAL_DDRV_1_TO_0 13
  2767. #define BIT_MASK_XTAL_DDRV_1_TO_0 0x3
  2768. #define BIT_XTAL_DDRV_1_TO_0(x) \
  2769. (((x) & BIT_MASK_XTAL_DDRV_1_TO_0) << BIT_SHIFT_XTAL_DDRV_1_TO_0)
  2770. #define BITS_XTAL_DDRV_1_TO_0 \
  2771. (BIT_MASK_XTAL_DDRV_1_TO_0 << BIT_SHIFT_XTAL_DDRV_1_TO_0)
  2772. #define BIT_CLEAR_XTAL_DDRV_1_TO_0(x) ((x) & (~BITS_XTAL_DDRV_1_TO_0))
  2773. #define BIT_GET_XTAL_DDRV_1_TO_0(x) \
  2774. (((x) >> BIT_SHIFT_XTAL_DDRV_1_TO_0) & BIT_MASK_XTAL_DDRV_1_TO_0)
  2775. #define BIT_SET_XTAL_DDRV_1_TO_0(x, v) \
  2776. (BIT_CLEAR_XTAL_DDRV_1_TO_0(x) | BIT_XTAL_DDRV_1_TO_0(v))
  2777. #endif
  2778. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2779. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2780. #define BIT_SHIFT_XTAL_AFE_DRV 12
  2781. #define BIT_MASK_XTAL_AFE_DRV 0x3
  2782. #define BIT_XTAL_AFE_DRV(x) \
  2783. (((x) & BIT_MASK_XTAL_AFE_DRV) << BIT_SHIFT_XTAL_AFE_DRV)
  2784. #define BITS_XTAL_AFE_DRV (BIT_MASK_XTAL_AFE_DRV << BIT_SHIFT_XTAL_AFE_DRV)
  2785. #define BIT_CLEAR_XTAL_AFE_DRV(x) ((x) & (~BITS_XTAL_AFE_DRV))
  2786. #define BIT_GET_XTAL_AFE_DRV(x) \
  2787. (((x) >> BIT_SHIFT_XTAL_AFE_DRV) & BIT_MASK_XTAL_AFE_DRV)
  2788. #define BIT_SET_XTAL_AFE_DRV(x, v) \
  2789. (BIT_CLEAR_XTAL_AFE_DRV(x) | BIT_XTAL_AFE_DRV(v))
  2790. #endif
  2791. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2792. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2793. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2794. #define BIT_XTAL_DELAY_DIGI BIT(12)
  2795. #endif
  2796. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2797. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2798. #define BIT_XTAL_GUSB BIT(12)
  2799. #endif
  2800. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2801. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2802. #define BIT_XTAL_GATE_AFE BIT(11)
  2803. #endif
  2804. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2805. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2806. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2807. #define BIT_XTAL_DELAY_USB BIT(11)
  2808. #define BIT_XTAL_DELAY_AFE BIT(10)
  2809. #endif
  2810. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2811. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2812. #define BIT_SHIFT_XTAL_USB_DRV 9
  2813. #define BIT_MASK_XTAL_USB_DRV 0x3
  2814. #define BIT_XTAL_USB_DRV(x) \
  2815. (((x) & BIT_MASK_XTAL_USB_DRV) << BIT_SHIFT_XTAL_USB_DRV)
  2816. #define BITS_XTAL_USB_DRV (BIT_MASK_XTAL_USB_DRV << BIT_SHIFT_XTAL_USB_DRV)
  2817. #define BIT_CLEAR_XTAL_USB_DRV(x) ((x) & (~BITS_XTAL_USB_DRV))
  2818. #define BIT_GET_XTAL_USB_DRV(x) \
  2819. (((x) >> BIT_SHIFT_XTAL_USB_DRV) & BIT_MASK_XTAL_USB_DRV)
  2820. #define BIT_SET_XTAL_USB_DRV(x, v) \
  2821. (BIT_CLEAR_XTAL_USB_DRV(x) | BIT_XTAL_USB_DRV(v))
  2822. #endif
  2823. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2824. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2825. #define BIT_XTAL_LP_V1 BIT(9)
  2826. #endif
  2827. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2828. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2829. #define BIT_XTAL_GATE_USB BIT(8)
  2830. #endif
  2831. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2832. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2833. #define BIT_XTAL_GM_SEP_V1 BIT(8)
  2834. #endif
  2835. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2836. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2837. #define BIT_SHIFT_XTAL_GMN_3_TO_0 8
  2838. #define BIT_MASK_XTAL_GMN_3_TO_0 0xf
  2839. #define BIT_XTAL_GMN_3_TO_0(x) \
  2840. (((x) & BIT_MASK_XTAL_GMN_3_TO_0) << BIT_SHIFT_XTAL_GMN_3_TO_0)
  2841. #define BITS_XTAL_GMN_3_TO_0 \
  2842. (BIT_MASK_XTAL_GMN_3_TO_0 << BIT_SHIFT_XTAL_GMN_3_TO_0)
  2843. #define BIT_CLEAR_XTAL_GMN_3_TO_0(x) ((x) & (~BITS_XTAL_GMN_3_TO_0))
  2844. #define BIT_GET_XTAL_GMN_3_TO_0(x) \
  2845. (((x) >> BIT_SHIFT_XTAL_GMN_3_TO_0) & BIT_MASK_XTAL_GMN_3_TO_0)
  2846. #define BIT_SET_XTAL_GMN_3_TO_0(x, v) \
  2847. (BIT_CLEAR_XTAL_GMN_3_TO_0(x) | BIT_XTAL_GMN_3_TO_0(v))
  2848. #endif
  2849. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2850. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2851. #define BIT_XTAL_LDO_VREF_V1 BIT(7)
  2852. #endif
  2853. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2854. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2855. #define BIT_SHIFT_XTAL_LDO_VREF 7
  2856. #define BIT_MASK_XTAL_LDO_VREF 0x7
  2857. #define BIT_XTAL_LDO_VREF(x) \
  2858. (((x) & BIT_MASK_XTAL_LDO_VREF) << BIT_SHIFT_XTAL_LDO_VREF)
  2859. #define BITS_XTAL_LDO_VREF (BIT_MASK_XTAL_LDO_VREF << BIT_SHIFT_XTAL_LDO_VREF)
  2860. #define BIT_CLEAR_XTAL_LDO_VREF(x) ((x) & (~BITS_XTAL_LDO_VREF))
  2861. #define BIT_GET_XTAL_LDO_VREF(x) \
  2862. (((x) >> BIT_SHIFT_XTAL_LDO_VREF) & BIT_MASK_XTAL_LDO_VREF)
  2863. #define BIT_SET_XTAL_LDO_VREF(x, v) \
  2864. (BIT_CLEAR_XTAL_LDO_VREF(x) | BIT_XTAL_LDO_VREF(v))
  2865. #endif
  2866. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  2867. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2868. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2869. #define BIT_XTAL_XQSEL_RF BIT(6)
  2870. #define BIT_XTAL_XQSEL BIT(5)
  2871. #endif
  2872. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2873. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2874. #define BIT_SHIFT_XTAL_GMP 4
  2875. #define BIT_MASK_XTAL_GMP 0xf
  2876. #define BIT_XTAL_GMP(x) (((x) & BIT_MASK_XTAL_GMP) << BIT_SHIFT_XTAL_GMP)
  2877. #define BITS_XTAL_GMP (BIT_MASK_XTAL_GMP << BIT_SHIFT_XTAL_GMP)
  2878. #define BIT_CLEAR_XTAL_GMP(x) ((x) & (~BITS_XTAL_GMP))
  2879. #define BIT_GET_XTAL_GMP(x) (((x) >> BIT_SHIFT_XTAL_GMP) & BIT_MASK_XTAL_GMP)
  2880. #define BIT_SET_XTAL_GMP(x, v) (BIT_CLEAR_XTAL_GMP(x) | BIT_XTAL_GMP(v))
  2881. #endif
  2882. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2883. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2884. #define BIT_SHIFT_XTAL_GMP_3_TO_0 4
  2885. #define BIT_MASK_XTAL_GMP_3_TO_0 0xf
  2886. #define BIT_XTAL_GMP_3_TO_0(x) \
  2887. (((x) & BIT_MASK_XTAL_GMP_3_TO_0) << BIT_SHIFT_XTAL_GMP_3_TO_0)
  2888. #define BITS_XTAL_GMP_3_TO_0 \
  2889. (BIT_MASK_XTAL_GMP_3_TO_0 << BIT_SHIFT_XTAL_GMP_3_TO_0)
  2890. #define BIT_CLEAR_XTAL_GMP_3_TO_0(x) ((x) & (~BITS_XTAL_GMP_3_TO_0))
  2891. #define BIT_GET_XTAL_GMP_3_TO_0(x) \
  2892. (((x) >> BIT_SHIFT_XTAL_GMP_3_TO_0) & BIT_MASK_XTAL_GMP_3_TO_0)
  2893. #define BIT_SET_XTAL_GMP_3_TO_0(x, v) \
  2894. (BIT_CLEAR_XTAL_GMP_3_TO_0(x) | BIT_XTAL_GMP_3_TO_0(v))
  2895. #endif
  2896. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2897. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2898. #define BIT_SHIFT_XTAL_GMN_V2 3
  2899. #define BIT_MASK_XTAL_GMN_V2 0x3
  2900. #define BIT_XTAL_GMN_V2(x) \
  2901. (((x) & BIT_MASK_XTAL_GMN_V2) << BIT_SHIFT_XTAL_GMN_V2)
  2902. #define BITS_XTAL_GMN_V2 (BIT_MASK_XTAL_GMN_V2 << BIT_SHIFT_XTAL_GMN_V2)
  2903. #define BIT_CLEAR_XTAL_GMN_V2(x) ((x) & (~BITS_XTAL_GMN_V2))
  2904. #define BIT_GET_XTAL_GMN_V2(x) \
  2905. (((x) >> BIT_SHIFT_XTAL_GMN_V2) & BIT_MASK_XTAL_GMN_V2)
  2906. #define BIT_SET_XTAL_GMN_V2(x, v) \
  2907. (BIT_CLEAR_XTAL_GMN_V2(x) | BIT_XTAL_GMN_V2(v))
  2908. #endif
  2909. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2910. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2911. #define BIT_SHIFT_XTAL_GMN_V1 3
  2912. #define BIT_MASK_XTAL_GMN_V1 0x3
  2913. #define BIT_XTAL_GMN_V1(x) \
  2914. (((x) & BIT_MASK_XTAL_GMN_V1) << BIT_SHIFT_XTAL_GMN_V1)
  2915. #define BITS_XTAL_GMN_V1 (BIT_MASK_XTAL_GMN_V1 << BIT_SHIFT_XTAL_GMN_V1)
  2916. #define BIT_CLEAR_XTAL_GMN_V1(x) ((x) & (~BITS_XTAL_GMN_V1))
  2917. #define BIT_GET_XTAL_GMN_V1(x) \
  2918. (((x) >> BIT_SHIFT_XTAL_GMN_V1) & BIT_MASK_XTAL_GMN_V1)
  2919. #define BIT_SET_XTAL_GMN_V1(x, v) \
  2920. (BIT_CLEAR_XTAL_GMN_V1(x) | BIT_XTAL_GMN_V1(v))
  2921. #endif
  2922. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  2923. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2924. #define BIT_SHIFT_XTAL_LDO_VCM 2
  2925. #define BIT_MASK_XTAL_LDO_VCM 0x3
  2926. #define BIT_XTAL_LDO_VCM(x) \
  2927. (((x) & BIT_MASK_XTAL_LDO_VCM) << BIT_SHIFT_XTAL_LDO_VCM)
  2928. #define BITS_XTAL_LDO_VCM (BIT_MASK_XTAL_LDO_VCM << BIT_SHIFT_XTAL_LDO_VCM)
  2929. #define BIT_CLEAR_XTAL_LDO_VCM(x) ((x) & (~BITS_XTAL_LDO_VCM))
  2930. #define BIT_GET_XTAL_LDO_VCM(x) \
  2931. (((x) >> BIT_SHIFT_XTAL_LDO_VCM) & BIT_MASK_XTAL_LDO_VCM)
  2932. #define BIT_SET_XTAL_LDO_VCM(x, v) \
  2933. (BIT_CLEAR_XTAL_LDO_VCM(x) | BIT_XTAL_LDO_VCM(v))
  2934. #endif
  2935. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  2936. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2937. #define BIT_SHIFT_DRV_LDO_VCM_1_TO_0 2
  2938. #define BIT_MASK_DRV_LDO_VCM_1_TO_0 0x3
  2939. #define BIT_DRV_LDO_VCM_1_TO_0(x) \
  2940. (((x) & BIT_MASK_DRV_LDO_VCM_1_TO_0) << BIT_SHIFT_DRV_LDO_VCM_1_TO_0)
  2941. #define BITS_DRV_LDO_VCM_1_TO_0 \
  2942. (BIT_MASK_DRV_LDO_VCM_1_TO_0 << BIT_SHIFT_DRV_LDO_VCM_1_TO_0)
  2943. #define BIT_CLEAR_DRV_LDO_VCM_1_TO_0(x) ((x) & (~BITS_DRV_LDO_VCM_1_TO_0))
  2944. #define BIT_GET_DRV_LDO_VCM_1_TO_0(x) \
  2945. (((x) >> BIT_SHIFT_DRV_LDO_VCM_1_TO_0) & BIT_MASK_DRV_LDO_VCM_1_TO_0)
  2946. #define BIT_SET_DRV_LDO_VCM_1_TO_0(x, v) \
  2947. (BIT_CLEAR_DRV_LDO_VCM_1_TO_0(x) | BIT_DRV_LDO_VCM_1_TO_0(v))
  2948. #endif
  2949. #if (HALMAC_8192E_SUPPORT)
  2950. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2951. #define BIT_XTAL_DUMMY BIT(1)
  2952. #endif
  2953. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  2954. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2955. #define BIT_SHIFT_XTAL_GMP_V2 1
  2956. #define BIT_MASK_XTAL_GMP_V2 0x3
  2957. #define BIT_XTAL_GMP_V2(x) \
  2958. (((x) & BIT_MASK_XTAL_GMP_V2) << BIT_SHIFT_XTAL_GMP_V2)
  2959. #define BITS_XTAL_GMP_V2 (BIT_MASK_XTAL_GMP_V2 << BIT_SHIFT_XTAL_GMP_V2)
  2960. #define BIT_CLEAR_XTAL_GMP_V2(x) ((x) & (~BITS_XTAL_GMP_V2))
  2961. #define BIT_GET_XTAL_GMP_V2(x) \
  2962. (((x) >> BIT_SHIFT_XTAL_GMP_V2) & BIT_MASK_XTAL_GMP_V2)
  2963. #define BIT_SET_XTAL_GMP_V2(x, v) \
  2964. (BIT_CLEAR_XTAL_GMP_V2(x) | BIT_XTAL_GMP_V2(v))
  2965. #endif
  2966. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  2967. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2968. #define BIT_SHIFT_XTAL_GMP_V1 1
  2969. #define BIT_MASK_XTAL_GMP_V1 0x3
  2970. #define BIT_XTAL_GMP_V1(x) \
  2971. (((x) & BIT_MASK_XTAL_GMP_V1) << BIT_SHIFT_XTAL_GMP_V1)
  2972. #define BITS_XTAL_GMP_V1 (BIT_MASK_XTAL_GMP_V1 << BIT_SHIFT_XTAL_GMP_V1)
  2973. #define BIT_CLEAR_XTAL_GMP_V1(x) ((x) & (~BITS_XTAL_GMP_V1))
  2974. #define BIT_GET_XTAL_GMP_V1(x) \
  2975. (((x) >> BIT_SHIFT_XTAL_GMP_V1) & BIT_MASK_XTAL_GMP_V1)
  2976. #define BIT_SET_XTAL_GMP_V1(x, v) \
  2977. (BIT_CLEAR_XTAL_GMP_V1(x) | BIT_XTAL_GMP_V1(v))
  2978. #endif
  2979. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  2980. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2981. #define BIT_XQSEL_RF_INITIAL_V1 BIT(1)
  2982. #endif
  2983. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  2984. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2985. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  2986. /* 2 REG_AFE_CTRL1 (Offset 0x0024) */
  2987. #define BIT_XTAL_EN BIT(0)
  2988. #endif
  2989. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  2990. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  2991. HALMAC_8822C_SUPPORT)
  2992. /* 2 REG_SDIO_FREE_TXPG2 (Offset 0x10250024) */
  2993. #define BIT_SHIFT_LOW_FREEPG_V1 0
  2994. #define BIT_MASK_LOW_FREEPG_V1 0xfff
  2995. #define BIT_LOW_FREEPG_V1(x) \
  2996. (((x) & BIT_MASK_LOW_FREEPG_V1) << BIT_SHIFT_LOW_FREEPG_V1)
  2997. #define BITS_LOW_FREEPG_V1 (BIT_MASK_LOW_FREEPG_V1 << BIT_SHIFT_LOW_FREEPG_V1)
  2998. #define BIT_CLEAR_LOW_FREEPG_V1(x) ((x) & (~BITS_LOW_FREEPG_V1))
  2999. #define BIT_GET_LOW_FREEPG_V1(x) \
  3000. (((x) >> BIT_SHIFT_LOW_FREEPG_V1) & BIT_MASK_LOW_FREEPG_V1)
  3001. #define BIT_SET_LOW_FREEPG_V1(x, v) \
  3002. (BIT_CLEAR_LOW_FREEPG_V1(x) | BIT_LOW_FREEPG_V1(v))
  3003. #endif
  3004. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3005. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3006. #define BIT_SHIFT_REG_C3_V4 30
  3007. #define BIT_MASK_REG_C3_V4 0x3
  3008. #define BIT_REG_C3_V4(x) (((x) & BIT_MASK_REG_C3_V4) << BIT_SHIFT_REG_C3_V4)
  3009. #define BITS_REG_C3_V4 (BIT_MASK_REG_C3_V4 << BIT_SHIFT_REG_C3_V4)
  3010. #define BIT_CLEAR_REG_C3_V4(x) ((x) & (~BITS_REG_C3_V4))
  3011. #define BIT_GET_REG_C3_V4(x) (((x) >> BIT_SHIFT_REG_C3_V4) & BIT_MASK_REG_C3_V4)
  3012. #define BIT_SET_REG_C3_V4(x, v) (BIT_CLEAR_REG_C3_V4(x) | BIT_REG_C3_V4(v))
  3013. #define BIT_REG_CP_BIT1 BIT(29)
  3014. #endif
  3015. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3016. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3017. #define BIT_SHIFT_XTAL_GMN 28
  3018. #define BIT_MASK_XTAL_GMN 0xf
  3019. #define BIT_XTAL_GMN(x) (((x) & BIT_MASK_XTAL_GMN) << BIT_SHIFT_XTAL_GMN)
  3020. #define BITS_XTAL_GMN (BIT_MASK_XTAL_GMN << BIT_SHIFT_XTAL_GMN)
  3021. #define BIT_CLEAR_XTAL_GMN(x) ((x) & (~BITS_XTAL_GMN))
  3022. #define BIT_GET_XTAL_GMN(x) (((x) >> BIT_SHIFT_XTAL_GMN) & BIT_MASK_XTAL_GMN)
  3023. #define BIT_SET_XTAL_GMN(x, v) (BIT_CLEAR_XTAL_GMN(x) | BIT_XTAL_GMN(v))
  3024. #endif
  3025. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3026. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3027. #define BIT_SHIFT_IOOFFSET_3_TO_0 28
  3028. #define BIT_MASK_IOOFFSET_3_TO_0 0xf
  3029. #define BIT_IOOFFSET_3_TO_0(x) \
  3030. (((x) & BIT_MASK_IOOFFSET_3_TO_0) << BIT_SHIFT_IOOFFSET_3_TO_0)
  3031. #define BITS_IOOFFSET_3_TO_0 \
  3032. (BIT_MASK_IOOFFSET_3_TO_0 << BIT_SHIFT_IOOFFSET_3_TO_0)
  3033. #define BIT_CLEAR_IOOFFSET_3_TO_0(x) ((x) & (~BITS_IOOFFSET_3_TO_0))
  3034. #define BIT_GET_IOOFFSET_3_TO_0(x) \
  3035. (((x) >> BIT_SHIFT_IOOFFSET_3_TO_0) & BIT_MASK_IOOFFSET_3_TO_0)
  3036. #define BIT_SET_IOOFFSET_3_TO_0(x, v) \
  3037. (BIT_CLEAR_IOOFFSET_3_TO_0(x) | BIT_IOOFFSET_3_TO_0(v))
  3038. #define BIT_REG_FREF_SEL_BIT3_V1 BIT(27)
  3039. #endif
  3040. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3041. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3042. #define BIT_SHIFT_REG_VO_AD 26
  3043. #define BIT_MASK_REG_VO_AD 0x3
  3044. #define BIT_REG_VO_AD(x) (((x) & BIT_MASK_REG_VO_AD) << BIT_SHIFT_REG_VO_AD)
  3045. #define BITS_REG_VO_AD (BIT_MASK_REG_VO_AD << BIT_SHIFT_REG_VO_AD)
  3046. #define BIT_CLEAR_REG_VO_AD(x) ((x) & (~BITS_REG_VO_AD))
  3047. #define BIT_GET_REG_VO_AD(x) (((x) >> BIT_SHIFT_REG_VO_AD) & BIT_MASK_REG_VO_AD)
  3048. #define BIT_SET_REG_VO_AD(x, v) (BIT_CLEAR_REG_VO_AD(x) | BIT_REG_VO_AD(v))
  3049. #endif
  3050. #if (HALMAC_8192F_SUPPORT)
  3051. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3052. #define BIT_SHIFT_RS_SET 26
  3053. #define BIT_MASK_RS_SET 0x7
  3054. #define BIT_RS_SET(x) (((x) & BIT_MASK_RS_SET) << BIT_SHIFT_RS_SET)
  3055. #define BITS_RS_SET (BIT_MASK_RS_SET << BIT_SHIFT_RS_SET)
  3056. #define BIT_CLEAR_RS_SET(x) ((x) & (~BITS_RS_SET))
  3057. #define BIT_GET_RS_SET(x) (((x) >> BIT_SHIFT_RS_SET) & BIT_MASK_RS_SET)
  3058. #define BIT_SET_RS_SET(x, v) (BIT_CLEAR_RS_SET(x) | BIT_RS_SET(v))
  3059. #endif
  3060. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3061. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3062. #define BIT_SHIFT_RS_SET_V2 26
  3063. #define BIT_MASK_RS_SET_V2 0x7
  3064. #define BIT_RS_SET_V2(x) (((x) & BIT_MASK_RS_SET_V2) << BIT_SHIFT_RS_SET_V2)
  3065. #define BITS_RS_SET_V2 (BIT_MASK_RS_SET_V2 << BIT_SHIFT_RS_SET_V2)
  3066. #define BIT_CLEAR_RS_SET_V2(x) ((x) & (~BITS_RS_SET_V2))
  3067. #define BIT_GET_RS_SET_V2(x) (((x) >> BIT_SHIFT_RS_SET_V2) & BIT_MASK_RS_SET_V2)
  3068. #define BIT_SET_RS_SET_V2(x, v) (BIT_CLEAR_RS_SET_V2(x) | BIT_RS_SET_V2(v))
  3069. #endif
  3070. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3071. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3072. #define BIT_SHIFT_REG_RS_V4 26
  3073. #define BIT_MASK_REG_RS_V4 0x7
  3074. #define BIT_REG_RS_V4(x) (((x) & BIT_MASK_REG_RS_V4) << BIT_SHIFT_REG_RS_V4)
  3075. #define BITS_REG_RS_V4 (BIT_MASK_REG_RS_V4 << BIT_SHIFT_REG_RS_V4)
  3076. #define BIT_CLEAR_REG_RS_V4(x) ((x) & (~BITS_REG_RS_V4))
  3077. #define BIT_GET_REG_RS_V4(x) (((x) >> BIT_SHIFT_REG_RS_V4) & BIT_MASK_REG_RS_V4)
  3078. #define BIT_SET_REG_RS_V4(x, v) (BIT_CLEAR_REG_RS_V4(x) | BIT_REG_RS_V4(v))
  3079. #endif
  3080. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3081. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3082. #define BIT_SHIFT_V12ADJ_V1 25
  3083. #define BIT_MASK_V12ADJ_V1 0x3
  3084. #define BIT_V12ADJ_V1(x) (((x) & BIT_MASK_V12ADJ_V1) << BIT_SHIFT_V12ADJ_V1)
  3085. #define BITS_V12ADJ_V1 (BIT_MASK_V12ADJ_V1 << BIT_SHIFT_V12ADJ_V1)
  3086. #define BIT_CLEAR_V12ADJ_V1(x) ((x) & (~BITS_V12ADJ_V1))
  3087. #define BIT_GET_V12ADJ_V1(x) (((x) >> BIT_SHIFT_V12ADJ_V1) & BIT_MASK_V12ADJ_V1)
  3088. #define BIT_SET_V12ADJ_V1(x, v) (BIT_CLEAR_V12ADJ_V1(x) | BIT_V12ADJ_V1(v))
  3089. #endif
  3090. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  3091. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  3092. HALMAC_8822C_SUPPORT)
  3093. /* 2 REG_SDIO_OQT_FREE_TXPG_V1 (Offset 0x10250028) */
  3094. #define BIT_SHIFT_NOAC_OQT_FREEPG_V1 24
  3095. #define BIT_MASK_NOAC_OQT_FREEPG_V1 0xff
  3096. #define BIT_NOAC_OQT_FREEPG_V1(x) \
  3097. (((x) & BIT_MASK_NOAC_OQT_FREEPG_V1) << BIT_SHIFT_NOAC_OQT_FREEPG_V1)
  3098. #define BITS_NOAC_OQT_FREEPG_V1 \
  3099. (BIT_MASK_NOAC_OQT_FREEPG_V1 << BIT_SHIFT_NOAC_OQT_FREEPG_V1)
  3100. #define BIT_CLEAR_NOAC_OQT_FREEPG_V1(x) ((x) & (~BITS_NOAC_OQT_FREEPG_V1))
  3101. #define BIT_GET_NOAC_OQT_FREEPG_V1(x) \
  3102. (((x) >> BIT_SHIFT_NOAC_OQT_FREEPG_V1) & BIT_MASK_NOAC_OQT_FREEPG_V1)
  3103. #define BIT_SET_NOAC_OQT_FREEPG_V1(x, v) \
  3104. (BIT_CLEAR_NOAC_OQT_FREEPG_V1(x) | BIT_NOAC_OQT_FREEPG_V1(v))
  3105. #endif
  3106. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3107. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3108. #define BIT_PS_EN BIT(24)
  3109. #endif
  3110. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3111. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3112. #define BIT_SHIFT_REG__CS 24
  3113. #define BIT_MASK_REG__CS 0x3
  3114. #define BIT_REG__CS(x) (((x) & BIT_MASK_REG__CS) << BIT_SHIFT_REG__CS)
  3115. #define BITS_REG__CS (BIT_MASK_REG__CS << BIT_SHIFT_REG__CS)
  3116. #define BIT_CLEAR_REG__CS(x) ((x) & (~BITS_REG__CS))
  3117. #define BIT_GET_REG__CS(x) (((x) >> BIT_SHIFT_REG__CS) & BIT_MASK_REG__CS)
  3118. #define BIT_SET_REG__CS(x, v) (BIT_CLEAR_REG__CS(x) | BIT_REG__CS(v))
  3119. #endif
  3120. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3121. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3122. #define BIT_EN_CK320M_V1 BIT(23)
  3123. #define BIT_AGPIO BIT(22)
  3124. #define BIT_REG_EDGE_SEL_V1 BIT(21)
  3125. #endif
  3126. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3127. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3128. #define BIT_SHIFT_REG_CP_OFFSET 21
  3129. #define BIT_MASK_REG_CP_OFFSET 0x7
  3130. #define BIT_REG_CP_OFFSET(x) \
  3131. (((x) & BIT_MASK_REG_CP_OFFSET) << BIT_SHIFT_REG_CP_OFFSET)
  3132. #define BITS_REG_CP_OFFSET (BIT_MASK_REG_CP_OFFSET << BIT_SHIFT_REG_CP_OFFSET)
  3133. #define BIT_CLEAR_REG_CP_OFFSET(x) ((x) & (~BITS_REG_CP_OFFSET))
  3134. #define BIT_GET_REG_CP_OFFSET(x) \
  3135. (((x) >> BIT_SHIFT_REG_CP_OFFSET) & BIT_MASK_REG_CP_OFFSET)
  3136. #define BIT_SET_REG_CP_OFFSET(x, v) \
  3137. (BIT_CLEAR_REG_CP_OFFSET(x) | BIT_REG_CP_OFFSET(v))
  3138. #endif
  3139. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3140. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3141. #define BIT_REG_VCO_BIAS_0 BIT(20)
  3142. #endif
  3143. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3144. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3145. #define BIT_SHIFT_CP_BIAS 18
  3146. #define BIT_MASK_CP_BIAS 0x7
  3147. #define BIT_CP_BIAS(x) (((x) & BIT_MASK_CP_BIAS) << BIT_SHIFT_CP_BIAS)
  3148. #define BITS_CP_BIAS (BIT_MASK_CP_BIAS << BIT_SHIFT_CP_BIAS)
  3149. #define BIT_CLEAR_CP_BIAS(x) ((x) & (~BITS_CP_BIAS))
  3150. #define BIT_GET_CP_BIAS(x) (((x) >> BIT_SHIFT_CP_BIAS) & BIT_MASK_CP_BIAS)
  3151. #define BIT_SET_CP_BIAS(x, v) (BIT_CLEAR_CP_BIAS(x) | BIT_CP_BIAS(v))
  3152. #endif
  3153. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3154. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3155. #define BIT_SHIFT_CP_BIAS_V2 18
  3156. #define BIT_MASK_CP_BIAS_V2 0x7
  3157. #define BIT_CP_BIAS_V2(x) (((x) & BIT_MASK_CP_BIAS_V2) << BIT_SHIFT_CP_BIAS_V2)
  3158. #define BITS_CP_BIAS_V2 (BIT_MASK_CP_BIAS_V2 << BIT_SHIFT_CP_BIAS_V2)
  3159. #define BIT_CLEAR_CP_BIAS_V2(x) ((x) & (~BITS_CP_BIAS_V2))
  3160. #define BIT_GET_CP_BIAS_V2(x) \
  3161. (((x) >> BIT_SHIFT_CP_BIAS_V2) & BIT_MASK_CP_BIAS_V2)
  3162. #define BIT_SET_CP_BIAS_V2(x, v) (BIT_CLEAR_CP_BIAS_V2(x) | BIT_CP_BIAS_V2(v))
  3163. #endif
  3164. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3165. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3166. #define BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1 17
  3167. #define BIT_MASK_REG_PLLBIAS_2_TO_0_V1 0x7
  3168. #define BIT_REG_PLLBIAS_2_TO_0_V1(x) \
  3169. (((x) & BIT_MASK_REG_PLLBIAS_2_TO_0_V1) \
  3170. << BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1)
  3171. #define BITS_REG_PLLBIAS_2_TO_0_V1 \
  3172. (BIT_MASK_REG_PLLBIAS_2_TO_0_V1 << BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1)
  3173. #define BIT_CLEAR_REG_PLLBIAS_2_TO_0_V1(x) ((x) & (~BITS_REG_PLLBIAS_2_TO_0_V1))
  3174. #define BIT_GET_REG_PLLBIAS_2_TO_0_V1(x) \
  3175. (((x) >> BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1) & \
  3176. BIT_MASK_REG_PLLBIAS_2_TO_0_V1)
  3177. #define BIT_SET_REG_PLLBIAS_2_TO_0_V1(x, v) \
  3178. (BIT_CLEAR_REG_PLLBIAS_2_TO_0_V1(x) | BIT_REG_PLLBIAS_2_TO_0_V1(v))
  3179. #endif
  3180. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3181. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3182. #define BIT_REG_IDOUBLE_V2 BIT(17)
  3183. #endif
  3184. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3185. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3186. #define BIT_FREF_SEL BIT(16)
  3187. #endif
  3188. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3189. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  3190. /* 2 REG_SDIO_OQT_FREE_TXPG_V1 (Offset 0x10250028) */
  3191. #define BIT_SHIFT_AC_OQT_FREEPG_V1 16
  3192. #define BIT_MASK_AC_OQT_FREEPG_V1 0xff
  3193. #define BIT_AC_OQT_FREEPG_V1(x) \
  3194. (((x) & BIT_MASK_AC_OQT_FREEPG_V1) << BIT_SHIFT_AC_OQT_FREEPG_V1)
  3195. #define BITS_AC_OQT_FREEPG_V1 \
  3196. (BIT_MASK_AC_OQT_FREEPG_V1 << BIT_SHIFT_AC_OQT_FREEPG_V1)
  3197. #define BIT_CLEAR_AC_OQT_FREEPG_V1(x) ((x) & (~BITS_AC_OQT_FREEPG_V1))
  3198. #define BIT_GET_AC_OQT_FREEPG_V1(x) \
  3199. (((x) >> BIT_SHIFT_AC_OQT_FREEPG_V1) & BIT_MASK_AC_OQT_FREEPG_V1)
  3200. #define BIT_SET_AC_OQT_FREEPG_V1(x, v) \
  3201. (BIT_CLEAR_AC_OQT_FREEPG_V1(x) | BIT_AC_OQT_FREEPG_V1(v))
  3202. #endif
  3203. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3204. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3205. #define BIT_REG_IDOUBLE_V1 BIT(16)
  3206. #define BIT_SHIFT_AC_OQT__FREEPG_V1 16
  3207. #define BIT_MASK_AC_OQT__FREEPG_V1 0xff
  3208. #define BIT_AC_OQT__FREEPG_V1(x) \
  3209. (((x) & BIT_MASK_AC_OQT__FREEPG_V1) << BIT_SHIFT_AC_OQT__FREEPG_V1)
  3210. #define BITS_AC_OQT__FREEPG_V1 \
  3211. (BIT_MASK_AC_OQT__FREEPG_V1 << BIT_SHIFT_AC_OQT__FREEPG_V1)
  3212. #define BIT_CLEAR_AC_OQT__FREEPG_V1(x) ((x) & (~BITS_AC_OQT__FREEPG_V1))
  3213. #define BIT_GET_AC_OQT__FREEPG_V1(x) \
  3214. (((x) >> BIT_SHIFT_AC_OQT__FREEPG_V1) & BIT_MASK_AC_OQT__FREEPG_V1)
  3215. #define BIT_SET_AC_OQT__FREEPG_V1(x, v) \
  3216. (BIT_CLEAR_AC_OQT__FREEPG_V1(x) | BIT_AC_OQT__FREEPG_V1(v))
  3217. #endif
  3218. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3219. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3220. #define BIT_EN_SYN BIT(16)
  3221. #endif
  3222. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3223. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3224. #define BIT_REG_KVCO_V1 BIT(15)
  3225. #endif
  3226. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3227. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3228. #define BIT_APLL_320_GATEB BIT(14)
  3229. #endif
  3230. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3231. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3232. #define BIT_SHIFT_MCCO 14
  3233. #define BIT_MASK_MCCO 0x3
  3234. #define BIT_MCCO(x) (((x) & BIT_MASK_MCCO) << BIT_SHIFT_MCCO)
  3235. #define BITS_MCCO (BIT_MASK_MCCO << BIT_SHIFT_MCCO)
  3236. #define BIT_CLEAR_MCCO(x) ((x) & (~BITS_MCCO))
  3237. #define BIT_GET_MCCO(x) (((x) >> BIT_SHIFT_MCCO) & BIT_MASK_MCCO)
  3238. #define BIT_SET_MCCO(x, v) (BIT_CLEAR_MCCO(x) | BIT_MCCO(v))
  3239. #endif
  3240. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3241. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3242. #define BIT_SHIFT_MCCO_V2 14
  3243. #define BIT_MASK_MCCO_V2 0x3
  3244. #define BIT_MCCO_V2(x) (((x) & BIT_MASK_MCCO_V2) << BIT_SHIFT_MCCO_V2)
  3245. #define BITS_MCCO_V2 (BIT_MASK_MCCO_V2 << BIT_SHIFT_MCCO_V2)
  3246. #define BIT_CLEAR_MCCO_V2(x) ((x) & (~BITS_MCCO_V2))
  3247. #define BIT_GET_MCCO_V2(x) (((x) >> BIT_SHIFT_MCCO_V2) & BIT_MASK_MCCO_V2)
  3248. #define BIT_SET_MCCO_V2(x, v) (BIT_CLEAR_MCCO_V2(x) | BIT_MCCO_V2(v))
  3249. #endif
  3250. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3251. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3252. #define BIT_REG_VCO_BIAS_1_V1 BIT(14)
  3253. #define BIT_REG_DOGB_V1 BIT(13)
  3254. #endif
  3255. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3256. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3257. #define BIT_SHIFT_CK320_EN 12
  3258. #define BIT_MASK_CK320_EN 0x3
  3259. #define BIT_CK320_EN(x) (((x) & BIT_MASK_CK320_EN) << BIT_SHIFT_CK320_EN)
  3260. #define BITS_CK320_EN (BIT_MASK_CK320_EN << BIT_SHIFT_CK320_EN)
  3261. #define BIT_CLEAR_CK320_EN(x) ((x) & (~BITS_CK320_EN))
  3262. #define BIT_GET_CK320_EN(x) (((x) >> BIT_SHIFT_CK320_EN) & BIT_MASK_CK320_EN)
  3263. #define BIT_SET_CK320_EN(x, v) (BIT_CLEAR_CK320_EN(x) | BIT_CK320_EN(v))
  3264. #endif
  3265. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3266. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3267. #define BIT_SHIFT_REG_LDO_SEL 12
  3268. #define BIT_MASK_REG_LDO_SEL 0x3
  3269. #define BIT_REG_LDO_SEL(x) \
  3270. (((x) & BIT_MASK_REG_LDO_SEL) << BIT_SHIFT_REG_LDO_SEL)
  3271. #define BITS_REG_LDO_SEL (BIT_MASK_REG_LDO_SEL << BIT_SHIFT_REG_LDO_SEL)
  3272. #define BIT_CLEAR_REG_LDO_SEL(x) ((x) & (~BITS_REG_LDO_SEL))
  3273. #define BIT_GET_REG_LDO_SEL(x) \
  3274. (((x) >> BIT_SHIFT_REG_LDO_SEL) & BIT_MASK_REG_LDO_SEL)
  3275. #define BIT_SET_REG_LDO_SEL(x, v) \
  3276. (BIT_CLEAR_REG_LDO_SEL(x) | BIT_REG_LDO_SEL(v))
  3277. #define BIT_REG_KVCO_V2 BIT(10)
  3278. #endif
  3279. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3280. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3281. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3282. #define BIT_AGPIO_GPO BIT(9)
  3283. #endif
  3284. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3285. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3286. #define BIT_SHIFT_APLL_BIAS 8
  3287. #define BIT_MASK_APLL_BIAS 0x7
  3288. #define BIT_APLL_BIAS(x) (((x) & BIT_MASK_APLL_BIAS) << BIT_SHIFT_APLL_BIAS)
  3289. #define BITS_APLL_BIAS (BIT_MASK_APLL_BIAS << BIT_SHIFT_APLL_BIAS)
  3290. #define BIT_CLEAR_APLL_BIAS(x) ((x) & (~BITS_APLL_BIAS))
  3291. #define BIT_GET_APLL_BIAS(x) (((x) >> BIT_SHIFT_APLL_BIAS) & BIT_MASK_APLL_BIAS)
  3292. #define BIT_SET_APLL_BIAS(x, v) (BIT_CLEAR_APLL_BIAS(x) | BIT_APLL_BIAS(v))
  3293. #endif
  3294. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3295. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3296. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3297. #define BIT_SHIFT_AGPIO_DRV 7
  3298. #define BIT_MASK_AGPIO_DRV 0x3
  3299. #define BIT_AGPIO_DRV(x) (((x) & BIT_MASK_AGPIO_DRV) << BIT_SHIFT_AGPIO_DRV)
  3300. #define BITS_AGPIO_DRV (BIT_MASK_AGPIO_DRV << BIT_SHIFT_AGPIO_DRV)
  3301. #define BIT_CLEAR_AGPIO_DRV(x) ((x) & (~BITS_AGPIO_DRV))
  3302. #define BIT_GET_AGPIO_DRV(x) (((x) >> BIT_SHIFT_AGPIO_DRV) & BIT_MASK_AGPIO_DRV)
  3303. #define BIT_SET_AGPIO_DRV(x, v) (BIT_CLEAR_AGPIO_DRV(x) | BIT_AGPIO_DRV(v))
  3304. #endif
  3305. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3306. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3307. #define BIT_SHIFT_REG_V15_3_TO_0_V1 7
  3308. #define BIT_MASK_REG_V15_3_TO_0_V1 0xf
  3309. #define BIT_REG_V15_3_TO_0_V1(x) \
  3310. (((x) & BIT_MASK_REG_V15_3_TO_0_V1) << BIT_SHIFT_REG_V15_3_TO_0_V1)
  3311. #define BITS_REG_V15_3_TO_0_V1 \
  3312. (BIT_MASK_REG_V15_3_TO_0_V1 << BIT_SHIFT_REG_V15_3_TO_0_V1)
  3313. #define BIT_CLEAR_REG_V15_3_TO_0_V1(x) ((x) & (~BITS_REG_V15_3_TO_0_V1))
  3314. #define BIT_GET_REG_V15_3_TO_0_V1(x) \
  3315. (((x) >> BIT_SHIFT_REG_V15_3_TO_0_V1) & BIT_MASK_REG_V15_3_TO_0_V1)
  3316. #define BIT_SET_REG_V15_3_TO_0_V1(x, v) \
  3317. (BIT_CLEAR_REG_V15_3_TO_0_V1(x) | BIT_REG_V15_3_TO_0_V1(v))
  3318. #endif
  3319. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3320. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3321. #define BIT_APLL_KVCO BIT(6)
  3322. #endif
  3323. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3324. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3325. #define BIT_REG_SEL_LDO_PC BIT(6)
  3326. #endif
  3327. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3328. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3329. #define BIT_APLL_WDOGB BIT(4)
  3330. #endif
  3331. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3332. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3333. #define BIT_SHIFT_REG_CC_1_TO_0_V1 4
  3334. #define BIT_MASK_REG_CC_1_TO_0_V1 0x3
  3335. #define BIT_REG_CC_1_TO_0_V1(x) \
  3336. (((x) & BIT_MASK_REG_CC_1_TO_0_V1) << BIT_SHIFT_REG_CC_1_TO_0_V1)
  3337. #define BITS_REG_CC_1_TO_0_V1 \
  3338. (BIT_MASK_REG_CC_1_TO_0_V1 << BIT_SHIFT_REG_CC_1_TO_0_V1)
  3339. #define BIT_CLEAR_REG_CC_1_TO_0_V1(x) ((x) & (~BITS_REG_CC_1_TO_0_V1))
  3340. #define BIT_GET_REG_CC_1_TO_0_V1(x) \
  3341. (((x) >> BIT_SHIFT_REG_CC_1_TO_0_V1) & BIT_MASK_REG_CC_1_TO_0_V1)
  3342. #define BIT_SET_REG_CC_1_TO_0_V1(x, v) \
  3343. (BIT_CLEAR_REG_CC_1_TO_0_V1(x) | BIT_REG_CC_1_TO_0_V1(v))
  3344. #endif
  3345. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3346. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3347. #define BIT_APLL_EDGE_SEL BIT(3)
  3348. #endif
  3349. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3350. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3351. #define BIT_CKDELAY_USB_V1 BIT(3)
  3352. #endif
  3353. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3354. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3355. #define BIT_APLL_FREF_SEL_BIT0 BIT(2)
  3356. #endif
  3357. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3358. /* 2 REG_ANAPARSW_POW_MAC (Offset 0x0028) */
  3359. #define BIT_POW_LDO15 BIT(2)
  3360. #endif
  3361. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3362. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3363. #define BIT_CKDELAY_DIG_V1 BIT(2)
  3364. #endif
  3365. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3367. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3368. #define BIT_SHIFT_XTAL_CAP_XO 1
  3369. #define BIT_MASK_XTAL_CAP_XO 0x3f
  3370. #define BIT_XTAL_CAP_XO(x) \
  3371. (((x) & BIT_MASK_XTAL_CAP_XO) << BIT_SHIFT_XTAL_CAP_XO)
  3372. #define BITS_XTAL_CAP_XO (BIT_MASK_XTAL_CAP_XO << BIT_SHIFT_XTAL_CAP_XO)
  3373. #define BIT_CLEAR_XTAL_CAP_XO(x) ((x) & (~BITS_XTAL_CAP_XO))
  3374. #define BIT_GET_XTAL_CAP_XO(x) \
  3375. (((x) >> BIT_SHIFT_XTAL_CAP_XO) & BIT_MASK_XTAL_CAP_XO)
  3376. #define BIT_SET_XTAL_CAP_XO(x, v) \
  3377. (BIT_CLEAR_XTAL_CAP_XO(x) | BIT_XTAL_CAP_XO(v))
  3378. #endif
  3379. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3380. /* 2 REG_ANAPARSW_POW_MAC (Offset 0x0028) */
  3381. #define BIT_POW_SW BIT(1)
  3382. #endif
  3383. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3384. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3385. #define BIT_MPLL_EN BIT(1)
  3386. #endif
  3387. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  3388. HALMAC_8881A_SUPPORT)
  3389. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3390. #define BIT_APLL_EN BIT(0)
  3391. #endif
  3392. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3393. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3394. /* 2 REG_AFE_CTRL2 (Offset 0x0028) */
  3395. #define BIT_POW_PLL BIT(0)
  3396. #endif
  3397. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3398. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  3399. /* 2 REG_SDIO_OQT_FREE_TXPG_V1 (Offset 0x10250028) */
  3400. #define BIT_SHIFT_EXQ_FREEPG_V1 0
  3401. #define BIT_MASK_EXQ_FREEPG_V1 0xfff
  3402. #define BIT_EXQ_FREEPG_V1(x) \
  3403. (((x) & BIT_MASK_EXQ_FREEPG_V1) << BIT_SHIFT_EXQ_FREEPG_V1)
  3404. #define BITS_EXQ_FREEPG_V1 (BIT_MASK_EXQ_FREEPG_V1 << BIT_SHIFT_EXQ_FREEPG_V1)
  3405. #define BIT_CLEAR_EXQ_FREEPG_V1(x) ((x) & (~BITS_EXQ_FREEPG_V1))
  3406. #define BIT_GET_EXQ_FREEPG_V1(x) \
  3407. (((x) >> BIT_SHIFT_EXQ_FREEPG_V1) & BIT_MASK_EXQ_FREEPG_V1)
  3408. #define BIT_SET_EXQ_FREEPG_V1(x, v) \
  3409. (BIT_CLEAR_EXQ_FREEPG_V1(x) | BIT_EXQ_FREEPG_V1(v))
  3410. #endif
  3411. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3412. /* 2 REG_ANAPARSW_POW_MAC (Offset 0x0028) */
  3413. #define BIT_POW_LDO14 BIT(0)
  3414. #endif
  3415. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3416. /* 2 REG_SDIO_OQT_FREE_TXPG_V1 (Offset 0x10250028) */
  3417. #define BIT_SHIFT_EXQ__FREEPG_V1 0
  3418. #define BIT_MASK_EXQ__FREEPG_V1 0xfff
  3419. #define BIT_EXQ__FREEPG_V1(x) \
  3420. (((x) & BIT_MASK_EXQ__FREEPG_V1) << BIT_SHIFT_EXQ__FREEPG_V1)
  3421. #define BITS_EXQ__FREEPG_V1 \
  3422. (BIT_MASK_EXQ__FREEPG_V1 << BIT_SHIFT_EXQ__FREEPG_V1)
  3423. #define BIT_CLEAR_EXQ__FREEPG_V1(x) ((x) & (~BITS_EXQ__FREEPG_V1))
  3424. #define BIT_GET_EXQ__FREEPG_V1(x) \
  3425. (((x) >> BIT_SHIFT_EXQ__FREEPG_V1) & BIT_MASK_EXQ__FREEPG_V1)
  3426. #define BIT_SET_EXQ__FREEPG_V1(x, v) \
  3427. (BIT_CLEAR_EXQ__FREEPG_V1(x) | BIT_EXQ__FREEPG_V1(v))
  3428. #endif
  3429. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3430. /* 2 REG_ANAPARLDO_POW_MAC (Offset 0x0029) */
  3431. #define BIT_LDOE25_POW_L BIT(0)
  3432. #endif
  3433. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3434. /* 2 REG_ANAPAR_POW_MAC (Offset 0x002A) */
  3435. #define BIT_REG_STANDBY_L BIT(19)
  3436. #define BIT_PD_REGU_L BIT(18)
  3437. #define BIT_EN_PC_BT_L BIT(17)
  3438. #define BIT_SHIFT_REG_LDOADJ_L 13
  3439. #define BIT_MASK_REG_LDOADJ_L 0xf
  3440. #define BIT_REG_LDOADJ_L(x) \
  3441. (((x) & BIT_MASK_REG_LDOADJ_L) << BIT_SHIFT_REG_LDOADJ_L)
  3442. #define BITS_REG_LDOADJ_L (BIT_MASK_REG_LDOADJ_L << BIT_SHIFT_REG_LDOADJ_L)
  3443. #define BIT_CLEAR_REG_LDOADJ_L(x) ((x) & (~BITS_REG_LDOADJ_L))
  3444. #define BIT_GET_REG_LDOADJ_L(x) \
  3445. (((x) >> BIT_SHIFT_REG_LDOADJ_L) & BIT_MASK_REG_LDOADJ_L)
  3446. #define BIT_SET_REG_LDOADJ_L(x, v) \
  3447. (BIT_CLEAR_REG_LDOADJ_L(x) | BIT_REG_LDOADJ_L(v))
  3448. #define BIT_CK12M_EN BIT(11)
  3449. #define BIT_CK12M_SEL BIT(10)
  3450. #define BIT_EN_25_L BIT(9)
  3451. #define BIT_EN_SLEEP BIT(8)
  3452. #define BIT_DUMMY_V4 BIT(7)
  3453. #define BIT_DUMMY_V3 BIT(6)
  3454. #define BIT_DUMMY_V2 BIT(5)
  3455. #define BIT_DUMMY_V1 BIT(4)
  3456. #define BIT_SHIFT_LDOH12_V12ADJ_L 4
  3457. #define BIT_MASK_LDOH12_V12ADJ_L 0xf
  3458. #define BIT_LDOH12_V12ADJ_L(x) \
  3459. (((x) & BIT_MASK_LDOH12_V12ADJ_L) << BIT_SHIFT_LDOH12_V12ADJ_L)
  3460. #define BITS_LDOH12_V12ADJ_L \
  3461. (BIT_MASK_LDOH12_V12ADJ_L << BIT_SHIFT_LDOH12_V12ADJ_L)
  3462. #define BIT_CLEAR_LDOH12_V12ADJ_L(x) ((x) & (~BITS_LDOH12_V12ADJ_L))
  3463. #define BIT_GET_LDOH12_V12ADJ_L(x) \
  3464. (((x) >> BIT_SHIFT_LDOH12_V12ADJ_L) & BIT_MASK_LDOH12_V12ADJ_L)
  3465. #define BIT_SET_LDOH12_V12ADJ_L(x, v) \
  3466. (BIT_CLEAR_LDOH12_V12ADJ_L(x) | BIT_LDOH12_V12ADJ_L(v))
  3467. #define BIT_POW_PC_LDO_PORT1 BIT(3)
  3468. #define BIT_POW_PC_LDO_PORT0 BIT(2)
  3469. #endif
  3470. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3471. /* 2 REG_ANAPAR_POW_MAC (Offset 0x002A) */
  3472. #define BIT_POW_PLL_V1 BIT(1)
  3473. #endif
  3474. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3475. /* 2 REG_ANAPAR_POW_MAC (Offset 0x002A) */
  3476. #define BIT_POW_POWER_CUT_POW_LDO BIT(0)
  3477. #define BIT_SHIFT_LDOE25_V12ADJ_L_V1 0
  3478. #define BIT_MASK_LDOE25_V12ADJ_L_V1 0xf
  3479. #define BIT_LDOE25_V12ADJ_L_V1(x) \
  3480. (((x) & BIT_MASK_LDOE25_V12ADJ_L_V1) << BIT_SHIFT_LDOE25_V12ADJ_L_V1)
  3481. #define BITS_LDOE25_V12ADJ_L_V1 \
  3482. (BIT_MASK_LDOE25_V12ADJ_L_V1 << BIT_SHIFT_LDOE25_V12ADJ_L_V1)
  3483. #define BIT_CLEAR_LDOE25_V12ADJ_L_V1(x) ((x) & (~BITS_LDOE25_V12ADJ_L_V1))
  3484. #define BIT_GET_LDOE25_V12ADJ_L_V1(x) \
  3485. (((x) >> BIT_SHIFT_LDOE25_V12ADJ_L_V1) & BIT_MASK_LDOE25_V12ADJ_L_V1)
  3486. #define BIT_SET_LDOE25_V12ADJ_L_V1(x, v) \
  3487. (BIT_CLEAR_LDOE25_V12ADJ_L_V1(x) | BIT_LDOE25_V12ADJ_L_V1(v))
  3488. #endif
  3489. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  3490. /* 2 REG_ANAPAR_POW_XTAL (Offset 0x002B) */
  3491. #define BIT_PSTIMER_2 BIT(31)
  3492. #define BIT_PSTIMER_1 BIT(30)
  3493. #define BIT_PSTIMER_0 BIT(29)
  3494. #define BIT_TXDMA_START_INT BIT(23)
  3495. #define BIT_TXDMA_STOP_INT BIT(22)
  3496. #define BIT_HISR7_IND BIT(21)
  3497. #define BIT_HISR6_IND BIT(19)
  3498. #define BIT_HISR5_IND BIT(18)
  3499. #define BIT_HISR4_IND BIT(17)
  3500. #define BIT_HISR3_IND BIT(14)
  3501. #define BIT_HISR2_IND BIT(13)
  3502. #define BIT_POW_XTAL BIT(1)
  3503. #define BIT_POW_BG BIT(0)
  3504. #endif
  3505. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3506. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3507. #define BIT_SHIFT_XTAL_RF2_DRV 30
  3508. #define BIT_MASK_XTAL_RF2_DRV 0x3
  3509. #define BIT_XTAL_RF2_DRV(x) \
  3510. (((x) & BIT_MASK_XTAL_RF2_DRV) << BIT_SHIFT_XTAL_RF2_DRV)
  3511. #define BITS_XTAL_RF2_DRV (BIT_MASK_XTAL_RF2_DRV << BIT_SHIFT_XTAL_RF2_DRV)
  3512. #define BIT_CLEAR_XTAL_RF2_DRV(x) ((x) & (~BITS_XTAL_RF2_DRV))
  3513. #define BIT_GET_XTAL_RF2_DRV(x) \
  3514. (((x) >> BIT_SHIFT_XTAL_RF2_DRV) & BIT_MASK_XTAL_RF2_DRV)
  3515. #define BIT_SET_XTAL_RF2_DRV(x, v) \
  3516. (BIT_CLEAR_XTAL_RF2_DRV(x) | BIT_XTAL_RF2_DRV(v))
  3517. #endif
  3518. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3519. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3520. #define BIT_REG_REF_SEL_V3 BIT(30)
  3521. #endif
  3522. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3523. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3524. #define BIT_XTAL_GMN_BIT4 BIT(29)
  3525. #define BIT_XTAL_GMP_BIT4 BIT(28)
  3526. #endif
  3527. #if (HALMAC_8192E_SUPPORT)
  3528. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3529. #define BIT_XQSEL BIT(27)
  3530. #endif
  3531. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3532. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3533. #define BIT_SHIFT_REG_FREF_SEL_2_TO_0 27
  3534. #define BIT_MASK_REG_FREF_SEL_2_TO_0 0x7
  3535. #define BIT_REG_FREF_SEL_2_TO_0(x) \
  3536. (((x) & BIT_MASK_REG_FREF_SEL_2_TO_0) << BIT_SHIFT_REG_FREF_SEL_2_TO_0)
  3537. #define BITS_REG_FREF_SEL_2_TO_0 \
  3538. (BIT_MASK_REG_FREF_SEL_2_TO_0 << BIT_SHIFT_REG_FREF_SEL_2_TO_0)
  3539. #define BIT_CLEAR_REG_FREF_SEL_2_TO_0(x) ((x) & (~BITS_REG_FREF_SEL_2_TO_0))
  3540. #define BIT_GET_REG_FREF_SEL_2_TO_0(x) \
  3541. (((x) >> BIT_SHIFT_REG_FREF_SEL_2_TO_0) & BIT_MASK_REG_FREF_SEL_2_TO_0)
  3542. #define BIT_SET_REG_FREF_SEL_2_TO_0(x, v) \
  3543. (BIT_CLEAR_REG_FREF_SEL_2_TO_0(x) | BIT_REG_FREF_SEL_2_TO_0(v))
  3544. #endif
  3545. #if (HALMAC_8881A_SUPPORT)
  3546. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3547. #define BIT_XQSEL_BIT0 BIT(27)
  3548. #endif
  3549. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3550. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3551. #define BIT_APLL_DUMMY BIT(26)
  3552. #endif
  3553. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3554. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3555. #define BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1 21
  3556. #define BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1 0x3f
  3557. #define BIT_XTAL_CADJ_XOUT_5_TO_0_V1(x) \
  3558. (((x) & BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1) \
  3559. << BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1)
  3560. #define BITS_XTAL_CADJ_XOUT_5_TO_0_V1 \
  3561. (BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1 \
  3562. << BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1)
  3563. #define BIT_CLEAR_XTAL_CADJ_XOUT_5_TO_0_V1(x) \
  3564. ((x) & (~BITS_XTAL_CADJ_XOUT_5_TO_0_V1))
  3565. #define BIT_GET_XTAL_CADJ_XOUT_5_TO_0_V1(x) \
  3566. (((x) >> BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1) & \
  3567. BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1)
  3568. #define BIT_SET_XTAL_CADJ_XOUT_5_TO_0_V1(x, v) \
  3569. (BIT_CLEAR_XTAL_CADJ_XOUT_5_TO_0_V1(x) | \
  3570. BIT_XTAL_CADJ_XOUT_5_TO_0_V1(v))
  3571. #endif
  3572. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3573. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3574. #define BIT_SHIFT_XTAL_CADJ_XOUT 18
  3575. #define BIT_MASK_XTAL_CADJ_XOUT 0x3f
  3576. #define BIT_XTAL_CADJ_XOUT(x) \
  3577. (((x) & BIT_MASK_XTAL_CADJ_XOUT) << BIT_SHIFT_XTAL_CADJ_XOUT)
  3578. #define BITS_XTAL_CADJ_XOUT \
  3579. (BIT_MASK_XTAL_CADJ_XOUT << BIT_SHIFT_XTAL_CADJ_XOUT)
  3580. #define BIT_CLEAR_XTAL_CADJ_XOUT(x) ((x) & (~BITS_XTAL_CADJ_XOUT))
  3581. #define BIT_GET_XTAL_CADJ_XOUT(x) \
  3582. (((x) >> BIT_SHIFT_XTAL_CADJ_XOUT) & BIT_MASK_XTAL_CADJ_XOUT)
  3583. #define BIT_SET_XTAL_CADJ_XOUT(x, v) \
  3584. (BIT_CLEAR_XTAL_CADJ_XOUT(x) | BIT_XTAL_CADJ_XOUT(v))
  3585. #endif
  3586. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3587. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3588. #define BIT_SHIFT_XTAL_CADJ_XIN_V2 15
  3589. #define BIT_MASK_XTAL_CADJ_XIN_V2 0x3f
  3590. #define BIT_XTAL_CADJ_XIN_V2(x) \
  3591. (((x) & BIT_MASK_XTAL_CADJ_XIN_V2) << BIT_SHIFT_XTAL_CADJ_XIN_V2)
  3592. #define BITS_XTAL_CADJ_XIN_V2 \
  3593. (BIT_MASK_XTAL_CADJ_XIN_V2 << BIT_SHIFT_XTAL_CADJ_XIN_V2)
  3594. #define BIT_CLEAR_XTAL_CADJ_XIN_V2(x) ((x) & (~BITS_XTAL_CADJ_XIN_V2))
  3595. #define BIT_GET_XTAL_CADJ_XIN_V2(x) \
  3596. (((x) >> BIT_SHIFT_XTAL_CADJ_XIN_V2) & BIT_MASK_XTAL_CADJ_XIN_V2)
  3597. #define BIT_SET_XTAL_CADJ_XIN_V2(x, v) \
  3598. (BIT_CLEAR_XTAL_CADJ_XIN_V2(x) | BIT_XTAL_CADJ_XIN_V2(v))
  3599. #endif
  3600. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3601. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3602. #define BIT_SHIFT_XTAL_CADJ_XIN 12
  3603. #define BIT_MASK_XTAL_CADJ_XIN 0x3f
  3604. #define BIT_XTAL_CADJ_XIN(x) \
  3605. (((x) & BIT_MASK_XTAL_CADJ_XIN) << BIT_SHIFT_XTAL_CADJ_XIN)
  3606. #define BITS_XTAL_CADJ_XIN (BIT_MASK_XTAL_CADJ_XIN << BIT_SHIFT_XTAL_CADJ_XIN)
  3607. #define BIT_CLEAR_XTAL_CADJ_XIN(x) ((x) & (~BITS_XTAL_CADJ_XIN))
  3608. #define BIT_GET_XTAL_CADJ_XIN(x) \
  3609. (((x) >> BIT_SHIFT_XTAL_CADJ_XIN) & BIT_MASK_XTAL_CADJ_XIN)
  3610. #define BIT_SET_XTAL_CADJ_XIN(x, v) \
  3611. (BIT_CLEAR_XTAL_CADJ_XIN(x) | BIT_XTAL_CADJ_XIN(v))
  3612. #endif
  3613. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3614. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3615. #define BIT_SHIFT_REG_RS_V3 12
  3616. #define BIT_MASK_REG_RS_V3 0x7
  3617. #define BIT_REG_RS_V3(x) (((x) & BIT_MASK_REG_RS_V3) << BIT_SHIFT_REG_RS_V3)
  3618. #define BITS_REG_RS_V3 (BIT_MASK_REG_RS_V3 << BIT_SHIFT_REG_RS_V3)
  3619. #define BIT_CLEAR_REG_RS_V3(x) ((x) & (~BITS_REG_RS_V3))
  3620. #define BIT_GET_REG_RS_V3(x) (((x) >> BIT_SHIFT_REG_RS_V3) & BIT_MASK_REG_RS_V3)
  3621. #define BIT_SET_REG_RS_V3(x, v) (BIT_CLEAR_REG_RS_V3(x) | BIT_REG_RS_V3(v))
  3622. #endif
  3623. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3624. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3625. #define BIT_SDIO_BCNQ_EMPTY BIT(11)
  3626. #define BIT_SDIO_HQQ_EMPTY BIT(10)
  3627. #endif
  3628. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3629. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3630. #define BIT_SHIFT_REG_RS 9
  3631. #define BIT_MASK_REG_RS 0x7
  3632. #define BIT_REG_RS(x) (((x) & BIT_MASK_REG_RS) << BIT_SHIFT_REG_RS)
  3633. #define BITS_REG_RS (BIT_MASK_REG_RS << BIT_SHIFT_REG_RS)
  3634. #define BIT_CLEAR_REG_RS(x) ((x) & (~BITS_REG_RS))
  3635. #define BIT_GET_REG_RS(x) (((x) >> BIT_SHIFT_REG_RS) & BIT_MASK_REG_RS)
  3636. #define BIT_SET_REG_RS(x, v) (BIT_CLEAR_REG_RS(x) | BIT_REG_RS(v))
  3637. #endif
  3638. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3639. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3640. #define BIT_SDIO_MQQ_EMPTY BIT(9)
  3641. #endif
  3642. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3643. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3644. #define BIT_SHIFT_REG_R3_V3 9
  3645. #define BIT_MASK_REG_R3_V3 0x7
  3646. #define BIT_REG_R3_V3(x) (((x) & BIT_MASK_REG_R3_V3) << BIT_SHIFT_REG_R3_V3)
  3647. #define BITS_REG_R3_V3 (BIT_MASK_REG_R3_V3 << BIT_SHIFT_REG_R3_V3)
  3648. #define BIT_CLEAR_REG_R3_V3(x) ((x) & (~BITS_REG_R3_V3))
  3649. #define BIT_GET_REG_R3_V3(x) (((x) >> BIT_SHIFT_REG_R3_V3) & BIT_MASK_REG_R3_V3)
  3650. #define BIT_SET_REG_R3_V3(x, v) (BIT_CLEAR_REG_R3_V3(x) | BIT_REG_R3_V3(v))
  3651. #endif
  3652. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3653. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3654. #define BIT_SDIO_MGQ_CPU_EMPTY BIT(8)
  3655. #endif
  3656. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  3657. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3658. #define BIT_SHIFT_PS_V2 7
  3659. #define BIT_MASK_PS_V2 0x7
  3660. #define BIT_PS_V2(x) (((x) & BIT_MASK_PS_V2) << BIT_SHIFT_PS_V2)
  3661. #define BITS_PS_V2 (BIT_MASK_PS_V2 << BIT_SHIFT_PS_V2)
  3662. #define BIT_CLEAR_PS_V2(x) ((x) & (~BITS_PS_V2))
  3663. #define BIT_GET_PS_V2(x) (((x) >> BIT_SHIFT_PS_V2) & BIT_MASK_PS_V2)
  3664. #define BIT_SET_PS_V2(x, v) (BIT_CLEAR_PS_V2(x) | BIT_PS_V2(v))
  3665. #endif
  3666. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3667. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3668. #define BIT_SDIO_AC7Q_EMPTY BIT(7)
  3669. #endif
  3670. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3671. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3672. #define BIT_SHIFT_REG_CS_V3 7
  3673. #define BIT_MASK_REG_CS_V3 0x3
  3674. #define BIT_REG_CS_V3(x) (((x) & BIT_MASK_REG_CS_V3) << BIT_SHIFT_REG_CS_V3)
  3675. #define BITS_REG_CS_V3 (BIT_MASK_REG_CS_V3 << BIT_SHIFT_REG_CS_V3)
  3676. #define BIT_CLEAR_REG_CS_V3(x) ((x) & (~BITS_REG_CS_V3))
  3677. #define BIT_GET_REG_CS_V3(x) (((x) >> BIT_SHIFT_REG_CS_V3) & BIT_MASK_REG_CS_V3)
  3678. #define BIT_SET_REG_CS_V3(x, v) (BIT_CLEAR_REG_CS_V3(x) | BIT_REG_CS_V3(v))
  3679. #endif
  3680. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3681. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3682. #define BIT_SHIFT_PS 7
  3683. #define BIT_MASK_PS 0x7
  3684. #define BIT_PS(x) (((x) & BIT_MASK_PS) << BIT_SHIFT_PS)
  3685. #define BITS_PS (BIT_MASK_PS << BIT_SHIFT_PS)
  3686. #define BIT_CLEAR_PS(x) ((x) & (~BITS_PS))
  3687. #define BIT_GET_PS(x) (((x) >> BIT_SHIFT_PS) & BIT_MASK_PS)
  3688. #define BIT_SET_PS(x, v) (BIT_CLEAR_PS(x) | BIT_PS(v))
  3689. #endif
  3690. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3691. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3692. #define BIT_SHIFT_REG_R3 6
  3693. #define BIT_MASK_REG_R3 0x7
  3694. #define BIT_REG_R3(x) (((x) & BIT_MASK_REG_R3) << BIT_SHIFT_REG_R3)
  3695. #define BITS_REG_R3 (BIT_MASK_REG_R3 << BIT_SHIFT_REG_R3)
  3696. #define BIT_CLEAR_REG_R3(x) ((x) & (~BITS_REG_R3))
  3697. #define BIT_GET_REG_R3(x) (((x) >> BIT_SHIFT_REG_R3) & BIT_MASK_REG_R3)
  3698. #define BIT_SET_REG_R3(x, v) (BIT_CLEAR_REG_R3(x) | BIT_REG_R3(v))
  3699. #endif
  3700. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3701. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3702. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3703. #define BIT_PSEN BIT(6)
  3704. #endif
  3705. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3706. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3707. #define BIT_SDIO_AC6Q_EMPTY BIT(6)
  3708. #endif
  3709. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  3710. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3711. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3712. #define BIT_DOGENB BIT(5)
  3713. #endif
  3714. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3715. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3716. #define BIT_SDIO_AC5Q_EMPTY BIT(5)
  3717. #endif
  3718. #if (HALMAC_8814A_SUPPORT)
  3719. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3720. #define BIT_SHIFT_REG_CP_V3 5
  3721. #define BIT_MASK_REG_CP_V3 0x3
  3722. #define BIT_REG_CP_V3(x) (((x) & BIT_MASK_REG_CP_V3) << BIT_SHIFT_REG_CP_V3)
  3723. #define BITS_REG_CP_V3 (BIT_MASK_REG_CP_V3 << BIT_SHIFT_REG_CP_V3)
  3724. #define BIT_CLEAR_REG_CP_V3(x) ((x) & (~BITS_REG_CP_V3))
  3725. #define BIT_GET_REG_CP_V3(x) (((x) >> BIT_SHIFT_REG_CP_V3) & BIT_MASK_REG_CP_V3)
  3726. #define BIT_SET_REG_CP_V3(x, v) (BIT_CLEAR_REG_CP_V3(x) | BIT_REG_CP_V3(v))
  3727. #endif
  3728. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3729. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3730. #define BIT_SHIFT_REG_CS 4
  3731. #define BIT_MASK_REG_CS 0x3
  3732. #define BIT_REG_CS(x) (((x) & BIT_MASK_REG_CS) << BIT_SHIFT_REG_CS)
  3733. #define BITS_REG_CS (BIT_MASK_REG_CS << BIT_SHIFT_REG_CS)
  3734. #define BIT_CLEAR_REG_CS(x) ((x) & (~BITS_REG_CS))
  3735. #define BIT_GET_REG_CS(x) (((x) >> BIT_SHIFT_REG_CS) & BIT_MASK_REG_CS)
  3736. #define BIT_SET_REG_CS(x, v) (BIT_CLEAR_REG_CS(x) | BIT_REG_CS(v))
  3737. #endif
  3738. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3739. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3740. #define BIT_SDIO_AC4Q_EMPTY BIT(4)
  3741. #endif
  3742. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3743. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3744. #define BIT_REG_MBIAS BIT(4)
  3745. #endif
  3746. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3747. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3748. #define BIT_SDIO_AC3Q_EMPTY BIT(3)
  3749. #endif
  3750. #if (HALMAC_8814A_SUPPORT)
  3751. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3752. #define BIT_SHIFT_REG_C3_V3 3
  3753. #define BIT_MASK_REG_C3_V3 0x3
  3754. #define BIT_REG_C3_V3(x) (((x) & BIT_MASK_REG_C3_V3) << BIT_SHIFT_REG_C3_V3)
  3755. #define BITS_REG_C3_V3 (BIT_MASK_REG_C3_V3 << BIT_SHIFT_REG_C3_V3)
  3756. #define BIT_CLEAR_REG_C3_V3(x) ((x) & (~BITS_REG_C3_V3))
  3757. #define BIT_GET_REG_C3_V3(x) (((x) >> BIT_SHIFT_REG_C3_V3) & BIT_MASK_REG_C3_V3)
  3758. #define BIT_SET_REG_C3_V3(x, v) (BIT_CLEAR_REG_C3_V3(x) | BIT_REG_C3_V3(v))
  3759. #endif
  3760. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3761. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3762. #define BIT_SHIFT_REG_CP 2
  3763. #define BIT_MASK_REG_CP 0x3
  3764. #define BIT_REG_CP(x) (((x) & BIT_MASK_REG_CP) << BIT_SHIFT_REG_CP)
  3765. #define BITS_REG_CP (BIT_MASK_REG_CP << BIT_SHIFT_REG_CP)
  3766. #define BIT_CLEAR_REG_CP(x) ((x) & (~BITS_REG_CP))
  3767. #define BIT_GET_REG_CP(x) (((x) >> BIT_SHIFT_REG_CP) & BIT_MASK_REG_CP)
  3768. #define BIT_SET_REG_CP(x, v) (BIT_CLEAR_REG_CP(x) | BIT_REG_CP(v))
  3769. #endif
  3770. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3771. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3772. #define BIT_SDIO_AC2Q_EMPTY BIT(2)
  3773. #endif
  3774. #if (HALMAC_8814A_SUPPORT)
  3775. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3776. #define BIT_REG_320_SEL_V3 BIT(2)
  3777. #endif
  3778. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3779. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3780. #define BIT_SDIO_AC1Q_EMPTY BIT(1)
  3781. #endif
  3782. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3783. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3784. #define BIT_EN_SYN_V1 BIT(1)
  3785. #endif
  3786. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3787. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3788. #define BIT_SHIFT_REG_R3_V4 1
  3789. #define BIT_MASK_REG_R3_V4 0x7
  3790. #define BIT_REG_R3_V4(x) (((x) & BIT_MASK_REG_R3_V4) << BIT_SHIFT_REG_R3_V4)
  3791. #define BITS_REG_R3_V4 (BIT_MASK_REG_R3_V4 << BIT_SHIFT_REG_R3_V4)
  3792. #define BIT_CLEAR_REG_R3_V4(x) ((x) & (~BITS_REG_R3_V4))
  3793. #define BIT_GET_REG_R3_V4(x) (((x) >> BIT_SHIFT_REG_R3_V4) & BIT_MASK_REG_R3_V4)
  3794. #define BIT_SET_REG_R3_V4(x, v) (BIT_CLEAR_REG_R3_V4(x) | BIT_REG_R3_V4(v))
  3795. #endif
  3796. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3797. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3798. #define BIT_SHIFT_REG_C3 0
  3799. #define BIT_MASK_REG_C3 0x3
  3800. #define BIT_REG_C3(x) (((x) & BIT_MASK_REG_C3) << BIT_SHIFT_REG_C3)
  3801. #define BITS_REG_C3 (BIT_MASK_REG_C3 << BIT_SHIFT_REG_C3)
  3802. #define BIT_CLEAR_REG_C3(x) ((x) & (~BITS_REG_C3))
  3803. #define BIT_GET_REG_C3(x) (((x) >> BIT_SHIFT_REG_C3) & BIT_MASK_REG_C3)
  3804. #define BIT_SET_REG_C3(x, v) (BIT_CLEAR_REG_C3(x) | BIT_REG_C3(v))
  3805. #endif
  3806. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  3807. /* 2 REG_SDIO_TXPKT_EMPTY (Offset 0x1025002C) */
  3808. #define BIT_SDIO_AC0Q_EMPTY BIT(0)
  3809. #endif
  3810. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3811. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3812. #define BIT_IOOFFSET_BIT4 BIT(0)
  3813. #endif
  3814. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  3815. /* 2 REG_AFE_CTRL3 (Offset 0x002C) */
  3816. #define BIT_REG_CP_BIT0 BIT(0)
  3817. #endif
  3818. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  3819. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  3820. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3821. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  3822. /* 2 REG_EFUSE_CTRL (Offset 0x0030) */
  3823. #define BIT_EF_FLAG BIT(31)
  3824. #define BIT_SHIFT_EF_PGPD 28
  3825. #define BIT_MASK_EF_PGPD 0x7
  3826. #define BIT_EF_PGPD(x) (((x) & BIT_MASK_EF_PGPD) << BIT_SHIFT_EF_PGPD)
  3827. #define BITS_EF_PGPD (BIT_MASK_EF_PGPD << BIT_SHIFT_EF_PGPD)
  3828. #define BIT_CLEAR_EF_PGPD(x) ((x) & (~BITS_EF_PGPD))
  3829. #define BIT_GET_EF_PGPD(x) (((x) >> BIT_SHIFT_EF_PGPD) & BIT_MASK_EF_PGPD)
  3830. #define BIT_SET_EF_PGPD(x, v) (BIT_CLEAR_EF_PGPD(x) | BIT_EF_PGPD(v))
  3831. #define BIT_SHIFT_EF_RDT 24
  3832. #define BIT_MASK_EF_RDT 0xf
  3833. #define BIT_EF_RDT(x) (((x) & BIT_MASK_EF_RDT) << BIT_SHIFT_EF_RDT)
  3834. #define BITS_EF_RDT (BIT_MASK_EF_RDT << BIT_SHIFT_EF_RDT)
  3835. #define BIT_CLEAR_EF_RDT(x) ((x) & (~BITS_EF_RDT))
  3836. #define BIT_GET_EF_RDT(x) (((x) >> BIT_SHIFT_EF_RDT) & BIT_MASK_EF_RDT)
  3837. #define BIT_SET_EF_RDT(x, v) (BIT_CLEAR_EF_RDT(x) | BIT_EF_RDT(v))
  3838. #define BIT_SHIFT_EF_PGTS 20
  3839. #define BIT_MASK_EF_PGTS 0xf
  3840. #define BIT_EF_PGTS(x) (((x) & BIT_MASK_EF_PGTS) << BIT_SHIFT_EF_PGTS)
  3841. #define BITS_EF_PGTS (BIT_MASK_EF_PGTS << BIT_SHIFT_EF_PGTS)
  3842. #define BIT_CLEAR_EF_PGTS(x) ((x) & (~BITS_EF_PGTS))
  3843. #define BIT_GET_EF_PGTS(x) (((x) >> BIT_SHIFT_EF_PGTS) & BIT_MASK_EF_PGTS)
  3844. #define BIT_SET_EF_PGTS(x, v) (BIT_CLEAR_EF_PGTS(x) | BIT_EF_PGTS(v))
  3845. #endif
  3846. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  3847. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  3848. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  3849. HALMAC_8881A_SUPPORT)
  3850. /* 2 REG_EFUSE_CTRL (Offset 0x0030) */
  3851. #define BIT_EF_PDWN BIT(19)
  3852. #endif
  3853. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  3854. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  3855. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3856. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  3857. /* 2 REG_EFUSE_CTRL (Offset 0x0030) */
  3858. #define BIT_EF_ALDEN BIT(18)
  3859. #endif
  3860. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  3861. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  3862. HALMAC_8822C_SUPPORT)
  3863. /* 2 REG_SDIO_HTSFR_INFO (Offset 0x10250030) */
  3864. #define BIT_SHIFT_HTSFR1 16
  3865. #define BIT_MASK_HTSFR1 0xffff
  3866. #define BIT_HTSFR1(x) (((x) & BIT_MASK_HTSFR1) << BIT_SHIFT_HTSFR1)
  3867. #define BITS_HTSFR1 (BIT_MASK_HTSFR1 << BIT_SHIFT_HTSFR1)
  3868. #define BIT_CLEAR_HTSFR1(x) ((x) & (~BITS_HTSFR1))
  3869. #define BIT_GET_HTSFR1(x) (((x) >> BIT_SHIFT_HTSFR1) & BIT_MASK_HTSFR1)
  3870. #define BIT_SET_HTSFR1(x, v) (BIT_CLEAR_HTSFR1(x) | BIT_HTSFR1(v))
  3871. #endif
  3872. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  3873. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  3874. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3875. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  3876. /* 2 REG_EFUSE_CTRL (Offset 0x0030) */
  3877. #define BIT_SHIFT_EF_ADDR 8
  3878. #define BIT_MASK_EF_ADDR 0x3ff
  3879. #define BIT_EF_ADDR(x) (((x) & BIT_MASK_EF_ADDR) << BIT_SHIFT_EF_ADDR)
  3880. #define BITS_EF_ADDR (BIT_MASK_EF_ADDR << BIT_SHIFT_EF_ADDR)
  3881. #define BIT_CLEAR_EF_ADDR(x) ((x) & (~BITS_EF_ADDR))
  3882. #define BIT_GET_EF_ADDR(x) (((x) >> BIT_SHIFT_EF_ADDR) & BIT_MASK_EF_ADDR)
  3883. #define BIT_SET_EF_ADDR(x, v) (BIT_CLEAR_EF_ADDR(x) | BIT_EF_ADDR(v))
  3884. #define BIT_SHIFT_EF_DATA 0
  3885. #define BIT_MASK_EF_DATA 0xff
  3886. #define BIT_EF_DATA(x) (((x) & BIT_MASK_EF_DATA) << BIT_SHIFT_EF_DATA)
  3887. #define BITS_EF_DATA (BIT_MASK_EF_DATA << BIT_SHIFT_EF_DATA)
  3888. #define BIT_CLEAR_EF_DATA(x) ((x) & (~BITS_EF_DATA))
  3889. #define BIT_GET_EF_DATA(x) (((x) >> BIT_SHIFT_EF_DATA) & BIT_MASK_EF_DATA)
  3890. #define BIT_SET_EF_DATA(x, v) (BIT_CLEAR_EF_DATA(x) | BIT_EF_DATA(v))
  3891. #endif
  3892. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  3893. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  3894. HALMAC_8822C_SUPPORT)
  3895. /* 2 REG_SDIO_HTSFR_INFO (Offset 0x10250030) */
  3896. #define BIT_SHIFT_HTSFR0 0
  3897. #define BIT_MASK_HTSFR0 0xffff
  3898. #define BIT_HTSFR0(x) (((x) & BIT_MASK_HTSFR0) << BIT_SHIFT_HTSFR0)
  3899. #define BITS_HTSFR0 (BIT_MASK_HTSFR0 << BIT_SHIFT_HTSFR0)
  3900. #define BIT_CLEAR_HTSFR0(x) ((x) & (~BITS_HTSFR0))
  3901. #define BIT_GET_HTSFR0(x) (((x) >> BIT_SHIFT_HTSFR0) & BIT_MASK_HTSFR0)
  3902. #define BIT_SET_HTSFR0(x, v) (BIT_CLEAR_HTSFR0(x) | BIT_HTSFR0(v))
  3903. #endif
  3904. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  3905. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  3906. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  3907. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3908. #define BIT_LDOE25_EN BIT(31)
  3909. #endif
  3910. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3911. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3912. #define BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2 28
  3913. #define BIT_MASK_LDOE25_VADJ_BIT0_TO_2 0x7
  3914. #define BIT_LDOE25_VADJ_BIT0_TO_2(x) \
  3915. (((x) & BIT_MASK_LDOE25_VADJ_BIT0_TO_2) \
  3916. << BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2)
  3917. #define BITS_LDOE25_VADJ_BIT0_TO_2 \
  3918. (BIT_MASK_LDOE25_VADJ_BIT0_TO_2 << BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2)
  3919. #define BIT_CLEAR_LDOE25_VADJ_BIT0_TO_2(x) ((x) & (~BITS_LDOE25_VADJ_BIT0_TO_2))
  3920. #define BIT_GET_LDOE25_VADJ_BIT0_TO_2(x) \
  3921. (((x) >> BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2) & \
  3922. BIT_MASK_LDOE25_VADJ_BIT0_TO_2)
  3923. #define BIT_SET_LDOE25_VADJ_BIT0_TO_2(x, v) \
  3924. (BIT_CLEAR_LDOE25_VADJ_BIT0_TO_2(x) | BIT_LDOE25_VADJ_BIT0_TO_2(v))
  3925. #endif
  3926. #if (HALMAC_8192F_SUPPORT)
  3927. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3928. #define BIT_SHIFT_LDOE25_V12ADJ_L_LOW 28
  3929. #define BIT_MASK_LDOE25_V12ADJ_L_LOW 0x7
  3930. #define BIT_LDOE25_V12ADJ_L_LOW(x) \
  3931. (((x) & BIT_MASK_LDOE25_V12ADJ_L_LOW) << BIT_SHIFT_LDOE25_V12ADJ_L_LOW)
  3932. #define BITS_LDOE25_V12ADJ_L_LOW \
  3933. (BIT_MASK_LDOE25_V12ADJ_L_LOW << BIT_SHIFT_LDOE25_V12ADJ_L_LOW)
  3934. #define BIT_CLEAR_LDOE25_V12ADJ_L_LOW(x) ((x) & (~BITS_LDOE25_V12ADJ_L_LOW))
  3935. #define BIT_GET_LDOE25_V12ADJ_L_LOW(x) \
  3936. (((x) >> BIT_SHIFT_LDOE25_V12ADJ_L_LOW) & BIT_MASK_LDOE25_V12ADJ_L_LOW)
  3937. #define BIT_SET_LDOE25_V12ADJ_L_LOW(x, v) \
  3938. (BIT_CLEAR_LDOE25_V12ADJ_L_LOW(x) | BIT_LDOE25_V12ADJ_L_LOW(v))
  3939. #endif
  3940. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  3941. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3942. #define BIT_LDOE25_VADJ_BIT3 BIT(27)
  3943. #endif
  3944. #if (HALMAC_8192F_SUPPORT)
  3945. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3946. #define BIT_LDOE25_V12ADJ_L_HIGH BIT(27)
  3947. #endif
  3948. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  3949. HALMAC_8822B_SUPPORT)
  3950. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3951. #define BIT_SHIFT_LDOE25_V12ADJ_L 27
  3952. #define BIT_MASK_LDOE25_V12ADJ_L 0xf
  3953. #define BIT_LDOE25_V12ADJ_L(x) \
  3954. (((x) & BIT_MASK_LDOE25_V12ADJ_L) << BIT_SHIFT_LDOE25_V12ADJ_L)
  3955. #define BITS_LDOE25_V12ADJ_L \
  3956. (BIT_MASK_LDOE25_V12ADJ_L << BIT_SHIFT_LDOE25_V12ADJ_L)
  3957. #define BIT_CLEAR_LDOE25_V12ADJ_L(x) ((x) & (~BITS_LDOE25_V12ADJ_L))
  3958. #define BIT_GET_LDOE25_V12ADJ_L(x) \
  3959. (((x) >> BIT_SHIFT_LDOE25_V12ADJ_L) & BIT_MASK_LDOE25_V12ADJ_L)
  3960. #define BIT_SET_LDOE25_V12ADJ_L(x, v) \
  3961. (BIT_CLEAR_LDOE25_V12ADJ_L(x) | BIT_LDOE25_V12ADJ_L(v))
  3962. #endif
  3963. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3964. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3965. #define BIT_SHIFT_LDOE25_VADJ_3_TO_0 27
  3966. #define BIT_MASK_LDOE25_VADJ_3_TO_0 0xf
  3967. #define BIT_LDOE25_VADJ_3_TO_0(x) \
  3968. (((x) & BIT_MASK_LDOE25_VADJ_3_TO_0) << BIT_SHIFT_LDOE25_VADJ_3_TO_0)
  3969. #define BITS_LDOE25_VADJ_3_TO_0 \
  3970. (BIT_MASK_LDOE25_VADJ_3_TO_0 << BIT_SHIFT_LDOE25_VADJ_3_TO_0)
  3971. #define BIT_CLEAR_LDOE25_VADJ_3_TO_0(x) ((x) & (~BITS_LDOE25_VADJ_3_TO_0))
  3972. #define BIT_GET_LDOE25_VADJ_3_TO_0(x) \
  3973. (((x) >> BIT_SHIFT_LDOE25_VADJ_3_TO_0) & BIT_MASK_LDOE25_VADJ_3_TO_0)
  3974. #define BIT_SET_LDOE25_VADJ_3_TO_0(x, v) \
  3975. (BIT_CLEAR_LDOE25_VADJ_3_TO_0(x) | BIT_LDOE25_VADJ_3_TO_0(v))
  3976. #endif
  3977. #if (HALMAC_8192E_SUPPORT)
  3978. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3979. #define BIT_EFCRES_SEL BIT(26)
  3980. #endif
  3981. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  3982. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  3983. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3984. #define BIT_EF_CRES_SEL BIT(26)
  3985. #endif
  3986. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  3987. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3988. #define BIT_EF_CSER BIT(26)
  3989. #endif
  3990. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  3991. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  3992. #define BIT_SHIFT_EF_SCAN_START 16
  3993. #define BIT_MASK_EF_SCAN_START 0x1ff
  3994. #define BIT_EF_SCAN_START(x) \
  3995. (((x) & BIT_MASK_EF_SCAN_START) << BIT_SHIFT_EF_SCAN_START)
  3996. #define BITS_EF_SCAN_START (BIT_MASK_EF_SCAN_START << BIT_SHIFT_EF_SCAN_START)
  3997. #define BIT_CLEAR_EF_SCAN_START(x) ((x) & (~BITS_EF_SCAN_START))
  3998. #define BIT_GET_EF_SCAN_START(x) \
  3999. (((x) >> BIT_SHIFT_EF_SCAN_START) & BIT_MASK_EF_SCAN_START)
  4000. #define BIT_SET_EF_SCAN_START(x, v) \
  4001. (BIT_CLEAR_EF_SCAN_START(x) | BIT_EF_SCAN_START(v))
  4002. #endif
  4003. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  4004. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  4005. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4006. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4007. #define BIT_SHIFT_EF_SCAN_START_V1 16
  4008. #define BIT_MASK_EF_SCAN_START_V1 0x3ff
  4009. #define BIT_EF_SCAN_START_V1(x) \
  4010. (((x) & BIT_MASK_EF_SCAN_START_V1) << BIT_SHIFT_EF_SCAN_START_V1)
  4011. #define BITS_EF_SCAN_START_V1 \
  4012. (BIT_MASK_EF_SCAN_START_V1 << BIT_SHIFT_EF_SCAN_START_V1)
  4013. #define BIT_CLEAR_EF_SCAN_START_V1(x) ((x) & (~BITS_EF_SCAN_START_V1))
  4014. #define BIT_GET_EF_SCAN_START_V1(x) \
  4015. (((x) >> BIT_SHIFT_EF_SCAN_START_V1) & BIT_MASK_EF_SCAN_START_V1)
  4016. #define BIT_SET_EF_SCAN_START_V1(x, v) \
  4017. (BIT_CLEAR_EF_SCAN_START_V1(x) | BIT_EF_SCAN_START_V1(v))
  4018. #endif
  4019. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4020. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4021. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4022. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4023. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4024. #define BIT_SHIFT_EF_SCAN_END 12
  4025. #define BIT_MASK_EF_SCAN_END 0xf
  4026. #define BIT_EF_SCAN_END(x) \
  4027. (((x) & BIT_MASK_EF_SCAN_END) << BIT_SHIFT_EF_SCAN_END)
  4028. #define BITS_EF_SCAN_END (BIT_MASK_EF_SCAN_END << BIT_SHIFT_EF_SCAN_END)
  4029. #define BIT_CLEAR_EF_SCAN_END(x) ((x) & (~BITS_EF_SCAN_END))
  4030. #define BIT_GET_EF_SCAN_END(x) \
  4031. (((x) >> BIT_SHIFT_EF_SCAN_END) & BIT_MASK_EF_SCAN_END)
  4032. #define BIT_SET_EF_SCAN_END(x, v) \
  4033. (BIT_CLEAR_EF_SCAN_END(x) | BIT_EF_SCAN_END(v))
  4034. #endif
  4035. #if (HALMAC_8192E_SUPPORT)
  4036. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4037. #define BIT_EF_FORCE_PGMEN BIT(11)
  4038. #endif
  4039. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4040. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4041. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4042. #define BIT_EF_PD_DIS BIT(11)
  4043. #endif
  4044. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4045. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4046. #define BIT_SCAN_EN BIT(11)
  4047. #define BIT_SW_PG_EN BIT(10)
  4048. #endif
  4049. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4050. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  4051. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  4052. HALMAC_8881A_SUPPORT)
  4053. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4054. #define BIT_SHIFT_EF_CELL_SEL 8
  4055. #define BIT_MASK_EF_CELL_SEL 0x3
  4056. #define BIT_EF_CELL_SEL(x) \
  4057. (((x) & BIT_MASK_EF_CELL_SEL) << BIT_SHIFT_EF_CELL_SEL)
  4058. #define BITS_EF_CELL_SEL (BIT_MASK_EF_CELL_SEL << BIT_SHIFT_EF_CELL_SEL)
  4059. #define BIT_CLEAR_EF_CELL_SEL(x) ((x) & (~BITS_EF_CELL_SEL))
  4060. #define BIT_GET_EF_CELL_SEL(x) \
  4061. (((x) >> BIT_SHIFT_EF_CELL_SEL) & BIT_MASK_EF_CELL_SEL)
  4062. #define BIT_SET_EF_CELL_SEL(x, v) \
  4063. (BIT_CLEAR_EF_CELL_SEL(x) | BIT_EF_CELL_SEL(v))
  4064. #endif
  4065. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4066. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4067. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4068. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4069. /* 2 REG_LDO_EFUSE_CTRL (Offset 0x0034) */
  4070. #define BIT_EF_TRPT BIT(7)
  4071. #define BIT_SHIFT_EF_TTHD 0
  4072. #define BIT_MASK_EF_TTHD 0x7f
  4073. #define BIT_EF_TTHD(x) (((x) & BIT_MASK_EF_TTHD) << BIT_SHIFT_EF_TTHD)
  4074. #define BITS_EF_TTHD (BIT_MASK_EF_TTHD << BIT_SHIFT_EF_TTHD)
  4075. #define BIT_CLEAR_EF_TTHD(x) ((x) & (~BITS_EF_TTHD))
  4076. #define BIT_GET_EF_TTHD(x) (((x) >> BIT_SHIFT_EF_TTHD) & BIT_MASK_EF_TTHD)
  4077. #define BIT_SET_EF_TTHD(x, v) (BIT_CLEAR_EF_TTHD(x) | BIT_EF_TTHD(v))
  4078. #endif
  4079. #if (HALMAC_8192F_SUPPORT)
  4080. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4081. #define BIT_SHIFT_UPHY_BG_ON_OPT 30
  4082. #define BIT_MASK_UPHY_BG_ON_OPT 0x3
  4083. #define BIT_UPHY_BG_ON_OPT(x) \
  4084. (((x) & BIT_MASK_UPHY_BG_ON_OPT) << BIT_SHIFT_UPHY_BG_ON_OPT)
  4085. #define BITS_UPHY_BG_ON_OPT \
  4086. (BIT_MASK_UPHY_BG_ON_OPT << BIT_SHIFT_UPHY_BG_ON_OPT)
  4087. #define BIT_CLEAR_UPHY_BG_ON_OPT(x) ((x) & (~BITS_UPHY_BG_ON_OPT))
  4088. #define BIT_GET_UPHY_BG_ON_OPT(x) \
  4089. (((x) >> BIT_SHIFT_UPHY_BG_ON_OPT) & BIT_MASK_UPHY_BG_ON_OPT)
  4090. #define BIT_SET_UPHY_BG_ON_OPT(x, v) \
  4091. (BIT_CLEAR_UPHY_BG_ON_OPT(x) | BIT_UPHY_BG_ON_OPT(v))
  4092. #define BIT_UPHY_BG_ON_USB2 BIT(29)
  4093. #define BIT_UPHY_BG_ON_PCIE BIT(28)
  4094. #define BIT_VD33IO_LEFT_SHD_N_ BIT(27)
  4095. #define BIT_VDIO_RIGHT1_SHD_N_ BIT(26)
  4096. #endif
  4097. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4098. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4099. #define BIT_SHIFT_AFE_USB_CURRENT_SEL 26
  4100. #define BIT_MASK_AFE_USB_CURRENT_SEL 0x7
  4101. #define BIT_AFE_USB_CURRENT_SEL(x) \
  4102. (((x) & BIT_MASK_AFE_USB_CURRENT_SEL) << BIT_SHIFT_AFE_USB_CURRENT_SEL)
  4103. #define BITS_AFE_USB_CURRENT_SEL \
  4104. (BIT_MASK_AFE_USB_CURRENT_SEL << BIT_SHIFT_AFE_USB_CURRENT_SEL)
  4105. #define BIT_CLEAR_AFE_USB_CURRENT_SEL(x) ((x) & (~BITS_AFE_USB_CURRENT_SEL))
  4106. #define BIT_GET_AFE_USB_CURRENT_SEL(x) \
  4107. (((x) >> BIT_SHIFT_AFE_USB_CURRENT_SEL) & BIT_MASK_AFE_USB_CURRENT_SEL)
  4108. #define BIT_SET_AFE_USB_CURRENT_SEL(x, v) \
  4109. (BIT_CLEAR_AFE_USB_CURRENT_SEL(x) | BIT_AFE_USB_CURRENT_SEL(v))
  4110. #endif
  4111. #if (HALMAC_8192F_SUPPORT)
  4112. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4113. #define BIT_VDIO_RIGHT0_SHD_N_ BIT(25)
  4114. #define BIT_DIS_LPS_WT_PDNSUS BIT(24)
  4115. #endif
  4116. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4117. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4118. #define BIT_SHIFT_AFE_USB_PATH_SEL 24
  4119. #define BIT_MASK_AFE_USB_PATH_SEL 0x3
  4120. #define BIT_AFE_USB_PATH_SEL(x) \
  4121. (((x) & BIT_MASK_AFE_USB_PATH_SEL) << BIT_SHIFT_AFE_USB_PATH_SEL)
  4122. #define BITS_AFE_USB_PATH_SEL \
  4123. (BIT_MASK_AFE_USB_PATH_SEL << BIT_SHIFT_AFE_USB_PATH_SEL)
  4124. #define BIT_CLEAR_AFE_USB_PATH_SEL(x) ((x) & (~BITS_AFE_USB_PATH_SEL))
  4125. #define BIT_GET_AFE_USB_PATH_SEL(x) \
  4126. (((x) >> BIT_SHIFT_AFE_USB_PATH_SEL) & BIT_MASK_AFE_USB_PATH_SEL)
  4127. #define BIT_SET_AFE_USB_PATH_SEL(x, v) \
  4128. (BIT_CLEAR_AFE_USB_PATH_SEL(x) | BIT_AFE_USB_PATH_SEL(v))
  4129. #endif
  4130. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4131. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4132. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4133. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4134. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4135. #define BIT_SHIFT_DBG_SEL_V1 16
  4136. #define BIT_MASK_DBG_SEL_V1 0xff
  4137. #define BIT_DBG_SEL_V1(x) (((x) & BIT_MASK_DBG_SEL_V1) << BIT_SHIFT_DBG_SEL_V1)
  4138. #define BITS_DBG_SEL_V1 (BIT_MASK_DBG_SEL_V1 << BIT_SHIFT_DBG_SEL_V1)
  4139. #define BIT_CLEAR_DBG_SEL_V1(x) ((x) & (~BITS_DBG_SEL_V1))
  4140. #define BIT_GET_DBG_SEL_V1(x) \
  4141. (((x) >> BIT_SHIFT_DBG_SEL_V1) & BIT_MASK_DBG_SEL_V1)
  4142. #define BIT_SET_DBG_SEL_V1(x, v) (BIT_CLEAR_DBG_SEL_V1(x) | BIT_DBG_SEL_V1(v))
  4143. #endif
  4144. #if (HALMAC_8192E_SUPPORT)
  4145. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4146. #define BIT_CLK_REQ_INPUT BIT(15)
  4147. #define BIT_USB_XTAL_CLK_SEL BIT(14)
  4148. #endif
  4149. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4150. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4151. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4152. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4153. #define BIT_SHIFT_DBG_SEL_BYTE 14
  4154. #define BIT_MASK_DBG_SEL_BYTE 0x3
  4155. #define BIT_DBG_SEL_BYTE(x) \
  4156. (((x) & BIT_MASK_DBG_SEL_BYTE) << BIT_SHIFT_DBG_SEL_BYTE)
  4157. #define BITS_DBG_SEL_BYTE (BIT_MASK_DBG_SEL_BYTE << BIT_SHIFT_DBG_SEL_BYTE)
  4158. #define BIT_CLEAR_DBG_SEL_BYTE(x) ((x) & (~BITS_DBG_SEL_BYTE))
  4159. #define BIT_GET_DBG_SEL_BYTE(x) \
  4160. (((x) >> BIT_SHIFT_DBG_SEL_BYTE) & BIT_MASK_DBG_SEL_BYTE)
  4161. #define BIT_SET_DBG_SEL_BYTE(x, v) \
  4162. (BIT_CLEAR_DBG_SEL_BYTE(x) | BIT_DBG_SEL_BYTE(v))
  4163. #endif
  4164. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4165. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4166. #define BIT_USB_REG_XTAL_SEL BIT(14)
  4167. #define BIT_SYSON_BTIO1POW_PAD_E2 BIT(13)
  4168. #endif
  4169. #if (HALMAC_8192E_SUPPORT)
  4170. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4171. #define BIT_SHIFT_SYSON_SPS0_STD_L1 12
  4172. #define BIT_MASK_SYSON_SPS0_STD_L1 0x3
  4173. #define BIT_SYSON_SPS0_STD_L1(x) \
  4174. (((x) & BIT_MASK_SYSON_SPS0_STD_L1) << BIT_SHIFT_SYSON_SPS0_STD_L1)
  4175. #define BITS_SYSON_SPS0_STD_L1 \
  4176. (BIT_MASK_SYSON_SPS0_STD_L1 << BIT_SHIFT_SYSON_SPS0_STD_L1)
  4177. #define BIT_CLEAR_SYSON_SPS0_STD_L1(x) ((x) & (~BITS_SYSON_SPS0_STD_L1))
  4178. #define BIT_GET_SYSON_SPS0_STD_L1(x) \
  4179. (((x) >> BIT_SHIFT_SYSON_SPS0_STD_L1) & BIT_MASK_SYSON_SPS0_STD_L1)
  4180. #define BIT_SET_SYSON_SPS0_STD_L1(x, v) \
  4181. (BIT_CLEAR_SYSON_SPS0_STD_L1(x) | BIT_SYSON_SPS0_STD_L1(v))
  4182. #endif
  4183. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4184. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  4185. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4186. #define BIT_SHIFT_STD_L1_V1 12
  4187. #define BIT_MASK_STD_L1_V1 0x3
  4188. #define BIT_STD_L1_V1(x) (((x) & BIT_MASK_STD_L1_V1) << BIT_SHIFT_STD_L1_V1)
  4189. #define BITS_STD_L1_V1 (BIT_MASK_STD_L1_V1 << BIT_SHIFT_STD_L1_V1)
  4190. #define BIT_CLEAR_STD_L1_V1(x) ((x) & (~BITS_STD_L1_V1))
  4191. #define BIT_GET_STD_L1_V1(x) (((x) >> BIT_SHIFT_STD_L1_V1) & BIT_MASK_STD_L1_V1)
  4192. #define BIT_SET_STD_L1_V1(x, v) (BIT_CLEAR_STD_L1_V1(x) | BIT_STD_L1_V1(v))
  4193. #endif
  4194. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4195. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4196. #define BIT_SYSON_BTIOPOW_PAD_E2 BIT(12)
  4197. #endif
  4198. #if (HALMAC_8881A_SUPPORT)
  4199. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4200. #define BIT_SHIFT_SYSON_LDOA12V_WT 12
  4201. #define BIT_MASK_SYSON_LDOA12V_WT 0x3
  4202. #define BIT_SYSON_LDOA12V_WT(x) \
  4203. (((x) & BIT_MASK_SYSON_LDOA12V_WT) << BIT_SHIFT_SYSON_LDOA12V_WT)
  4204. #define BITS_SYSON_LDOA12V_WT \
  4205. (BIT_MASK_SYSON_LDOA12V_WT << BIT_SHIFT_SYSON_LDOA12V_WT)
  4206. #define BIT_CLEAR_SYSON_LDOA12V_WT(x) ((x) & (~BITS_SYSON_LDOA12V_WT))
  4207. #define BIT_GET_SYSON_LDOA12V_WT(x) \
  4208. (((x) >> BIT_SHIFT_SYSON_LDOA12V_WT) & BIT_MASK_SYSON_LDOA12V_WT)
  4209. #define BIT_SET_SYSON_LDOA12V_WT(x, v) \
  4210. (BIT_CLEAR_SYSON_LDOA12V_WT(x) | BIT_SYSON_LDOA12V_WT(v))
  4211. #endif
  4212. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4213. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  4214. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  4215. HALMAC_8881A_SUPPORT)
  4216. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4217. #define BIT_SYSON_DBG_PAD_E2 BIT(11)
  4218. #endif
  4219. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4220. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4221. #define BIT_SYSON_SDIOPOW_PAD_E2 BIT(11)
  4222. #endif
  4223. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4224. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4225. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4226. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4227. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4228. #define BIT_SYSON_LED_PAD_E2 BIT(10)
  4229. #endif
  4230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4231. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  4232. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  4233. HALMAC_8881A_SUPPORT)
  4234. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4235. #define BIT_SYSON_GPEE_PAD_E2 BIT(9)
  4236. #endif
  4237. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4238. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4239. #define BIT_SYSON_GPEE_PAD_E2_V33 BIT(9)
  4240. #endif
  4241. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4242. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4243. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4244. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4245. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4246. #define BIT_SYSON_PCI_PAD_E2 BIT(8)
  4247. #define BIT_SHIFT_MATCH_CNT 8
  4248. #define BIT_MASK_MATCH_CNT 0xff
  4249. #define BIT_MATCH_CNT(x) (((x) & BIT_MASK_MATCH_CNT) << BIT_SHIFT_MATCH_CNT)
  4250. #define BITS_MATCH_CNT (BIT_MASK_MATCH_CNT << BIT_SHIFT_MATCH_CNT)
  4251. #define BIT_CLEAR_MATCH_CNT(x) ((x) & (~BITS_MATCH_CNT))
  4252. #define BIT_GET_MATCH_CNT(x) (((x) >> BIT_SHIFT_MATCH_CNT) & BIT_MASK_MATCH_CNT)
  4253. #define BIT_SET_MATCH_CNT(x, v) (BIT_CLEAR_MATCH_CNT(x) | BIT_MATCH_CNT(v))
  4254. #endif
  4255. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4256. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4257. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4258. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4259. #define BIT_AUTO_SW_LDO_VOL_EN BIT(7)
  4260. #endif
  4261. #if (HALMAC_8192E_SUPPORT)
  4262. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4263. #define BIT_AUTO_SW_LDO_VOL_EN_V1 BIT(6)
  4264. #endif
  4265. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4266. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4267. #define BIT_ADJ_LDO_VOLT BIT(6)
  4268. #endif
  4269. #if (HALMAC_8881A_SUPPORT)
  4270. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4271. #define BIT_SHIFT_SYSON_LDOHCI12_WT 6
  4272. #define BIT_MASK_SYSON_LDOHCI12_WT 0x3
  4273. #define BIT_SYSON_LDOHCI12_WT(x) \
  4274. (((x) & BIT_MASK_SYSON_LDOHCI12_WT) << BIT_SHIFT_SYSON_LDOHCI12_WT)
  4275. #define BITS_SYSON_LDOHCI12_WT \
  4276. (BIT_MASK_SYSON_LDOHCI12_WT << BIT_SHIFT_SYSON_LDOHCI12_WT)
  4277. #define BIT_CLEAR_SYSON_LDOHCI12_WT(x) ((x) & (~BITS_SYSON_LDOHCI12_WT))
  4278. #define BIT_GET_SYSON_LDOHCI12_WT(x) \
  4279. (((x) >> BIT_SHIFT_SYSON_LDOHCI12_WT) & BIT_MASK_SYSON_LDOHCI12_WT)
  4280. #define BIT_SET_SYSON_LDOHCI12_WT(x, v) \
  4281. (BIT_CLEAR_SYSON_LDOHCI12_WT(x) | BIT_SYSON_LDOHCI12_WT(v))
  4282. #endif
  4283. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4284. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  4285. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  4286. HALMAC_8881A_SUPPORT)
  4287. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4288. #define BIT_SHIFT_SYSON_SPS0WWV_WT 4
  4289. #define BIT_MASK_SYSON_SPS0WWV_WT 0x3
  4290. #define BIT_SYSON_SPS0WWV_WT(x) \
  4291. (((x) & BIT_MASK_SYSON_SPS0WWV_WT) << BIT_SHIFT_SYSON_SPS0WWV_WT)
  4292. #define BITS_SYSON_SPS0WWV_WT \
  4293. (BIT_MASK_SYSON_SPS0WWV_WT << BIT_SHIFT_SYSON_SPS0WWV_WT)
  4294. #define BIT_CLEAR_SYSON_SPS0WWV_WT(x) ((x) & (~BITS_SYSON_SPS0WWV_WT))
  4295. #define BIT_GET_SYSON_SPS0WWV_WT(x) \
  4296. (((x) >> BIT_SHIFT_SYSON_SPS0WWV_WT) & BIT_MASK_SYSON_SPS0WWV_WT)
  4297. #define BIT_SET_SYSON_SPS0WWV_WT(x, v) \
  4298. (BIT_CLEAR_SYSON_SPS0WWV_WT(x) | BIT_SYSON_SPS0WWV_WT(v))
  4299. #endif
  4300. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4301. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4302. #define BIT_SHIFT_SYSON_SPS0SPS_WT 4
  4303. #define BIT_MASK_SYSON_SPS0SPS_WT 0x3
  4304. #define BIT_SYSON_SPS0SPS_WT(x) \
  4305. (((x) & BIT_MASK_SYSON_SPS0SPS_WT) << BIT_SHIFT_SYSON_SPS0SPS_WT)
  4306. #define BITS_SYSON_SPS0SPS_WT \
  4307. (BIT_MASK_SYSON_SPS0SPS_WT << BIT_SHIFT_SYSON_SPS0SPS_WT)
  4308. #define BIT_CLEAR_SYSON_SPS0SPS_WT(x) ((x) & (~BITS_SYSON_SPS0SPS_WT))
  4309. #define BIT_GET_SYSON_SPS0SPS_WT(x) \
  4310. (((x) >> BIT_SHIFT_SYSON_SPS0SPS_WT) & BIT_MASK_SYSON_SPS0SPS_WT)
  4311. #define BIT_SET_SYSON_SPS0SPS_WT(x, v) \
  4312. (BIT_CLEAR_SYSON_SPS0SPS_WT(x) | BIT_SYSON_SPS0SPS_WT(v))
  4313. #endif
  4314. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4315. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  4316. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  4317. HALMAC_8881A_SUPPORT)
  4318. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4319. #define BIT_SHIFT_SYSON_SPS0LDO_WT 2
  4320. #define BIT_MASK_SYSON_SPS0LDO_WT 0x3
  4321. #define BIT_SYSON_SPS0LDO_WT(x) \
  4322. (((x) & BIT_MASK_SYSON_SPS0LDO_WT) << BIT_SHIFT_SYSON_SPS0LDO_WT)
  4323. #define BITS_SYSON_SPS0LDO_WT \
  4324. (BIT_MASK_SYSON_SPS0LDO_WT << BIT_SHIFT_SYSON_SPS0LDO_WT)
  4325. #define BIT_CLEAR_SYSON_SPS0LDO_WT(x) ((x) & (~BITS_SYSON_SPS0LDO_WT))
  4326. #define BIT_GET_SYSON_SPS0LDO_WT(x) \
  4327. (((x) >> BIT_SHIFT_SYSON_SPS0LDO_WT) & BIT_MASK_SYSON_SPS0LDO_WT)
  4328. #define BIT_SET_SYSON_SPS0LDO_WT(x, v) \
  4329. (BIT_CLEAR_SYSON_SPS0LDO_WT(x) | BIT_SYSON_SPS0LDO_WT(v))
  4330. #endif
  4331. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4332. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4333. #define BIT_SHIFT_SYSON_SPS11VLDO_WT 2
  4334. #define BIT_MASK_SYSON_SPS11VLDO_WT 0x3
  4335. #define BIT_SYSON_SPS11VLDO_WT(x) \
  4336. (((x) & BIT_MASK_SYSON_SPS11VLDO_WT) << BIT_SHIFT_SYSON_SPS11VLDO_WT)
  4337. #define BITS_SYSON_SPS11VLDO_WT \
  4338. (BIT_MASK_SYSON_SPS11VLDO_WT << BIT_SHIFT_SYSON_SPS11VLDO_WT)
  4339. #define BIT_CLEAR_SYSON_SPS11VLDO_WT(x) ((x) & (~BITS_SYSON_SPS11VLDO_WT))
  4340. #define BIT_GET_SYSON_SPS11VLDO_WT(x) \
  4341. (((x) >> BIT_SHIFT_SYSON_SPS11VLDO_WT) & BIT_MASK_SYSON_SPS11VLDO_WT)
  4342. #define BIT_SET_SYSON_SPS11VLDO_WT(x, v) \
  4343. (BIT_CLEAR_SYSON_SPS11VLDO_WT(x) | BIT_SYSON_SPS11VLDO_WT(v))
  4344. #endif
  4345. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4346. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4347. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4348. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4349. /* 2 REG_PWR_OPTION_CTRL (Offset 0x0038) */
  4350. #define BIT_SHIFT_SYSON_RCLK_SCALE 0
  4351. #define BIT_MASK_SYSON_RCLK_SCALE 0x3
  4352. #define BIT_SYSON_RCLK_SCALE(x) \
  4353. (((x) & BIT_MASK_SYSON_RCLK_SCALE) << BIT_SHIFT_SYSON_RCLK_SCALE)
  4354. #define BITS_SYSON_RCLK_SCALE \
  4355. (BIT_MASK_SYSON_RCLK_SCALE << BIT_SHIFT_SYSON_RCLK_SCALE)
  4356. #define BIT_CLEAR_SYSON_RCLK_SCALE(x) ((x) & (~BITS_SYSON_RCLK_SCALE))
  4357. #define BIT_GET_SYSON_RCLK_SCALE(x) \
  4358. (((x) >> BIT_SHIFT_SYSON_RCLK_SCALE) & BIT_MASK_SYSON_RCLK_SCALE)
  4359. #define BIT_SET_SYSON_RCLK_SCALE(x, v) \
  4360. (BIT_CLEAR_SYSON_RCLK_SCALE(x) | BIT_SYSON_RCLK_SCALE(v))
  4361. #endif
  4362. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4363. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4364. HALMAC_8822C_SUPPORT)
  4365. /* 2 REG_SDIO_HCPWM1_V2 (Offset 0x10250038) */
  4366. #define BIT_CUR_PS BIT(0)
  4367. #endif
  4368. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4369. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4370. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4371. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4372. /* 2 REG_CAL_TIMER (Offset 0x003C) */
  4373. #define BIT_SHIFT_CAL_SCAL 0
  4374. #define BIT_MASK_CAL_SCAL 0xff
  4375. #define BIT_CAL_SCAL(x) (((x) & BIT_MASK_CAL_SCAL) << BIT_SHIFT_CAL_SCAL)
  4376. #define BITS_CAL_SCAL (BIT_MASK_CAL_SCAL << BIT_SHIFT_CAL_SCAL)
  4377. #define BIT_CLEAR_CAL_SCAL(x) ((x) & (~BITS_CAL_SCAL))
  4378. #define BIT_GET_CAL_SCAL(x) (((x) >> BIT_SHIFT_CAL_SCAL) & BIT_MASK_CAL_SCAL)
  4379. #define BIT_SET_CAL_SCAL(x, v) (BIT_CLEAR_CAL_SCAL(x) | BIT_CAL_SCAL(v))
  4380. /* 2 REG_ACLK_MON (Offset 0x003E) */
  4381. #define BIT_SHIFT_RCLK_MON 5
  4382. #define BIT_MASK_RCLK_MON 0x7ff
  4383. #define BIT_RCLK_MON(x) (((x) & BIT_MASK_RCLK_MON) << BIT_SHIFT_RCLK_MON)
  4384. #define BITS_RCLK_MON (BIT_MASK_RCLK_MON << BIT_SHIFT_RCLK_MON)
  4385. #define BIT_CLEAR_RCLK_MON(x) ((x) & (~BITS_RCLK_MON))
  4386. #define BIT_GET_RCLK_MON(x) (((x) >> BIT_SHIFT_RCLK_MON) & BIT_MASK_RCLK_MON)
  4387. #define BIT_SET_RCLK_MON(x, v) (BIT_CLEAR_RCLK_MON(x) | BIT_RCLK_MON(v))
  4388. #define BIT_CAL_EN BIT(4)
  4389. #define BIT_SHIFT_DPSTU 2
  4390. #define BIT_MASK_DPSTU 0x3
  4391. #define BIT_DPSTU(x) (((x) & BIT_MASK_DPSTU) << BIT_SHIFT_DPSTU)
  4392. #define BITS_DPSTU (BIT_MASK_DPSTU << BIT_SHIFT_DPSTU)
  4393. #define BIT_CLEAR_DPSTU(x) ((x) & (~BITS_DPSTU))
  4394. #define BIT_GET_DPSTU(x) (((x) >> BIT_SHIFT_DPSTU) & BIT_MASK_DPSTU)
  4395. #define BIT_SET_DPSTU(x, v) (BIT_CLEAR_DPSTU(x) | BIT_DPSTU(v))
  4396. #define BIT_SUS_16X BIT(1)
  4397. #endif
  4398. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  4399. /* 2 REG_ACLK_MON (Offset 0x003E) */
  4400. #define BIT_RSM_EN BIT(0)
  4401. #endif
  4402. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4403. /* 2 REG_GPIO_MUXCFG_2 (Offset 0x003F) */
  4404. #define BIT_SOUT_GPIO8 BIT(7)
  4405. #define BIT_SOUT_GPIO5 BIT(6)
  4406. #define BIT_RFE_CTRL_5_GPIO14_V1 BIT(5)
  4407. #define BIT_RFE_CTRL_10_GPIO13_V1 BIT(4)
  4408. #define BIT_RFE_CTRL_11_GPIO4_V1 BIT(3)
  4409. #define BIT_RFE_CTRL_5_GPIO14 BIT(2)
  4410. #define BIT_RFE_CTRL_10_GPIO13 BIT(1)
  4411. #define BIT_RFE_CTRL_11_GPIO4 BIT(0)
  4412. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4413. #define BIT_RFE_CTRL_3_GPIO12 BIT(31)
  4414. #endif
  4415. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4416. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4417. #define BIT_PAD_D_PAPE_2G_E BIT(31)
  4418. #endif
  4419. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4420. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4421. #define BIT_BT_RFE_CTRL_5_GPIO12 BIT(30)
  4422. #endif
  4423. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4424. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4425. #define BIT_PAD_D_PAPE_5G_E BIT(30)
  4426. #endif
  4427. #if (HALMAC_8198F_SUPPORT)
  4428. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4429. #define BIT_SIC_LOWEST_PRIORITY_V1 BIT(29)
  4430. #endif
  4431. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4432. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4433. #define BIT_S0_TRSW_GPIO12 BIT(29)
  4434. #endif
  4435. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4436. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4437. #define BIT_PAD_D_TRSW_E BIT(29)
  4438. #endif
  4439. #if (HALMAC_8192F_SUPPORT)
  4440. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4441. #define BIT_SIC_PRI_LOWEST BIT(28)
  4442. #endif
  4443. #if (HALMAC_8197F_SUPPORT)
  4444. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4445. #define BIT_SIC_LOWEST_PRIORITY BIT(28)
  4446. #endif
  4447. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4448. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4449. #define BIT_RFE_CTRL_9_GPIO13 BIT(28)
  4450. #endif
  4451. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4452. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4453. #define BIT_PAD_D_TRSWB_E BIT(28)
  4454. #endif
  4455. #if (HALMAC_8197F_SUPPORT)
  4456. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4457. #define BIT_WL_DSS_RSTN BIT(27)
  4458. #endif
  4459. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4460. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4461. #define BIT_RFE_CTRL_9_GPIO12 BIT(27)
  4462. #endif
  4463. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4464. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4465. #define BIT_PAD_D_PAPE_2G_O BIT(27)
  4466. #endif
  4467. #if (HALMAC_8197F_SUPPORT)
  4468. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4469. #define BIT_WL_DSS_EN_CLK BIT(26)
  4470. #endif
  4471. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4472. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4473. #define BIT_RFE_CTRL_8_GPIO4 BIT(26)
  4474. #endif
  4475. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4476. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4477. #define BIT_PAD_D_PAPE_5G_O BIT(26)
  4478. #endif
  4479. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4480. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4481. #define BIT_BT_RFE_CTRL_1_GPIO13 BIT(25)
  4482. #endif
  4483. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4484. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4485. #define BIT_PAD_D_TRSW_O BIT(25)
  4486. #endif
  4487. #if (HALMAC_8197F_SUPPORT)
  4488. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4489. #define BIT_SHIFT_PIN_USECASE 24
  4490. #define BIT_MASK_PIN_USECASE 0xf
  4491. #define BIT_PIN_USECASE(x) \
  4492. (((x) & BIT_MASK_PIN_USECASE) << BIT_SHIFT_PIN_USECASE)
  4493. #define BITS_PIN_USECASE (BIT_MASK_PIN_USECASE << BIT_SHIFT_PIN_USECASE)
  4494. #define BIT_CLEAR_PIN_USECASE(x) ((x) & (~BITS_PIN_USECASE))
  4495. #define BIT_GET_PIN_USECASE(x) \
  4496. (((x) >> BIT_SHIFT_PIN_USECASE) & BIT_MASK_PIN_USECASE)
  4497. #define BIT_SET_PIN_USECASE(x, v) \
  4498. (BIT_CLEAR_PIN_USECASE(x) | BIT_PIN_USECASE(v))
  4499. #endif
  4500. #if (HALMAC_8198F_SUPPORT)
  4501. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4502. #define BIT_SHIFT_PIN_USECASE_V1 24
  4503. #define BIT_MASK_PIN_USECASE_V1 0x1f
  4504. #define BIT_PIN_USECASE_V1(x) \
  4505. (((x) & BIT_MASK_PIN_USECASE_V1) << BIT_SHIFT_PIN_USECASE_V1)
  4506. #define BITS_PIN_USECASE_V1 \
  4507. (BIT_MASK_PIN_USECASE_V1 << BIT_SHIFT_PIN_USECASE_V1)
  4508. #define BIT_CLEAR_PIN_USECASE_V1(x) ((x) & (~BITS_PIN_USECASE_V1))
  4509. #define BIT_GET_PIN_USECASE_V1(x) \
  4510. (((x) >> BIT_SHIFT_PIN_USECASE_V1) & BIT_MASK_PIN_USECASE_V1)
  4511. #define BIT_SET_PIN_USECASE_V1(x, v) \
  4512. (BIT_CLEAR_PIN_USECASE_V1(x) | BIT_PIN_USECASE_V1(v))
  4513. #endif
  4514. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4515. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4516. #define BIT_BT_RFE_CTRL_1_GPIO12 BIT(24)
  4517. #endif
  4518. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4519. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4520. #define BIT_PAD_D_TRSWB_O BIT(24)
  4521. #endif
  4522. #if (HALMAC_8814B_SUPPORT)
  4523. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4524. #define BIT_EN_DATACPU_GPIO2 BIT(24)
  4525. #endif
  4526. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4527. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4528. #define BIT_BT_RFE_CTRL_0_GPIO4 BIT(23)
  4529. #endif
  4530. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4531. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4532. #define BIT_EN_A_ANTSEL BIT(23)
  4533. #endif
  4534. #if (HALMAC_8814B_SUPPORT)
  4535. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4536. #define BIT_EN_DATACPU_GPIO BIT(23)
  4537. #endif
  4538. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4539. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4540. #define BIT_ANTSW_GPIO13 BIT(22)
  4541. #endif
  4542. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4543. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4544. #define BIT_EN_A_ANTSELB BIT(22)
  4545. #endif
  4546. #if (HALMAC_8814B_SUPPORT)
  4547. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4548. #define BIT_EN_DATACPU_UART BIT(22)
  4549. #endif
  4550. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4551. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4552. #define BIT_ANTSW_GPIO12 BIT(21)
  4553. #endif
  4554. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4555. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4556. #define BIT_EN_D_PAPE_2G BIT(21)
  4557. #endif
  4558. #if (HALMAC_8814B_SUPPORT)
  4559. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4560. #define BIT_DATACPU_FSPI_EN BIT(21)
  4561. #endif
  4562. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4563. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4564. HALMAC_8822C_SUPPORT)
  4565. /* 2 REG_SDIO_INDIRECT_REG_CFG (Offset 0x10250040) */
  4566. #define BIT_INDIRECT_REG_RDY BIT(20)
  4567. #endif
  4568. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4569. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4570. #define BIT_ANTSWB_GPIO4 BIT(20)
  4571. #endif
  4572. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4573. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4574. #define BIT_EN_D_PAPE_5G BIT(20)
  4575. #endif
  4576. #if (HALMAC_8814B_SUPPORT)
  4577. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4578. #define BIT_EN_GPIO8_UART_OUT BIT(20)
  4579. #endif
  4580. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  4581. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  4582. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4583. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4584. #define BIT_FSPI_EN BIT(19)
  4585. #endif
  4586. #if (HALMAC_8198F_SUPPORT)
  4587. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4588. #define BIT_SW_IO_EN BIT(19)
  4589. #endif
  4590. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4591. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4592. HALMAC_8822C_SUPPORT)
  4593. /* 2 REG_SDIO_INDIRECT_REG_CFG (Offset 0x10250040) */
  4594. #define BIT_INDIRECT_REG_R BIT(19)
  4595. #endif
  4596. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4597. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4598. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4599. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4600. #define BIT_WL_RTS_EXT_32K_SEL BIT(18)
  4601. #endif
  4602. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4603. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4604. HALMAC_8822C_SUPPORT)
  4605. /* 2 REG_SDIO_INDIRECT_REG_CFG (Offset 0x10250040) */
  4606. #define BIT_INDIRECT_REG_W BIT(18)
  4607. #endif
  4608. #if (HALMAC_8192E_SUPPORT)
  4609. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4610. #define BIT_CKOUT33_EN BIT(17)
  4611. #endif
  4612. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4613. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4614. #define BIT_WLBT_DPDT_SEL_EN BIT(17)
  4615. #endif
  4616. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4617. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4618. #define BIT_XTAL_OUT_EN BIT(17)
  4619. #endif
  4620. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4621. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4622. HALMAC_8881A_SUPPORT)
  4623. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4624. #define BIT_WLGP_SPI_EN BIT(16)
  4625. #endif
  4626. #if (HALMAC_8192F_SUPPORT)
  4627. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4628. #define BIT_WLGP_CKOUT BIT(16)
  4629. #endif
  4630. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4631. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4632. HALMAC_8822C_SUPPORT)
  4633. /* 2 REG_SDIO_INDIRECT_REG_CFG (Offset 0x10250040) */
  4634. #define BIT_SHIFT_INDIRECT_REG_SIZE 16
  4635. #define BIT_MASK_INDIRECT_REG_SIZE 0x3
  4636. #define BIT_INDIRECT_REG_SIZE(x) \
  4637. (((x) & BIT_MASK_INDIRECT_REG_SIZE) << BIT_SHIFT_INDIRECT_REG_SIZE)
  4638. #define BITS_INDIRECT_REG_SIZE \
  4639. (BIT_MASK_INDIRECT_REG_SIZE << BIT_SHIFT_INDIRECT_REG_SIZE)
  4640. #define BIT_CLEAR_INDIRECT_REG_SIZE(x) ((x) & (~BITS_INDIRECT_REG_SIZE))
  4641. #define BIT_GET_INDIRECT_REG_SIZE(x) \
  4642. (((x) >> BIT_SHIFT_INDIRECT_REG_SIZE) & BIT_MASK_INDIRECT_REG_SIZE)
  4643. #define BIT_SET_INDIRECT_REG_SIZE(x, v) \
  4644. (BIT_CLEAR_INDIRECT_REG_SIZE(x) | BIT_INDIRECT_REG_SIZE(v))
  4645. #endif
  4646. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4647. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4648. #define BIT_WLBT_LNAON_SEL_EN BIT(16)
  4649. #endif
  4650. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4651. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4652. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4653. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4654. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4655. #define BIT_SIC_LBK BIT(15)
  4656. #define BIT_ENHTP BIT(14)
  4657. #endif
  4658. #if (HALMAC_8192F_SUPPORT)
  4659. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4660. #define BIT_PHY_TEST_EN BIT(13)
  4661. #endif
  4662. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  4663. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4664. #define BIT_WLPHY_DBG_EN BIT(13)
  4665. #endif
  4666. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4667. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4668. #define BIT_BT_AOD_GPIO3 BIT(13)
  4669. #endif
  4670. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4671. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4672. #define BIT_SIC_23 BIT(13)
  4673. #endif
  4674. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4675. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4676. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4677. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4678. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4679. #define BIT_ENSIC BIT(12)
  4680. #define BIT_SIC_SWRST BIT(11)
  4681. #endif
  4682. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4683. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4684. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4685. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4686. #define BIT_PO_WIFI_PTA_PINS BIT(10)
  4687. #endif
  4688. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4689. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4690. #define BIT_ENPMAC BIT(10)
  4691. #endif
  4692. #if (HALMAC_8192E_SUPPORT)
  4693. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4694. #define BIT_ENBTCMD BIT(9)
  4695. #endif
  4696. #if (HALMAC_8192F_SUPPORT)
  4697. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4698. #define BIT_COEX_MBOX BIT(9)
  4699. #endif
  4700. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  4701. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4702. #define BIT_BTCOEX_MBOX_EN BIT(9)
  4703. #endif
  4704. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4705. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4706. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4707. #define BIT_PO_BT_PTA_PINS BIT(9)
  4708. #endif
  4709. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4710. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4711. #define BIT_BTCMD_OUT_EN BIT(9)
  4712. #endif
  4713. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4714. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4715. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4716. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4717. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4718. #define BIT_ENUART BIT(8)
  4719. #define BIT_SHIFT_BTMODE 6
  4720. #define BIT_MASK_BTMODE 0x3
  4721. #define BIT_BTMODE(x) (((x) & BIT_MASK_BTMODE) << BIT_SHIFT_BTMODE)
  4722. #define BITS_BTMODE (BIT_MASK_BTMODE << BIT_SHIFT_BTMODE)
  4723. #define BIT_CLEAR_BTMODE(x) ((x) & (~BITS_BTMODE))
  4724. #define BIT_GET_BTMODE(x) (((x) >> BIT_SHIFT_BTMODE) & BIT_MASK_BTMODE)
  4725. #define BIT_SET_BTMODE(x, v) (BIT_CLEAR_BTMODE(x) | BIT_BTMODE(v))
  4726. #define BIT_ENBT BIT(5)
  4727. #endif
  4728. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4729. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4730. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4731. #define BIT_GEN1GEN2_SWITCH BIT(5)
  4732. #endif
  4733. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4734. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4735. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4736. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4737. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4738. #define BIT_EROM_EN BIT(4)
  4739. #endif
  4740. #if (HALMAC_8198F_SUPPORT)
  4741. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4742. #define BIT_ENUARTTX BIT(4)
  4743. #endif
  4744. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4745. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4746. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4747. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4748. #define BIT_WLRFE_6_7_EN BIT(3)
  4749. #endif
  4750. #if (HALMAC_8192F_SUPPORT)
  4751. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4752. #define BIT_WLRFE_12_EN BIT(3)
  4753. #endif
  4754. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4755. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4756. #define BIT_EN_D_TRSW BIT(3)
  4757. #endif
  4758. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4759. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4760. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4761. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4762. #define BIT_WLRFE_4_5_EN BIT(2)
  4763. #endif
  4764. #if (HALMAC_8192F_SUPPORT)
  4765. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4766. #define BIT_SPDT_SEL BIT(2)
  4767. #endif
  4768. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4769. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4770. #define BIT_EN_D_TRSWB BIT(2)
  4771. #endif
  4772. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4773. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4774. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4775. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4776. /* 2 REG_GPIO_MUXCFG (Offset 0x0040) */
  4777. #define BIT_SHIFT_GPIOSEL 0
  4778. #define BIT_MASK_GPIOSEL 0x3
  4779. #define BIT_GPIOSEL(x) (((x) & BIT_MASK_GPIOSEL) << BIT_SHIFT_GPIOSEL)
  4780. #define BITS_GPIOSEL (BIT_MASK_GPIOSEL << BIT_SHIFT_GPIOSEL)
  4781. #define BIT_CLEAR_GPIOSEL(x) ((x) & (~BITS_GPIOSEL))
  4782. #define BIT_GET_GPIOSEL(x) (((x) >> BIT_SHIFT_GPIOSEL) & BIT_MASK_GPIOSEL)
  4783. #define BIT_SET_GPIOSEL(x, v) (BIT_CLEAR_GPIOSEL(x) | BIT_GPIOSEL(v))
  4784. #endif
  4785. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4786. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4787. HALMAC_8822C_SUPPORT)
  4788. /* 2 REG_SDIO_INDIRECT_REG_CFG (Offset 0x10250040) */
  4789. #define BIT_SHIFT_INDIRECT_REG_ADDR 0
  4790. #define BIT_MASK_INDIRECT_REG_ADDR 0xffff
  4791. #define BIT_INDIRECT_REG_ADDR(x) \
  4792. (((x) & BIT_MASK_INDIRECT_REG_ADDR) << BIT_SHIFT_INDIRECT_REG_ADDR)
  4793. #define BITS_INDIRECT_REG_ADDR \
  4794. (BIT_MASK_INDIRECT_REG_ADDR << BIT_SHIFT_INDIRECT_REG_ADDR)
  4795. #define BIT_CLEAR_INDIRECT_REG_ADDR(x) ((x) & (~BITS_INDIRECT_REG_ADDR))
  4796. #define BIT_GET_INDIRECT_REG_ADDR(x) \
  4797. (((x) >> BIT_SHIFT_INDIRECT_REG_ADDR) & BIT_MASK_INDIRECT_REG_ADDR)
  4798. #define BIT_SET_INDIRECT_REG_ADDR(x, v) \
  4799. (BIT_CLEAR_INDIRECT_REG_ADDR(x) | BIT_INDIRECT_REG_ADDR(v))
  4800. #endif
  4801. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4802. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4803. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4804. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4805. /* 2 REG_GPIO_PIN_CTRL (Offset 0x0044) */
  4806. #define BIT_SHIFT_GPIO_MOD_7_TO_0 24
  4807. #define BIT_MASK_GPIO_MOD_7_TO_0 0xff
  4808. #define BIT_GPIO_MOD_7_TO_0(x) \
  4809. (((x) & BIT_MASK_GPIO_MOD_7_TO_0) << BIT_SHIFT_GPIO_MOD_7_TO_0)
  4810. #define BITS_GPIO_MOD_7_TO_0 \
  4811. (BIT_MASK_GPIO_MOD_7_TO_0 << BIT_SHIFT_GPIO_MOD_7_TO_0)
  4812. #define BIT_CLEAR_GPIO_MOD_7_TO_0(x) ((x) & (~BITS_GPIO_MOD_7_TO_0))
  4813. #define BIT_GET_GPIO_MOD_7_TO_0(x) \
  4814. (((x) >> BIT_SHIFT_GPIO_MOD_7_TO_0) & BIT_MASK_GPIO_MOD_7_TO_0)
  4815. #define BIT_SET_GPIO_MOD_7_TO_0(x, v) \
  4816. (BIT_CLEAR_GPIO_MOD_7_TO_0(x) | BIT_GPIO_MOD_7_TO_0(v))
  4817. #endif
  4818. #if (HALMAC_8192F_SUPPORT)
  4819. /* 2 REG_GPIO_PIN_CTRL (Offset 0x0044) */
  4820. #define BIT_SHIFT_WLGP1_SWIOMOD 24
  4821. #define BIT_MASK_WLGP1_SWIOMOD 0xff
  4822. #define BIT_WLGP1_SWIOMOD(x) \
  4823. (((x) & BIT_MASK_WLGP1_SWIOMOD) << BIT_SHIFT_WLGP1_SWIOMOD)
  4824. #define BITS_WLGP1_SWIOMOD (BIT_MASK_WLGP1_SWIOMOD << BIT_SHIFT_WLGP1_SWIOMOD)
  4825. #define BIT_CLEAR_WLGP1_SWIOMOD(x) ((x) & (~BITS_WLGP1_SWIOMOD))
  4826. #define BIT_GET_WLGP1_SWIOMOD(x) \
  4827. (((x) >> BIT_SHIFT_WLGP1_SWIOMOD) & BIT_MASK_WLGP1_SWIOMOD)
  4828. #define BIT_SET_WLGP1_SWIOMOD(x, v) \
  4829. (BIT_CLEAR_WLGP1_SWIOMOD(x) | BIT_WLGP1_SWIOMOD(v))
  4830. #endif
  4831. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4832. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4833. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4834. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4835. /* 2 REG_GPIO_PIN_CTRL (Offset 0x0044) */
  4836. #define BIT_SHIFT_GPIO_IO_SEL_7_TO_0 16
  4837. #define BIT_MASK_GPIO_IO_SEL_7_TO_0 0xff
  4838. #define BIT_GPIO_IO_SEL_7_TO_0(x) \
  4839. (((x) & BIT_MASK_GPIO_IO_SEL_7_TO_0) << BIT_SHIFT_GPIO_IO_SEL_7_TO_0)
  4840. #define BITS_GPIO_IO_SEL_7_TO_0 \
  4841. (BIT_MASK_GPIO_IO_SEL_7_TO_0 << BIT_SHIFT_GPIO_IO_SEL_7_TO_0)
  4842. #define BIT_CLEAR_GPIO_IO_SEL_7_TO_0(x) ((x) & (~BITS_GPIO_IO_SEL_7_TO_0))
  4843. #define BIT_GET_GPIO_IO_SEL_7_TO_0(x) \
  4844. (((x) >> BIT_SHIFT_GPIO_IO_SEL_7_TO_0) & BIT_MASK_GPIO_IO_SEL_7_TO_0)
  4845. #define BIT_SET_GPIO_IO_SEL_7_TO_0(x, v) \
  4846. (BIT_CLEAR_GPIO_IO_SEL_7_TO_0(x) | BIT_GPIO_IO_SEL_7_TO_0(v))
  4847. #define BIT_SHIFT_GPIO_OUT_7_TO_0 8
  4848. #define BIT_MASK_GPIO_OUT_7_TO_0 0xff
  4849. #define BIT_GPIO_OUT_7_TO_0(x) \
  4850. (((x) & BIT_MASK_GPIO_OUT_7_TO_0) << BIT_SHIFT_GPIO_OUT_7_TO_0)
  4851. #define BITS_GPIO_OUT_7_TO_0 \
  4852. (BIT_MASK_GPIO_OUT_7_TO_0 << BIT_SHIFT_GPIO_OUT_7_TO_0)
  4853. #define BIT_CLEAR_GPIO_OUT_7_TO_0(x) ((x) & (~BITS_GPIO_OUT_7_TO_0))
  4854. #define BIT_GET_GPIO_OUT_7_TO_0(x) \
  4855. (((x) >> BIT_SHIFT_GPIO_OUT_7_TO_0) & BIT_MASK_GPIO_OUT_7_TO_0)
  4856. #define BIT_SET_GPIO_OUT_7_TO_0(x, v) \
  4857. (BIT_CLEAR_GPIO_OUT_7_TO_0(x) | BIT_GPIO_OUT_7_TO_0(v))
  4858. #endif
  4859. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4860. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4861. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4862. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4863. /* 2 REG_GPIO_PIN_CTRL (Offset 0x0044) */
  4864. #define BIT_SHIFT_GPIO_IN_7_TO_0 0
  4865. #define BIT_MASK_GPIO_IN_7_TO_0 0xff
  4866. #define BIT_GPIO_IN_7_TO_0(x) \
  4867. (((x) & BIT_MASK_GPIO_IN_7_TO_0) << BIT_SHIFT_GPIO_IN_7_TO_0)
  4868. #define BITS_GPIO_IN_7_TO_0 \
  4869. (BIT_MASK_GPIO_IN_7_TO_0 << BIT_SHIFT_GPIO_IN_7_TO_0)
  4870. #define BIT_CLEAR_GPIO_IN_7_TO_0(x) ((x) & (~BITS_GPIO_IN_7_TO_0))
  4871. #define BIT_GET_GPIO_IN_7_TO_0(x) \
  4872. (((x) >> BIT_SHIFT_GPIO_IN_7_TO_0) & BIT_MASK_GPIO_IN_7_TO_0)
  4873. #define BIT_SET_GPIO_IN_7_TO_0(x, v) \
  4874. (BIT_CLEAR_GPIO_IN_7_TO_0(x) | BIT_GPIO_IN_7_TO_0(v))
  4875. #endif
  4876. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  4877. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4878. HALMAC_8822C_SUPPORT)
  4879. /* 2 REG_SDIO_INDIRECT_REG_DATA (Offset 0x10250044) */
  4880. #define BIT_SHIFT_INDIRECT_REG_DATA 0
  4881. #define BIT_MASK_INDIRECT_REG_DATA 0xffffffffL
  4882. #define BIT_INDIRECT_REG_DATA(x) \
  4883. (((x) & BIT_MASK_INDIRECT_REG_DATA) << BIT_SHIFT_INDIRECT_REG_DATA)
  4884. #define BITS_INDIRECT_REG_DATA \
  4885. (BIT_MASK_INDIRECT_REG_DATA << BIT_SHIFT_INDIRECT_REG_DATA)
  4886. #define BIT_CLEAR_INDIRECT_REG_DATA(x) ((x) & (~BITS_INDIRECT_REG_DATA))
  4887. #define BIT_GET_INDIRECT_REG_DATA(x) \
  4888. (((x) >> BIT_SHIFT_INDIRECT_REG_DATA) & BIT_MASK_INDIRECT_REG_DATA)
  4889. #define BIT_SET_INDIRECT_REG_DATA(x, v) \
  4890. (BIT_CLEAR_INDIRECT_REG_DATA(x) | BIT_INDIRECT_REG_DATA(v))
  4891. #endif
  4892. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4893. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4894. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4895. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4896. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4897. #define BIT_SHIFT_MUXDBG_SEL 30
  4898. #define BIT_MASK_MUXDBG_SEL 0x3
  4899. #define BIT_MUXDBG_SEL(x) (((x) & BIT_MASK_MUXDBG_SEL) << BIT_SHIFT_MUXDBG_SEL)
  4900. #define BITS_MUXDBG_SEL (BIT_MASK_MUXDBG_SEL << BIT_SHIFT_MUXDBG_SEL)
  4901. #define BIT_CLEAR_MUXDBG_SEL(x) ((x) & (~BITS_MUXDBG_SEL))
  4902. #define BIT_GET_MUXDBG_SEL(x) \
  4903. (((x) >> BIT_SHIFT_MUXDBG_SEL) & BIT_MASK_MUXDBG_SEL)
  4904. #define BIT_SET_MUXDBG_SEL(x, v) (BIT_CLEAR_MUXDBG_SEL(x) | BIT_MUXDBG_SEL(v))
  4905. #endif
  4906. #if (HALMAC_8192F_SUPPORT)
  4907. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4908. #define BIT_PCI_LPS_LDACT BIT(29)
  4909. #endif
  4910. #if (HALMAC_8192E_SUPPORT)
  4911. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4912. #define BIT_SHIFT_MUXDBG_SEL2 28
  4913. #define BIT_MASK_MUXDBG_SEL2 0x3
  4914. #define BIT_MUXDBG_SEL2(x) \
  4915. (((x) & BIT_MASK_MUXDBG_SEL2) << BIT_SHIFT_MUXDBG_SEL2)
  4916. #define BITS_MUXDBG_SEL2 (BIT_MASK_MUXDBG_SEL2 << BIT_SHIFT_MUXDBG_SEL2)
  4917. #define BIT_CLEAR_MUXDBG_SEL2(x) ((x) & (~BITS_MUXDBG_SEL2))
  4918. #define BIT_GET_MUXDBG_SEL2(x) \
  4919. (((x) >> BIT_SHIFT_MUXDBG_SEL2) & BIT_MASK_MUXDBG_SEL2)
  4920. #define BIT_SET_MUXDBG_SEL2(x, v) \
  4921. (BIT_CLEAR_MUXDBG_SEL2(x) | BIT_MUXDBG_SEL2(v))
  4922. #endif
  4923. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4924. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4925. #define BIT_GPIO_EXT_EN BIT(20)
  4926. #endif
  4927. #if (HALMAC_8192E_SUPPORT)
  4928. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4929. #define BIT_EXTWOL1_SEL BIT(19)
  4930. #define BIT_EXTWOL1_EN BIT(18)
  4931. #endif
  4932. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  4933. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4934. #define BIT_EXTWOL0_SEL BIT(17)
  4935. #endif
  4936. #if (HALMAC_8192F_SUPPORT)
  4937. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4938. #define BIT_BT_EXTWOL_DIS BIT(17)
  4939. #endif
  4940. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  4941. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  4942. HALMAC_8822C_SUPPORT)
  4943. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4944. #define BIT_EXTWOL_SEL BIT(17)
  4945. #endif
  4946. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  4947. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4948. #define BIT_EXTWOL0_EN BIT(16)
  4949. #endif
  4950. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  4951. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4952. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  4953. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4954. #define BIT_EXTWOL_EN BIT(16)
  4955. #endif
  4956. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4957. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4958. #define BIT_SHIFT_GPIO_EXT_WOL_V1 16
  4959. #define BIT_MASK_GPIO_EXT_WOL_V1 0xf
  4960. #define BIT_GPIO_EXT_WOL_V1(x) \
  4961. (((x) & BIT_MASK_GPIO_EXT_WOL_V1) << BIT_SHIFT_GPIO_EXT_WOL_V1)
  4962. #define BITS_GPIO_EXT_WOL_V1 \
  4963. (BIT_MASK_GPIO_EXT_WOL_V1 << BIT_SHIFT_GPIO_EXT_WOL_V1)
  4964. #define BIT_CLEAR_GPIO_EXT_WOL_V1(x) ((x) & (~BITS_GPIO_EXT_WOL_V1))
  4965. #define BIT_GET_GPIO_EXT_WOL_V1(x) \
  4966. (((x) >> BIT_SHIFT_GPIO_EXT_WOL_V1) & BIT_MASK_GPIO_EXT_WOL_V1)
  4967. #define BIT_SET_GPIO_EXT_WOL_V1(x, v) \
  4968. (BIT_CLEAR_GPIO_EXT_WOL_V1(x) | BIT_GPIO_EXT_WOL_V1(v))
  4969. #endif
  4970. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  4971. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  4972. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  4973. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  4974. /* 2 REG_GPIO_INTM (Offset 0x0048) */
  4975. #define BIT_GPIOF_INT_MD BIT(15)
  4976. #define BIT_GPIOE_INT_MD BIT(14)
  4977. #define BIT_GPIOD_INT_MD BIT(13)
  4978. #define BIT_GPIOC_INT_MD BIT(12)
  4979. #define BIT_GPIOB_INT_MD BIT(11)
  4980. #define BIT_GPIOA_INT_MD BIT(10)
  4981. #define BIT_GPIO9_INT_MD BIT(9)
  4982. #define BIT_GPIO8_INT_MD BIT(8)
  4983. #define BIT_GPIO7_INT_MD BIT(7)
  4984. #define BIT_GPIO6_INT_MD BIT(6)
  4985. #define BIT_GPIO5_INT_MD BIT(5)
  4986. #define BIT_GPIO4_INT_MD BIT(4)
  4987. #define BIT_GPIO3_INT_MD BIT(3)
  4988. #define BIT_GPIO2_INT_MD BIT(2)
  4989. #define BIT_GPIO1_INT_MD BIT(1)
  4990. #define BIT_GPIO0_INT_MD BIT(0)
  4991. #endif
  4992. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  4993. /* 2 REG_LED_CFG (Offset 0x004C) */
  4994. #define BIT_MAILBOX_1WIRE_GPIO_CFG BIT(31)
  4995. #endif
  4996. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  4997. /* 2 REG_LED_CFG (Offset 0x004C) */
  4998. #define BIT_PAD_ANTSEL_I BIT(31)
  4999. #endif
  5000. #if (HALMAC_8192E_SUPPORT)
  5001. /* 2 REG_LED_CFG (Offset 0x004C) */
  5002. #define BIT_ANT_SEL7_EN BIT(30)
  5003. #endif
  5004. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  5005. /* 2 REG_LED_CFG (Offset 0x004C) */
  5006. #define BIT_BT_RF_GPIO_CFG BIT(30)
  5007. #endif
  5008. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5009. /* 2 REG_LED_CFG (Offset 0x004C) */
  5010. #define BIT_PAD_ANTSELB_I BIT(30)
  5011. #endif
  5012. #if (HALMAC_8192E_SUPPORT)
  5013. /* 2 REG_LED_CFG (Offset 0x004C) */
  5014. #define BIT_ANT_SEL46_EN BIT(29)
  5015. #endif
  5016. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  5017. /* 2 REG_LED_CFG (Offset 0x004C) */
  5018. #define BIT_BT_SDIO_INT_GPIO_CFG BIT(29)
  5019. #endif
  5020. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5021. /* 2 REG_LED_CFG (Offset 0x004C) */
  5022. #define BIT_PAD_D_PAPE_2G_I BIT(29)
  5023. #endif
  5024. #if (HALMAC_8192E_SUPPORT)
  5025. /* 2 REG_LED_CFG (Offset 0x004C) */
  5026. #define BIT_ANT_SEL3_EN BIT(28)
  5027. #endif
  5028. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  5029. /* 2 REG_LED_CFG (Offset 0x004C) */
  5030. #define BIT_MAILBOX_3WIRE_GPIO_CFG BIT(28)
  5031. #endif
  5032. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5033. /* 2 REG_LED_CFG (Offset 0x004C) */
  5034. #define BIT_PAD_D_PAPE_5G_I BIT(28)
  5035. #endif
  5036. #if (HALMAC_8192E_SUPPORT)
  5037. /* 2 REG_LED_CFG (Offset 0x004C) */
  5038. #define BIT_TRSW_SEL_EN BIT(27)
  5039. #endif
  5040. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  5041. /* 2 REG_LED_CFG (Offset 0x004C) */
  5042. #define BIT_WLBT_PAPE_SEL_EN BIT(27)
  5043. #endif
  5044. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5045. /* 2 REG_LED_CFG (Offset 0x004C) */
  5046. #define BIT_PAD_D_TRSW_I BIT(27)
  5047. #endif
  5048. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  5049. /* 2 REG_LED_CFG (Offset 0x004C) */
  5050. #define BIT_GPIO3_WL_CTRL_EN BIT(27)
  5051. #endif
  5052. #if (HALMAC_8192E_SUPPORT)
  5053. /* 2 REG_LED_CFG (Offset 0x004C) */
  5054. #define BIT_PAPE1_SEL_EN BIT(26)
  5055. #endif
  5056. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5057. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5058. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5059. /* 2 REG_LED_CFG (Offset 0x004C) */
  5060. #define BIT_LNAON_SEL_EN BIT(26)
  5061. #endif
  5062. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5063. /* 2 REG_LED_CFG (Offset 0x004C) */
  5064. #define BIT_PAD_D_TRSWB_I BIT(26)
  5065. #endif
  5066. #if (HALMAC_8192E_SUPPORT)
  5067. /* 2 REG_LED_CFG (Offset 0x004C) */
  5068. #define BIT_PAPE0_SEL_EN BIT(25)
  5069. #endif
  5070. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5071. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5072. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5073. /* 2 REG_LED_CFG (Offset 0x004C) */
  5074. #define BIT_PAPE_SEL_EN BIT(25)
  5075. #endif
  5076. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5077. /* 2 REG_LED_CFG (Offset 0x004C) */
  5078. #define BIT_DWH_EN BIT(25)
  5079. #endif
  5080. #if (HALMAC_8192E_SUPPORT)
  5081. /* 2 REG_LED_CFG (Offset 0x004C) */
  5082. #define BIT_ANTSEL2_EN BIT(24)
  5083. #endif
  5084. #if (HALMAC_8192F_SUPPORT)
  5085. /* 2 REG_LED_CFG (Offset 0x004C) */
  5086. #define BIT_ANT01_EN BIT(24)
  5087. #endif
  5088. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5089. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  5090. HALMAC_8822C_SUPPORT)
  5091. /* 2 REG_LED_CFG (Offset 0x004C) */
  5092. #define BIT_DPDT_WLBT_SEL BIT(24)
  5093. #endif
  5094. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5095. /* 2 REG_LED_CFG (Offset 0x004C) */
  5096. #define BIT_DHW_EN BIT(24)
  5097. #endif
  5098. #if (HALMAC_8881A_SUPPORT)
  5099. /* 2 REG_LED_CFG (Offset 0x004C) */
  5100. #define BIT_RFE_ANT_EXT_SEL BIT(24)
  5101. #endif
  5102. #if (HALMAC_8192E_SUPPORT)
  5103. /* 2 REG_LED_CFG (Offset 0x004C) */
  5104. #define BIT_ANTSEL_EN BIT(23)
  5105. #endif
  5106. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5107. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5108. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5109. /* 2 REG_LED_CFG (Offset 0x004C) */
  5110. #define BIT_DPDT_SEL_EN BIT(23)
  5111. #endif
  5112. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5113. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5114. /* 2 REG_LED_CFG (Offset 0x004C) */
  5115. #define BIT_GPIO13_14_WL_CTRL_EN BIT(22)
  5116. #endif
  5117. #if (HALMAC_8192F_SUPPORT)
  5118. /* 2 REG_LED_CFG (Offset 0x004C) */
  5119. #define BIT_SW_SPDT_SEL BIT(22)
  5120. #endif
  5121. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5122. /* 2 REG_LED_CFG (Offset 0x004C) */
  5123. #define BIT_LED2DIS_V1 BIT(22)
  5124. #endif
  5125. #if (HALMAC_8881A_SUPPORT)
  5126. /* 2 REG_LED_CFG (Offset 0x004C) */
  5127. #define BIT_TRXIQ_DBG_EN BIT(22)
  5128. #endif
  5129. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5130. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5131. HALMAC_8881A_SUPPORT)
  5132. /* 2 REG_LED_CFG (Offset 0x004C) */
  5133. #define BIT_LED2DIS BIT(21)
  5134. #endif
  5135. #if (HALMAC_8192F_SUPPORT)
  5136. /* 2 REG_LED_CFG (Offset 0x004C) */
  5137. #define BIT_LED0_GPIO_EN BIT(21)
  5138. #endif
  5139. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5140. HALMAC_8814AMP_SUPPORT)
  5141. /* 2 REG_LED_CFG (Offset 0x004C) */
  5142. #define BIT_LED2EN BIT(21)
  5143. #endif
  5144. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5145. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5146. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5147. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5148. /* 2 REG_LED_CFG (Offset 0x004C) */
  5149. #define BIT_LED2PL BIT(20)
  5150. #define BIT_LED2SV BIT(19)
  5151. #define BIT_SHIFT_LED2CM 16
  5152. #define BIT_MASK_LED2CM 0x7
  5153. #define BIT_LED2CM(x) (((x) & BIT_MASK_LED2CM) << BIT_SHIFT_LED2CM)
  5154. #define BITS_LED2CM (BIT_MASK_LED2CM << BIT_SHIFT_LED2CM)
  5155. #define BIT_CLEAR_LED2CM(x) ((x) & (~BITS_LED2CM))
  5156. #define BIT_GET_LED2CM(x) (((x) >> BIT_SHIFT_LED2CM) & BIT_MASK_LED2CM)
  5157. #define BIT_SET_LED2CM(x, v) (BIT_CLEAR_LED2CM(x) | BIT_LED2CM(v))
  5158. #define BIT_LED1DIS BIT(15)
  5159. #define BIT_LED1PL BIT(12)
  5160. #define BIT_LED1SV BIT(11)
  5161. #define BIT_SHIFT_LED1CM 8
  5162. #define BIT_MASK_LED1CM 0x7
  5163. #define BIT_LED1CM(x) (((x) & BIT_MASK_LED1CM) << BIT_SHIFT_LED1CM)
  5164. #define BITS_LED1CM (BIT_MASK_LED1CM << BIT_SHIFT_LED1CM)
  5165. #define BIT_CLEAR_LED1CM(x) ((x) & (~BITS_LED1CM))
  5166. #define BIT_GET_LED1CM(x) (((x) >> BIT_SHIFT_LED1CM) & BIT_MASK_LED1CM)
  5167. #define BIT_SET_LED1CM(x, v) (BIT_CLEAR_LED1CM(x) | BIT_LED1CM(v))
  5168. #define BIT_LED0DIS BIT(7)
  5169. #endif
  5170. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5171. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5172. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5173. HALMAC_8881A_SUPPORT)
  5174. /* 2 REG_LED_CFG (Offset 0x004C) */
  5175. #define BIT_SHIFT_AFE_LDO_SWR_CHECK 5
  5176. #define BIT_MASK_AFE_LDO_SWR_CHECK 0x3
  5177. #define BIT_AFE_LDO_SWR_CHECK(x) \
  5178. (((x) & BIT_MASK_AFE_LDO_SWR_CHECK) << BIT_SHIFT_AFE_LDO_SWR_CHECK)
  5179. #define BITS_AFE_LDO_SWR_CHECK \
  5180. (BIT_MASK_AFE_LDO_SWR_CHECK << BIT_SHIFT_AFE_LDO_SWR_CHECK)
  5181. #define BIT_CLEAR_AFE_LDO_SWR_CHECK(x) ((x) & (~BITS_AFE_LDO_SWR_CHECK))
  5182. #define BIT_GET_AFE_LDO_SWR_CHECK(x) \
  5183. (((x) >> BIT_SHIFT_AFE_LDO_SWR_CHECK) & BIT_MASK_AFE_LDO_SWR_CHECK)
  5184. #define BIT_SET_AFE_LDO_SWR_CHECK(x, v) \
  5185. (BIT_CLEAR_AFE_LDO_SWR_CHECK(x) | BIT_AFE_LDO_SWR_CHECK(v))
  5186. #endif
  5187. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5188. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5189. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5190. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5191. /* 2 REG_LED_CFG (Offset 0x004C) */
  5192. #define BIT_LED0PL BIT(4)
  5193. #define BIT_LED0SV BIT(3)
  5194. #define BIT_SHIFT_LED0CM 0
  5195. #define BIT_MASK_LED0CM 0x7
  5196. #define BIT_LED0CM(x) (((x) & BIT_MASK_LED0CM) << BIT_SHIFT_LED0CM)
  5197. #define BITS_LED0CM (BIT_MASK_LED0CM << BIT_SHIFT_LED0CM)
  5198. #define BIT_CLEAR_LED0CM(x) ((x) & (~BITS_LED0CM))
  5199. #define BIT_GET_LED0CM(x) (((x) >> BIT_SHIFT_LED0CM) & BIT_MASK_LED0CM)
  5200. #define BIT_SET_LED0CM(x, v) (BIT_CLEAR_LED0CM(x) | BIT_LED0CM(v))
  5201. /* 2 REG_FSIMR (Offset 0x0050) */
  5202. #define BIT_FS_PDNINT_EN BIT(31)
  5203. #endif
  5204. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  5205. /* 2 REG_FSIMR (Offset 0x0050) */
  5206. #define BIT_NFC_INT_PAD_EN BIT(30)
  5207. #endif
  5208. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5209. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5210. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5211. HALMAC_8881A_SUPPORT)
  5212. /* 2 REG_FSIMR (Offset 0x0050) */
  5213. #define BIT_FS_SPS_OCP_INT_EN BIT(29)
  5214. #endif
  5215. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5216. /* 2 REG_FSIMR (Offset 0x0050) */
  5217. #define BIT_SW_SPS_OCP_INT_EN BIT(29)
  5218. #endif
  5219. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5220. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5221. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5222. HALMAC_8881A_SUPPORT)
  5223. /* 2 REG_FSIMR (Offset 0x0050) */
  5224. #define BIT_FS_PWMERR_INT_EN BIT(28)
  5225. #endif
  5226. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5227. /* 2 REG_FSIMR (Offset 0x0050) */
  5228. #define BIT_FS_PWM_HW_ERR_EN BIT(28)
  5229. #endif
  5230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5231. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5232. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5233. HALMAC_8881A_SUPPORT)
  5234. /* 2 REG_FSIMR (Offset 0x0050) */
  5235. #define BIT_FS_GPIOF_INT_EN BIT(27)
  5236. #define BIT_FS_GPIOE_INT_EN BIT(26)
  5237. #define BIT_FS_GPIOD_INT_EN BIT(25)
  5238. #define BIT_FS_GPIOC_INT_EN BIT(24)
  5239. #endif
  5240. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5241. /* 2 REG_FSIMR (Offset 0x0050) */
  5242. #define BIT_ACT2RECOVERY_INT_EN BIT(24)
  5243. #endif
  5244. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5245. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5246. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5247. HALMAC_8881A_SUPPORT)
  5248. /* 2 REG_FSIMR (Offset 0x0050) */
  5249. #define BIT_FS_GPIOB_INT_EN BIT(23)
  5250. #endif
  5251. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5252. /* 2 REG_FSIMR (Offset 0x0050) */
  5253. #define BIT_PCIE_GEN12_SWITCH_EN BIT(23)
  5254. #endif
  5255. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5256. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5257. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5258. HALMAC_8881A_SUPPORT)
  5259. /* 2 REG_FSIMR (Offset 0x0050) */
  5260. #define BIT_FS_GPIOA_INT_EN BIT(22)
  5261. #endif
  5262. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5263. /* 2 REG_FSIMR (Offset 0x0050) */
  5264. #define BIT_FS_HCI_SUS_EN_V1 BIT(22)
  5265. #endif
  5266. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5267. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5268. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5269. HALMAC_8881A_SUPPORT)
  5270. /* 2 REG_FSIMR (Offset 0x0050) */
  5271. #define BIT_FS_GPIO9_INT_EN BIT(21)
  5272. #endif
  5273. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5274. /* 2 REG_FSIMR (Offset 0x0050) */
  5275. #define BIT_FS_HCI_RES_EN_V1 BIT(21)
  5276. #endif
  5277. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5278. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5279. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5280. HALMAC_8881A_SUPPORT)
  5281. /* 2 REG_FSIMR (Offset 0x0050) */
  5282. #define BIT_FS_GPIO8_INT_EN BIT(20)
  5283. #endif
  5284. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5285. /* 2 REG_FSIMR (Offset 0x0050) */
  5286. #define BIT_FS_HCI_RESET_EN_V1 BIT(20)
  5287. #endif
  5288. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5289. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5290. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5291. HALMAC_8881A_SUPPORT)
  5292. /* 2 REG_FSIMR (Offset 0x0050) */
  5293. #define BIT_FS_GPIO7_INT_EN BIT(19)
  5294. #endif
  5295. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5296. /* 2 REG_FSIMR (Offset 0x0050) */
  5297. #define BIT_FS_32K_LEAVE_SETTING_EN BIT(19)
  5298. #endif
  5299. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5300. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5301. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5302. HALMAC_8881A_SUPPORT)
  5303. /* 2 REG_FSIMR (Offset 0x0050) */
  5304. #define BIT_FS_GPIO6_INT_EN BIT(18)
  5305. #endif
  5306. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5307. /* 2 REG_FSIMR (Offset 0x0050) */
  5308. #define BIT_FS_32K_ENTER_SETTING_EN BIT(18)
  5309. #endif
  5310. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5311. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5312. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5313. HALMAC_8881A_SUPPORT)
  5314. /* 2 REG_FSIMR (Offset 0x0050) */
  5315. #define BIT_FS_GPIO5_INT_EN BIT(17)
  5316. #endif
  5317. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5318. /* 2 REG_FSIMR (Offset 0x0050) */
  5319. #define BIT_FS_SIE_LPM_RSM_EN_V1 BIT(17)
  5320. #endif
  5321. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5322. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5323. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5324. HALMAC_8881A_SUPPORT)
  5325. /* 2 REG_FSIMR (Offset 0x0050) */
  5326. #define BIT_FS_GPIO4_INT_EN BIT(16)
  5327. #endif
  5328. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5329. /* 2 REG_FSIMR (Offset 0x0050) */
  5330. #define BIT_FS_SIE_LPM_ACT_EN_V1 BIT(16)
  5331. #endif
  5332. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5333. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5334. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5335. HALMAC_8881A_SUPPORT)
  5336. /* 2 REG_FSIMR (Offset 0x0050) */
  5337. #define BIT_FS_GPIO3_INT_EN BIT(15)
  5338. #endif
  5339. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5340. /* 2 REG_FSIMR (Offset 0x0050) */
  5341. #define BIT_FS_GPIOF_INT_EN_V1 BIT(15)
  5342. #endif
  5343. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5344. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5345. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5346. HALMAC_8881A_SUPPORT)
  5347. /* 2 REG_FSIMR (Offset 0x0050) */
  5348. #define BIT_FS_GPIO2_INT_EN BIT(14)
  5349. #endif
  5350. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5351. /* 2 REG_FSIMR (Offset 0x0050) */
  5352. #define BIT_FS_GPIOE_INT_EN_V1 BIT(14)
  5353. #endif
  5354. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5355. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5356. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5357. HALMAC_8881A_SUPPORT)
  5358. /* 2 REG_FSIMR (Offset 0x0050) */
  5359. #define BIT_FS_GPIO1_INT_EN BIT(13)
  5360. #endif
  5361. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5362. /* 2 REG_FSIMR (Offset 0x0050) */
  5363. #define BIT_FS_GPIOD_INT_EN_V1 BIT(13)
  5364. #endif
  5365. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5366. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5367. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5368. HALMAC_8881A_SUPPORT)
  5369. /* 2 REG_FSIMR (Offset 0x0050) */
  5370. #define BIT_FS_GPIO0_INT_EN BIT(12)
  5371. #endif
  5372. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5373. /* 2 REG_FSIMR (Offset 0x0050) */
  5374. #define BIT_FS_GPIOC_INT_EN_V1 BIT(12)
  5375. #endif
  5376. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5377. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5378. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5379. HALMAC_8881A_SUPPORT)
  5380. /* 2 REG_FSIMR (Offset 0x0050) */
  5381. #define BIT_FS_HCI_SUS_EN BIT(11)
  5382. #endif
  5383. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5384. /* 2 REG_FSIMR (Offset 0x0050) */
  5385. #define BIT_FS_GPIOB_INT_EN_V1 BIT(11)
  5386. #endif
  5387. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5388. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5389. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5390. HALMAC_8881A_SUPPORT)
  5391. /* 2 REG_FSIMR (Offset 0x0050) */
  5392. #define BIT_FS_HCI_RES_EN BIT(10)
  5393. #endif
  5394. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5395. /* 2 REG_FSIMR (Offset 0x0050) */
  5396. #define BIT_FS_GPIOA_INT_EN_V1 BIT(10)
  5397. #endif
  5398. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5399. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5400. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5401. HALMAC_8881A_SUPPORT)
  5402. /* 2 REG_FSIMR (Offset 0x0050) */
  5403. #define BIT_FS_HCI_RESET_EN BIT(9)
  5404. #endif
  5405. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5406. /* 2 REG_FSIMR (Offset 0x0050) */
  5407. #define BIT_FS_GPIO9_INT_EN_V1 BIT(9)
  5408. #endif
  5409. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5410. /* 2 REG_FSIMR (Offset 0x0050) */
  5411. #define BIT_AXI_EXCEPT_FINT_EN BIT(8)
  5412. #endif
  5413. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5414. HALMAC_8822C_SUPPORT)
  5415. /* 2 REG_FSIMR (Offset 0x0050) */
  5416. #define BIT_USB_SCSI_CMD_EN BIT(8)
  5417. #endif
  5418. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5419. /* 2 REG_FSIMR (Offset 0x0050) */
  5420. #define BIT_FS_GPIO8_INT_EN_V1 BIT(8)
  5421. #endif
  5422. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5423. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5424. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5425. /* 2 REG_FSIMR (Offset 0x0050) */
  5426. #define BIT_FS_BTON_STS_UPDATE_MSK_EN BIT(7)
  5427. #endif
  5428. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5429. /* 2 REG_FSIMR (Offset 0x0050) */
  5430. #define BIT_FS_GPIO7_INT_EN_V1 BIT(7)
  5431. #endif
  5432. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5433. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5434. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5435. /* 2 REG_FSIMR (Offset 0x0050) */
  5436. #define BIT_ACT2RECOVERY_INT_EN_V1 BIT(6)
  5437. #endif
  5438. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5439. /* 2 REG_FSIMR (Offset 0x0050) */
  5440. #define BIT_FS_GPIO6_INT_EN_V1 BIT(6)
  5441. #endif
  5442. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5443. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  5444. /* 2 REG_FSIMR (Offset 0x0050) */
  5445. #define BIT_FS_TRPC_TO_INT_EN BIT(5)
  5446. #endif
  5447. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5448. /* 2 REG_FSIMR (Offset 0x0050) */
  5449. #define BIT_FS_GPIO5_INT_EN_V1 BIT(5)
  5450. #endif
  5451. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5452. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  5453. /* 2 REG_FSIMR (Offset 0x0050) */
  5454. #define BIT_FS_RPC_O_T_INT_EN BIT(4)
  5455. #endif
  5456. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5457. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5458. /* 2 REG_FSIMR (Offset 0x0050) */
  5459. #define BIT_HCI_TXDMA_REQ_HIMR BIT(4)
  5460. #endif
  5461. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5462. /* 2 REG_FSIMR (Offset 0x0050) */
  5463. #define BIT_FS_GPIO4_INT_EN_V1 BIT(4)
  5464. #endif
  5465. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5466. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5467. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5468. HALMAC_8881A_SUPPORT)
  5469. /* 2 REG_FSIMR (Offset 0x0050) */
  5470. #define BIT_FS_32K_LEAVE_SETTING_MAK BIT(3)
  5471. #endif
  5472. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5473. /* 2 REG_FSIMR (Offset 0x0050) */
  5474. #define BIT_FS_GPIO3_INT_EN_V1 BIT(3)
  5475. #endif
  5476. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5477. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5478. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5479. HALMAC_8881A_SUPPORT)
  5480. /* 2 REG_FSIMR (Offset 0x0050) */
  5481. #define BIT_FS_32K_ENTER_SETTING_MAK BIT(2)
  5482. #endif
  5483. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5484. /* 2 REG_FSIMR (Offset 0x0050) */
  5485. #define BIT_FS_GPIO2_INT_EN_V1 BIT(2)
  5486. #endif
  5487. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5488. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5489. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5490. HALMAC_8881A_SUPPORT)
  5491. /* 2 REG_FSIMR (Offset 0x0050) */
  5492. #define BIT_FS_USB_LPMRSM_MSK BIT(1)
  5493. #endif
  5494. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5495. /* 2 REG_FSIMR (Offset 0x0050) */
  5496. #define BIT_FS_GPIO1_INT_EN_V1 BIT(1)
  5497. #endif
  5498. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5499. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5500. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5501. HALMAC_8881A_SUPPORT)
  5502. /* 2 REG_FSIMR (Offset 0x0050) */
  5503. #define BIT_FS_USB_LPMINT_MSK BIT(0)
  5504. #endif
  5505. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5506. /* 2 REG_FSIMR (Offset 0x0050) */
  5507. #define BIT_FS_GPIO0_INT_EN_V1 BIT(0)
  5508. #endif
  5509. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5510. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5511. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5512. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5513. /* 2 REG_FSISR (Offset 0x0054) */
  5514. #define BIT_FS_PDNINT BIT(31)
  5515. #endif
  5516. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5517. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5518. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5519. HALMAC_8881A_SUPPORT)
  5520. /* 2 REG_FSISR (Offset 0x0054) */
  5521. #define BIT_FS_SPS_OCP_INT BIT(29)
  5522. #endif
  5523. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5524. /* 2 REG_FSISR (Offset 0x0054) */
  5525. #define BIT_SW_SPS_OCP_INT BIT(29)
  5526. #endif
  5527. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5528. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5529. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5530. HALMAC_8881A_SUPPORT)
  5531. /* 2 REG_FSISR (Offset 0x0054) */
  5532. #define BIT_FS_PWMERR_INT BIT(28)
  5533. #endif
  5534. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5535. /* 2 REG_FSISR (Offset 0x0054) */
  5536. #define BIT_FS_PWM_HW_ERR BIT(28)
  5537. #endif
  5538. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5539. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5540. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5541. HALMAC_8881A_SUPPORT)
  5542. /* 2 REG_FSISR (Offset 0x0054) */
  5543. #define BIT_FS_GPIOF_INT BIT(27)
  5544. #define BIT_FS_GPIOE_INT BIT(26)
  5545. #define BIT_FS_GPIOD_INT BIT(25)
  5546. #define BIT_FS_GPIOC_INT BIT(24)
  5547. #endif
  5548. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5549. /* 2 REG_FSISR (Offset 0x0054) */
  5550. #define BIT_ACT2RECOVERY_INT BIT(24)
  5551. #endif
  5552. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5553. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5554. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5555. HALMAC_8881A_SUPPORT)
  5556. /* 2 REG_FSISR (Offset 0x0054) */
  5557. #define BIT_FS_GPIOB_INT BIT(23)
  5558. #endif
  5559. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5560. /* 2 REG_FSISR (Offset 0x0054) */
  5561. #define BIT_PCIE_GEN12_SWITCH BIT(23)
  5562. #endif
  5563. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5564. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5565. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5566. HALMAC_8881A_SUPPORT)
  5567. /* 2 REG_FSISR (Offset 0x0054) */
  5568. #define BIT_FS_GPIOA_INT BIT(22)
  5569. #endif
  5570. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5571. /* 2 REG_FSISR (Offset 0x0054) */
  5572. #define BIT_FS_HCI_SUS_V1 BIT(22)
  5573. #endif
  5574. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5575. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5576. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5577. HALMAC_8881A_SUPPORT)
  5578. /* 2 REG_FSISR (Offset 0x0054) */
  5579. #define BIT_FS_GPIO9_INT BIT(21)
  5580. #endif
  5581. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5582. /* 2 REG_FSISR (Offset 0x0054) */
  5583. #define BIT_FS_HCI_RES_V1 BIT(21)
  5584. #endif
  5585. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5586. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5587. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5588. HALMAC_8881A_SUPPORT)
  5589. /* 2 REG_FSISR (Offset 0x0054) */
  5590. #define BIT_FS_GPIO8_INT BIT(20)
  5591. #endif
  5592. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5593. /* 2 REG_FSISR (Offset 0x0054) */
  5594. #define BIT_FS_HCI_RESET_V1 BIT(20)
  5595. #endif
  5596. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5597. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5598. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5599. HALMAC_8881A_SUPPORT)
  5600. /* 2 REG_FSISR (Offset 0x0054) */
  5601. #define BIT_FS_GPIO7_INT BIT(19)
  5602. #endif
  5603. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5604. /* 2 REG_FSISR (Offset 0x0054) */
  5605. #define BIT_FS_32K_LEAVE_SETTING BIT(19)
  5606. #endif
  5607. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5608. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5609. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5610. HALMAC_8881A_SUPPORT)
  5611. /* 2 REG_FSISR (Offset 0x0054) */
  5612. #define BIT_FS_GPIO6_INT BIT(18)
  5613. #endif
  5614. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5615. /* 2 REG_FSISR (Offset 0x0054) */
  5616. #define BIT_FS_32K_ENTER_SETTING BIT(18)
  5617. #endif
  5618. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5619. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5620. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5621. HALMAC_8881A_SUPPORT)
  5622. /* 2 REG_FSISR (Offset 0x0054) */
  5623. #define BIT_FS_GPIO5_INT BIT(17)
  5624. #endif
  5625. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5626. /* 2 REG_FSISR (Offset 0x0054) */
  5627. #define BIT_FS_SIE_LPM_RSM_V1 BIT(17)
  5628. #endif
  5629. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5630. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5631. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5632. HALMAC_8881A_SUPPORT)
  5633. /* 2 REG_FSISR (Offset 0x0054) */
  5634. #define BIT_FS_GPIO4_INT BIT(16)
  5635. #endif
  5636. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5637. /* 2 REG_FSISR (Offset 0x0054) */
  5638. #define BIT_FS_SIE_LPM_ACT_V1 BIT(16)
  5639. #endif
  5640. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5641. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5642. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5643. HALMAC_8881A_SUPPORT)
  5644. /* 2 REG_FSISR (Offset 0x0054) */
  5645. #define BIT_FS_GPIO3_INT BIT(15)
  5646. #endif
  5647. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5648. /* 2 REG_FSISR (Offset 0x0054) */
  5649. #define BIT_FS_GPIOF_INT_V1 BIT(15)
  5650. #endif
  5651. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5652. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5653. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5654. HALMAC_8881A_SUPPORT)
  5655. /* 2 REG_FSISR (Offset 0x0054) */
  5656. #define BIT_FS_GPIO2_INT BIT(14)
  5657. #endif
  5658. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5659. /* 2 REG_FSISR (Offset 0x0054) */
  5660. #define BIT_FS_GPIOE_INT_V1 BIT(14)
  5661. #endif
  5662. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5663. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5664. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5665. HALMAC_8881A_SUPPORT)
  5666. /* 2 REG_FSISR (Offset 0x0054) */
  5667. #define BIT_FS_GPIO1_INT BIT(13)
  5668. #endif
  5669. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5670. /* 2 REG_FSISR (Offset 0x0054) */
  5671. #define BIT_FS_GPIOD_INT_V1 BIT(13)
  5672. #endif
  5673. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5674. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5675. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5676. HALMAC_8881A_SUPPORT)
  5677. /* 2 REG_FSISR (Offset 0x0054) */
  5678. #define BIT_FS_GPIO0_INT BIT(12)
  5679. #endif
  5680. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5681. /* 2 REG_FSISR (Offset 0x0054) */
  5682. #define BIT_FS_GPIOC_INT_V1 BIT(12)
  5683. #endif
  5684. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5685. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5686. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5687. HALMAC_8881A_SUPPORT)
  5688. /* 2 REG_FSISR (Offset 0x0054) */
  5689. #define BIT_FS_HCI_SUS_INT BIT(11)
  5690. #endif
  5691. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5692. /* 2 REG_FSISR (Offset 0x0054) */
  5693. #define BIT_FS_GPIOB_INT_V1 BIT(11)
  5694. #endif
  5695. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5696. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5697. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5698. HALMAC_8881A_SUPPORT)
  5699. /* 2 REG_FSISR (Offset 0x0054) */
  5700. #define BIT_FS_HCI_RES_INT BIT(10)
  5701. #endif
  5702. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5703. /* 2 REG_FSISR (Offset 0x0054) */
  5704. #define BIT_FS_GPIOA_INT_V1 BIT(10)
  5705. #endif
  5706. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5707. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5708. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5709. HALMAC_8881A_SUPPORT)
  5710. /* 2 REG_FSISR (Offset 0x0054) */
  5711. #define BIT_FS_HCI_RESET_INT BIT(9)
  5712. #endif
  5713. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5714. /* 2 REG_FSISR (Offset 0x0054) */
  5715. #define BIT_FS_GPIO9_INT_V1 BIT(9)
  5716. #endif
  5717. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5718. /* 2 REG_FSISR (Offset 0x0054) */
  5719. #define BIT_AXI_EXCEPT_FINT BIT(8)
  5720. #endif
  5721. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5722. HALMAC_8822C_SUPPORT)
  5723. /* 2 REG_FSISR (Offset 0x0054) */
  5724. #define BIT_USB_SCSI_CMD_INT BIT(8)
  5725. #endif
  5726. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5727. /* 2 REG_FSISR (Offset 0x0054) */
  5728. #define BIT_FS_GPIO8_INT_V1 BIT(8)
  5729. #endif
  5730. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  5731. HALMAC_8814B_SUPPORT)
  5732. /* 2 REG_FSISR (Offset 0x0054) */
  5733. #define BIT_FS_BTON_STS_UPDATE_INT BIT(7)
  5734. #endif
  5735. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5736. /* 2 REG_FSISR (Offset 0x0054) */
  5737. #define BIT_FS_GPIO7_INT_V1 BIT(7)
  5738. #endif
  5739. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5740. /* 2 REG_FSISR (Offset 0x0054) */
  5741. #define BIT_ACT2RECOVERY_INT_V1 BIT(6)
  5742. #endif
  5743. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5744. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5745. /* 2 REG_FSISR (Offset 0x0054) */
  5746. #define BIT_ACT2RECOVERY BIT(6)
  5747. #endif
  5748. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5749. /* 2 REG_FSISR (Offset 0x0054) */
  5750. #define BIT_FS_GPIO6_INT_V1 BIT(6)
  5751. #endif
  5752. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5753. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  5754. /* 2 REG_FSISR (Offset 0x0054) */
  5755. #define BIT_FS_TRPC_TO_INT_INT BIT(5)
  5756. #endif
  5757. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5758. /* 2 REG_FSISR (Offset 0x0054) */
  5759. #define BIT_FS_GPIO5_INT_V1 BIT(5)
  5760. #endif
  5761. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5762. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  5763. /* 2 REG_FSISR (Offset 0x0054) */
  5764. #define BIT_FS_RPC_O_T_INT_INT BIT(4)
  5765. #endif
  5766. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5767. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5768. /* 2 REG_FSISR (Offset 0x0054) */
  5769. #define BIT_HCI_TXDMA_REQ_HISR BIT(4)
  5770. #endif
  5771. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5772. /* 2 REG_FSISR (Offset 0x0054) */
  5773. #define BIT_FS_GPIO4_INT_V1 BIT(4)
  5774. #endif
  5775. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5776. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5777. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5778. HALMAC_8881A_SUPPORT)
  5779. /* 2 REG_FSISR (Offset 0x0054) */
  5780. #define BIT_FS_32K_LEAVE_SETTING_INT BIT(3)
  5781. #endif
  5782. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5783. /* 2 REG_FSISR (Offset 0x0054) */
  5784. #define BIT_FS_GPIO3_INT_V1 BIT(3)
  5785. #endif
  5786. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5787. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5788. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5789. HALMAC_8881A_SUPPORT)
  5790. /* 2 REG_FSISR (Offset 0x0054) */
  5791. #define BIT_FS_32K_ENTER_SETTING_INT BIT(2)
  5792. #endif
  5793. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5794. /* 2 REG_FSISR (Offset 0x0054) */
  5795. #define BIT_FS_GPIO2_INT_V1 BIT(2)
  5796. #endif
  5797. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5798. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5799. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5800. HALMAC_8881A_SUPPORT)
  5801. /* 2 REG_FSISR (Offset 0x0054) */
  5802. #define BIT_FS_USB_LPMRSM_INT BIT(1)
  5803. #endif
  5804. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5805. /* 2 REG_FSISR (Offset 0x0054) */
  5806. #define BIT_FS_GPIO1_INT_V1 BIT(1)
  5807. #endif
  5808. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5809. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  5810. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5811. HALMAC_8881A_SUPPORT)
  5812. /* 2 REG_FSISR (Offset 0x0054) */
  5813. #define BIT_FS_USB_LPMINT_INT BIT(0)
  5814. #endif
  5815. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5816. /* 2 REG_FSISR (Offset 0x0054) */
  5817. #define BIT_FS_GPIO0_INT_V1 BIT(0)
  5818. #endif
  5819. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5820. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5821. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5822. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5823. /* 2 REG_HSIMR (Offset 0x0058) */
  5824. #define BIT_GPIOF_INT_EN BIT(31)
  5825. #define BIT_GPIOE_INT_EN BIT(30)
  5826. #define BIT_GPIOD_INT_EN BIT(29)
  5827. #define BIT_GPIOC_INT_EN BIT(28)
  5828. #define BIT_GPIOB_INT_EN BIT(27)
  5829. #define BIT_GPIOA_INT_EN BIT(26)
  5830. #define BIT_GPIO9_INT_EN BIT(25)
  5831. #define BIT_GPIO8_INT_EN BIT(24)
  5832. #define BIT_GPIO7_INT_EN BIT(23)
  5833. #define BIT_GPIO6_INT_EN BIT(22)
  5834. #define BIT_GPIO5_INT_EN BIT(21)
  5835. #define BIT_GPIO4_INT_EN BIT(20)
  5836. #define BIT_GPIO3_INT_EN BIT(19)
  5837. #endif
  5838. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5839. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  5840. HALMAC_8881A_SUPPORT)
  5841. /* 2 REG_HSIMR (Offset 0x0058) */
  5842. #define BIT_GPIO2_INT_EN BIT(18)
  5843. #endif
  5844. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5845. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5846. /* 2 REG_HSIMR (Offset 0x0058) */
  5847. #define BIT_GPIO2_INT_EN_V1 BIT(18)
  5848. #endif
  5849. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5850. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5851. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5852. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5853. /* 2 REG_HSIMR (Offset 0x0058) */
  5854. #define BIT_GPIO1_INT_EN BIT(17)
  5855. #define BIT_GPIO0_INT_EN BIT(16)
  5856. #endif
  5857. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5858. /* 2 REG_HSIMR (Offset 0x0058) */
  5859. #define BIT_AXI_EXCEPT_HINT_EN BIT(9)
  5860. #define BIT_PDNINT_EN_V2 BIT(8)
  5861. #endif
  5862. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5863. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  5864. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5865. /* 2 REG_HSIMR (Offset 0x0058) */
  5866. #define BIT_PDNINT_EN BIT(7)
  5867. #endif
  5868. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5869. /* 2 REG_HSIMR (Offset 0x0058) */
  5870. #define BIT_PDNINT_EN_V1 BIT(7)
  5871. #endif
  5872. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5873. /* 2 REG_HSIMR (Offset 0x0058) */
  5874. #define BIT_PDN_INT_EN BIT(7)
  5875. #endif
  5876. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5877. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5878. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5879. HALMAC_8881A_SUPPORT)
  5880. /* 2 REG_HSIMR (Offset 0x0058) */
  5881. #define BIT_RON_INT_EN BIT(6)
  5882. #endif
  5883. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5884. /* 2 REG_HSIMR (Offset 0x0058) */
  5885. #define BIT_RON_INT_EN_V1 BIT(6)
  5886. #endif
  5887. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5888. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5889. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5890. HALMAC_8881A_SUPPORT)
  5891. /* 2 REG_HSIMR (Offset 0x0058) */
  5892. #define BIT_SPS_OCP_INT_EN BIT(5)
  5893. #endif
  5894. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5895. /* 2 REG_HSIMR (Offset 0x0058) */
  5896. #define BIT_SPS_OCP_INT_EN_V1 BIT(5)
  5897. #endif
  5898. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5899. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5900. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5901. HALMAC_8881A_SUPPORT)
  5902. /* 2 REG_HSIMR (Offset 0x0058) */
  5903. #define BIT_GPIO15_0_INT_EN BIT(0)
  5904. #endif
  5905. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5906. /* 2 REG_HSIMR (Offset 0x0058) */
  5907. #define BIT_GPIO15_0_INT_EN_V1 BIT(0)
  5908. #endif
  5909. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5910. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5911. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5912. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5913. /* 2 REG_HSISR (Offset 0x005C) */
  5914. #define BIT_GPIOF_INT BIT(31)
  5915. #define BIT_GPIOE_INT BIT(30)
  5916. #define BIT_GPIOD_INT BIT(29)
  5917. #define BIT_GPIOC_INT BIT(28)
  5918. #define BIT_GPIOB_INT BIT(27)
  5919. #define BIT_GPIOA_INT BIT(26)
  5920. #define BIT_GPIO9_INT BIT(25)
  5921. #define BIT_GPIO8_INT BIT(24)
  5922. #define BIT_GPIO7_INT BIT(23)
  5923. #define BIT_GPIO6_INT BIT(22)
  5924. #define BIT_GPIO5_INT BIT(21)
  5925. #define BIT_GPIO4_INT BIT(20)
  5926. #define BIT_GPIO3_INT BIT(19)
  5927. #endif
  5928. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5929. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  5930. HALMAC_8881A_SUPPORT)
  5931. /* 2 REG_HSISR (Offset 0x005C) */
  5932. #define BIT_GPIO2_INT BIT(18)
  5933. #endif
  5934. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5935. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  5936. /* 2 REG_HSISR (Offset 0x005C) */
  5937. #define BIT_GPIO2_INT_V1 BIT(18)
  5938. #endif
  5939. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  5940. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  5941. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  5942. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5943. /* 2 REG_HSISR (Offset 0x005C) */
  5944. #define BIT_GPIO1_INT BIT(17)
  5945. #define BIT_GPIO0_INT BIT(16)
  5946. #endif
  5947. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5948. /* 2 REG_HSISR (Offset 0x005C) */
  5949. #define BIT_AXI_EXCEPT_HINT BIT(8)
  5950. #endif
  5951. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5952. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  5953. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  5954. /* 2 REG_HSISR (Offset 0x005C) */
  5955. #define BIT_PDNINT BIT(7)
  5956. #endif
  5957. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5958. /* 2 REG_HSISR (Offset 0x005C) */
  5959. #define BIT_PDNINT_V1 BIT(7)
  5960. #endif
  5961. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  5962. /* 2 REG_HSISR (Offset 0x005C) */
  5963. #define BIT_PDN_INT BIT(7)
  5964. #endif
  5965. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5966. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5967. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5968. HALMAC_8881A_SUPPORT)
  5969. /* 2 REG_HSISR (Offset 0x005C) */
  5970. #define BIT_RON_INT BIT(6)
  5971. #endif
  5972. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5973. /* 2 REG_HSISR (Offset 0x005C) */
  5974. #define BIT_RON_INT_V1 BIT(6)
  5975. #endif
  5976. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5977. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5978. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5979. HALMAC_8881A_SUPPORT)
  5980. /* 2 REG_HSISR (Offset 0x005C) */
  5981. #define BIT_SPS_OCP_INT BIT(5)
  5982. #endif
  5983. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5984. /* 2 REG_HSISR (Offset 0x005C) */
  5985. #define BIT_SPS_OCP_INT_V1 BIT(5)
  5986. #endif
  5987. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  5988. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  5989. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  5990. HALMAC_8881A_SUPPORT)
  5991. /* 2 REG_HSISR (Offset 0x005C) */
  5992. #define BIT_GPIO15_0_INT BIT(0)
  5993. #define BIT_MCUFWDL_EN BIT(0)
  5994. #endif
  5995. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  5996. /* 2 REG_HSISR (Offset 0x005C) */
  5997. #define BIT_GPIO15_0_INT_V1 BIT(0)
  5998. #endif
  5999. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6000. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6001. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6002. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6003. /* 2 REG_GPIO_EXT_CTRL (Offset 0x0060) */
  6004. #define BIT_SHIFT_GPIO_MOD_15_TO_8 24
  6005. #define BIT_MASK_GPIO_MOD_15_TO_8 0xff
  6006. #define BIT_GPIO_MOD_15_TO_8(x) \
  6007. (((x) & BIT_MASK_GPIO_MOD_15_TO_8) << BIT_SHIFT_GPIO_MOD_15_TO_8)
  6008. #define BITS_GPIO_MOD_15_TO_8 \
  6009. (BIT_MASK_GPIO_MOD_15_TO_8 << BIT_SHIFT_GPIO_MOD_15_TO_8)
  6010. #define BIT_CLEAR_GPIO_MOD_15_TO_8(x) ((x) & (~BITS_GPIO_MOD_15_TO_8))
  6011. #define BIT_GET_GPIO_MOD_15_TO_8(x) \
  6012. (((x) >> BIT_SHIFT_GPIO_MOD_15_TO_8) & BIT_MASK_GPIO_MOD_15_TO_8)
  6013. #define BIT_SET_GPIO_MOD_15_TO_8(x, v) \
  6014. (BIT_CLEAR_GPIO_MOD_15_TO_8(x) | BIT_GPIO_MOD_15_TO_8(v))
  6015. #endif
  6016. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6017. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  6018. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6019. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6020. /* 2 REG_GPIO_EXT_CTRL (Offset 0x0060) */
  6021. #define BIT_ROM_DLEN BIT(19)
  6022. #define BIT_SHIFT_GPIO_IO_SEL_15_TO_8 16
  6023. #define BIT_MASK_GPIO_IO_SEL_15_TO_8 0xff
  6024. #define BIT_GPIO_IO_SEL_15_TO_8(x) \
  6025. (((x) & BIT_MASK_GPIO_IO_SEL_15_TO_8) << BIT_SHIFT_GPIO_IO_SEL_15_TO_8)
  6026. #define BITS_GPIO_IO_SEL_15_TO_8 \
  6027. (BIT_MASK_GPIO_IO_SEL_15_TO_8 << BIT_SHIFT_GPIO_IO_SEL_15_TO_8)
  6028. #define BIT_CLEAR_GPIO_IO_SEL_15_TO_8(x) ((x) & (~BITS_GPIO_IO_SEL_15_TO_8))
  6029. #define BIT_GET_GPIO_IO_SEL_15_TO_8(x) \
  6030. (((x) >> BIT_SHIFT_GPIO_IO_SEL_15_TO_8) & BIT_MASK_GPIO_IO_SEL_15_TO_8)
  6031. #define BIT_SET_GPIO_IO_SEL_15_TO_8(x, v) \
  6032. (BIT_CLEAR_GPIO_IO_SEL_15_TO_8(x) | BIT_GPIO_IO_SEL_15_TO_8(v))
  6033. #define BIT_SHIFT_ROM_PGE 16
  6034. #define BIT_MASK_ROM_PGE 0x7
  6035. #define BIT_ROM_PGE(x) (((x) & BIT_MASK_ROM_PGE) << BIT_SHIFT_ROM_PGE)
  6036. #define BITS_ROM_PGE (BIT_MASK_ROM_PGE << BIT_SHIFT_ROM_PGE)
  6037. #define BIT_CLEAR_ROM_PGE(x) ((x) & (~BITS_ROM_PGE))
  6038. #define BIT_GET_ROM_PGE(x) (((x) >> BIT_SHIFT_ROM_PGE) & BIT_MASK_ROM_PGE)
  6039. #define BIT_SET_ROM_PGE(x, v) (BIT_CLEAR_ROM_PGE(x) | BIT_ROM_PGE(v))
  6040. #define BIT_SHIFT_GPIO_OUT_15_TO_8 8
  6041. #define BIT_MASK_GPIO_OUT_15_TO_8 0xff
  6042. #define BIT_GPIO_OUT_15_TO_8(x) \
  6043. (((x) & BIT_MASK_GPIO_OUT_15_TO_8) << BIT_SHIFT_GPIO_OUT_15_TO_8)
  6044. #define BITS_GPIO_OUT_15_TO_8 \
  6045. (BIT_MASK_GPIO_OUT_15_TO_8 << BIT_SHIFT_GPIO_OUT_15_TO_8)
  6046. #define BIT_CLEAR_GPIO_OUT_15_TO_8(x) ((x) & (~BITS_GPIO_OUT_15_TO_8))
  6047. #define BIT_GET_GPIO_OUT_15_TO_8(x) \
  6048. (((x) >> BIT_SHIFT_GPIO_OUT_15_TO_8) & BIT_MASK_GPIO_OUT_15_TO_8)
  6049. #define BIT_SET_GPIO_OUT_15_TO_8(x, v) \
  6050. (BIT_CLEAR_GPIO_OUT_15_TO_8(x) | BIT_GPIO_OUT_15_TO_8(v))
  6051. #endif
  6052. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6053. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6054. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6055. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6056. /* 2 REG_GPIO_EXT_CTRL (Offset 0x0060) */
  6057. #define BIT_SHIFT_GPIO_IN_15_TO_8 0
  6058. #define BIT_MASK_GPIO_IN_15_TO_8 0xff
  6059. #define BIT_GPIO_IN_15_TO_8(x) \
  6060. (((x) & BIT_MASK_GPIO_IN_15_TO_8) << BIT_SHIFT_GPIO_IN_15_TO_8)
  6061. #define BITS_GPIO_IN_15_TO_8 \
  6062. (BIT_MASK_GPIO_IN_15_TO_8 << BIT_SHIFT_GPIO_IN_15_TO_8)
  6063. #define BIT_CLEAR_GPIO_IN_15_TO_8(x) ((x) & (~BITS_GPIO_IN_15_TO_8))
  6064. #define BIT_GET_GPIO_IN_15_TO_8(x) \
  6065. (((x) >> BIT_SHIFT_GPIO_IN_15_TO_8) & BIT_MASK_GPIO_IN_15_TO_8)
  6066. #define BIT_SET_GPIO_IN_15_TO_8(x, v) \
  6067. (BIT_CLEAR_GPIO_IN_15_TO_8(x) | BIT_GPIO_IN_15_TO_8(v))
  6068. #endif
  6069. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6070. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6071. /* 2 REG_SDIO_H2C (Offset 0x10250060) */
  6072. #define BIT_SHIFT_SDIO_H2C_MSG 0
  6073. #define BIT_MASK_SDIO_H2C_MSG 0xffffffffL
  6074. #define BIT_SDIO_H2C_MSG(x) \
  6075. (((x) & BIT_MASK_SDIO_H2C_MSG) << BIT_SHIFT_SDIO_H2C_MSG)
  6076. #define BITS_SDIO_H2C_MSG (BIT_MASK_SDIO_H2C_MSG << BIT_SHIFT_SDIO_H2C_MSG)
  6077. #define BIT_CLEAR_SDIO_H2C_MSG(x) ((x) & (~BITS_SDIO_H2C_MSG))
  6078. #define BIT_GET_SDIO_H2C_MSG(x) \
  6079. (((x) >> BIT_SHIFT_SDIO_H2C_MSG) & BIT_MASK_SDIO_H2C_MSG)
  6080. #define BIT_SET_SDIO_H2C_MSG(x, v) \
  6081. (BIT_CLEAR_SDIO_H2C_MSG(x) | BIT_SDIO_H2C_MSG(v))
  6082. #endif
  6083. #if (HALMAC_8814B_SUPPORT)
  6084. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6085. #define BIT_DATA_CPU_JTAG BIT(30)
  6086. #endif
  6087. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6088. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6089. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6090. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6091. #define BIT_PAPE_WLBT_SEL BIT(29)
  6092. #define BIT_LNAON_WLBT_SEL BIT(28)
  6093. #endif
  6094. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6095. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6096. #define BIT_BDEN BIT(28)
  6097. #endif
  6098. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6099. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6100. #define BIT_BT_BQB_GPIO_SEL BIT(27)
  6101. #endif
  6102. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6103. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6104. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6105. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6106. #define BIT_BTGP_GPG3_FEN BIT(26)
  6107. #define BIT_BTGP_GPG2_FEN BIT(25)
  6108. #endif
  6109. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6110. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6111. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6112. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6113. #define BIT_BTGP_JTAG_EN BIT(24)
  6114. #endif
  6115. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6116. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6117. #define BIT_BB2PP_ISO BIT(24)
  6118. #endif
  6119. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6120. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6121. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6122. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6123. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6124. #define BIT_XTAL_CLK_EXTARNAL_EN BIT(23)
  6125. #endif
  6126. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  6127. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6128. #define BIT_BTBRI_UART_EN BIT(22)
  6129. #endif
  6130. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6131. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6132. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6133. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6134. #define BIT_BTGP_UART0_EN BIT(22)
  6135. #endif
  6136. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6137. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6138. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6139. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6140. #define BIT_BTGP_UART1_EN BIT(21)
  6141. #endif
  6142. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6143. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6144. #define BIT_BTCOEX_PU BIT(21)
  6145. #endif
  6146. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6147. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6148. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6149. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6150. #define BIT_BTGP_SPI_EN BIT(20)
  6151. #endif
  6152. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6153. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6154. #define BIT_EEPROM_SEL_PD BIT(20)
  6155. #endif
  6156. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6157. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6158. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6159. HALMAC_8881A_SUPPORT)
  6160. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6161. #define BIT_BTGP_GPIO_E2 BIT(19)
  6162. #endif
  6163. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6164. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6165. #define BIT_TST_MOD_PD BIT(19)
  6166. #endif
  6167. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6168. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6169. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6170. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6171. #define BIT_BTGP_GPIO_EN BIT(18)
  6172. #endif
  6173. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6174. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6175. #define BIT_BOOT_FLUSH_PD BIT(18)
  6176. #define BIT_USB_XTAL_SEL1_PD BIT(17)
  6177. #endif
  6178. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6179. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6180. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6181. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6182. #define BIT_SHIFT_BTGP_GPIO_SL 16
  6183. #define BIT_MASK_BTGP_GPIO_SL 0x3
  6184. #define BIT_BTGP_GPIO_SL(x) \
  6185. (((x) & BIT_MASK_BTGP_GPIO_SL) << BIT_SHIFT_BTGP_GPIO_SL)
  6186. #define BITS_BTGP_GPIO_SL (BIT_MASK_BTGP_GPIO_SL << BIT_SHIFT_BTGP_GPIO_SL)
  6187. #define BIT_CLEAR_BTGP_GPIO_SL(x) ((x) & (~BITS_BTGP_GPIO_SL))
  6188. #define BIT_GET_BTGP_GPIO_SL(x) \
  6189. (((x) >> BIT_SHIFT_BTGP_GPIO_SL) & BIT_MASK_BTGP_GPIO_SL)
  6190. #define BIT_SET_BTGP_GPIO_SL(x, v) \
  6191. (BIT_CLEAR_BTGP_GPIO_SL(x) | BIT_BTGP_GPIO_SL(v))
  6192. #endif
  6193. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6194. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6195. #define BIT_USB_XTAL_SEL0_PD BIT(16)
  6196. #endif
  6197. #if (HALMAC_8192E_SUPPORT)
  6198. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6199. #define BIT_HST_WKE_DEV_SL BIT(15)
  6200. #endif
  6201. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6202. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6203. #define BIT_BTSUSB_PL BIT(15)
  6204. #endif
  6205. #if (HALMAC_8814B_SUPPORT)
  6206. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6207. #define BIT_WL_JTAG BIT(15)
  6208. #endif
  6209. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6210. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6211. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6212. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6213. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6214. #define BIT_PAD_SDIO_SR BIT(14)
  6215. #endif
  6216. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6217. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6218. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6219. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6220. #define BIT_GPIO14_OUTPUT_PL BIT(13)
  6221. #endif
  6222. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6223. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6224. #define BIT_SW_DEVWHOST_POLARITY BIT(13)
  6225. #endif
  6226. #if (HALMAC_8881A_SUPPORT)
  6227. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6228. #define BIT_GPIO15_OUTPUT_PL BIT(13)
  6229. #endif
  6230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6231. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6232. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6233. HALMAC_8881A_SUPPORT)
  6234. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6235. #define BIT_HOST_WAKE_PAD_PULL_EN BIT(12)
  6236. #endif
  6237. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6238. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6239. #define BIT_HOST_WAKE_DEV_PLL_EN BIT(12)
  6240. #endif
  6241. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6242. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6243. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6244. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6245. #define BIT_HOST_WAKE_PAD_SL BIT(11)
  6246. #endif
  6247. #if (HALMAC_8198F_SUPPORT)
  6248. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6249. #define BIT_SW_TRSW_3 BIT(11)
  6250. #endif
  6251. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6252. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6253. #define BIT_HOST_WAKE_DEV_POLARITY BIT(11)
  6254. #endif
  6255. #if (HALMAC_8192E_SUPPORT)
  6256. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6257. #define BIT_PAD_TRSW_SR BIT(10)
  6258. #endif
  6259. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6260. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6261. HALMAC_8881A_SUPPORT)
  6262. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6263. #define BIT_PAD_LNAON_SR BIT(10)
  6264. #endif
  6265. #if (HALMAC_8198F_SUPPORT)
  6266. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6267. #define BIT_SW_TRSW_2 BIT(10)
  6268. #endif
  6269. #if (HALMAC_8192E_SUPPORT)
  6270. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6271. #define BIT_PAD_TRSW_E2 BIT(9)
  6272. #endif
  6273. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6274. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6275. HALMAC_8881A_SUPPORT)
  6276. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6277. #define BIT_PAD_LNAON_E2 BIT(9)
  6278. #endif
  6279. #if (HALMAC_8198F_SUPPORT)
  6280. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6281. #define BIT_SW_TRSW_1 BIT(9)
  6282. #endif
  6283. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6284. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6285. #define BIT_A_ANTSEL_SR BIT(9)
  6286. #endif
  6287. #if (HALMAC_8192E_SUPPORT)
  6288. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6289. #define BIT_SW_TRSW_P_SEL_DATA BIT(8)
  6290. #endif
  6291. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6292. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6293. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6294. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6295. #define BIT_SW_LNAON_G_SEL_DATA BIT(8)
  6296. #endif
  6297. #if (HALMAC_8198F_SUPPORT)
  6298. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6299. #define BIT_SW_TRSW_0 BIT(8)
  6300. #endif
  6301. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6302. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6303. #define BIT_A_ANTSEL_E2 BIT(8)
  6304. #endif
  6305. #if (HALMAC_8192E_SUPPORT)
  6306. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6307. #define BIT_SW_TRSW_N_SEL_DATA BIT(7)
  6308. #endif
  6309. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6310. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6311. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6312. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6313. #define BIT_SW_LNAON_A_SEL_DATA BIT(7)
  6314. #endif
  6315. #if (HALMAC_8198F_SUPPORT)
  6316. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6317. #define BIT_SW_PAPE_3 BIT(7)
  6318. #endif
  6319. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6320. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6321. #define BIT_D_PAPE_2G_SR BIT(7)
  6322. #endif
  6323. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6324. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6325. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6326. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6327. #define BIT_PAD_PAPE_SR BIT(6)
  6328. #endif
  6329. #if (HALMAC_8198F_SUPPORT)
  6330. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6331. #define BIT_SW_PAPE_2 BIT(6)
  6332. #endif
  6333. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6334. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6335. #define BIT_D_PAPE_5G_SR BIT(6)
  6336. #endif
  6337. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6338. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6339. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6340. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6341. #define BIT_PAD_PAPE_E2 BIT(5)
  6342. #endif
  6343. #if (HALMAC_8198F_SUPPORT)
  6344. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6345. #define BIT_SW_PAPE_1 BIT(5)
  6346. #endif
  6347. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6348. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6349. #define BIT_D_TRSW_SR BIT(5)
  6350. #endif
  6351. #if (HALMAC_8192E_SUPPORT)
  6352. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6353. #define BIT_SW_PAPE_1_SEL_DATA BIT(4)
  6354. #endif
  6355. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6356. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6357. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6358. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6359. #define BIT_SW_PAPE_G_SEL_DATA BIT(4)
  6360. #endif
  6361. #if (HALMAC_8198F_SUPPORT)
  6362. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6363. #define BIT_SW_PAPE_0 BIT(4)
  6364. #endif
  6365. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6366. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6367. #define BIT_D_TRSWB_SR BIT(4)
  6368. #endif
  6369. #if (HALMAC_8192E_SUPPORT)
  6370. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6371. #define BIT_SW_PAPE_0_SEL_DATA BIT(3)
  6372. #endif
  6373. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6374. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6375. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6376. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6377. #define BIT_SW_PAPE_A_SEL_DATA BIT(3)
  6378. #endif
  6379. #if (HALMAC_8198F_SUPPORT)
  6380. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6381. #define BIT_SW_ANTSEL_3 BIT(3)
  6382. #endif
  6383. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6384. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6385. #define BIT_D_PAPE_2G_E2 BIT(3)
  6386. #endif
  6387. #if (HALMAC_8192E_SUPPORT)
  6388. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6389. #define BIT_SW_ANTSEL_2_SEL_DATA BIT(2)
  6390. #endif
  6391. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6392. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6393. HALMAC_8881A_SUPPORT)
  6394. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6395. #define BIT_PAD_DPDT_SR BIT(2)
  6396. #endif
  6397. #if (HALMAC_8198F_SUPPORT)
  6398. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6399. #define BIT_SW_ANTSEL_2 BIT(2)
  6400. #endif
  6401. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6402. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6403. #define BIT_D_PAPE_5G_E2 BIT(2)
  6404. #endif
  6405. #if (HALMAC_8192E_SUPPORT)
  6406. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6407. #define BIT_SW_ANTSEL_N_SEL_DATA BIT(1)
  6408. #endif
  6409. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6410. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6411. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6412. #define BIT_PAD_DPDT_PAD_E2 BIT(1)
  6413. #endif
  6414. #if (HALMAC_8198F_SUPPORT)
  6415. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6416. #define BIT_SW_ANTSEL_1 BIT(1)
  6417. #endif
  6418. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6419. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6420. #define BIT_D_TRSW_E2 BIT(1)
  6421. #endif
  6422. #if (HALMAC_8881A_SUPPORT)
  6423. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6424. #define BIT_PAD_DPDT_E2 BIT(1)
  6425. #endif
  6426. #if (HALMAC_8192E_SUPPORT)
  6427. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6428. #define BIT_SW_ANTSEL_P_SEL_DATA BIT(0)
  6429. #endif
  6430. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6431. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6432. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6433. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6434. #define BIT_SW_DPDT_SEL_DATA BIT(0)
  6435. #endif
  6436. #if (HALMAC_8198F_SUPPORT)
  6437. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6438. #define BIT_SW_ANTSEL_0 BIT(0)
  6439. #endif
  6440. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6441. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6442. /* 2 REG_SDIO_C2H (Offset 0x10250064) */
  6443. #define BIT_SHIFT_SDIO_C2H_MSG 0
  6444. #define BIT_MASK_SDIO_C2H_MSG 0xffffffffL
  6445. #define BIT_SDIO_C2H_MSG(x) \
  6446. (((x) & BIT_MASK_SDIO_C2H_MSG) << BIT_SHIFT_SDIO_C2H_MSG)
  6447. #define BITS_SDIO_C2H_MSG (BIT_MASK_SDIO_C2H_MSG << BIT_SHIFT_SDIO_C2H_MSG)
  6448. #define BIT_CLEAR_SDIO_C2H_MSG(x) ((x) & (~BITS_SDIO_C2H_MSG))
  6449. #define BIT_GET_SDIO_C2H_MSG(x) \
  6450. (((x) >> BIT_SHIFT_SDIO_C2H_MSG) & BIT_MASK_SDIO_C2H_MSG)
  6451. #define BIT_SET_SDIO_C2H_MSG(x, v) \
  6452. (BIT_CLEAR_SDIO_C2H_MSG(x) | BIT_SDIO_C2H_MSG(v))
  6453. #endif
  6454. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6455. /* 2 REG_PAD_CTRL1 (Offset 0x0064) */
  6456. #define BIT_D_TRSWB_E2 BIT(0)
  6457. #endif
  6458. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6459. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6460. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6461. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6462. #define BIT_ISO_BD2PP BIT(31)
  6463. #define BIT_LDOV12B_EN BIT(30)
  6464. #define BIT_CKEN_BTGPS BIT(29)
  6465. #define BIT_FEN_BTGPS BIT(28)
  6466. #define BIT_BTCPU_BOOTSEL BIT(27)
  6467. #define BIT_SPI_SPEEDUP BIT(26)
  6468. #endif
  6469. #if (HALMAC_8192F_SUPPORT)
  6470. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6471. #define BIT_BT_LPS_EN BIT(25)
  6472. #endif
  6473. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6474. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6475. #define BIT_BT_LDO_MODE BIT(25)
  6476. #endif
  6477. #if (HALMAC_8814B_SUPPORT)
  6478. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6479. #define BIT_BT_SUS BIT(25)
  6480. #endif
  6481. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6482. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6483. HALMAC_8822C_SUPPORT)
  6484. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6485. #define BIT_DEVWAKE_PAD_TYPE_SEL BIT(24)
  6486. #endif
  6487. #if (HALMAC_8192F_SUPPORT)
  6488. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6489. #define BIT_CLKREQ_PAD_PL BIT(23)
  6490. #endif
  6491. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6492. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6493. HALMAC_8822C_SUPPORT)
  6494. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6495. #define BIT_CLKREQ_PAD_TYPE_SEL BIT(23)
  6496. #endif
  6497. #if (HALMAC_8881A_SUPPORT)
  6498. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6499. #define BIT_CKSL_BZSLP BIT(23)
  6500. #endif
  6501. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6502. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6503. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6504. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6505. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6506. #define BIT_EN_CPL_TIMEOUT_PS BIT(22)
  6507. #endif
  6508. #if (HALMAC_8192E_SUPPORT)
  6509. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6510. #define BIT_BT_WAKE_HST_EN BIT(22)
  6511. #endif
  6512. #if (HALMAC_8192F_SUPPORT)
  6513. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6514. #define BIT_BTGP_WAKE_HST_EN BIT(22)
  6515. #endif
  6516. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6517. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6518. HALMAC_8822C_SUPPORT)
  6519. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6520. #define BIT_ISO_BTPON2PP BIT(22)
  6521. #endif
  6522. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6523. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6524. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6525. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6526. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6527. #define BIT_REG_TXDMA_FAIL_PS BIT(21)
  6528. #endif
  6529. #if (HALMAC_8192E_SUPPORT)
  6530. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6531. #define BIT_WAKE_BT_EN BIT(21)
  6532. #endif
  6533. #if (HALMAC_8192F_SUPPORT)
  6534. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6535. #define BIT_BTGP_WAKE_BT_EN BIT(21)
  6536. #endif
  6537. #if (HALMAC_8814B_SUPPORT)
  6538. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6539. #define BIT_BTCOEX_CMD BIT(21)
  6540. #endif
  6541. #if (HALMAC_8192E_SUPPORT)
  6542. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6543. #define BIT_EN_BT BIT(20)
  6544. #endif
  6545. #if (HALMAC_8192F_SUPPORT)
  6546. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6547. #define BIT_BTGP_EN BIT(20)
  6548. #endif
  6549. #if (HALMAC_8814B_SUPPORT)
  6550. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6551. #define BIT_BT_UART_INTF BIT(20)
  6552. #endif
  6553. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6554. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6555. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6556. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6557. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6558. #define BIT_EN_HWENTR_L1 BIT(19)
  6559. #endif
  6560. #if (HALMAC_8192E_SUPPORT)
  6561. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6562. #define BIT_BT_SUSN_EN BIT(19)
  6563. #endif
  6564. #if (HALMAC_8192F_SUPPORT)
  6565. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6566. #define BIT_BTGP_SUS_EN BIT(19)
  6567. #endif
  6568. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6569. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6570. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6571. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6572. #define BIT_BT_HWROF_EN BIT(19)
  6573. #endif
  6574. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6575. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6576. #define BIT_S3_RF_HW_EN BIT(19)
  6577. #endif
  6578. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6579. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6580. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6581. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6582. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6583. #define BIT_EN_ADV_CLKGATE BIT(18)
  6584. #endif
  6585. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6586. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6587. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6588. HALMAC_8881A_SUPPORT)
  6589. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6590. #define BIT_BT_FUNC_EN BIT(18)
  6591. #endif
  6592. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6593. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6594. #define BIT_S2_RF_HW_EN BIT(18)
  6595. #endif
  6596. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6597. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6598. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6599. HALMAC_8881A_SUPPORT)
  6600. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6601. #define BIT_BT_HWPDN_SL BIT(17)
  6602. #endif
  6603. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6604. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6605. #define BIT_S1_RF_HW_EN BIT(17)
  6606. #endif
  6607. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6608. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6609. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6610. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6611. #define BIT_BT_DISN_EN BIT(16)
  6612. #endif
  6613. #if (HALMAC_8192F_SUPPORT)
  6614. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6615. #define BIT_BT_HWPDEN BIT(16)
  6616. #endif
  6617. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6618. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6619. #define BIT_S0_RF_HW_EN BIT(16)
  6620. #endif
  6621. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6622. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6623. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6624. HALMAC_8881A_SUPPORT)
  6625. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6626. #define BIT_BT_PDN_PULL_EN BIT(15)
  6627. #endif
  6628. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6629. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6630. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6631. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6632. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6633. #define BIT_WL_PDN_PULL_EN BIT(14)
  6634. #define BIT_EXTERNAL_REQUEST_PL BIT(13)
  6635. #endif
  6636. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6637. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6638. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6639. HALMAC_8881A_SUPPORT)
  6640. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6641. #define BIT_GPIO0_2_3_PULL_LOW_EN BIT(12)
  6642. #endif
  6643. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6644. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6645. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6646. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6647. #define BIT_ISO_BA2PP BIT(11)
  6648. #define BIT_BT_AFE_LDO_EN BIT(10)
  6649. #endif
  6650. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6651. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6652. #define BIT_PDN_PIN_SEL BIT(10)
  6653. #endif
  6654. #if (HALMAC_8192E_SUPPORT)
  6655. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6656. #define BIT_GPIO11_PULL_LOW_EN BIT(9)
  6657. #endif
  6658. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6659. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6660. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6661. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6662. #define BIT_BT_AFE_PLL_EN BIT(9)
  6663. #endif
  6664. #if (HALMAC_8192E_SUPPORT)
  6665. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6666. #define BIT_GPIO4_PULL_LOW_EN BIT(8)
  6667. #endif
  6668. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6669. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6670. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  6671. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6672. #define BIT_BT_DIG_CLK_EN BIT(8)
  6673. #endif
  6674. #if (HALMAC_8192E_SUPPORT)
  6675. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6676. #define BIT_BT_WAKE_HST_SL BIT(7)
  6677. #endif
  6678. #if (HALMAC_8192F_SUPPORT)
  6679. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6680. #define BIT_BT_WAKE_HST_PL BIT(7)
  6681. #endif
  6682. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6683. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6684. #define BIT_ASSERT_SPS_EN BIT(7)
  6685. #endif
  6686. #if (HALMAC_8814B_SUPPORT)
  6687. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6688. #define BIT_UART_BRIDGE BIT(7)
  6689. #endif
  6690. #if (HALMAC_8192E_SUPPORT)
  6691. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6692. #define BIT_WAKE_BT_SL BIT(6)
  6693. #endif
  6694. #if (HALMAC_8192F_SUPPORT)
  6695. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6696. #define BIT_WAKE_BT_PL BIT(6)
  6697. #endif
  6698. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6699. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6700. #define BIT_WLAN_32K_SEL BIT(6)
  6701. #endif
  6702. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6703. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6704. #define BIT_MASK_CHIPEN BIT(6)
  6705. #endif
  6706. #if (HALMAC_8814B_SUPPORT)
  6707. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6708. #define BIT_OSC32K_CTRL_SEL BIT(6)
  6709. #endif
  6710. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  6711. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  6712. HALMAC_8822C_SUPPORT)
  6713. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6714. #define BIT_WL_DRV_EXIST_IDX BIT(5)
  6715. #endif
  6716. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6717. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6718. #define BIT_ASSERT_RF_EN BIT(5)
  6719. #endif
  6720. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6721. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  6722. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6723. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6724. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6725. #define BIT_DOP_EHPAD BIT(4)
  6726. #endif
  6727. #if (HALMAC_8881A_SUPPORT)
  6728. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6729. #define BIT_BIT_DOP_EHPAD BIT(4)
  6730. #endif
  6731. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6732. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6733. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6734. HALMAC_8881A_SUPPORT)
  6735. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6736. #define BIT_WL_HWROF_EN BIT(3)
  6737. #endif
  6738. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6739. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6740. #define BIT_SDIO_PAD_SHUTDOWNB BIT(3)
  6741. #endif
  6742. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6743. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6744. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6745. HALMAC_8881A_SUPPORT)
  6746. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6747. #define BIT_WL_FUNC_EN BIT(2)
  6748. #endif
  6749. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6750. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6751. #define BIT_SDIO_CLK_SMT BIT(2)
  6752. #endif
  6753. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6754. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6755. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6756. HALMAC_8881A_SUPPORT)
  6757. /* 2 REG_WL_BT_PWR_CTRL (Offset 0x0068) */
  6758. #define BIT_WL_HWPDN_SL BIT(1)
  6759. #define BIT_WL_HWPDN_EN BIT(0)
  6760. #endif
  6761. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  6762. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6763. #define BIT_SHIFT_F0N 23
  6764. #define BIT_MASK_F0N 0x7
  6765. #define BIT_F0N(x) (((x) & BIT_MASK_F0N) << BIT_SHIFT_F0N)
  6766. #define BITS_F0N (BIT_MASK_F0N << BIT_SHIFT_F0N)
  6767. #define BIT_CLEAR_F0N(x) ((x) & (~BITS_F0N))
  6768. #define BIT_GET_F0N(x) (((x) >> BIT_SHIFT_F0N) & BIT_MASK_F0N)
  6769. #define BIT_SET_F0N(x, v) (BIT_CLEAR_F0N(x) | BIT_F0N(v))
  6770. #endif
  6771. #if (HALMAC_8814B_SUPPORT)
  6772. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6773. #define BIT_BT_WAKE_DEV_EN_V1 BIT(19)
  6774. #define BIT_BT_WAKE_HST_EN_V1 BIT(18)
  6775. #define BIT_BT_WAKE_HST_PL_V1 BIT(17)
  6776. #endif
  6777. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6778. /* 2 REG_GSSR (Offset 0x006C) */
  6779. #define BIT_SHIFT_GPIO_15_TO_0_VAL 16
  6780. #define BIT_MASK_GPIO_15_TO_0_VAL 0xffff
  6781. #define BIT_GPIO_15_TO_0_VAL(x) \
  6782. (((x) & BIT_MASK_GPIO_15_TO_0_VAL) << BIT_SHIFT_GPIO_15_TO_0_VAL)
  6783. #define BITS_GPIO_15_TO_0_VAL \
  6784. (BIT_MASK_GPIO_15_TO_0_VAL << BIT_SHIFT_GPIO_15_TO_0_VAL)
  6785. #define BIT_CLEAR_GPIO_15_TO_0_VAL(x) ((x) & (~BITS_GPIO_15_TO_0_VAL))
  6786. #define BIT_GET_GPIO_15_TO_0_VAL(x) \
  6787. (((x) >> BIT_SHIFT_GPIO_15_TO_0_VAL) & BIT_MASK_GPIO_15_TO_0_VAL)
  6788. #define BIT_SET_GPIO_15_TO_0_VAL(x, v) \
  6789. (BIT_CLEAR_GPIO_15_TO_0_VAL(x) | BIT_GPIO_15_TO_0_VAL(v))
  6790. #endif
  6791. #if (HALMAC_8814B_SUPPORT)
  6792. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6793. #define BIT_BT_CLKREQ_EN_V1 BIT(16)
  6794. #endif
  6795. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  6796. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6797. #define BIT_SHIFT_F0F 10
  6798. #define BIT_MASK_F0F 0x1fff
  6799. #define BIT_F0F(x) (((x) & BIT_MASK_F0F) << BIT_SHIFT_F0F)
  6800. #define BITS_F0F (BIT_MASK_F0F << BIT_SHIFT_F0F)
  6801. #define BIT_CLEAR_F0F(x) ((x) & (~BITS_F0F))
  6802. #define BIT_GET_F0F(x) (((x) >> BIT_SHIFT_F0F) & BIT_MASK_F0F)
  6803. #define BIT_SET_F0F(x, v) (BIT_CLEAR_F0F(x) | BIT_F0F(v))
  6804. #endif
  6805. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6806. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6807. #define BIT_GPIO_IE_V18 BIT(10)
  6808. #define BIT_PCIE_IE_V18 BIT(9)
  6809. #define BIT_UART_IE_V18 BIT(8)
  6810. #endif
  6811. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  6812. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6813. #define BIT_SHIFT_DIVN 4
  6814. #define BIT_MASK_DIVN 0x3f
  6815. #define BIT_DIVN(x) (((x) & BIT_MASK_DIVN) << BIT_SHIFT_DIVN)
  6816. #define BITS_DIVN (BIT_MASK_DIVN << BIT_SHIFT_DIVN)
  6817. #define BIT_CLEAR_DIVN(x) ((x) & (~BITS_DIVN))
  6818. #define BIT_GET_DIVN(x) (((x) >> BIT_SHIFT_DIVN) & BIT_MASK_DIVN)
  6819. #define BIT_SET_DIVN(x, v) (BIT_CLEAR_DIVN(x) | BIT_DIVN(v))
  6820. #define BIT_SHIFT_BB_DBG_SEL_AFE_SDM 0
  6821. #define BIT_MASK_BB_DBG_SEL_AFE_SDM 0xf
  6822. #define BIT_BB_DBG_SEL_AFE_SDM(x) \
  6823. (((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM) << BIT_SHIFT_BB_DBG_SEL_AFE_SDM)
  6824. #define BITS_BB_DBG_SEL_AFE_SDM \
  6825. (BIT_MASK_BB_DBG_SEL_AFE_SDM << BIT_SHIFT_BB_DBG_SEL_AFE_SDM)
  6826. #define BIT_CLEAR_BB_DBG_SEL_AFE_SDM(x) ((x) & (~BITS_BB_DBG_SEL_AFE_SDM))
  6827. #define BIT_GET_BB_DBG_SEL_AFE_SDM(x) \
  6828. (((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM) & BIT_MASK_BB_DBG_SEL_AFE_SDM)
  6829. #define BIT_SET_BB_DBG_SEL_AFE_SDM(x, v) \
  6830. (BIT_CLEAR_BB_DBG_SEL_AFE_SDM(x) | BIT_BB_DBG_SEL_AFE_SDM(v))
  6831. #endif
  6832. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6833. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6834. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6835. /* 2 REG_SDM_DEBUG (Offset 0x006C) */
  6836. #define BIT_SHIFT_WLCLK_PHASE 0
  6837. #define BIT_MASK_WLCLK_PHASE 0x1f
  6838. #define BIT_WLCLK_PHASE(x) \
  6839. (((x) & BIT_MASK_WLCLK_PHASE) << BIT_SHIFT_WLCLK_PHASE)
  6840. #define BITS_WLCLK_PHASE (BIT_MASK_WLCLK_PHASE << BIT_SHIFT_WLCLK_PHASE)
  6841. #define BIT_CLEAR_WLCLK_PHASE(x) ((x) & (~BITS_WLCLK_PHASE))
  6842. #define BIT_GET_WLCLK_PHASE(x) \
  6843. (((x) >> BIT_SHIFT_WLCLK_PHASE) & BIT_MASK_WLCLK_PHASE)
  6844. #define BIT_SET_WLCLK_PHASE(x, v) \
  6845. (BIT_CLEAR_WLCLK_PHASE(x) | BIT_WLCLK_PHASE(v))
  6846. #endif
  6847. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6848. /* 2 REG_GSSR (Offset 0x006C) */
  6849. #define BIT_SHIFT_GPIO_15_TO_0_EN 0
  6850. #define BIT_MASK_GPIO_15_TO_0_EN 0xffff
  6851. #define BIT_GPIO_15_TO_0_EN(x) \
  6852. (((x) & BIT_MASK_GPIO_15_TO_0_EN) << BIT_SHIFT_GPIO_15_TO_0_EN)
  6853. #define BITS_GPIO_15_TO_0_EN \
  6854. (BIT_MASK_GPIO_15_TO_0_EN << BIT_SHIFT_GPIO_15_TO_0_EN)
  6855. #define BIT_CLEAR_GPIO_15_TO_0_EN(x) ((x) & (~BITS_GPIO_15_TO_0_EN))
  6856. #define BIT_GET_GPIO_15_TO_0_EN(x) \
  6857. (((x) >> BIT_SHIFT_GPIO_15_TO_0_EN) & BIT_MASK_GPIO_15_TO_0_EN)
  6858. #define BIT_SET_GPIO_15_TO_0_EN(x, v) \
  6859. (BIT_CLEAR_GPIO_15_TO_0_EN(x) | BIT_GPIO_15_TO_0_EN(v))
  6860. #endif
  6861. #if (HALMAC_8192F_SUPPORT)
  6862. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6863. #define BIT_FORCE_RST_PCIE_APHY BIT(30)
  6864. #define BIT_FORCE_OFF_EPC BIT(29)
  6865. #define BIT_PTA_3W_MODE BIT(28)
  6866. #endif
  6867. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6868. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6869. #define BIT_BBRSTB_STANDBY_V1 BIT(28)
  6870. #endif
  6871. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6872. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6873. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6874. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6875. #define BIT_DBG_GNT_WL_BT BIT(27)
  6876. #endif
  6877. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6878. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6879. #define BIT_AFE_PORT3_ISO BIT(27)
  6880. #endif
  6881. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6882. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6883. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6884. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6885. #define BIT_LTE_MUX_CTRL_PATH BIT(26)
  6886. #endif
  6887. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6888. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6889. #define BIT_AFE_PORT2_ISO BIT(26)
  6890. #endif
  6891. #if (HALMAC_8192F_SUPPORT)
  6892. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6893. #define BIT_LTE_COEX_EN BIT(25)
  6894. #endif
  6895. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6896. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6897. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6898. #define BIT_LTE_COEX_UART BIT(25)
  6899. #endif
  6900. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6901. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6902. #define BIT_AFE_PORT1_ISO BIT(25)
  6903. #endif
  6904. #if (HALMAC_8192F_SUPPORT)
  6905. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6906. #define BIT_3W_LTE_GPIO_EN BIT(24)
  6907. #endif
  6908. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6909. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6910. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6911. #define BIT_3W_LTE_WL_GPIO BIT(24)
  6912. #endif
  6913. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6914. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6915. #define BIT_AFE_PORT0_ISO BIT(24)
  6916. #define BIT_USB_PWR_OFF_SEL BIT(23)
  6917. #define BIT_USB_HOST_PWR_OFF_EN_V1 BIT(22)
  6918. #define BIT_SYM_LPS_BLOCK_EN_V1 BIT(21)
  6919. #define BIT_USB_LPM_ACT_EN_V1 BIT(20)
  6920. #endif
  6921. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  6922. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6923. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6924. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6925. #define BIT_SDIO_INT_POLARITY BIT(19)
  6926. #define BIT_SDIO_INT BIT(18)
  6927. #endif
  6928. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6929. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6930. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6931. HALMAC_8881A_SUPPORT)
  6932. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6933. #define BIT_SDIO_OFF_EN BIT(17)
  6934. #endif
  6935. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6936. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6937. #define BIT_SDIO_OFF_EN_V1 BIT(17)
  6938. #endif
  6939. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  6940. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  6941. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  6942. HALMAC_8881A_SUPPORT)
  6943. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6944. #define BIT_SDIO_ON_EN BIT(16)
  6945. #endif
  6946. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6947. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6948. #define BIT_SDIO_ON_EN_V1 BIT(16)
  6949. #endif
  6950. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6951. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6952. #define BIT_PCIE_FORCE_PWR_NGAT BIT(13)
  6953. #endif
  6954. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6955. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6956. #define BIT_DIS_U3MB_INU2 BIT(13)
  6957. #endif
  6958. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6959. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6960. #define BIT_PCIE_CALIB_EN_V1 BIT(12)
  6961. #endif
  6962. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6963. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6964. #define BIT_USB3_MDIO_EN BIT(12)
  6965. #endif
  6966. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  6967. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6968. #define BIT_PAGE3_AUXCLK_GATE BIT(11)
  6969. #endif
  6970. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6971. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6972. #define BIT_USB3_BG_EN BIT(11)
  6973. #endif
  6974. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6975. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6976. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6977. #define BIT_PCIE_WAIT_TIMEOUT_EVENT BIT(10)
  6978. #endif
  6979. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6980. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6981. #define BIT_USB3_MB_EN BIT(10)
  6982. #endif
  6983. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  6984. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  6985. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  6986. #define BIT_PCIE_WAIT_TIME BIT(9)
  6987. #define BIT_MPCIE_REFCLK_XTAL_SEL BIT(8)
  6988. #endif
  6989. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  6990. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  6991. #define BIT_SHIFT_USB3_CK_MD 8
  6992. #define BIT_MASK_USB3_CK_MD 0x3
  6993. #define BIT_USB3_CK_MD(x) (((x) & BIT_MASK_USB3_CK_MD) << BIT_SHIFT_USB3_CK_MD)
  6994. #define BITS_USB3_CK_MD (BIT_MASK_USB3_CK_MD << BIT_SHIFT_USB3_CK_MD)
  6995. #define BIT_CLEAR_USB3_CK_MD(x) ((x) & (~BITS_USB3_CK_MD))
  6996. #define BIT_GET_USB3_CK_MD(x) \
  6997. (((x) >> BIT_SHIFT_USB3_CK_MD) & BIT_MASK_USB3_CK_MD)
  6998. #define BIT_SET_USB3_CK_MD(x, v) (BIT_CLEAR_USB3_CK_MD(x) | BIT_USB3_CK_MD(v))
  6999. #define BIT_USB3_CKBUF BIT(7)
  7000. #define BIT_USB3_IBX_EN BIT(6)
  7001. #endif
  7002. #if (HALMAC_8814B_SUPPORT)
  7003. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7004. #define BIT_BT_CLKREQ_EN BIT(6)
  7005. #endif
  7006. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7007. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7008. #define BIT_BT_CTRL_USB_PWR_BACKDOOR BIT(5)
  7009. #endif
  7010. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7011. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7012. #define BIT_U3_MB_MASK BIT(5)
  7013. #endif
  7014. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7015. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7016. #define BIT_USB_D_STATE_HOLD BIT(4)
  7017. #endif
  7018. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7019. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7020. #define BIT_U3_BG_MASK BIT(4)
  7021. #endif
  7022. #if (HALMAC_8814B_SUPPORT)
  7023. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7024. #define BIT_SHIFT_USB_CKREF_CML_R 4
  7025. #define BIT_MASK_USB_CKREF_CML_R 0x3
  7026. #define BIT_USB_CKREF_CML_R(x) \
  7027. (((x) & BIT_MASK_USB_CKREF_CML_R) << BIT_SHIFT_USB_CKREF_CML_R)
  7028. #define BITS_USB_CKREF_CML_R \
  7029. (BIT_MASK_USB_CKREF_CML_R << BIT_SHIFT_USB_CKREF_CML_R)
  7030. #define BIT_CLEAR_USB_CKREF_CML_R(x) ((x) & (~BITS_USB_CKREF_CML_R))
  7031. #define BIT_GET_USB_CKREF_CML_R(x) \
  7032. (((x) >> BIT_SHIFT_USB_CKREF_CML_R) & BIT_MASK_USB_CKREF_CML_R)
  7033. #define BIT_SET_USB_CKREF_CML_R(x, v) \
  7034. (BIT_CLEAR_USB_CKREF_CML_R(x) | BIT_USB_CKREF_CML_R(v))
  7035. #endif
  7036. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7037. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7038. #define BIT_REG_FORCE_DP BIT(3)
  7039. #endif
  7040. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7041. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7042. #define BIT_DIS_USB3_MB_POLLING BIT(3)
  7043. #endif
  7044. #if (HALMAC_8192F_SUPPORT)
  7045. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7046. #define BIT_BTGP_CLKREQ_EN BIT(2)
  7047. #endif
  7048. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7049. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7050. #define BIT_REG_DP_MODE BIT(2)
  7051. #endif
  7052. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7053. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7054. #define BIT_PDN_MASK BIT(2)
  7055. #endif
  7056. #if (HALMAC_8814B_SUPPORT)
  7057. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7058. #define BIT_SHIFT_USB_CKREF_D2S_I 2
  7059. #define BIT_MASK_USB_CKREF_D2S_I 0x3
  7060. #define BIT_USB_CKREF_D2S_I(x) \
  7061. (((x) & BIT_MASK_USB_CKREF_D2S_I) << BIT_SHIFT_USB_CKREF_D2S_I)
  7062. #define BITS_USB_CKREF_D2S_I \
  7063. (BIT_MASK_USB_CKREF_D2S_I << BIT_SHIFT_USB_CKREF_D2S_I)
  7064. #define BIT_CLEAR_USB_CKREF_D2S_I(x) ((x) & (~BITS_USB_CKREF_D2S_I))
  7065. #define BIT_GET_USB_CKREF_D2S_I(x) \
  7066. (((x) >> BIT_SHIFT_USB_CKREF_D2S_I) & BIT_MASK_USB_CKREF_D2S_I)
  7067. #define BIT_SET_USB_CKREF_D2S_I(x, v) \
  7068. (BIT_CLEAR_USB_CKREF_D2S_I(x) | BIT_USB_CKREF_D2S_I(v))
  7069. #endif
  7070. #if (HALMAC_8192F_SUPPORT)
  7071. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7072. #define BIT_USB_INSTALL_EN BIT(1)
  7073. #endif
  7074. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7075. HALMAC_8822C_SUPPORT)
  7076. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7077. #define BIT_RES_USB_MASS_STORAGE_DESC BIT(1)
  7078. #endif
  7079. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7080. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7081. #define BIT_NO_PDN_CHIPOFF BIT(1)
  7082. #endif
  7083. #if (HALMAC_8192F_SUPPORT)
  7084. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7085. #define BIT_USB_BT_CLKSEL BIT(0)
  7086. #endif
  7087. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7088. HALMAC_8822C_SUPPORT)
  7089. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7090. #define BIT_USB_WAIT_TIME BIT(0)
  7091. #endif
  7092. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7093. /* 2 REG_SYS_CLKR (Offset 0x0070) */
  7094. #define BIT_PDN_HCOUNT BIT(0)
  7095. #endif
  7096. #if (HALMAC_8822B_SUPPORT)
  7097. /* 2 REG_SYS_SDIO_CTRL (Offset 0x0070) */
  7098. #define BIT_SHIFT_SI_AUTHORIZATION 0
  7099. #define BIT_MASK_SI_AUTHORIZATION 0xff
  7100. #define BIT_SI_AUTHORIZATION(x) \
  7101. (((x) & BIT_MASK_SI_AUTHORIZATION) << BIT_SHIFT_SI_AUTHORIZATION)
  7102. #define BITS_SI_AUTHORIZATION \
  7103. (BIT_MASK_SI_AUTHORIZATION << BIT_SHIFT_SI_AUTHORIZATION)
  7104. #define BIT_CLEAR_SI_AUTHORIZATION(x) ((x) & (~BITS_SI_AUTHORIZATION))
  7105. #define BIT_GET_SI_AUTHORIZATION(x) \
  7106. (((x) >> BIT_SHIFT_SI_AUTHORIZATION) & BIT_MASK_SI_AUTHORIZATION)
  7107. #define BIT_SET_SI_AUTHORIZATION(x, v) \
  7108. (BIT_CLEAR_SI_AUTHORIZATION(x) | BIT_SI_AUTHORIZATION(v))
  7109. #endif
  7110. #if (HALMAC_8192F_SUPPORT)
  7111. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7112. #define BIT_SHIFT_HCI_RATIO 30
  7113. #define BIT_MASK_HCI_RATIO 0x3
  7114. #define BIT_HCI_RATIO(x) (((x) & BIT_MASK_HCI_RATIO) << BIT_SHIFT_HCI_RATIO)
  7115. #define BITS_HCI_RATIO (BIT_MASK_HCI_RATIO << BIT_SHIFT_HCI_RATIO)
  7116. #define BIT_CLEAR_HCI_RATIO(x) ((x) & (~BITS_HCI_RATIO))
  7117. #define BIT_GET_HCI_RATIO(x) (((x) >> BIT_SHIFT_HCI_RATIO) & BIT_MASK_HCI_RATIO)
  7118. #define BIT_SET_HCI_RATIO(x, v) (BIT_CLEAR_HCI_RATIO(x) | BIT_HCI_RATIO(v))
  7119. #endif
  7120. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7121. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7122. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7123. #define BIT_SHIFT_TSFT_SEL 29
  7124. #define BIT_MASK_TSFT_SEL 0x7
  7125. #define BIT_TSFT_SEL(x) (((x) & BIT_MASK_TSFT_SEL) << BIT_SHIFT_TSFT_SEL)
  7126. #define BITS_TSFT_SEL (BIT_MASK_TSFT_SEL << BIT_SHIFT_TSFT_SEL)
  7127. #define BIT_CLEAR_TSFT_SEL(x) ((x) & (~BITS_TSFT_SEL))
  7128. #define BIT_GET_TSFT_SEL(x) (((x) >> BIT_SHIFT_TSFT_SEL) & BIT_MASK_TSFT_SEL)
  7129. #define BIT_SET_TSFT_SEL(x, v) (BIT_CLEAR_TSFT_SEL(x) | BIT_TSFT_SEL(v))
  7130. #endif
  7131. #if (HALMAC_8192F_SUPPORT)
  7132. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7133. #define BIT_SHIFT_WAIT_HPOW_TIME 28
  7134. #define BIT_MASK_WAIT_HPOW_TIME 0x3
  7135. #define BIT_WAIT_HPOW_TIME(x) \
  7136. (((x) & BIT_MASK_WAIT_HPOW_TIME) << BIT_SHIFT_WAIT_HPOW_TIME)
  7137. #define BITS_WAIT_HPOW_TIME \
  7138. (BIT_MASK_WAIT_HPOW_TIME << BIT_SHIFT_WAIT_HPOW_TIME)
  7139. #define BIT_CLEAR_WAIT_HPOW_TIME(x) ((x) & (~BITS_WAIT_HPOW_TIME))
  7140. #define BIT_GET_WAIT_HPOW_TIME(x) \
  7141. (((x) >> BIT_SHIFT_WAIT_HPOW_TIME) & BIT_MASK_WAIT_HPOW_TIME)
  7142. #define BIT_SET_WAIT_HPOW_TIME(x, v) \
  7143. (BIT_CLEAR_WAIT_HPOW_TIME(x) | BIT_WAIT_HPOW_TIME(v))
  7144. #endif
  7145. #if (HALMAC_8814AMP_SUPPORT)
  7146. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7147. #define BIT_SHIFT_XTAL_SEL_0_V1 28
  7148. #define BIT_MASK_XTAL_SEL_0_V1 0xf
  7149. #define BIT_XTAL_SEL_0_V1(x) \
  7150. (((x) & BIT_MASK_XTAL_SEL_0_V1) << BIT_SHIFT_XTAL_SEL_0_V1)
  7151. #define BITS_XTAL_SEL_0_V1 (BIT_MASK_XTAL_SEL_0_V1 << BIT_SHIFT_XTAL_SEL_0_V1)
  7152. #define BIT_CLEAR_XTAL_SEL_0_V1(x) ((x) & (~BITS_XTAL_SEL_0_V1))
  7153. #define BIT_GET_XTAL_SEL_0_V1(x) \
  7154. (((x) >> BIT_SHIFT_XTAL_SEL_0_V1) & BIT_MASK_XTAL_SEL_0_V1)
  7155. #define BIT_SET_XTAL_SEL_0_V1(x, v) \
  7156. (BIT_CLEAR_XTAL_SEL_0_V1(x) | BIT_XTAL_SEL_0_V1(v))
  7157. #endif
  7158. #if (HALMAC_8814B_SUPPORT)
  7159. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7160. #define BIT_TSFT_BAND_SEL BIT(28)
  7161. #endif
  7162. #if (HALMAC_8192F_SUPPORT)
  7163. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7164. #define BIT_PCIE_HPOW_OPT2 BIT(27)
  7165. #endif
  7166. #if (HALMAC_8814AMP_SUPPORT)
  7167. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7168. #define BIT_ISO_RFC2RF_3 BIT(27)
  7169. #endif
  7170. #if (HALMAC_8192F_SUPPORT)
  7171. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7172. #define BIT_PCIE_HPOW_OPT1 BIT(26)
  7173. #endif
  7174. #if (HALMAC_8814AMP_SUPPORT)
  7175. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7176. #define BIT_ISO_RFC2RF_2 BIT(26)
  7177. #endif
  7178. #if (HALMAC_8192F_SUPPORT)
  7179. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7180. #define BIT_PCIE_HPOW_OPT0 BIT(25)
  7181. #endif
  7182. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7183. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  7184. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7185. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  7186. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7187. #define BIT_SHIFT_RPWM 24
  7188. #define BIT_MASK_RPWM 0xff
  7189. #define BIT_RPWM(x) (((x) & BIT_MASK_RPWM) << BIT_SHIFT_RPWM)
  7190. #define BITS_RPWM (BIT_MASK_RPWM << BIT_SHIFT_RPWM)
  7191. #define BIT_CLEAR_RPWM(x) ((x) & (~BITS_RPWM))
  7192. #define BIT_GET_RPWM(x) (((x) >> BIT_SHIFT_RPWM) & BIT_MASK_RPWM)
  7193. #define BIT_SET_RPWM(x, v) (BIT_CLEAR_RPWM(x) | BIT_RPWM(v))
  7194. #endif
  7195. #if (HALMAC_8192F_SUPPORT)
  7196. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7197. #define BIT_PCIE_EPC_ISO BIT(24)
  7198. #define BIT_PCIE_EPC_OPT BIT(23)
  7199. #define BIT_PCIE_SUS_OPT BIT(22)
  7200. #define BIT_PCIE_L1OF_OPT BIT(21)
  7201. #define BIT_PCIE_L1OF_LDOA BIT(20)
  7202. #define BIT_USB_SUS_LDOA BIT(19)
  7203. #endif
  7204. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7205. HALMAC_8822C_SUPPORT)
  7206. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7207. #define BIT_SDIO_PAD_E5 BIT(18)
  7208. #endif
  7209. #if (HALMAC_8192F_SUPPORT)
  7210. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7211. #define BIT_USB_HOST_PWR_OFF_SEL BIT(13)
  7212. #endif
  7213. #if (HALMAC_8814A_SUPPORT)
  7214. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7215. #define BIT_R_FORCE_CLK_U3 BIT(13)
  7216. #endif
  7217. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7218. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7219. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7220. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7221. #define BIT_USB_HOST_PWR_OFF_EN BIT(12)
  7222. #endif
  7223. #if (HALMAC_8814A_SUPPORT)
  7224. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7225. #define BIT_R_USB2_AUTOLOAD BIT(12)
  7226. #endif
  7227. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7228. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7229. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7230. HALMAC_8881A_SUPPORT)
  7231. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7232. #define BIT_SYM_LPS_BLOCK_EN BIT(11)
  7233. #endif
  7234. #if (HALMAC_8814A_SUPPORT)
  7235. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7236. #define BIT_FORCE_U2CK BIT(11)
  7237. #endif
  7238. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7239. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7240. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7241. HALMAC_8881A_SUPPORT)
  7242. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7243. #define BIT_USB_LPM_ACT_EN BIT(10)
  7244. #endif
  7245. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7246. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7247. #define BIT_FORCE_CLK BIT(10)
  7248. #endif
  7249. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7250. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7251. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7252. HALMAC_8881A_SUPPORT)
  7253. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7254. #define BIT_USB_LPM_NY BIT(9)
  7255. #endif
  7256. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7257. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7258. #define BIT_IBX_EN_VALUE BIT(9)
  7259. #endif
  7260. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7261. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7262. #define BIT_U2_FORCE BIT(9)
  7263. #endif
  7264. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7265. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7266. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7267. HALMAC_8881A_SUPPORT)
  7268. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7269. #define BIT_USB_SUS_DIS BIT(8)
  7270. #endif
  7271. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7272. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7273. #define BIT_IB_EN_VALUE BIT(8)
  7274. #endif
  7275. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7276. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7277. #define BIT_U3_FORCE BIT(8)
  7278. #endif
  7279. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7280. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7281. #define BIT_EN_LW_PWR BIT(6)
  7282. #endif
  7283. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7284. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  7285. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7286. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  7287. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7288. #define BIT_SHIFT_SDIO_PAD_E 5
  7289. #define BIT_MASK_SDIO_PAD_E 0x7
  7290. #define BIT_SDIO_PAD_E(x) (((x) & BIT_MASK_SDIO_PAD_E) << BIT_SHIFT_SDIO_PAD_E)
  7291. #define BITS_SDIO_PAD_E (BIT_MASK_SDIO_PAD_E << BIT_SHIFT_SDIO_PAD_E)
  7292. #define BIT_CLEAR_SDIO_PAD_E(x) ((x) & (~BITS_SDIO_PAD_E))
  7293. #define BIT_GET_SDIO_PAD_E(x) \
  7294. (((x) >> BIT_SHIFT_SDIO_PAD_E) & BIT_MASK_SDIO_PAD_E)
  7295. #define BIT_SET_SDIO_PAD_E(x, v) (BIT_CLEAR_SDIO_PAD_E(x) | BIT_SDIO_PAD_E(v))
  7296. #endif
  7297. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7298. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7299. #define BIT_EN_REGU BIT(5)
  7300. #endif
  7301. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7302. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7303. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7304. HALMAC_8881A_SUPPORT)
  7305. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7306. #define BIT_USB_LPPLL_EN BIT(4)
  7307. #endif
  7308. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7309. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7310. #define BIT_FORCED_IB_EN BIT(4)
  7311. #define BIT_EN_PC BIT(4)
  7312. #endif
  7313. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7314. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7315. #define BIT_SDIO_H3L1 BIT(4)
  7316. #endif
  7317. #if (HALMAC_8192F_SUPPORT)
  7318. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7319. #define BIT_PERST_SYNC_EN BIT(3)
  7320. #endif
  7321. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7322. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7323. #define BIT_USB1_1_USB2_0_DECISION BIT(3)
  7324. #define BIT_EN_REGBG BIT(3)
  7325. #endif
  7326. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7327. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7328. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7329. HALMAC_8881A_SUPPORT)
  7330. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7331. #define BIT_ROP_SW15 BIT(2)
  7332. #endif
  7333. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7334. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7335. #define BIT_REG_BG_LPF BIT(2)
  7336. #endif
  7337. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7338. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7339. #define BIT_SHIFT_USB23_SW_MODE 2
  7340. #define BIT_MASK_USB23_SW_MODE 0x3
  7341. #define BIT_USB23_SW_MODE(x) \
  7342. (((x) & BIT_MASK_USB23_SW_MODE) << BIT_SHIFT_USB23_SW_MODE)
  7343. #define BITS_USB23_SW_MODE (BIT_MASK_USB23_SW_MODE << BIT_SHIFT_USB23_SW_MODE)
  7344. #define BIT_CLEAR_USB23_SW_MODE(x) ((x) & (~BITS_USB23_SW_MODE))
  7345. #define BIT_GET_USB23_SW_MODE(x) \
  7346. (((x) >> BIT_SHIFT_USB23_SW_MODE) & BIT_MASK_USB23_SW_MODE)
  7347. #define BIT_SET_USB23_SW_MODE(x, v) \
  7348. (BIT_CLEAR_USB23_SW_MODE(x) | BIT_USB23_SW_MODE(v))
  7349. #endif
  7350. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7351. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7352. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7353. HALMAC_8881A_SUPPORT)
  7354. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7355. #define BIT_PCI_CKRDY_OPT BIT(1)
  7356. #endif
  7357. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7358. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7359. #define BIT_PCLK_VLD_SEL BIT(1)
  7360. #endif
  7361. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  7362. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7363. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  7364. HALMAC_8881A_SUPPORT)
  7365. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7366. #define BIT_PCI_VAUX_EN BIT(0)
  7367. #endif
  7368. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7369. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7370. #define BIT_SHIFT_REG_BG 0
  7371. #define BIT_MASK_REG_BG 0x3
  7372. #define BIT_REG_BG(x) (((x) & BIT_MASK_REG_BG) << BIT_SHIFT_REG_BG)
  7373. #define BITS_REG_BG (BIT_MASK_REG_BG << BIT_SHIFT_REG_BG)
  7374. #define BIT_CLEAR_REG_BG(x) ((x) & (~BITS_REG_BG))
  7375. #define BIT_GET_REG_BG(x) (((x) >> BIT_SHIFT_REG_BG) & BIT_MASK_REG_BG)
  7376. #define BIT_SET_REG_BG(x, v) (BIT_CLEAR_REG_BG(x) | BIT_REG_BG(v))
  7377. #define BIT_SHIFT_REG_VADJ 0
  7378. #define BIT_MASK_REG_VADJ 0xf
  7379. #define BIT_REG_VADJ(x) (((x) & BIT_MASK_REG_VADJ) << BIT_SHIFT_REG_VADJ)
  7380. #define BITS_REG_VADJ (BIT_MASK_REG_VADJ << BIT_SHIFT_REG_VADJ)
  7381. #define BIT_CLEAR_REG_VADJ(x) ((x) & (~BITS_REG_VADJ))
  7382. #define BIT_GET_REG_VADJ(x) (((x) >> BIT_SHIFT_REG_VADJ) & BIT_MASK_REG_VADJ)
  7383. #define BIT_SET_REG_VADJ(x, v) (BIT_CLEAR_REG_VADJ(x) | BIT_REG_VADJ(v))
  7384. #endif
  7385. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7386. /* 2 REG_HCI_OPT_CTRL (Offset 0x0074) */
  7387. #define BIT_VAUX_EN BIT(0)
  7388. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7389. #define BIT_SDM_ORDER BIT(30)
  7390. #define BIT_XTAL_DRV_RF_LATCH_V1 BIT(29)
  7391. #define BIT_XTAL_VDD_SEL_V1 BIT(28)
  7392. #endif
  7393. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7394. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7395. #define BIT_XTAL_DRV_RF_LATCH BIT(27)
  7396. #endif
  7397. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7398. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7399. #define BIT_XQSEL_RF_AWAKE_V1 BIT(27)
  7400. #endif
  7401. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7402. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7403. #define BIT_XTAL_VDD_SEL BIT(26)
  7404. #endif
  7405. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  7406. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7407. #define BIT_RF1_SDMRSTB BIT(26)
  7408. #endif
  7409. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7410. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7411. #define BIT_GATED_XTAL_OK0_V1 BIT(26)
  7412. #endif
  7413. #if (HALMAC_8192E_SUPPORT)
  7414. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7415. #define BIT_XQSEL_RF BIT(25)
  7416. #endif
  7417. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  7418. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7419. #define BIT_RF1_RSTB BIT(25)
  7420. #endif
  7421. #if (HALMAC_8881A_SUPPORT)
  7422. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7423. #define BIT_XQSEL_RF_AWAKE BIT(25)
  7424. #endif
  7425. #if (HALMAC_8192E_SUPPORT)
  7426. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7427. #define BIT_XQSEL_RF_INITIAL BIT(24)
  7428. #endif
  7429. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  7430. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7431. #define BIT_RF1_EN BIT(24)
  7432. #endif
  7433. #if (HALMAC_8881A_SUPPORT)
  7434. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7435. #define BIT_XQSEL_BIT1 BIT(24)
  7436. #endif
  7437. #if (HALMAC_8192E_SUPPORT)
  7438. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7439. #define BIT_REG_VREF_SEL BIT(23)
  7440. #endif
  7441. #if (HALMAC_8198F_SUPPORT)
  7442. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7443. #define BIT_DITHER_SDM_BIT3 BIT(23)
  7444. #endif
  7445. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7446. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7447. #define BIT_SHIFT_F0N_2_TO_0 23
  7448. #define BIT_MASK_F0N_2_TO_0 0x7
  7449. #define BIT_F0N_2_TO_0(x) (((x) & BIT_MASK_F0N_2_TO_0) << BIT_SHIFT_F0N_2_TO_0)
  7450. #define BITS_F0N_2_TO_0 (BIT_MASK_F0N_2_TO_0 << BIT_SHIFT_F0N_2_TO_0)
  7451. #define BIT_CLEAR_F0N_2_TO_0(x) ((x) & (~BITS_F0N_2_TO_0))
  7452. #define BIT_GET_F0N_2_TO_0(x) \
  7453. (((x) >> BIT_SHIFT_F0N_2_TO_0) & BIT_MASK_F0N_2_TO_0)
  7454. #define BIT_SET_F0N_2_TO_0(x, v) (BIT_CLEAR_F0N_2_TO_0(x) | BIT_F0N_2_TO_0(v))
  7455. #endif
  7456. #if (HALMAC_8192E_SUPPORT)
  7457. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7458. #define BIT_REG_LPFEN BIT(22)
  7459. #define BIT_REG_KVCO BIT(21)
  7460. #define BIT_XTAL_DRV_AGPIO_BIT1 BIT(20)
  7461. #endif
  7462. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  7463. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7464. #define BIT_SHIFT_XTAL_LDO 20
  7465. #define BIT_MASK_XTAL_LDO 0x7
  7466. #define BIT_XTAL_LDO(x) (((x) & BIT_MASK_XTAL_LDO) << BIT_SHIFT_XTAL_LDO)
  7467. #define BITS_XTAL_LDO (BIT_MASK_XTAL_LDO << BIT_SHIFT_XTAL_LDO)
  7468. #define BIT_CLEAR_XTAL_LDO(x) ((x) & (~BITS_XTAL_LDO))
  7469. #define BIT_GET_XTAL_LDO(x) (((x) >> BIT_SHIFT_XTAL_LDO) & BIT_MASK_XTAL_LDO)
  7470. #define BIT_SET_XTAL_LDO(x, v) (BIT_CLEAR_XTAL_LDO(x) | BIT_XTAL_LDO(v))
  7471. #endif
  7472. #if (HALMAC_8192E_SUPPORT)
  7473. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7474. #define BIT_XTAL_DRV_AGPIO_BIT0 BIT(19)
  7475. #endif
  7476. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7477. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7478. #define BIT_XTAL_GRF2 BIT(18)
  7479. #define BIT_REG_REF_SEL BIT(17)
  7480. #define BIT_REG_320_SEL BIT(16)
  7481. #endif
  7482. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  7483. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7484. #define BIT_ADC_CK_SYNC_EN BIT(16)
  7485. #endif
  7486. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7487. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7488. #define BIT_EN_SYM BIT(15)
  7489. #define BIT_SHIFT_IOFFSET 10
  7490. #define BIT_MASK_IOFFSET 0x1f
  7491. #define BIT_IOFFSET(x) (((x) & BIT_MASK_IOFFSET) << BIT_SHIFT_IOFFSET)
  7492. #define BITS_IOFFSET (BIT_MASK_IOFFSET << BIT_SHIFT_IOFFSET)
  7493. #define BIT_CLEAR_IOFFSET(x) ((x) & (~BITS_IOFFSET))
  7494. #define BIT_GET_IOFFSET(x) (((x) >> BIT_SHIFT_IOFFSET) & BIT_MASK_IOFFSET)
  7495. #define BIT_SET_IOFFSET(x, v) (BIT_CLEAR_IOFFSET(x) | BIT_IOFFSET(v))
  7496. #endif
  7497. #if (HALMAC_8198F_SUPPORT)
  7498. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7499. #define BIT_RF2_SDMRSTB BIT(10)
  7500. #endif
  7501. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7502. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7503. #define BIT_SHIFT_F0F_12_TO_0 10
  7504. #define BIT_MASK_F0F_12_TO_0 0x1fff
  7505. #define BIT_F0F_12_TO_0(x) \
  7506. (((x) & BIT_MASK_F0F_12_TO_0) << BIT_SHIFT_F0F_12_TO_0)
  7507. #define BITS_F0F_12_TO_0 (BIT_MASK_F0F_12_TO_0 << BIT_SHIFT_F0F_12_TO_0)
  7508. #define BIT_CLEAR_F0F_12_TO_0(x) ((x) & (~BITS_F0F_12_TO_0))
  7509. #define BIT_GET_F0F_12_TO_0(x) \
  7510. (((x) >> BIT_SHIFT_F0F_12_TO_0) & BIT_MASK_F0F_12_TO_0)
  7511. #define BIT_SET_F0F_12_TO_0(x, v) \
  7512. (BIT_CLEAR_F0F_12_TO_0(x) | BIT_F0F_12_TO_0(v))
  7513. #endif
  7514. #if (HALMAC_8198F_SUPPORT)
  7515. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7516. #define BIT_RF2_RSTB BIT(9)
  7517. #endif
  7518. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7519. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7520. #define BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1 8
  7521. #define BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1 0x3
  7522. #define BIT_APLL_FREF_SEL_BIT_2_TO_1(x) \
  7523. (((x) & BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1) \
  7524. << BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1)
  7525. #define BITS_APLL_FREF_SEL_BIT_2_TO_1 \
  7526. (BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1 \
  7527. << BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1)
  7528. #define BIT_CLEAR_APLL_FREF_SEL_BIT_2_TO_1(x) \
  7529. ((x) & (~BITS_APLL_FREF_SEL_BIT_2_TO_1))
  7530. #define BIT_GET_APLL_FREF_SEL_BIT_2_TO_1(x) \
  7531. (((x) >> BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1) & \
  7532. BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1)
  7533. #define BIT_SET_APLL_FREF_SEL_BIT_2_TO_1(x, v) \
  7534. (BIT_CLEAR_APLL_FREF_SEL_BIT_2_TO_1(x) | \
  7535. BIT_APLL_FREF_SEL_BIT_2_TO_1(v))
  7536. #endif
  7537. #if (HALMAC_8198F_SUPPORT)
  7538. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7539. #define BIT_RF2_EN BIT(8)
  7540. #endif
  7541. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7542. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7543. #define BIT_APLL_FREF_SEL_BIT3 BIT(7)
  7544. #define BIT_SHIFT_APLL_LDO_V12ADJ 5
  7545. #define BIT_MASK_APLL_LDO_V12ADJ 0x3
  7546. #define BIT_APLL_LDO_V12ADJ(x) \
  7547. (((x) & BIT_MASK_APLL_LDO_V12ADJ) << BIT_SHIFT_APLL_LDO_V12ADJ)
  7548. #define BITS_APLL_LDO_V12ADJ \
  7549. (BIT_MASK_APLL_LDO_V12ADJ << BIT_SHIFT_APLL_LDO_V12ADJ)
  7550. #define BIT_CLEAR_APLL_LDO_V12ADJ(x) ((x) & (~BITS_APLL_LDO_V12ADJ))
  7551. #define BIT_GET_APLL_LDO_V12ADJ(x) \
  7552. (((x) >> BIT_SHIFT_APLL_LDO_V12ADJ) & BIT_MASK_APLL_LDO_V12ADJ)
  7553. #define BIT_SET_APLL_LDO_V12ADJ(x, v) \
  7554. (BIT_CLEAR_APLL_LDO_V12ADJ(x) | BIT_APLL_LDO_V12ADJ(v))
  7555. #define BIT_APLL_160_GATEB BIT(4)
  7556. #endif
  7557. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7558. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7559. #define BIT_SHIFT_DIVN_5_TO_0 4
  7560. #define BIT_MASK_DIVN_5_TO_0 0x3f
  7561. #define BIT_DIVN_5_TO_0(x) \
  7562. (((x) & BIT_MASK_DIVN_5_TO_0) << BIT_SHIFT_DIVN_5_TO_0)
  7563. #define BITS_DIVN_5_TO_0 (BIT_MASK_DIVN_5_TO_0 << BIT_SHIFT_DIVN_5_TO_0)
  7564. #define BIT_CLEAR_DIVN_5_TO_0(x) ((x) & (~BITS_DIVN_5_TO_0))
  7565. #define BIT_GET_DIVN_5_TO_0(x) \
  7566. (((x) >> BIT_SHIFT_DIVN_5_TO_0) & BIT_MASK_DIVN_5_TO_0)
  7567. #define BIT_SET_DIVN_5_TO_0(x, v) \
  7568. (BIT_CLEAR_DIVN_5_TO_0(x) | BIT_DIVN_5_TO_0(v))
  7569. #endif
  7570. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7571. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7572. #define BIT_AFE_DUMMY BIT(3)
  7573. #define BIT_REG_IDOUBLE BIT(2)
  7574. #endif
  7575. #if (HALMAC_8198F_SUPPORT)
  7576. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7577. #define BIT_RF3_SDMRSTB BIT(2)
  7578. #endif
  7579. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7580. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7581. #define BIT_REG_VCO_BIAS_BIT0 BIT(1)
  7582. #endif
  7583. #if (HALMAC_8198F_SUPPORT)
  7584. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7585. #define BIT_RF3_RSTB BIT(1)
  7586. #endif
  7587. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7588. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7589. #define BIT_REG_VCO_BIAS_BIT1 BIT(0)
  7590. #endif
  7591. #if (HALMAC_8198F_SUPPORT)
  7592. /* 2 REG_AFE_CTRL4 (Offset 0x0078) */
  7593. #define BIT_RF3_EN BIT(0)
  7594. #endif
  7595. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7596. /* 2 REG_AFE_XTAL_CTRL_EXT (Offset 0x0078) */
  7597. #define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0 0
  7598. #define BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0 0xf
  7599. #define BIT_BB_DBG_SEL_AFE_SDM_3_TO_0(x) \
  7600. (((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0) \
  7601. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0)
  7602. #define BITS_BB_DBG_SEL_AFE_SDM_3_TO_0 \
  7603. (BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0 \
  7604. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0)
  7605. #define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_3_TO_0(x) \
  7606. ((x) & (~BITS_BB_DBG_SEL_AFE_SDM_3_TO_0))
  7607. #define BIT_GET_BB_DBG_SEL_AFE_SDM_3_TO_0(x) \
  7608. (((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0) & \
  7609. BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0)
  7610. #define BIT_SET_BB_DBG_SEL_AFE_SDM_3_TO_0(x, v) \
  7611. (BIT_CLEAR_BB_DBG_SEL_AFE_SDM_3_TO_0(x) | \
  7612. BIT_BB_DBG_SEL_AFE_SDM_3_TO_0(v))
  7613. #endif
  7614. #if (HALMAC_8192F_SUPPORT)
  7615. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7616. #define BIT_SPS_EN_DIODE BIT(31)
  7617. #endif
  7618. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  7619. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7620. #define BIT_EXT_SWR_CTRL_EN BIT(31)
  7621. #endif
  7622. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7623. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7624. #define BIT_REF_FREF_EDGE BIT(29)
  7625. #define BIT_REG_VREF_SEL_V1 BIT(28)
  7626. #endif
  7627. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7628. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7629. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7630. #define BIT_ZCD_HW_AUTO_EN BIT(27)
  7631. #define BIT_ZCD_REGSEL BIT(26)
  7632. #endif
  7633. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7634. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7635. #define BIT_SHIFT_REG_CP_OFFSET_4_TO_0 23
  7636. #define BIT_MASK_REG_CP_OFFSET_4_TO_0 0x1f
  7637. #define BIT_REG_CP_OFFSET_4_TO_0(x) \
  7638. (((x) & BIT_MASK_REG_CP_OFFSET_4_TO_0) \
  7639. << BIT_SHIFT_REG_CP_OFFSET_4_TO_0)
  7640. #define BITS_REG_CP_OFFSET_4_TO_0 \
  7641. (BIT_MASK_REG_CP_OFFSET_4_TO_0 << BIT_SHIFT_REG_CP_OFFSET_4_TO_0)
  7642. #define BIT_CLEAR_REG_CP_OFFSET_4_TO_0(x) ((x) & (~BITS_REG_CP_OFFSET_4_TO_0))
  7643. #define BIT_GET_REG_CP_OFFSET_4_TO_0(x) \
  7644. (((x) >> BIT_SHIFT_REG_CP_OFFSET_4_TO_0) & \
  7645. BIT_MASK_REG_CP_OFFSET_4_TO_0)
  7646. #define BIT_SET_REG_CP_OFFSET_4_TO_0(x, v) \
  7647. (BIT_CLEAR_REG_CP_OFFSET_4_TO_0(x) | BIT_REG_CP_OFFSET_4_TO_0(v))
  7648. #endif
  7649. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7650. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7651. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7652. #define BIT_SHIFT_AUTO_ZCD_IN_CODE 21
  7653. #define BIT_MASK_AUTO_ZCD_IN_CODE 0x1f
  7654. #define BIT_AUTO_ZCD_IN_CODE(x) \
  7655. (((x) & BIT_MASK_AUTO_ZCD_IN_CODE) << BIT_SHIFT_AUTO_ZCD_IN_CODE)
  7656. #define BITS_AUTO_ZCD_IN_CODE \
  7657. (BIT_MASK_AUTO_ZCD_IN_CODE << BIT_SHIFT_AUTO_ZCD_IN_CODE)
  7658. #define BIT_CLEAR_AUTO_ZCD_IN_CODE(x) ((x) & (~BITS_AUTO_ZCD_IN_CODE))
  7659. #define BIT_GET_AUTO_ZCD_IN_CODE(x) \
  7660. (((x) >> BIT_SHIFT_AUTO_ZCD_IN_CODE) & BIT_MASK_AUTO_ZCD_IN_CODE)
  7661. #define BIT_SET_AUTO_ZCD_IN_CODE(x, v) \
  7662. (BIT_CLEAR_AUTO_ZCD_IN_CODE(x) | BIT_AUTO_ZCD_IN_CODE(v))
  7663. #endif
  7664. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7665. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7666. #define BIT_SHIFT_REG_RS_SET_2_TO_0 20
  7667. #define BIT_MASK_REG_RS_SET_2_TO_0 0x7
  7668. #define BIT_REG_RS_SET_2_TO_0(x) \
  7669. (((x) & BIT_MASK_REG_RS_SET_2_TO_0) << BIT_SHIFT_REG_RS_SET_2_TO_0)
  7670. #define BITS_REG_RS_SET_2_TO_0 \
  7671. (BIT_MASK_REG_RS_SET_2_TO_0 << BIT_SHIFT_REG_RS_SET_2_TO_0)
  7672. #define BIT_CLEAR_REG_RS_SET_2_TO_0(x) ((x) & (~BITS_REG_RS_SET_2_TO_0))
  7673. #define BIT_GET_REG_RS_SET_2_TO_0(x) \
  7674. (((x) >> BIT_SHIFT_REG_RS_SET_2_TO_0) & BIT_MASK_REG_RS_SET_2_TO_0)
  7675. #define BIT_SET_REG_RS_SET_2_TO_0(x, v) \
  7676. (BIT_CLEAR_REG_RS_SET_2_TO_0(x) | BIT_REG_RS_SET_2_TO_0(v))
  7677. #define BIT_SHIFT_REG_CS_SET_1_TO_0 18
  7678. #define BIT_MASK_REG_CS_SET_1_TO_0 0x3
  7679. #define BIT_REG_CS_SET_1_TO_0(x) \
  7680. (((x) & BIT_MASK_REG_CS_SET_1_TO_0) << BIT_SHIFT_REG_CS_SET_1_TO_0)
  7681. #define BITS_REG_CS_SET_1_TO_0 \
  7682. (BIT_MASK_REG_CS_SET_1_TO_0 << BIT_SHIFT_REG_CS_SET_1_TO_0)
  7683. #define BIT_CLEAR_REG_CS_SET_1_TO_0(x) ((x) & (~BITS_REG_CS_SET_1_TO_0))
  7684. #define BIT_GET_REG_CS_SET_1_TO_0(x) \
  7685. (((x) >> BIT_SHIFT_REG_CS_SET_1_TO_0) & BIT_MASK_REG_CS_SET_1_TO_0)
  7686. #define BIT_SET_REG_CS_SET_1_TO_0(x, v) \
  7687. (BIT_CLEAR_REG_CS_SET_1_TO_0(x) | BIT_REG_CS_SET_1_TO_0(v))
  7688. #endif
  7689. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  7690. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7691. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7692. #define BIT_SHIFT_ZCD_CODE_IN_L 16
  7693. #define BIT_MASK_ZCD_CODE_IN_L 0x1f
  7694. #define BIT_ZCD_CODE_IN_L(x) \
  7695. (((x) & BIT_MASK_ZCD_CODE_IN_L) << BIT_SHIFT_ZCD_CODE_IN_L)
  7696. #define BITS_ZCD_CODE_IN_L (BIT_MASK_ZCD_CODE_IN_L << BIT_SHIFT_ZCD_CODE_IN_L)
  7697. #define BIT_CLEAR_ZCD_CODE_IN_L(x) ((x) & (~BITS_ZCD_CODE_IN_L))
  7698. #define BIT_GET_ZCD_CODE_IN_L(x) \
  7699. (((x) >> BIT_SHIFT_ZCD_CODE_IN_L) & BIT_MASK_ZCD_CODE_IN_L)
  7700. #define BIT_SET_ZCD_CODE_IN_L(x, v) \
  7701. (BIT_CLEAR_ZCD_CODE_IN_L(x) | BIT_ZCD_CODE_IN_L(v))
  7702. #endif
  7703. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7704. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7705. #define BIT_SHIFT_REG_CP_SET_1_TO_0 16
  7706. #define BIT_MASK_REG_CP_SET_1_TO_0 0x3
  7707. #define BIT_REG_CP_SET_1_TO_0(x) \
  7708. (((x) & BIT_MASK_REG_CP_SET_1_TO_0) << BIT_SHIFT_REG_CP_SET_1_TO_0)
  7709. #define BITS_REG_CP_SET_1_TO_0 \
  7710. (BIT_MASK_REG_CP_SET_1_TO_0 << BIT_SHIFT_REG_CP_SET_1_TO_0)
  7711. #define BIT_CLEAR_REG_CP_SET_1_TO_0(x) ((x) & (~BITS_REG_CP_SET_1_TO_0))
  7712. #define BIT_GET_REG_CP_SET_1_TO_0(x) \
  7713. (((x) >> BIT_SHIFT_REG_CP_SET_1_TO_0) & BIT_MASK_REG_CP_SET_1_TO_0)
  7714. #define BIT_SET_REG_CP_SET_1_TO_0(x, v) \
  7715. (BIT_CLEAR_REG_CP_SET_1_TO_0(x) | BIT_REG_CP_SET_1_TO_0(v))
  7716. #define BIT_LPFEN BIT(15)
  7717. #endif
  7718. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7719. HALMAC_8822B_SUPPORT)
  7720. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7721. #define BIT_SHIFT_LDO_HV5_DUMMY 14
  7722. #define BIT_MASK_LDO_HV5_DUMMY 0x3
  7723. #define BIT_LDO_HV5_DUMMY(x) \
  7724. (((x) & BIT_MASK_LDO_HV5_DUMMY) << BIT_SHIFT_LDO_HV5_DUMMY)
  7725. #define BITS_LDO_HV5_DUMMY (BIT_MASK_LDO_HV5_DUMMY << BIT_SHIFT_LDO_HV5_DUMMY)
  7726. #define BIT_CLEAR_LDO_HV5_DUMMY(x) ((x) & (~BITS_LDO_HV5_DUMMY))
  7727. #define BIT_GET_LDO_HV5_DUMMY(x) \
  7728. (((x) >> BIT_SHIFT_LDO_HV5_DUMMY) & BIT_MASK_LDO_HV5_DUMMY)
  7729. #define BIT_SET_LDO_HV5_DUMMY(x, v) \
  7730. (BIT_CLEAR_LDO_HV5_DUMMY(x) | BIT_LDO_HV5_DUMMY(v))
  7731. #endif
  7732. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7733. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7734. #define BIT_REG_DOGENB BIT(14)
  7735. #define BIT_REG_TEST_EN BIT(13)
  7736. #endif
  7737. #if (HALMAC_8192E_SUPPORT)
  7738. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7739. #define BIT_SHIFT_REG_VTUNE33 12
  7740. #define BIT_MASK_REG_VTUNE33 0x3
  7741. #define BIT_REG_VTUNE33(x) \
  7742. (((x) & BIT_MASK_REG_VTUNE33) << BIT_SHIFT_REG_VTUNE33)
  7743. #define BITS_REG_VTUNE33 (BIT_MASK_REG_VTUNE33 << BIT_SHIFT_REG_VTUNE33)
  7744. #define BIT_CLEAR_REG_VTUNE33(x) ((x) & (~BITS_REG_VTUNE33))
  7745. #define BIT_GET_REG_VTUNE33(x) \
  7746. (((x) >> BIT_SHIFT_REG_VTUNE33) & BIT_MASK_REG_VTUNE33)
  7747. #define BIT_SET_REG_VTUNE33(x, v) \
  7748. (BIT_CLEAR_REG_VTUNE33(x) | BIT_REG_VTUNE33(v))
  7749. #endif
  7750. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  7751. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7752. #define BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1 12
  7753. #define BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1 0x3
  7754. #define BIT_REG_VTUNE33_BIT0_TO_BIT1(x) \
  7755. (((x) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1) \
  7756. << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1)
  7757. #define BITS_REG_VTUNE33_BIT0_TO_BIT1 \
  7758. (BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1 \
  7759. << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1)
  7760. #define BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1(x) \
  7761. ((x) & (~BITS_REG_VTUNE33_BIT0_TO_BIT1))
  7762. #define BIT_GET_REG_VTUNE33_BIT0_TO_BIT1(x) \
  7763. (((x) >> BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1) & \
  7764. BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1)
  7765. #define BIT_SET_REG_VTUNE33_BIT0_TO_BIT1(x, v) \
  7766. (BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1(x) | \
  7767. BIT_REG_VTUNE33_BIT0_TO_BIT1(v))
  7768. #endif
  7769. #if (HALMAC_8192E_SUPPORT)
  7770. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7771. #define BIT_SHIFT_REG_STANDBY33 10
  7772. #define BIT_MASK_REG_STANDBY33 0x3
  7773. #define BIT_REG_STANDBY33(x) \
  7774. (((x) & BIT_MASK_REG_STANDBY33) << BIT_SHIFT_REG_STANDBY33)
  7775. #define BITS_REG_STANDBY33 (BIT_MASK_REG_STANDBY33 << BIT_SHIFT_REG_STANDBY33)
  7776. #define BIT_CLEAR_REG_STANDBY33(x) ((x) & (~BITS_REG_STANDBY33))
  7777. #define BIT_GET_REG_STANDBY33(x) \
  7778. (((x) >> BIT_SHIFT_REG_STANDBY33) & BIT_MASK_REG_STANDBY33)
  7779. #define BIT_SET_REG_STANDBY33(x, v) \
  7780. (BIT_CLEAR_REG_STANDBY33(x) | BIT_REG_STANDBY33(v))
  7781. #endif
  7782. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  7783. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7784. #define BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1 10
  7785. #define BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1 0x3
  7786. #define BIT_REG_STANDBY33_BIT0_TO_BIT1(x) \
  7787. (((x) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1) \
  7788. << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1)
  7789. #define BITS_REG_STANDBY33_BIT0_TO_BIT1 \
  7790. (BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1 \
  7791. << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1)
  7792. #define BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1(x) \
  7793. ((x) & (~BITS_REG_STANDBY33_BIT0_TO_BIT1))
  7794. #define BIT_GET_REG_STANDBY33_BIT0_TO_BIT1(x) \
  7795. (((x) >> BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1) & \
  7796. BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1)
  7797. #define BIT_SET_REG_STANDBY33_BIT0_TO_BIT1(x, v) \
  7798. (BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1(x) | \
  7799. BIT_REG_STANDBY33_BIT0_TO_BIT1(v))
  7800. #endif
  7801. #if (HALMAC_8192E_SUPPORT)
  7802. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7803. #define BIT_SHIFT_REG_LOAD33 8
  7804. #define BIT_MASK_REG_LOAD33 0x3
  7805. #define BIT_REG_LOAD33(x) (((x) & BIT_MASK_REG_LOAD33) << BIT_SHIFT_REG_LOAD33)
  7806. #define BITS_REG_LOAD33 (BIT_MASK_REG_LOAD33 << BIT_SHIFT_REG_LOAD33)
  7807. #define BIT_CLEAR_REG_LOAD33(x) ((x) & (~BITS_REG_LOAD33))
  7808. #define BIT_GET_REG_LOAD33(x) \
  7809. (((x) >> BIT_SHIFT_REG_LOAD33) & BIT_MASK_REG_LOAD33)
  7810. #define BIT_SET_REG_LOAD33(x, v) (BIT_CLEAR_REG_LOAD33(x) | BIT_REG_LOAD33(v))
  7811. #endif
  7812. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  7813. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7814. #define BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1 8
  7815. #define BIT_MASK_REG_LOAD33_BIT0_TO_BIT1 0x3
  7816. #define BIT_REG_LOAD33_BIT0_TO_BIT1(x) \
  7817. (((x) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1) \
  7818. << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1)
  7819. #define BITS_REG_LOAD33_BIT0_TO_BIT1 \
  7820. (BIT_MASK_REG_LOAD33_BIT0_TO_BIT1 << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1)
  7821. #define BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1(x) \
  7822. ((x) & (~BITS_REG_LOAD33_BIT0_TO_BIT1))
  7823. #define BIT_GET_REG_LOAD33_BIT0_TO_BIT1(x) \
  7824. (((x) >> BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1) & \
  7825. BIT_MASK_REG_LOAD33_BIT0_TO_BIT1)
  7826. #define BIT_SET_REG_LOAD33_BIT0_TO_BIT1(x, v) \
  7827. (BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1(x) | BIT_REG_LOAD33_BIT0_TO_BIT1(v))
  7828. #endif
  7829. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7830. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7831. #define BIT_SHIFT_REG_DIV_SEL 8
  7832. #define BIT_MASK_REG_DIV_SEL 0x1f
  7833. #define BIT_REG_DIV_SEL(x) \
  7834. (((x) & BIT_MASK_REG_DIV_SEL) << BIT_SHIFT_REG_DIV_SEL)
  7835. #define BITS_REG_DIV_SEL (BIT_MASK_REG_DIV_SEL << BIT_SHIFT_REG_DIV_SEL)
  7836. #define BIT_CLEAR_REG_DIV_SEL(x) ((x) & (~BITS_REG_DIV_SEL))
  7837. #define BIT_GET_REG_DIV_SEL(x) \
  7838. (((x) >> BIT_SHIFT_REG_DIV_SEL) & BIT_MASK_REG_DIV_SEL)
  7839. #define BIT_SET_REG_DIV_SEL(x, v) \
  7840. (BIT_CLEAR_REG_DIV_SEL(x) | BIT_REG_DIV_SEL(v))
  7841. #endif
  7842. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7843. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  7844. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7845. #define BIT_REG_BYPASS_L BIT(7)
  7846. #endif
  7847. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7848. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7849. #define BIT_EN_CK200M BIT(7)
  7850. #endif
  7851. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7852. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  7853. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7854. #define BIT_REG_LDOF_L BIT(6)
  7855. #endif
  7856. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7857. HALMAC_8881A_SUPPORT)
  7858. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7859. #define BIT_REG_OCPS_L BIT(5)
  7860. #endif
  7861. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7862. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7863. #define BIT_SHIFT_REG_KVCO_200M_1_TO_0 5
  7864. #define BIT_MASK_REG_KVCO_200M_1_TO_0 0x3
  7865. #define BIT_REG_KVCO_200M_1_TO_0(x) \
  7866. (((x) & BIT_MASK_REG_KVCO_200M_1_TO_0) \
  7867. << BIT_SHIFT_REG_KVCO_200M_1_TO_0)
  7868. #define BITS_REG_KVCO_200M_1_TO_0 \
  7869. (BIT_MASK_REG_KVCO_200M_1_TO_0 << BIT_SHIFT_REG_KVCO_200M_1_TO_0)
  7870. #define BIT_CLEAR_REG_KVCO_200M_1_TO_0(x) ((x) & (~BITS_REG_KVCO_200M_1_TO_0))
  7871. #define BIT_GET_REG_KVCO_200M_1_TO_0(x) \
  7872. (((x) >> BIT_SHIFT_REG_KVCO_200M_1_TO_0) & \
  7873. BIT_MASK_REG_KVCO_200M_1_TO_0)
  7874. #define BIT_SET_REG_KVCO_200M_1_TO_0(x, v) \
  7875. (BIT_CLEAR_REG_KVCO_200M_1_TO_0(x) | BIT_REG_KVCO_200M_1_TO_0(v))
  7876. #endif
  7877. #if (HALMAC_8822B_SUPPORT)
  7878. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7879. #define BIT_REG_TYPE_L_V1 BIT(5)
  7880. #endif
  7881. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  7882. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7883. #define BIT_ARENB_L BIT(3)
  7884. #endif
  7885. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7886. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7887. #define BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0 2
  7888. #define BIT_MASK_REG_CP_BIAS_200M_2_TO_0 0x7
  7889. #define BIT_REG_CP_BIAS_200M_2_TO_0(x) \
  7890. (((x) & BIT_MASK_REG_CP_BIAS_200M_2_TO_0) \
  7891. << BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0)
  7892. #define BITS_REG_CP_BIAS_200M_2_TO_0 \
  7893. (BIT_MASK_REG_CP_BIAS_200M_2_TO_0 << BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0)
  7894. #define BIT_CLEAR_REG_CP_BIAS_200M_2_TO_0(x) \
  7895. ((x) & (~BITS_REG_CP_BIAS_200M_2_TO_0))
  7896. #define BIT_GET_REG_CP_BIAS_200M_2_TO_0(x) \
  7897. (((x) >> BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0) & \
  7898. BIT_MASK_REG_CP_BIAS_200M_2_TO_0)
  7899. #define BIT_SET_REG_CP_BIAS_200M_2_TO_0(x, v) \
  7900. (BIT_CLEAR_REG_CP_BIAS_200M_2_TO_0(x) | BIT_REG_CP_BIAS_200M_2_TO_0(v))
  7901. #endif
  7902. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  7903. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7904. #define BIT_SHIFT_CFC_L_BIT_1_TO_0 1
  7905. #define BIT_MASK_CFC_L_BIT_1_TO_0 0x3
  7906. #define BIT_CFC_L_BIT_1_TO_0(x) \
  7907. (((x) & BIT_MASK_CFC_L_BIT_1_TO_0) << BIT_SHIFT_CFC_L_BIT_1_TO_0)
  7908. #define BITS_CFC_L_BIT_1_TO_0 \
  7909. (BIT_MASK_CFC_L_BIT_1_TO_0 << BIT_SHIFT_CFC_L_BIT_1_TO_0)
  7910. #define BIT_CLEAR_CFC_L_BIT_1_TO_0(x) ((x) & (~BITS_CFC_L_BIT_1_TO_0))
  7911. #define BIT_GET_CFC_L_BIT_1_TO_0(x) \
  7912. (((x) >> BIT_SHIFT_CFC_L_BIT_1_TO_0) & BIT_MASK_CFC_L_BIT_1_TO_0)
  7913. #define BIT_SET_CFC_L_BIT_1_TO_0(x, v) \
  7914. (BIT_CLEAR_CFC_L_BIT_1_TO_0(x) | BIT_CFC_L_BIT_1_TO_0(v))
  7915. #endif
  7916. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  7917. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7918. #define BIT_SHIFT_CFC_L 1
  7919. #define BIT_MASK_CFC_L 0x3
  7920. #define BIT_CFC_L(x) (((x) & BIT_MASK_CFC_L) << BIT_SHIFT_CFC_L)
  7921. #define BITS_CFC_L (BIT_MASK_CFC_L << BIT_SHIFT_CFC_L)
  7922. #define BIT_CLEAR_CFC_L(x) ((x) & (~BITS_CFC_L))
  7923. #define BIT_GET_CFC_L(x) (((x) >> BIT_SHIFT_CFC_L) & BIT_MASK_CFC_L)
  7924. #define BIT_SET_CFC_L(x, v) (BIT_CLEAR_CFC_L(x) | BIT_CFC_L(v))
  7925. #endif
  7926. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || \
  7927. HALMAC_8881A_SUPPORT)
  7928. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7929. #define BIT_REG_TYPE_L BIT(0)
  7930. #endif
  7931. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  7932. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7933. #define BIT_XCK_OUT_EN BIT(0)
  7934. #endif
  7935. #if (HALMAC_8822B_SUPPORT)
  7936. /* 2 REG_LDO_SWR_CTRL (Offset 0x007C) */
  7937. #define BIT_REG_OCPS_L_V1 BIT(0)
  7938. #endif
  7939. #if (HALMAC_8192F_SUPPORT)
  7940. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7941. #define BIT_MCUSUS_EN BIT(23)
  7942. #endif
  7943. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  7944. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  7945. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  7946. HALMAC_8822C_SUPPORT)
  7947. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7948. #define BIT_ANA_PORT_EN BIT(22)
  7949. #define BIT_MAC_PORT_EN BIT(21)
  7950. #define BIT_BOOT_FSPI_EN BIT(20)
  7951. #endif
  7952. #if (HALMAC_8192F_SUPPORT)
  7953. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7954. #define BIT_SHIFT_MCUROM_DL 16
  7955. #define BIT_MASK_MCUROM_DL 0xf
  7956. #define BIT_MCUROM_DL(x) (((x) & BIT_MASK_MCUROM_DL) << BIT_SHIFT_MCUROM_DL)
  7957. #define BITS_MCUROM_DL (BIT_MASK_MCUROM_DL << BIT_SHIFT_MCUROM_DL)
  7958. #define BIT_CLEAR_MCUROM_DL(x) ((x) & (~BITS_MCUROM_DL))
  7959. #define BIT_GET_MCUROM_DL(x) (((x) >> BIT_SHIFT_MCUROM_DL) & BIT_MASK_MCUROM_DL)
  7960. #define BIT_SET_MCUROM_DL(x, v) (BIT_CLEAR_MCUROM_DL(x) | BIT_MCUROM_DL(v))
  7961. #endif
  7962. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  7963. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  7964. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7965. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7966. #define BIT_WMAC_SRCH_FIFOFULL BIT(15)
  7967. #endif
  7968. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  7969. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  7970. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7971. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7972. #define BIT_FW_INIT_RDY BIT(15)
  7973. #endif
  7974. #if (HALMAC_8192F_SUPPORT)
  7975. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7976. #define BIT_SHIFT_MCUFWDL_DMA_2KB_SEL 14
  7977. #define BIT_MASK_MCUFWDL_DMA_2KB_SEL 0x3
  7978. #define BIT_MCUFWDL_DMA_2KB_SEL(x) \
  7979. (((x) & BIT_MASK_MCUFWDL_DMA_2KB_SEL) << BIT_SHIFT_MCUFWDL_DMA_2KB_SEL)
  7980. #define BITS_MCUFWDL_DMA_2KB_SEL \
  7981. (BIT_MASK_MCUFWDL_DMA_2KB_SEL << BIT_SHIFT_MCUFWDL_DMA_2KB_SEL)
  7982. #define BIT_CLEAR_MCUFWDL_DMA_2KB_SEL(x) ((x) & (~BITS_MCUFWDL_DMA_2KB_SEL))
  7983. #define BIT_GET_MCUFWDL_DMA_2KB_SEL(x) \
  7984. (((x) >> BIT_SHIFT_MCUFWDL_DMA_2KB_SEL) & BIT_MASK_MCUFWDL_DMA_2KB_SEL)
  7985. #define BIT_SET_MCUFWDL_DMA_2KB_SEL(x, v) \
  7986. (BIT_CLEAR_MCUFWDL_DMA_2KB_SEL(x) | BIT_MCUFWDL_DMA_2KB_SEL(v))
  7987. #endif
  7988. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  7989. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  7990. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  7991. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  7992. #define BIT_FW_DW_RDY BIT(14)
  7993. #endif
  7994. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  7995. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  7996. #define BIT_FWDL_RSVDPAGE_RDY BIT(12)
  7997. #endif
  7998. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  7999. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8000. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8001. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8002. #define BIT_SHIFT_CPU_CLK_SEL 12
  8003. #define BIT_MASK_CPU_CLK_SEL 0x3
  8004. #define BIT_CPU_CLK_SEL(x) \
  8005. (((x) & BIT_MASK_CPU_CLK_SEL) << BIT_SHIFT_CPU_CLK_SEL)
  8006. #define BITS_CPU_CLK_SEL (BIT_MASK_CPU_CLK_SEL << BIT_SHIFT_CPU_CLK_SEL)
  8007. #define BIT_CLEAR_CPU_CLK_SEL(x) ((x) & (~BITS_CPU_CLK_SEL))
  8008. #define BIT_GET_CPU_CLK_SEL(x) \
  8009. (((x) >> BIT_SHIFT_CPU_CLK_SEL) & BIT_MASK_CPU_CLK_SEL)
  8010. #define BIT_SET_CPU_CLK_SEL(x, v) \
  8011. (BIT_CLEAR_CPU_CLK_SEL(x) | BIT_CPU_CLK_SEL(v))
  8012. #endif
  8013. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8014. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8015. #define BIT_R_8051_ROMDLFW_EN BIT(11)
  8016. #endif
  8017. #if (HALMAC_8192F_SUPPORT)
  8018. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8019. #define BIT_MCUFWDL_DMA_EN BIT(11)
  8020. #endif
  8021. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8022. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8023. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8024. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8025. #define BIT_CCLK_CHG_MASK BIT(11)
  8026. #endif
  8027. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8028. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8029. #define BIT_R_8051_INIT_RDY BIT(10)
  8030. #endif
  8031. #if (HALMAC_8192F_SUPPORT)
  8032. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8033. #define BIT_MCUINI_WROMRDY BIT(10)
  8034. #endif
  8035. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8036. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8037. #define BIT_FW_INIT_RDY_V1 BIT(10)
  8038. #endif
  8039. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8040. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8041. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8042. #define BIT_EMEM__TXBUF_CHKSUM_OK BIT(10)
  8043. #endif
  8044. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8045. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8046. #define BIT_EMEM_TXBUF_CHKSUM_OK BIT(10)
  8047. #endif
  8048. #if (HALMAC_8192F_SUPPORT)
  8049. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8050. #define BIT_MCUTXA_SPD BIT(9)
  8051. #endif
  8052. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8053. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8054. HALMAC_8822C_SUPPORT)
  8055. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8056. #define BIT_EMEM_TXBUF_DW_RDY BIT(9)
  8057. #endif
  8058. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8059. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8060. #define BIT_R_8051_GAT BIT(8)
  8061. #endif
  8062. #if (HALMAC_8192F_SUPPORT)
  8063. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8064. #define BIT_MCUCLK_TEN BIT(8)
  8065. #endif
  8066. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8067. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8068. #define BIT_MCU_CLK_EN BIT(8)
  8069. #endif
  8070. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8071. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8072. HALMAC_8822C_SUPPORT)
  8073. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8074. #define BIT_EMEM_CHKSUM_OK BIT(8)
  8075. #define BIT_EMEM_DW_OK BIT(7)
  8076. #define BIT_TOGGLE BIT(7)
  8077. #define BIT_DMEM_CHKSUM_OK BIT(6)
  8078. #define BIT_ACK BIT(6)
  8079. #endif
  8080. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8081. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8082. #define BIT_RFINI_RDY BIT(5)
  8083. #endif
  8084. #if (HALMAC_8192F_SUPPORT)
  8085. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8086. #define BIT_MCUINI_WRFCRDY BIT(5)
  8087. #endif
  8088. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8089. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8090. #define BIT_RF_INIT_RDY BIT(5)
  8091. #endif
  8092. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8093. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8094. HALMAC_8822C_SUPPORT)
  8095. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8096. #define BIT_DMEM_DW_OK BIT(5)
  8097. #endif
  8098. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8099. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8100. #define BIT_BBINI_RDY BIT(4)
  8101. #endif
  8102. #if (HALMAC_8192F_SUPPORT)
  8103. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8104. #define BIT_MCUINI_WPHYRDY BIT(4)
  8105. #endif
  8106. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8107. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8108. #define BIT_BB_INIT_RDY BIT(4)
  8109. #endif
  8110. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8111. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8112. HALMAC_8822C_SUPPORT)
  8113. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8114. #define BIT_IMEM_CHKSUM_OK BIT(4)
  8115. #endif
  8116. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8117. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8118. #define BIT_MACINI_RDY BIT(3)
  8119. #endif
  8120. #if (HALMAC_8192F_SUPPORT)
  8121. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8122. #define BIT_MCUINI_WMACRDY BIT(3)
  8123. #endif
  8124. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8125. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8126. #define BIT_MAC_INIT_RDY BIT(3)
  8127. #endif
  8128. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8129. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8130. HALMAC_8822C_SUPPORT)
  8131. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8132. #define BIT_IMEM_DW_OK BIT(3)
  8133. #endif
  8134. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8135. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8136. #define BIT_FWDL_CHK_RPT BIT(2)
  8137. #endif
  8138. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8139. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8140. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8141. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8142. #define BIT_IMEM_BOOT_LOAD_CHKSUM_OK BIT(2)
  8143. #endif
  8144. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  8145. /* 2 REG_8051FW_CTRL (Offset 0x0080) */
  8146. #define BIT_MCUFWDL_RDY BIT(1)
  8147. #endif
  8148. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8149. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8150. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8151. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8152. #define BIT_IMEM_BOOT_LOAD_DW_OK BIT(1)
  8153. #endif
  8154. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8155. /* 2 REG_MCUFW_CTRL (Offset 0x0080) */
  8156. #define BIT_MCU_FWDL_RDY BIT(1)
  8157. #define BIT_MCU_FWDL_EN BIT(0)
  8158. #endif
  8159. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8160. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8161. HALMAC_8822C_SUPPORT)
  8162. /* 2 REG_SDIO_HRPWM1 (Offset 0x10250080) */
  8163. #define BIT_REQ_PS BIT(0)
  8164. #endif
  8165. #if (HALMAC_8192F_SUPPORT)
  8166. /* 2 REG_MCU_TST_CFG (Offset 0x0084) */
  8167. #define BIT_SHIFT_8051CODE_OFS 16
  8168. #define BIT_MASK_8051CODE_OFS 0xffff
  8169. #define BIT_8051CODE_OFS(x) \
  8170. (((x) & BIT_MASK_8051CODE_OFS) << BIT_SHIFT_8051CODE_OFS)
  8171. #define BITS_8051CODE_OFS (BIT_MASK_8051CODE_OFS << BIT_SHIFT_8051CODE_OFS)
  8172. #define BIT_CLEAR_8051CODE_OFS(x) ((x) & (~BITS_8051CODE_OFS))
  8173. #define BIT_GET_8051CODE_OFS(x) \
  8174. (((x) >> BIT_SHIFT_8051CODE_OFS) & BIT_MASK_8051CODE_OFS)
  8175. #define BIT_SET_8051CODE_OFS(x, v) \
  8176. (BIT_CLEAR_8051CODE_OFS(x) | BIT_8051CODE_OFS(v))
  8177. #endif
  8178. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8179. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8180. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8181. /* 2 REG_MCU_TST_CFG (Offset 0x0084) */
  8182. #define BIT_SHIFT_LBKTST 0
  8183. #define BIT_MASK_LBKTST 0xffff
  8184. #define BIT_LBKTST(x) (((x) & BIT_MASK_LBKTST) << BIT_SHIFT_LBKTST)
  8185. #define BITS_LBKTST (BIT_MASK_LBKTST << BIT_SHIFT_LBKTST)
  8186. #define BIT_CLEAR_LBKTST(x) ((x) & (~BITS_LBKTST))
  8187. #define BIT_GET_LBKTST(x) (((x) >> BIT_SHIFT_LBKTST) & BIT_MASK_LBKTST)
  8188. #define BIT_SET_LBKTST(x, v) (BIT_CLEAR_LBKTST(x) | BIT_LBKTST(v))
  8189. #endif
  8190. #if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8191. HALMAC_8822B_SUPPORT)
  8192. /* 2 REG_MCU_TST_CFG (Offset 0x0084) */
  8193. #define BIT_SHIFT_C2H_MSG 0
  8194. #define BIT_MASK_C2H_MSG 0xffff
  8195. #define BIT_C2H_MSG(x) (((x) & BIT_MASK_C2H_MSG) << BIT_SHIFT_C2H_MSG)
  8196. #define BITS_C2H_MSG (BIT_MASK_C2H_MSG << BIT_SHIFT_C2H_MSG)
  8197. #define BIT_CLEAR_C2H_MSG(x) ((x) & (~BITS_C2H_MSG))
  8198. #define BIT_GET_C2H_MSG(x) (((x) >> BIT_SHIFT_C2H_MSG) & BIT_MASK_C2H_MSG)
  8199. #define BIT_SET_C2H_MSG(x, v) (BIT_CLEAR_C2H_MSG(x) | BIT_C2H_MSG(v))
  8200. #endif
  8201. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  8202. /* 2 REG_SDIO_BUS_CTRL (Offset 0x10250085) */
  8203. #define BIT_INT_MASK_DIS BIT(4)
  8204. #endif
  8205. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8206. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8207. /* 2 REG_SDIO_BUS_CTRL (Offset 0x10250085) */
  8208. #define BIT_PAD_CLK_XHGE_EN BIT(3)
  8209. #define BIT_INTER_CLK_EN BIT(2)
  8210. #define BIT_EN_RPT_TXCRC BIT(1)
  8211. #define BIT_DIS_RXDMA_STS BIT(0)
  8212. #endif
  8213. #if (HALMAC_8812F_SUPPORT)
  8214. /* 2 REG_SDIO_HSUS_CTRL (Offset 0x10250086) */
  8215. #define BIT_SPI_PHASE BIT(5)
  8216. #endif
  8217. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8218. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8219. /* 2 REG_SDIO_HSUS_CTRL (Offset 0x10250086) */
  8220. #define BIT_INTR_CTRL BIT(4)
  8221. #define BIT_SDIO_VOLTAGE BIT(3)
  8222. #define BIT_BYPASS_INIT BIT(2)
  8223. #endif
  8224. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8225. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8226. HALMAC_8822C_SUPPORT)
  8227. /* 2 REG_SDIO_HSUS_CTRL (Offset 0x10250086) */
  8228. #define BIT_HCI_RESUME_RDY BIT(1)
  8229. #define BIT_HCI_SUS_REQ BIT(0)
  8230. #endif
  8231. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8232. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8233. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8234. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8235. /* 2 REG_HMEBOX_E0_E1 (Offset 0x0088) */
  8236. #define BIT_SHIFT_HOST_MSG_E1 16
  8237. #define BIT_MASK_HOST_MSG_E1 0xffff
  8238. #define BIT_HOST_MSG_E1(x) \
  8239. (((x) & BIT_MASK_HOST_MSG_E1) << BIT_SHIFT_HOST_MSG_E1)
  8240. #define BITS_HOST_MSG_E1 (BIT_MASK_HOST_MSG_E1 << BIT_SHIFT_HOST_MSG_E1)
  8241. #define BIT_CLEAR_HOST_MSG_E1(x) ((x) & (~BITS_HOST_MSG_E1))
  8242. #define BIT_GET_HOST_MSG_E1(x) \
  8243. (((x) >> BIT_SHIFT_HOST_MSG_E1) & BIT_MASK_HOST_MSG_E1)
  8244. #define BIT_SET_HOST_MSG_E1(x, v) \
  8245. (BIT_CLEAR_HOST_MSG_E1(x) | BIT_HOST_MSG_E1(v))
  8246. #define BIT_SHIFT_HOST_MSG_E0 0
  8247. #define BIT_MASK_HOST_MSG_E0 0xffff
  8248. #define BIT_HOST_MSG_E0(x) \
  8249. (((x) & BIT_MASK_HOST_MSG_E0) << BIT_SHIFT_HOST_MSG_E0)
  8250. #define BITS_HOST_MSG_E0 (BIT_MASK_HOST_MSG_E0 << BIT_SHIFT_HOST_MSG_E0)
  8251. #define BIT_CLEAR_HOST_MSG_E0(x) ((x) & (~BITS_HOST_MSG_E0))
  8252. #define BIT_GET_HOST_MSG_E0(x) \
  8253. (((x) >> BIT_SHIFT_HOST_MSG_E0) & BIT_MASK_HOST_MSG_E0)
  8254. #define BIT_SET_HOST_MSG_E0(x, v) \
  8255. (BIT_CLEAR_HOST_MSG_E0(x) | BIT_HOST_MSG_E0(v))
  8256. #endif
  8257. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8258. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8259. /* 2 REG_SDIO_RESPONSE_TIMER (Offset 0x10250088) */
  8260. #define BIT_SHIFT_CMDIN_2RESP_TIMER 0
  8261. #define BIT_MASK_CMDIN_2RESP_TIMER 0xffff
  8262. #define BIT_CMDIN_2RESP_TIMER(x) \
  8263. (((x) & BIT_MASK_CMDIN_2RESP_TIMER) << BIT_SHIFT_CMDIN_2RESP_TIMER)
  8264. #define BITS_CMDIN_2RESP_TIMER \
  8265. (BIT_MASK_CMDIN_2RESP_TIMER << BIT_SHIFT_CMDIN_2RESP_TIMER)
  8266. #define BIT_CLEAR_CMDIN_2RESP_TIMER(x) ((x) & (~BITS_CMDIN_2RESP_TIMER))
  8267. #define BIT_GET_CMDIN_2RESP_TIMER(x) \
  8268. (((x) >> BIT_SHIFT_CMDIN_2RESP_TIMER) & BIT_MASK_CMDIN_2RESP_TIMER)
  8269. #define BIT_SET_CMDIN_2RESP_TIMER(x, v) \
  8270. (BIT_CLEAR_CMDIN_2RESP_TIMER(x) | BIT_CMDIN_2RESP_TIMER(v))
  8271. #endif
  8272. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8273. /* 2 REG_SDIO_CMD_CRC (Offset 0x1025008A) */
  8274. #define BIT_SHIFT_SDIO_CMD_CRC 1
  8275. #define BIT_MASK_SDIO_CMD_CRC 0x7f
  8276. #define BIT_SDIO_CMD_CRC(x) \
  8277. (((x) & BIT_MASK_SDIO_CMD_CRC) << BIT_SHIFT_SDIO_CMD_CRC)
  8278. #define BITS_SDIO_CMD_CRC (BIT_MASK_SDIO_CMD_CRC << BIT_SHIFT_SDIO_CMD_CRC)
  8279. #define BIT_CLEAR_SDIO_CMD_CRC(x) ((x) & (~BITS_SDIO_CMD_CRC))
  8280. #define BIT_GET_SDIO_CMD_CRC(x) \
  8281. (((x) >> BIT_SHIFT_SDIO_CMD_CRC) & BIT_MASK_SDIO_CMD_CRC)
  8282. #define BIT_SET_SDIO_CMD_CRC(x, v) \
  8283. (BIT_CLEAR_SDIO_CMD_CRC(x) | BIT_SDIO_CMD_CRC(v))
  8284. #endif
  8285. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8286. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8287. /* 2 REG_SDIO_CMD_CRC (Offset 0x1025008A) */
  8288. #define BIT_SHIFT_SDIO_CMD_CRC_V1 0
  8289. #define BIT_MASK_SDIO_CMD_CRC_V1 0xff
  8290. #define BIT_SDIO_CMD_CRC_V1(x) \
  8291. (((x) & BIT_MASK_SDIO_CMD_CRC_V1) << BIT_SHIFT_SDIO_CMD_CRC_V1)
  8292. #define BITS_SDIO_CMD_CRC_V1 \
  8293. (BIT_MASK_SDIO_CMD_CRC_V1 << BIT_SHIFT_SDIO_CMD_CRC_V1)
  8294. #define BIT_CLEAR_SDIO_CMD_CRC_V1(x) ((x) & (~BITS_SDIO_CMD_CRC_V1))
  8295. #define BIT_GET_SDIO_CMD_CRC_V1(x) \
  8296. (((x) >> BIT_SHIFT_SDIO_CMD_CRC_V1) & BIT_MASK_SDIO_CMD_CRC_V1)
  8297. #define BIT_SET_SDIO_CMD_CRC_V1(x, v) \
  8298. (BIT_CLEAR_SDIO_CMD_CRC_V1(x) | BIT_SDIO_CMD_CRC_V1(v))
  8299. #endif
  8300. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8301. /* 2 REG_SDIO_CMD_CRC (Offset 0x1025008A) */
  8302. #define BIT_SDIO_CMD_E_BIT BIT(0)
  8303. #endif
  8304. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8305. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8306. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8307. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8308. /* 2 REG_HMEBOX_E2_E3 (Offset 0x008C) */
  8309. #define BIT_SHIFT_HOST_MSG_E3 16
  8310. #define BIT_MASK_HOST_MSG_E3 0xffff
  8311. #define BIT_HOST_MSG_E3(x) \
  8312. (((x) & BIT_MASK_HOST_MSG_E3) << BIT_SHIFT_HOST_MSG_E3)
  8313. #define BITS_HOST_MSG_E3 (BIT_MASK_HOST_MSG_E3 << BIT_SHIFT_HOST_MSG_E3)
  8314. #define BIT_CLEAR_HOST_MSG_E3(x) ((x) & (~BITS_HOST_MSG_E3))
  8315. #define BIT_GET_HOST_MSG_E3(x) \
  8316. (((x) >> BIT_SHIFT_HOST_MSG_E3) & BIT_MASK_HOST_MSG_E3)
  8317. #define BIT_SET_HOST_MSG_E3(x, v) \
  8318. (BIT_CLEAR_HOST_MSG_E3(x) | BIT_HOST_MSG_E3(v))
  8319. #define BIT_SHIFT_HOST_MSG_E2 0
  8320. #define BIT_MASK_HOST_MSG_E2 0xffff
  8321. #define BIT_HOST_MSG_E2(x) \
  8322. (((x) & BIT_MASK_HOST_MSG_E2) << BIT_SHIFT_HOST_MSG_E2)
  8323. #define BITS_HOST_MSG_E2 (BIT_MASK_HOST_MSG_E2 << BIT_SHIFT_HOST_MSG_E2)
  8324. #define BIT_CLEAR_HOST_MSG_E2(x) ((x) & (~BITS_HOST_MSG_E2))
  8325. #define BIT_GET_HOST_MSG_E2(x) \
  8326. (((x) >> BIT_SHIFT_HOST_MSG_E2) & BIT_MASK_HOST_MSG_E2)
  8327. #define BIT_SET_HOST_MSG_E2(x, v) \
  8328. (BIT_CLEAR_HOST_MSG_E2(x) | BIT_HOST_MSG_E2(v))
  8329. #endif
  8330. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8331. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8332. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8333. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8334. #define BIT_WLLPSOP_EABM BIT(31)
  8335. #endif
  8336. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8337. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8338. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8339. HALMAC_8881A_SUPPORT)
  8340. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8341. #define BIT_WLLPSOP_ACKF BIT(30)
  8342. #endif
  8343. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8344. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8345. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8346. #define BIT_TXFIFO_TH_INT BIT(30)
  8347. #endif
  8348. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8349. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8350. HALMAC_8881A_SUPPORT)
  8351. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8352. #define BIT_WLLPSOP_DLDM BIT(29)
  8353. #endif
  8354. #if (HALMAC_8192F_SUPPORT)
  8355. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8356. #define BIT_WLLPSOP_NODS BIT(29)
  8357. #endif
  8358. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8359. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8360. #define BIT_WLLPSOP_AFEP BIT(29)
  8361. #endif
  8362. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8363. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8364. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8365. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8366. #define BIT_WLLPSOP_ESWR BIT(28)
  8367. #endif
  8368. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8369. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8370. #define BIT_LPS_DIS_SW BIT(28)
  8371. #endif
  8372. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8373. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8374. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8375. HALMAC_8881A_SUPPORT)
  8376. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8377. #define BIT_WLLPSOP_PWMM BIT(27)
  8378. #define BIT_WLLPSOP_EECK BIT(26)
  8379. #endif
  8380. #if (HALMAC_8192F_SUPPORT)
  8381. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8382. #define BIT_WLLPSOP_WLPON BIT(25)
  8383. #endif
  8384. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8385. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8386. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8387. #define BIT_WLLPSOP_WLMACOFF BIT(25)
  8388. #endif
  8389. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8390. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8391. #define BIT_WLLPSOP_ELDO BIT(25)
  8392. #endif
  8393. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8394. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8395. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8396. HALMAC_8881A_SUPPORT)
  8397. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8398. #define BIT_WLLPSOP_EXTAL BIT(24)
  8399. #endif
  8400. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8401. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8402. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8403. #define BIT_WL_SYNPON_VOLTSPDN BIT(23)
  8404. #endif
  8405. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8406. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8407. #define BIT_LPS_BB_REG_EN BIT(23)
  8408. #endif
  8409. #if (HALMAC_8192F_SUPPORT)
  8410. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8411. #define BIT_LOP_SKIP BIT(22)
  8412. #endif
  8413. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8414. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8415. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8416. #define BIT_WLLPSOP_WLBBOFF BIT(22)
  8417. #endif
  8418. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8419. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8420. #define BIT_LPS_BB_PWR_EN BIT(22)
  8421. #endif
  8422. #if (HALMAC_8192F_SUPPORT)
  8423. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8424. #define BIT_LOP_MEMDS BIT(21)
  8425. #endif
  8426. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8427. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8428. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8429. #define BIT_WLLPSOP_WLMEM_DS BIT(21)
  8430. #endif
  8431. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8432. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8433. #define BIT_LPS_BB_GLB_EN BIT(21)
  8434. #endif
  8435. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  8436. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8437. #define BIT_WLLPSOP_LDO_WAIT_TIME BIT(20)
  8438. #define BIT_WLLPSOP_ANA_CLK_DIVISION_2 BIT(19)
  8439. #define BIT_AFE_BCN BIT(18)
  8440. #endif
  8441. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8442. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8443. #define BIT_SUS_DIS_SW BIT(15)
  8444. #define BIT_SUS_SKP_PAGE0_ALD BIT(14)
  8445. #define BIT_SUS_LDO_SLEEP BIT(13)
  8446. #endif
  8447. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8448. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8449. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8450. #define BIT_SHIFT_LPLDH12_VADJ_STEP_DN 12
  8451. #define BIT_MASK_LPLDH12_VADJ_STEP_DN 0xf
  8452. #define BIT_LPLDH12_VADJ_STEP_DN(x) \
  8453. (((x) & BIT_MASK_LPLDH12_VADJ_STEP_DN) \
  8454. << BIT_SHIFT_LPLDH12_VADJ_STEP_DN)
  8455. #define BITS_LPLDH12_VADJ_STEP_DN \
  8456. (BIT_MASK_LPLDH12_VADJ_STEP_DN << BIT_SHIFT_LPLDH12_VADJ_STEP_DN)
  8457. #define BIT_CLEAR_LPLDH12_VADJ_STEP_DN(x) ((x) & (~BITS_LPLDH12_VADJ_STEP_DN))
  8458. #define BIT_GET_LPLDH12_VADJ_STEP_DN(x) \
  8459. (((x) >> BIT_SHIFT_LPLDH12_VADJ_STEP_DN) & \
  8460. BIT_MASK_LPLDH12_VADJ_STEP_DN)
  8461. #define BIT_SET_LPLDH12_VADJ_STEP_DN(x, v) \
  8462. (BIT_CLEAR_LPLDH12_VADJ_STEP_DN(x) | BIT_LPLDH12_VADJ_STEP_DN(v))
  8463. #endif
  8464. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8465. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8466. #define BIT_PFM_EN_ZCD BIT(12)
  8467. #define BIT_KEEP_RFC_EN BIT(11)
  8468. #define BIT_MACON_NO_RFCISO_RELEASE BIT(10)
  8469. #define BIT_MACON_NO_AFEPORT_PWR BIT(9)
  8470. #endif
  8471. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8472. HALMAC_8822B_SUPPORT)
  8473. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8474. #define BIT_SHIFT_V15ADJ_L1_STEP_DN 8
  8475. #define BIT_MASK_V15ADJ_L1_STEP_DN 0x7
  8476. #define BIT_V15ADJ_L1_STEP_DN(x) \
  8477. (((x) & BIT_MASK_V15ADJ_L1_STEP_DN) << BIT_SHIFT_V15ADJ_L1_STEP_DN)
  8478. #define BITS_V15ADJ_L1_STEP_DN \
  8479. (BIT_MASK_V15ADJ_L1_STEP_DN << BIT_SHIFT_V15ADJ_L1_STEP_DN)
  8480. #define BIT_CLEAR_V15ADJ_L1_STEP_DN(x) ((x) & (~BITS_V15ADJ_L1_STEP_DN))
  8481. #define BIT_GET_V15ADJ_L1_STEP_DN(x) \
  8482. (((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN) & BIT_MASK_V15ADJ_L1_STEP_DN)
  8483. #define BIT_SET_V15ADJ_L1_STEP_DN(x, v) \
  8484. (BIT_CLEAR_V15ADJ_L1_STEP_DN(x) | BIT_V15ADJ_L1_STEP_DN(v))
  8485. #endif
  8486. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  8487. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8488. #define BIT_SHIFT_V15ADJ_L1_STEP_DN_V1 8
  8489. #define BIT_MASK_V15ADJ_L1_STEP_DN_V1 0xf
  8490. #define BIT_V15ADJ_L1_STEP_DN_V1(x) \
  8491. (((x) & BIT_MASK_V15ADJ_L1_STEP_DN_V1) \
  8492. << BIT_SHIFT_V15ADJ_L1_STEP_DN_V1)
  8493. #define BITS_V15ADJ_L1_STEP_DN_V1 \
  8494. (BIT_MASK_V15ADJ_L1_STEP_DN_V1 << BIT_SHIFT_V15ADJ_L1_STEP_DN_V1)
  8495. #define BIT_CLEAR_V15ADJ_L1_STEP_DN_V1(x) ((x) & (~BITS_V15ADJ_L1_STEP_DN_V1))
  8496. #define BIT_GET_V15ADJ_L1_STEP_DN_V1(x) \
  8497. (((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN_V1) & \
  8498. BIT_MASK_V15ADJ_L1_STEP_DN_V1)
  8499. #define BIT_SET_V15ADJ_L1_STEP_DN_V1(x, v) \
  8500. (BIT_CLEAR_V15ADJ_L1_STEP_DN_V1(x) | BIT_V15ADJ_L1_STEP_DN_V1(v))
  8501. #endif
  8502. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8503. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8504. #define BIT_MACON_NO_CPU_EN BIT(8)
  8505. #endif
  8506. #if (HALMAC_8192F_SUPPORT)
  8507. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8508. #define BIT_LD_B15V_EN BIT(7)
  8509. #define BIT_LPRX_BCN_EN BIT(5)
  8510. #define BIT_LBN BIT(4)
  8511. #define BIT_LXSPS_UNUSED BIT(3)
  8512. #endif
  8513. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  8514. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8515. #define BIT_FORCE_LEAVE_LPS BIT(3)
  8516. #define BIT_SW_AFE_MODE BIT(2)
  8517. #endif
  8518. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8519. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8520. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8521. #define BIT_REGU_32K_CLK_EN BIT(1)
  8522. #endif
  8523. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8524. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8525. /* 2 REG_SDIO_HSISR (Offset 0x10250090) */
  8526. #define BIT_DRV_WLAN_INT_CLR BIT(1)
  8527. #endif
  8528. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8529. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  8530. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8531. HALMAC_8881A_SUPPORT)
  8532. /* 2 REG_WLLPS_CTRL (Offset 0x0090) */
  8533. #define BIT_WL_LPS_EN BIT(0)
  8534. #endif
  8535. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8536. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  8537. /* 2 REG_SDIO_HSISR (Offset 0x10250090) */
  8538. #define BIT_DRV_WLAN_INT BIT(0)
  8539. #endif
  8540. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  8541. /* 2 REG_SDIO_HSIMR (Offset 0x10250091) */
  8542. #define BIT_HISR_MASK BIT(0)
  8543. #endif
  8544. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8545. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8546. #define BIT_BB_DBG_SEL_AFE_SDM_V3 BIT(31)
  8547. #endif
  8548. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8549. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8550. #define BIT_BB_DBG_SEL_AFE_SDM_BIT0 BIT(31)
  8551. #endif
  8552. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  8553. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8554. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8555. #define BIT_ORDER_SDM BIT(30)
  8556. #define BIT_RFE_SEL_SDM BIT(29)
  8557. #define BIT_SHIFT_REF_SEL 25
  8558. #define BIT_MASK_REF_SEL 0xf
  8559. #define BIT_REF_SEL(x) (((x) & BIT_MASK_REF_SEL) << BIT_SHIFT_REF_SEL)
  8560. #define BITS_REF_SEL (BIT_MASK_REF_SEL << BIT_SHIFT_REF_SEL)
  8561. #define BIT_CLEAR_REF_SEL(x) ((x) & (~BITS_REF_SEL))
  8562. #define BIT_GET_REF_SEL(x) (((x) >> BIT_SHIFT_REF_SEL) & BIT_MASK_REF_SEL)
  8563. #define BIT_SET_REF_SEL(x, v) (BIT_CLEAR_REF_SEL(x) | BIT_REF_SEL(v))
  8564. #endif
  8565. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8566. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8567. #define BIT_SHIFT_F0F_SDM_V2 12
  8568. #define BIT_MASK_F0F_SDM_V2 0x1fff
  8569. #define BIT_F0F_SDM_V2(x) (((x) & BIT_MASK_F0F_SDM_V2) << BIT_SHIFT_F0F_SDM_V2)
  8570. #define BITS_F0F_SDM_V2 (BIT_MASK_F0F_SDM_V2 << BIT_SHIFT_F0F_SDM_V2)
  8571. #define BIT_CLEAR_F0F_SDM_V2(x) ((x) & (~BITS_F0F_SDM_V2))
  8572. #define BIT_GET_F0F_SDM_V2(x) \
  8573. (((x) >> BIT_SHIFT_F0F_SDM_V2) & BIT_MASK_F0F_SDM_V2)
  8574. #define BIT_SET_F0F_SDM_V2(x, v) (BIT_CLEAR_F0F_SDM_V2(x) | BIT_F0F_SDM_V2(v))
  8575. #endif
  8576. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8577. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8578. #define BIT_SHIFT_F0F_SDM 12
  8579. #define BIT_MASK_F0F_SDM 0x1fff
  8580. #define BIT_F0F_SDM(x) (((x) & BIT_MASK_F0F_SDM) << BIT_SHIFT_F0F_SDM)
  8581. #define BITS_F0F_SDM (BIT_MASK_F0F_SDM << BIT_SHIFT_F0F_SDM)
  8582. #define BIT_CLEAR_F0F_SDM(x) ((x) & (~BITS_F0F_SDM))
  8583. #define BIT_GET_F0F_SDM(x) (((x) >> BIT_SHIFT_F0F_SDM) & BIT_MASK_F0F_SDM)
  8584. #define BIT_SET_F0F_SDM(x, v) (BIT_CLEAR_F0F_SDM(x) | BIT_F0F_SDM(v))
  8585. #endif
  8586. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8587. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8588. #define BIT_SHIFT_F0N_SDM_V2 9
  8589. #define BIT_MASK_F0N_SDM_V2 0x7
  8590. #define BIT_F0N_SDM_V2(x) (((x) & BIT_MASK_F0N_SDM_V2) << BIT_SHIFT_F0N_SDM_V2)
  8591. #define BITS_F0N_SDM_V2 (BIT_MASK_F0N_SDM_V2 << BIT_SHIFT_F0N_SDM_V2)
  8592. #define BIT_CLEAR_F0N_SDM_V2(x) ((x) & (~BITS_F0N_SDM_V2))
  8593. #define BIT_GET_F0N_SDM_V2(x) \
  8594. (((x) >> BIT_SHIFT_F0N_SDM_V2) & BIT_MASK_F0N_SDM_V2)
  8595. #define BIT_SET_F0N_SDM_V2(x, v) (BIT_CLEAR_F0N_SDM_V2(x) | BIT_F0N_SDM_V2(v))
  8596. #endif
  8597. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8598. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8599. #define BIT_SHIFT_F0N_SDM 9
  8600. #define BIT_MASK_F0N_SDM 0x7
  8601. #define BIT_F0N_SDM(x) (((x) & BIT_MASK_F0N_SDM) << BIT_SHIFT_F0N_SDM)
  8602. #define BITS_F0N_SDM (BIT_MASK_F0N_SDM << BIT_SHIFT_F0N_SDM)
  8603. #define BIT_CLEAR_F0N_SDM(x) ((x) & (~BITS_F0N_SDM))
  8604. #define BIT_GET_F0N_SDM(x) (((x) >> BIT_SHIFT_F0N_SDM) & BIT_MASK_F0N_SDM)
  8605. #define BIT_SET_F0N_SDM(x, v) (BIT_CLEAR_F0N_SDM(x) | BIT_F0N_SDM(v))
  8606. #endif
  8607. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8608. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8609. #define BIT_SHIFT_DIVN_SDM_V2 3
  8610. #define BIT_MASK_DIVN_SDM_V2 0x3f
  8611. #define BIT_DIVN_SDM_V2(x) \
  8612. (((x) & BIT_MASK_DIVN_SDM_V2) << BIT_SHIFT_DIVN_SDM_V2)
  8613. #define BITS_DIVN_SDM_V2 (BIT_MASK_DIVN_SDM_V2 << BIT_SHIFT_DIVN_SDM_V2)
  8614. #define BIT_CLEAR_DIVN_SDM_V2(x) ((x) & (~BITS_DIVN_SDM_V2))
  8615. #define BIT_GET_DIVN_SDM_V2(x) \
  8616. (((x) >> BIT_SHIFT_DIVN_SDM_V2) & BIT_MASK_DIVN_SDM_V2)
  8617. #define BIT_SET_DIVN_SDM_V2(x, v) \
  8618. (BIT_CLEAR_DIVN_SDM_V2(x) | BIT_DIVN_SDM_V2(v))
  8619. #endif
  8620. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8621. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8622. #define BIT_SHIFT_DIVN_SDM 3
  8623. #define BIT_MASK_DIVN_SDM 0x3f
  8624. #define BIT_DIVN_SDM(x) (((x) & BIT_MASK_DIVN_SDM) << BIT_SHIFT_DIVN_SDM)
  8625. #define BITS_DIVN_SDM (BIT_MASK_DIVN_SDM << BIT_SHIFT_DIVN_SDM)
  8626. #define BIT_CLEAR_DIVN_SDM(x) ((x) & (~BITS_DIVN_SDM))
  8627. #define BIT_GET_DIVN_SDM(x) (((x) >> BIT_SHIFT_DIVN_SDM) & BIT_MASK_DIVN_SDM)
  8628. #define BIT_SET_DIVN_SDM(x, v) (BIT_CLEAR_DIVN_SDM(x) | BIT_DIVN_SDM(v))
  8629. #endif
  8630. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8631. /* 2 REG_AFE_CTRL5 (Offset 0x0094) */
  8632. #define BIT_SHIFT_DITHER_SDM_V2 0
  8633. #define BIT_MASK_DITHER_SDM_V2 0x7
  8634. #define BIT_DITHER_SDM_V2(x) \
  8635. (((x) & BIT_MASK_DITHER_SDM_V2) << BIT_SHIFT_DITHER_SDM_V2)
  8636. #define BITS_DITHER_SDM_V2 (BIT_MASK_DITHER_SDM_V2 << BIT_SHIFT_DITHER_SDM_V2)
  8637. #define BIT_CLEAR_DITHER_SDM_V2(x) ((x) & (~BITS_DITHER_SDM_V2))
  8638. #define BIT_GET_DITHER_SDM_V2(x) \
  8639. (((x) >> BIT_SHIFT_DITHER_SDM_V2) & BIT_MASK_DITHER_SDM_V2)
  8640. #define BIT_SET_DITHER_SDM_V2(x, v) \
  8641. (BIT_CLEAR_DITHER_SDM_V2(x) | BIT_DITHER_SDM_V2(v))
  8642. #endif
  8643. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8644. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8645. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8646. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8647. /* 2 REG_GPIO_DEBOUNCE_CTRL (Offset 0x0098) */
  8648. #define BIT_WLGP_DBC1EN BIT(15)
  8649. #define BIT_SHIFT_WLGP_DBC1 8
  8650. #define BIT_MASK_WLGP_DBC1 0xf
  8651. #define BIT_WLGP_DBC1(x) (((x) & BIT_MASK_WLGP_DBC1) << BIT_SHIFT_WLGP_DBC1)
  8652. #define BITS_WLGP_DBC1 (BIT_MASK_WLGP_DBC1 << BIT_SHIFT_WLGP_DBC1)
  8653. #define BIT_CLEAR_WLGP_DBC1(x) ((x) & (~BITS_WLGP_DBC1))
  8654. #define BIT_GET_WLGP_DBC1(x) (((x) >> BIT_SHIFT_WLGP_DBC1) & BIT_MASK_WLGP_DBC1)
  8655. #define BIT_SET_WLGP_DBC1(x, v) (BIT_CLEAR_WLGP_DBC1(x) | BIT_WLGP_DBC1(v))
  8656. #define BIT_WLGP_DBC0EN BIT(7)
  8657. #define BIT_SHIFT_WLGP_DBC0 0
  8658. #define BIT_MASK_WLGP_DBC0 0xf
  8659. #define BIT_WLGP_DBC0(x) (((x) & BIT_MASK_WLGP_DBC0) << BIT_SHIFT_WLGP_DBC0)
  8660. #define BITS_WLGP_DBC0 (BIT_MASK_WLGP_DBC0 << BIT_SHIFT_WLGP_DBC0)
  8661. #define BIT_CLEAR_WLGP_DBC0(x) ((x) & (~BITS_WLGP_DBC0))
  8662. #define BIT_GET_WLGP_DBC0(x) (((x) >> BIT_SHIFT_WLGP_DBC0) & BIT_MASK_WLGP_DBC0)
  8663. #define BIT_SET_WLGP_DBC0(x, v) (BIT_CLEAR_WLGP_DBC0(x) | BIT_WLGP_DBC0(v))
  8664. #endif
  8665. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  8666. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  8667. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8668. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8669. /* 2 REG_RPWM2 (Offset 0x009C) */
  8670. #define BIT_SHIFT_RPWM2 16
  8671. #define BIT_MASK_RPWM2 0xffff
  8672. #define BIT_RPWM2(x) (((x) & BIT_MASK_RPWM2) << BIT_SHIFT_RPWM2)
  8673. #define BITS_RPWM2 (BIT_MASK_RPWM2 << BIT_SHIFT_RPWM2)
  8674. #define BIT_CLEAR_RPWM2(x) ((x) & (~BITS_RPWM2))
  8675. #define BIT_GET_RPWM2(x) (((x) >> BIT_SHIFT_RPWM2) & BIT_MASK_RPWM2)
  8676. #define BIT_SET_RPWM2(x, v) (BIT_CLEAR_RPWM2(x) | BIT_RPWM2(v))
  8677. #endif
  8678. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8679. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8680. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8681. HALMAC_8881A_SUPPORT)
  8682. /* 2 REG_SYSON_FSM_MON (Offset 0x00A0) */
  8683. #define BIT_SHIFT_FSM_MON_SEL 24
  8684. #define BIT_MASK_FSM_MON_SEL 0x7
  8685. #define BIT_FSM_MON_SEL(x) \
  8686. (((x) & BIT_MASK_FSM_MON_SEL) << BIT_SHIFT_FSM_MON_SEL)
  8687. #define BITS_FSM_MON_SEL (BIT_MASK_FSM_MON_SEL << BIT_SHIFT_FSM_MON_SEL)
  8688. #define BIT_CLEAR_FSM_MON_SEL(x) ((x) & (~BITS_FSM_MON_SEL))
  8689. #define BIT_GET_FSM_MON_SEL(x) \
  8690. (((x) >> BIT_SHIFT_FSM_MON_SEL) & BIT_MASK_FSM_MON_SEL)
  8691. #define BIT_SET_FSM_MON_SEL(x, v) \
  8692. (BIT_CLEAR_FSM_MON_SEL(x) | BIT_FSM_MON_SEL(v))
  8693. #define BIT_DOP_ELDO BIT(23)
  8694. #define BIT_FSM_MON_UPD BIT(15)
  8695. #define BIT_SHIFT_FSM_PAR 0
  8696. #define BIT_MASK_FSM_PAR 0x7fff
  8697. #define BIT_FSM_PAR(x) (((x) & BIT_MASK_FSM_PAR) << BIT_SHIFT_FSM_PAR)
  8698. #define BITS_FSM_PAR (BIT_MASK_FSM_PAR << BIT_SHIFT_FSM_PAR)
  8699. #define BIT_CLEAR_FSM_PAR(x) ((x) & (~BITS_FSM_PAR))
  8700. #define BIT_GET_FSM_PAR(x) (((x) >> BIT_SHIFT_FSM_PAR) & BIT_MASK_FSM_PAR)
  8701. #define BIT_SET_FSM_PAR(x, v) (BIT_CLEAR_FSM_PAR(x) | BIT_FSM_PAR(v))
  8702. #endif
  8703. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8704. /* 2 REG_AFE_CTRL6 (Offset 0x00A4) */
  8705. #define BIT_SHIFT_TSFT_SEL_V1 0
  8706. #define BIT_MASK_TSFT_SEL_V1 0x7
  8707. #define BIT_TSFT_SEL_V1(x) \
  8708. (((x) & BIT_MASK_TSFT_SEL_V1) << BIT_SHIFT_TSFT_SEL_V1)
  8709. #define BITS_TSFT_SEL_V1 (BIT_MASK_TSFT_SEL_V1 << BIT_SHIFT_TSFT_SEL_V1)
  8710. #define BIT_CLEAR_TSFT_SEL_V1(x) ((x) & (~BITS_TSFT_SEL_V1))
  8711. #define BIT_GET_TSFT_SEL_V1(x) \
  8712. (((x) >> BIT_SHIFT_TSFT_SEL_V1) & BIT_MASK_TSFT_SEL_V1)
  8713. #define BIT_SET_TSFT_SEL_V1(x, v) \
  8714. (BIT_CLEAR_TSFT_SEL_V1(x) | BIT_TSFT_SEL_V1(v))
  8715. #endif
  8716. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8717. /* 2 REG_AFE_CTRL6 (Offset 0x00A4) */
  8718. #define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1 0
  8719. #define BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1 0x7
  8720. #define BIT_BB_DBG_SEL_AFE_SDM_BIT3_1(x) \
  8721. (((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1) \
  8722. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1)
  8723. #define BITS_BB_DBG_SEL_AFE_SDM_BIT3_1 \
  8724. (BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1 \
  8725. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1)
  8726. #define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1(x) \
  8727. ((x) & (~BITS_BB_DBG_SEL_AFE_SDM_BIT3_1))
  8728. #define BIT_GET_BB_DBG_SEL_AFE_SDM_BIT3_1(x) \
  8729. (((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1) & \
  8730. BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1)
  8731. #define BIT_SET_BB_DBG_SEL_AFE_SDM_BIT3_1(x, v) \
  8732. (BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1(x) | \
  8733. BIT_BB_DBG_SEL_AFE_SDM_BIT3_1(v))
  8734. #endif
  8735. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8736. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8737. HALMAC_8822C_SUPPORT)
  8738. /* 2 REG_PMC_DBG_CTRL1 (Offset 0x00A8) */
  8739. #define BIT_BT_INT_EN BIT(31)
  8740. #define BIT_SHIFT_RD_WR_WIFI_BT_INFO 16
  8741. #define BIT_MASK_RD_WR_WIFI_BT_INFO 0x7fff
  8742. #define BIT_RD_WR_WIFI_BT_INFO(x) \
  8743. (((x) & BIT_MASK_RD_WR_WIFI_BT_INFO) << BIT_SHIFT_RD_WR_WIFI_BT_INFO)
  8744. #define BITS_RD_WR_WIFI_BT_INFO \
  8745. (BIT_MASK_RD_WR_WIFI_BT_INFO << BIT_SHIFT_RD_WR_WIFI_BT_INFO)
  8746. #define BIT_CLEAR_RD_WR_WIFI_BT_INFO(x) ((x) & (~BITS_RD_WR_WIFI_BT_INFO))
  8747. #define BIT_GET_RD_WR_WIFI_BT_INFO(x) \
  8748. (((x) >> BIT_SHIFT_RD_WR_WIFI_BT_INFO) & BIT_MASK_RD_WR_WIFI_BT_INFO)
  8749. #define BIT_SET_RD_WR_WIFI_BT_INFO(x, v) \
  8750. (BIT_CLEAR_RD_WR_WIFI_BT_INFO(x) | BIT_RD_WR_WIFI_BT_INFO(v))
  8751. #endif
  8752. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  8753. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8754. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8755. /* 2 REG_PMC_DBG_CTRL1 (Offset 0x00A8) */
  8756. #define BIT_PMC_WR_OVF BIT(8)
  8757. #define BIT_SHIFT_WLPMC_ERRINT 0
  8758. #define BIT_MASK_WLPMC_ERRINT 0xff
  8759. #define BIT_WLPMC_ERRINT(x) \
  8760. (((x) & BIT_MASK_WLPMC_ERRINT) << BIT_SHIFT_WLPMC_ERRINT)
  8761. #define BITS_WLPMC_ERRINT (BIT_MASK_WLPMC_ERRINT << BIT_SHIFT_WLPMC_ERRINT)
  8762. #define BIT_CLEAR_WLPMC_ERRINT(x) ((x) & (~BITS_WLPMC_ERRINT))
  8763. #define BIT_GET_WLPMC_ERRINT(x) \
  8764. (((x) >> BIT_SHIFT_WLPMC_ERRINT) & BIT_MASK_WLPMC_ERRINT)
  8765. #define BIT_SET_WLPMC_ERRINT(x, v) \
  8766. (BIT_CLEAR_WLPMC_ERRINT(x) | BIT_WLPMC_ERRINT(v))
  8767. #endif
  8768. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  8769. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8770. /* 2 REG_AFE_CTRL7 (Offset 0x00AC) */
  8771. #define BIT_SHIFT_SEL_V 30
  8772. #define BIT_MASK_SEL_V 0x3
  8773. #define BIT_SEL_V(x) (((x) & BIT_MASK_SEL_V) << BIT_SHIFT_SEL_V)
  8774. #define BITS_SEL_V (BIT_MASK_SEL_V << BIT_SHIFT_SEL_V)
  8775. #define BIT_CLEAR_SEL_V(x) ((x) & (~BITS_SEL_V))
  8776. #define BIT_GET_SEL_V(x) (((x) >> BIT_SHIFT_SEL_V) & BIT_MASK_SEL_V)
  8777. #define BIT_SET_SEL_V(x, v) (BIT_CLEAR_SEL_V(x) | BIT_SEL_V(v))
  8778. #define BIT_SEL_LDO_PC BIT(29)
  8779. #endif
  8780. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8781. /* 2 REG_AFE_CTRL7 (Offset 0x00AC) */
  8782. #define BIT_SHIFT_CK_MON_SEL 26
  8783. #define BIT_MASK_CK_MON_SEL 0x7
  8784. #define BIT_CK_MON_SEL(x) (((x) & BIT_MASK_CK_MON_SEL) << BIT_SHIFT_CK_MON_SEL)
  8785. #define BITS_CK_MON_SEL (BIT_MASK_CK_MON_SEL << BIT_SHIFT_CK_MON_SEL)
  8786. #define BIT_CLEAR_CK_MON_SEL(x) ((x) & (~BITS_CK_MON_SEL))
  8787. #define BIT_GET_CK_MON_SEL(x) \
  8788. (((x) >> BIT_SHIFT_CK_MON_SEL) & BIT_MASK_CK_MON_SEL)
  8789. #define BIT_SET_CK_MON_SEL(x, v) (BIT_CLEAR_CK_MON_SEL(x) | BIT_CK_MON_SEL(v))
  8790. #endif
  8791. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8792. /* 2 REG_AFE_CTRL7 (Offset 0x00AC) */
  8793. #define BIT_SHIFT_CK_MON_SEL_V2 26
  8794. #define BIT_MASK_CK_MON_SEL_V2 0x7
  8795. #define BIT_CK_MON_SEL_V2(x) \
  8796. (((x) & BIT_MASK_CK_MON_SEL_V2) << BIT_SHIFT_CK_MON_SEL_V2)
  8797. #define BITS_CK_MON_SEL_V2 (BIT_MASK_CK_MON_SEL_V2 << BIT_SHIFT_CK_MON_SEL_V2)
  8798. #define BIT_CLEAR_CK_MON_SEL_V2(x) ((x) & (~BITS_CK_MON_SEL_V2))
  8799. #define BIT_GET_CK_MON_SEL_V2(x) \
  8800. (((x) >> BIT_SHIFT_CK_MON_SEL_V2) & BIT_MASK_CK_MON_SEL_V2)
  8801. #define BIT_SET_CK_MON_SEL_V2(x, v) \
  8802. (BIT_CLEAR_CK_MON_SEL_V2(x) | BIT_CK_MON_SEL_V2(v))
  8803. #endif
  8804. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  8805. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  8806. /* 2 REG_AFE_CTRL7 (Offset 0x00AC) */
  8807. #define BIT_CK_MON_EN BIT(25)
  8808. #define BIT_FREF_EDGE BIT(24)
  8809. #define BIT_CK320M_EN BIT(23)
  8810. #define BIT_CK_5M_EN BIT(22)
  8811. #define BIT_TESTEN BIT(21)
  8812. #endif
  8813. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  8814. /* 2 REG_AFE_CTRL7 (Offset 0x00AC) */
  8815. #define BIT_LD_B12V_EN_V1 BIT(7)
  8816. #endif
  8817. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8818. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8819. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8820. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8821. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8822. #define BIT_TIMEOUT_INTERRUPT2_MASK BIT(31)
  8823. #endif
  8824. #if (HALMAC_8814B_SUPPORT)
  8825. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8826. #define BIT_PSTIMER_2_MSK BIT(31)
  8827. #endif
  8828. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8829. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8830. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8831. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8832. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8833. #define BIT_TIMEOUT_INTERRUTP1_MASK BIT(30)
  8834. #endif
  8835. #if (HALMAC_8814B_SUPPORT)
  8836. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8837. #define BIT_PSTIMER_1_MSK BIT(30)
  8838. #endif
  8839. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8840. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8841. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8842. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8843. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8844. #define BIT_PSTIMEOUT_MSK BIT(29)
  8845. #endif
  8846. #if (HALMAC_8814B_SUPPORT)
  8847. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8848. #define BIT_PSTIMER_0_MSK BIT(29)
  8849. #endif
  8850. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8851. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8852. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8853. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8854. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8855. #define BIT_GTINT4_MSK BIT(28)
  8856. #define BIT_GTINT4 BIT(28)
  8857. #define BIT_GTINT3_MSK BIT(27)
  8858. #define BIT_GTINT3 BIT(27)
  8859. #define BIT_TXBCN0ERR_MSK BIT(26)
  8860. #define BIT_TXBCN0ERR BIT(26)
  8861. #define BIT_TXBCN0OK_MSK BIT(25)
  8862. #define BIT_TXBCN0OK BIT(25)
  8863. #define BIT_TSF_BIT32_TOGGLE_MSK BIT(24)
  8864. #define BIT_TSF_BIT32_TOGGLE BIT(24)
  8865. #endif
  8866. #if (HALMAC_8814B_SUPPORT)
  8867. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8868. #define BIT_TXDMA_START_INT_MSK BIT(23)
  8869. #define BIT_TXDMA_STOP_INT_MSK BIT(22)
  8870. #define BIT_HISR7_IND_MSK BIT(21)
  8871. #endif
  8872. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8873. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8874. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8875. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8876. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8877. #define BIT_BCNDMAINT0_MSK BIT(20)
  8878. #define BIT_BCNDMAINT0 BIT(20)
  8879. #endif
  8880. #if (HALMAC_8814B_SUPPORT)
  8881. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8882. #define BIT_HISR6_IND_MSK BIT(19)
  8883. #endif
  8884. #if (HALMAC_8198F_SUPPORT)
  8885. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8886. #define BIT_HISR5_MSK BIT(18)
  8887. #endif
  8888. #if (HALMAC_8814B_SUPPORT)
  8889. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8890. #define BIT_HISR5_IND_MSK BIT(18)
  8891. #endif
  8892. #if (HALMAC_8198F_SUPPORT)
  8893. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8894. #define BIT_HISR4_MSK BIT(17)
  8895. #endif
  8896. #if (HALMAC_8814B_SUPPORT)
  8897. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8898. #define BIT_HISR4_IND_MSK BIT(17)
  8899. #endif
  8900. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8901. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8902. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8903. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8904. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8905. #define BIT_BCNDERR0_MSK BIT(16)
  8906. #define BIT_BCNDERR0 BIT(16)
  8907. #define BIT_HSISR_IND_ON_INT_MSK BIT(15)
  8908. #define BIT_HSISR_IND_ON_INT BIT(15)
  8909. #endif
  8910. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  8911. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8912. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8913. #define BIT_BCNDMAINT_E_MSK BIT(14)
  8914. #endif
  8915. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8916. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  8917. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8918. #define BIT_HISR3_IND_INT_MSK BIT(14)
  8919. #endif
  8920. #if (HALMAC_8814B_SUPPORT)
  8921. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8922. #define BIT_HISR3_IND_MSK BIT(14)
  8923. #endif
  8924. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8925. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  8926. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8927. #define BIT_HISR2_IND_INT_MSK BIT(13)
  8928. #endif
  8929. #if (HALMAC_8814B_SUPPORT)
  8930. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8931. #define BIT_HISR2_IND_MSK BIT(13)
  8932. #endif
  8933. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8934. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  8935. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8936. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8937. #define BIT_CTWEND_MSK BIT(12)
  8938. #endif
  8939. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8940. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  8941. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  8942. HALMAC_8881A_SUPPORT)
  8943. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8944. #define BIT_HISR1_IND_MSK BIT(11)
  8945. #endif
  8946. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  8947. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8948. #define BIT_HISR1_IND_INT_MSK BIT(11)
  8949. #endif
  8950. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8951. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8952. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  8953. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8954. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8955. #define BIT_C2HCMD_MSK BIT(10)
  8956. #define BIT_C2HCMD BIT(10)
  8957. #define BIT_CPWM2_MSK BIT(9)
  8958. #define BIT_CPWM2 BIT(9)
  8959. #define BIT_CPWM_MSK BIT(8)
  8960. #define BIT_CPWM BIT(8)
  8961. #endif
  8962. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8963. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8964. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8965. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8966. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8967. #define BIT_HIGHDOK_MSK BIT(7)
  8968. #endif
  8969. #if (HALMAC_8814B_SUPPORT)
  8970. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8971. #define BIT_TXDMAOK_CHANNEL15_MSK BIT(7)
  8972. #endif
  8973. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8974. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8975. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8976. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8977. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8978. #define BIT_MGTDOK_MSK BIT(6)
  8979. #endif
  8980. #if (HALMAC_8814B_SUPPORT)
  8981. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8982. #define BIT_TXDMAOK_CHANNEL14_MSK BIT(6)
  8983. #endif
  8984. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8985. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8986. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8987. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8988. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8989. #define BIT_BKDOK_MSK BIT(5)
  8990. #endif
  8991. #if (HALMAC_8814B_SUPPORT)
  8992. /* 2 REG_HIMR0 (Offset 0x00B0) */
  8993. #define BIT_TXDMAOK_CHANNEL3_MSK BIT(5)
  8994. #endif
  8995. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  8996. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  8997. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  8998. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  8999. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9000. #define BIT_BEDOK_MSK BIT(4)
  9001. #endif
  9002. #if (HALMAC_8814B_SUPPORT)
  9003. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9004. #define BIT_TXDMAOK_CHANNEL2_MSK BIT(4)
  9005. #endif
  9006. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9007. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9008. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9009. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9010. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9011. #define BIT_VIDOK_MSK BIT(3)
  9012. #endif
  9013. #if (HALMAC_8814B_SUPPORT)
  9014. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9015. #define BIT_TXDMAOK_CHANNEL1_MSK BIT(3)
  9016. #endif
  9017. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9018. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9019. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9020. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9021. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9022. #define BIT_VODOK_MSK BIT(2)
  9023. #endif
  9024. #if (HALMAC_8814B_SUPPORT)
  9025. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9026. #define BIT_TXDMAOK_CHANNEL0_MSK BIT(2)
  9027. #endif
  9028. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9029. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9030. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9031. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9032. /* 2 REG_HIMR0 (Offset 0x00B0) */
  9033. #define BIT_RDU_MSK BIT(1)
  9034. #define BIT_RDU BIT(1)
  9035. #define BIT_RXOK_MSK BIT(0)
  9036. #define BIT_RXOK BIT(0)
  9037. #endif
  9038. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9039. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9040. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9041. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9042. /* 2 REG_HISR0 (Offset 0x00B4) */
  9043. #define BIT_PSTIMEOUT2 BIT(31)
  9044. #define BIT_PSTIMEOUT1 BIT(30)
  9045. #define BIT_PSTIMEOUT BIT(29)
  9046. #endif
  9047. #if (HALMAC_8198F_SUPPORT)
  9048. /* 2 REG_HISR0 (Offset 0x00B4) */
  9049. #define BIT_HISR5_IND_INT BIT(18)
  9050. #define BIT_HISR4_IND_INT BIT(17)
  9051. #endif
  9052. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9053. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9054. /* 2 REG_HISR0 (Offset 0x00B4) */
  9055. #define BIT_BCNDMAINT_E BIT(14)
  9056. #endif
  9057. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9058. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  9059. /* 2 REG_HISR0 (Offset 0x00B4) */
  9060. #define BIT_HISR3_IND_INT BIT(14)
  9061. #define BIT_HISR2_IND_INT BIT(13)
  9062. #endif
  9063. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9064. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9065. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9066. /* 2 REG_HISR0 (Offset 0x00B4) */
  9067. #define BIT_CTWEND BIT(12)
  9068. #endif
  9069. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9070. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9071. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9072. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9073. /* 2 REG_HISR0 (Offset 0x00B4) */
  9074. #define BIT_HISR1_IND_INT BIT(11)
  9075. #define BIT_HIGHDOK BIT(7)
  9076. #define BIT_MGTDOK BIT(6)
  9077. #define BIT_BKDOK BIT(5)
  9078. #define BIT_BEDOK BIT(4)
  9079. #define BIT_VIDOK BIT(3)
  9080. #define BIT_VODOK BIT(2)
  9081. #endif
  9082. #if (HALMAC_8198F_SUPPORT)
  9083. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9084. #define BIT_PRETXERR_HANDLE_MSK BIT(31)
  9085. #endif
  9086. #if (HALMAC_8814B_SUPPORT)
  9087. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9088. #define BIT_PRE_TX_ERR_INT_MSK BIT(31)
  9089. #endif
  9090. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9091. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9092. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9093. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9094. #define BIT_BTON_STS_UPDATE_INT BIT(29)
  9095. #endif
  9096. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  9097. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9098. #define BIT_BTON_STS_UPDATE_MSK BIT(29)
  9099. #endif
  9100. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9101. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9102. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9103. #define BIT_BTON_STS_UPDATE_MASK BIT(29)
  9104. #endif
  9105. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9106. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9107. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9108. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9109. #define BIT_MCU_ERR_MASK BIT(28)
  9110. #endif
  9111. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9112. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9113. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9114. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9115. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9116. #define BIT_BCNDMAINT7 BIT(27)
  9117. #endif
  9118. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9119. HALMAC_8881A_SUPPORT)
  9120. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9121. #define BIT_BCNDMAINT7_MSK BIT(27)
  9122. #endif
  9123. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9124. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9125. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9126. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9127. #define BIT_BCNDMAINT7__MSK BIT(27)
  9128. #endif
  9129. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9130. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9131. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9132. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9133. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9134. #define BIT_BCNDMAINT6 BIT(26)
  9135. #endif
  9136. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9137. HALMAC_8881A_SUPPORT)
  9138. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9139. #define BIT_BCNDMAINT6_MSK BIT(26)
  9140. #endif
  9141. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9142. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9143. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9144. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9145. #define BIT_BCNDMAINT6__MSK BIT(26)
  9146. #endif
  9147. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9148. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9149. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9150. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9151. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9152. #define BIT_BCNDMAINT5 BIT(25)
  9153. #endif
  9154. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9155. HALMAC_8881A_SUPPORT)
  9156. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9157. #define BIT_BCNDMAINT5_MSK BIT(25)
  9158. #endif
  9159. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9160. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9161. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9162. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9163. #define BIT_BCNDMAINT5__MSK BIT(25)
  9164. #endif
  9165. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9166. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9167. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9168. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9169. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9170. #define BIT_BCNDMAINT4 BIT(24)
  9171. #endif
  9172. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9173. HALMAC_8881A_SUPPORT)
  9174. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9175. #define BIT_BCNDMAINT4_MSK BIT(24)
  9176. #endif
  9177. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9178. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9179. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9180. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9181. #define BIT_BCNDMAINT4__MSK BIT(24)
  9182. #endif
  9183. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9184. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9185. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9186. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9187. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9188. #define BIT_BCNDMAINT3_MSK BIT(23)
  9189. #define BIT_BCNDMAINT3 BIT(23)
  9190. #define BIT_BCNDMAINT2_MSK BIT(22)
  9191. #define BIT_BCNDMAINT2 BIT(22)
  9192. #define BIT_BCNDMAINT1_MSK BIT(21)
  9193. #define BIT_BCNDMAINT1 BIT(21)
  9194. #define BIT_BCNDERR7_MSK BIT(20)
  9195. #define BIT_BCNDERR7 BIT(20)
  9196. #define BIT_BCNDERR6_MSK BIT(19)
  9197. #define BIT_BCNDERR6 BIT(19)
  9198. #define BIT_BCNDERR5_MSK BIT(18)
  9199. #define BIT_BCNDERR5 BIT(18)
  9200. #define BIT_BCNDERR4_MSK BIT(17)
  9201. #define BIT_BCNDERR4 BIT(17)
  9202. #define BIT_BCNDERR3_MSK BIT(16)
  9203. #define BIT_BCNDERR3 BIT(16)
  9204. #define BIT_BCNDERR2_MSK BIT(15)
  9205. #define BIT_BCNDERR2 BIT(15)
  9206. #define BIT_BCNDERR1_MSK BIT(14)
  9207. #define BIT_BCNDERR1 BIT(14)
  9208. #endif
  9209. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9210. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9211. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9212. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9213. #define BIT_ATIMEND_E_MSK BIT(13)
  9214. #endif
  9215. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9216. HALMAC_8881A_SUPPORT)
  9217. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9218. #define BIT_ATIMEND_MSK BIT(12)
  9219. #endif
  9220. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9221. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9222. HALMAC_8822C_SUPPORT)
  9223. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9224. #define BIT_ATIMEND__MSK BIT(12)
  9225. #endif
  9226. #if (HALMAC_8822B_SUPPORT)
  9227. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9228. #define BIT_ATIMEND_E_V1_MSK BIT(12)
  9229. #endif
  9230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9231. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9232. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9233. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9234. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9235. #define BIT_TXERR_MSK BIT(11)
  9236. #define BIT_TXERR_INT BIT(11)
  9237. #define BIT_RXERR_MSK BIT(10)
  9238. #define BIT_RXERR_INT BIT(10)
  9239. #define BIT_TXFOVW_MSK BIT(9)
  9240. #define BIT_TXFOVW BIT(9)
  9241. #define BIT_FOVW_MSK BIT(8)
  9242. #define BIT_FOVW BIT(8)
  9243. #endif
  9244. #if (HALMAC_8814B_SUPPORT)
  9245. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9246. #define BIT_CPU_MGQ_EARLY_INT_MSK BIT(6)
  9247. #endif
  9248. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9249. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9250. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9251. #define BIT_CPU_MGQ_TXDONE_MSK BIT(5)
  9252. #define BIT_CPU_MGQ_TXDONE BIT(5)
  9253. #endif
  9254. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9255. HALMAC_8822C_SUPPORT)
  9256. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9257. #define BIT_PS_TIMER_C_MSK BIT(4)
  9258. #endif
  9259. #if (HALMAC_8814B_SUPPORT)
  9260. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9261. #define BIT_PSTIMER_5_MSK BIT(4)
  9262. #endif
  9263. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9264. HALMAC_8822C_SUPPORT)
  9265. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9266. #define BIT_PS_TIMER_B_MSK BIT(3)
  9267. #endif
  9268. #if (HALMAC_8814B_SUPPORT)
  9269. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9270. #define BIT_PSTIMER_4_MSK BIT(3)
  9271. #endif
  9272. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9273. HALMAC_8822C_SUPPORT)
  9274. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9275. #define BIT_PS_TIMER_A_MSK BIT(2)
  9276. #endif
  9277. #if (HALMAC_8814B_SUPPORT)
  9278. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9279. #define BIT_PSTIMER_3_MSK BIT(2)
  9280. #endif
  9281. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9282. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9283. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9284. #define BIT_CPUMGQ_TX_TIMER_MSK BIT(1)
  9285. #define BIT_CPUMGQ_TX_TIMER BIT(1)
  9286. #endif
  9287. #if (HALMAC_8814B_SUPPORT)
  9288. /* 2 REG_HIMR1 (Offset 0x00B8) */
  9289. #define BIT_BB_STOPRX_INT_MSK BIT(0)
  9290. #endif
  9291. #if (HALMAC_8198F_SUPPORT)
  9292. /* 2 REG_HISR1 (Offset 0x00BC) */
  9293. #define BIT_PRETXERR_HANDLE_INT BIT(31)
  9294. #endif
  9295. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9296. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9297. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9298. /* 2 REG_HISR1 (Offset 0x00BC) */
  9299. #define BIT_MCU_ERR BIT(28)
  9300. #define BIT_ATIMEND_E BIT(13)
  9301. #endif
  9302. #if (HALMAC_8822B_SUPPORT)
  9303. /* 2 REG_HISR1 (Offset 0x00BC) */
  9304. #define BIT_ATIMEND_E_V1_INT BIT(12)
  9305. #endif
  9306. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9307. HALMAC_8822C_SUPPORT)
  9308. /* 2 REG_HISR1 (Offset 0x00BC) */
  9309. #define BIT_PS_TIMER_C BIT(4)
  9310. #define BIT_PS_TIMER_B BIT(3)
  9311. #define BIT_PS_TIMER_A BIT(2)
  9312. #endif
  9313. #if (HALMAC_8198F_SUPPORT)
  9314. /* 2 REG_HISR1 (Offset 0x00BC) */
  9315. #define BIT_SHIFT_SYS_PINMUX_EN 0
  9316. #define BIT_MASK_SYS_PINMUX_EN 0xfffffff
  9317. #define BIT_SYS_PINMUX_EN(x) \
  9318. (((x) & BIT_MASK_SYS_PINMUX_EN) << BIT_SHIFT_SYS_PINMUX_EN)
  9319. #define BITS_SYS_PINMUX_EN (BIT_MASK_SYS_PINMUX_EN << BIT_SHIFT_SYS_PINMUX_EN)
  9320. #define BIT_CLEAR_SYS_PINMUX_EN(x) ((x) & (~BITS_SYS_PINMUX_EN))
  9321. #define BIT_GET_SYS_PINMUX_EN(x) \
  9322. (((x) >> BIT_SHIFT_SYS_PINMUX_EN) & BIT_MASK_SYS_PINMUX_EN)
  9323. #define BIT_SET_SYS_PINMUX_EN(x, v) \
  9324. (BIT_CLEAR_SYS_PINMUX_EN(x) | BIT_SYS_PINMUX_EN(v))
  9325. #endif
  9326. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  9327. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  9328. /* 2 REG_SDIO_ERR_RPT (Offset 0x102500C0) */
  9329. #define BIT_HR_FF_OVF BIT(6)
  9330. #define BIT_HR_FF_UDN BIT(5)
  9331. #define BIT_TXDMA_BUSY_ERR BIT(4)
  9332. #define BIT_TXDMA_VLD_ERR BIT(3)
  9333. #define BIT_QSEL_UNKNOWN_ERR BIT(2)
  9334. #define BIT_QSEL_MIS_ERR BIT(1)
  9335. #endif
  9336. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9337. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9338. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9339. HALMAC_8881A_SUPPORT)
  9340. /* 2 REG_DBG_PORT_SEL (Offset 0x00C0) */
  9341. #define BIT_SHIFT_DEBUG_ST 0
  9342. #define BIT_MASK_DEBUG_ST 0xffffffffL
  9343. #define BIT_DEBUG_ST(x) (((x) & BIT_MASK_DEBUG_ST) << BIT_SHIFT_DEBUG_ST)
  9344. #define BITS_DEBUG_ST (BIT_MASK_DEBUG_ST << BIT_SHIFT_DEBUG_ST)
  9345. #define BIT_CLEAR_DEBUG_ST(x) ((x) & (~BITS_DEBUG_ST))
  9346. #define BIT_GET_DEBUG_ST(x) (((x) >> BIT_SHIFT_DEBUG_ST) & BIT_MASK_DEBUG_ST)
  9347. #define BIT_SET_DEBUG_ST(x, v) (BIT_CLEAR_DEBUG_ST(x) | BIT_DEBUG_ST(v))
  9348. #endif
  9349. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  9350. /* 2 REG_SDIO_DIOERR_RPT (Offset 0x102500C0) */
  9351. #define BIT_SDIO_PAGE_ERR BIT(0)
  9352. #endif
  9353. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  9354. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  9355. /* 2 REG_SDIO_ERR_RPT (Offset 0x102500C0) */
  9356. #define BIT_SDIO_OVERRD_ERR BIT(0)
  9357. #define BIT_SHIFT_SDIO_DATA_REPLY_TIME 0
  9358. #define BIT_MASK_SDIO_DATA_REPLY_TIME 0x7
  9359. #define BIT_SDIO_DATA_REPLY_TIME(x) \
  9360. (((x) & BIT_MASK_SDIO_DATA_REPLY_TIME) \
  9361. << BIT_SHIFT_SDIO_DATA_REPLY_TIME)
  9362. #define BITS_SDIO_DATA_REPLY_TIME \
  9363. (BIT_MASK_SDIO_DATA_REPLY_TIME << BIT_SHIFT_SDIO_DATA_REPLY_TIME)
  9364. #define BIT_CLEAR_SDIO_DATA_REPLY_TIME(x) ((x) & (~BITS_SDIO_DATA_REPLY_TIME))
  9365. #define BIT_GET_SDIO_DATA_REPLY_TIME(x) \
  9366. (((x) >> BIT_SHIFT_SDIO_DATA_REPLY_TIME) & \
  9367. BIT_MASK_SDIO_DATA_REPLY_TIME)
  9368. #define BIT_SET_SDIO_DATA_REPLY_TIME(x, v) \
  9369. (BIT_CLEAR_SDIO_DATA_REPLY_TIME(x) | BIT_SDIO_DATA_REPLY_TIME(v))
  9370. #endif
  9371. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9372. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9373. HALMAC_8822C_SUPPORT)
  9374. /* 2 REG_SDIO_CMD_ERRCNT (Offset 0x102500C2) */
  9375. #define BIT_SHIFT_CMD_CRC_ERR_CNT 0
  9376. #define BIT_MASK_CMD_CRC_ERR_CNT 0xff
  9377. #define BIT_CMD_CRC_ERR_CNT(x) \
  9378. (((x) & BIT_MASK_CMD_CRC_ERR_CNT) << BIT_SHIFT_CMD_CRC_ERR_CNT)
  9379. #define BITS_CMD_CRC_ERR_CNT \
  9380. (BIT_MASK_CMD_CRC_ERR_CNT << BIT_SHIFT_CMD_CRC_ERR_CNT)
  9381. #define BIT_CLEAR_CMD_CRC_ERR_CNT(x) ((x) & (~BITS_CMD_CRC_ERR_CNT))
  9382. #define BIT_GET_CMD_CRC_ERR_CNT(x) \
  9383. (((x) >> BIT_SHIFT_CMD_CRC_ERR_CNT) & BIT_MASK_CMD_CRC_ERR_CNT)
  9384. #define BIT_SET_CMD_CRC_ERR_CNT(x, v) \
  9385. (BIT_CLEAR_CMD_CRC_ERR_CNT(x) | BIT_CMD_CRC_ERR_CNT(v))
  9386. /* 2 REG_SDIO_DATA_ERRCNT (Offset 0x102500C3) */
  9387. #define BIT_SHIFT_DATA_CRC_ERR_CNT 0
  9388. #define BIT_MASK_DATA_CRC_ERR_CNT 0xff
  9389. #define BIT_DATA_CRC_ERR_CNT(x) \
  9390. (((x) & BIT_MASK_DATA_CRC_ERR_CNT) << BIT_SHIFT_DATA_CRC_ERR_CNT)
  9391. #define BITS_DATA_CRC_ERR_CNT \
  9392. (BIT_MASK_DATA_CRC_ERR_CNT << BIT_SHIFT_DATA_CRC_ERR_CNT)
  9393. #define BIT_CLEAR_DATA_CRC_ERR_CNT(x) ((x) & (~BITS_DATA_CRC_ERR_CNT))
  9394. #define BIT_GET_DATA_CRC_ERR_CNT(x) \
  9395. (((x) >> BIT_SHIFT_DATA_CRC_ERR_CNT) & BIT_MASK_DATA_CRC_ERR_CNT)
  9396. #define BIT_SET_DATA_CRC_ERR_CNT(x, v) \
  9397. (BIT_CLEAR_DATA_CRC_ERR_CNT(x) | BIT_DATA_CRC_ERR_CNT(v))
  9398. #endif
  9399. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9400. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9401. #define BIT_MAC_SOP BIT(25)
  9402. #define BIT_LDO11_ST_EXT BIT(24)
  9403. #define BIT_ANTSELB_S2 BIT(23)
  9404. #define BIT_ANTSELB_S1 BIT(22)
  9405. #define BIT_ANTSEL_S3 BIT(21)
  9406. #endif
  9407. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9408. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9409. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9410. #define BIT_USB3_USB2_TRANSITION BIT(20)
  9411. #endif
  9412. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9413. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9414. #define BIT_ANTSEL_S2 BIT(20)
  9415. #define BIT_ANTSEL_S1 BIT(19)
  9416. #endif
  9417. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9418. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9419. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9420. #define BIT_SHIFT_USB23_SW_MODE_V1 18
  9421. #define BIT_MASK_USB23_SW_MODE_V1 0x3
  9422. #define BIT_USB23_SW_MODE_V1(x) \
  9423. (((x) & BIT_MASK_USB23_SW_MODE_V1) << BIT_SHIFT_USB23_SW_MODE_V1)
  9424. #define BITS_USB23_SW_MODE_V1 \
  9425. (BIT_MASK_USB23_SW_MODE_V1 << BIT_SHIFT_USB23_SW_MODE_V1)
  9426. #define BIT_CLEAR_USB23_SW_MODE_V1(x) ((x) & (~BITS_USB23_SW_MODE_V1))
  9427. #define BIT_GET_USB23_SW_MODE_V1(x) \
  9428. (((x) >> BIT_SHIFT_USB23_SW_MODE_V1) & BIT_MASK_USB23_SW_MODE_V1)
  9429. #define BIT_SET_USB23_SW_MODE_V1(x, v) \
  9430. (BIT_CLEAR_USB23_SW_MODE_V1(x) | BIT_USB23_SW_MODE_V1(v))
  9431. #endif
  9432. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9433. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9434. #define BIT_FCSN_PU BIT(18)
  9435. #endif
  9436. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9437. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9438. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9439. #define BIT_NO_PDN_CHIPOFF_V1 BIT(17)
  9440. #endif
  9441. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9442. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9443. #define BIT_KEEP_PAD BIT(17)
  9444. #endif
  9445. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9446. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9447. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9448. #define BIT_RSM_EN_V1 BIT(16)
  9449. #endif
  9450. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9451. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9452. #define BIT_PAD_ALD_SKP BIT(16)
  9453. #define BIT_PAD_A_ANTSEL_E BIT(11)
  9454. #define BIT_PAD_A_ANTSELB_E BIT(10)
  9455. #define BIT_PAD_A_ANTSEL_O BIT(9)
  9456. #define BIT_PAD_A_ANTSELB_O BIT(8)
  9457. #endif
  9458. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9459. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9460. HALMAC_8881A_SUPPORT)
  9461. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9462. #define BIT_LD_B12V_EN BIT(7)
  9463. #endif
  9464. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9465. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9466. #define BIT_B15V_EN BIT(7)
  9467. #endif
  9468. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9469. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9470. #define BIT_EESK_IOSEL BIT(6)
  9471. #endif
  9472. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9473. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9474. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9475. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9476. #define BIT_EECS_IOSEL_V1 BIT(6)
  9477. #endif
  9478. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9479. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9480. #define BIT_EESK_DATA_O BIT(5)
  9481. #endif
  9482. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9483. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9484. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9485. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9486. #define BIT_EECS_DATA_O_V1 BIT(5)
  9487. #endif
  9488. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9489. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9490. #define BIT_EESK_DATA_I BIT(4)
  9491. #endif
  9492. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9493. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9494. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9495. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9496. #define BIT_EECS_DATA_I_V1 BIT(4)
  9497. #endif
  9498. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9499. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9500. #define BIT_EECS_IOSEL BIT(2)
  9501. #endif
  9502. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9503. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9504. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9505. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9506. #define BIT_EESK_IOSEL_V1 BIT(2)
  9507. #endif
  9508. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9509. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9510. #define BIT_EECS_DATA_O BIT(1)
  9511. #endif
  9512. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9513. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9514. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9515. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9516. #define BIT_EESK_DATA_O_V1 BIT(1)
  9517. #endif
  9518. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  9519. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9520. #define BIT_EECS_DATA_I BIT(0)
  9521. #endif
  9522. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9523. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9524. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9525. /* 2 REG_PAD_CTRL2 (Offset 0x00C4) */
  9526. #define BIT_EESK_DATA_I_V1 BIT(0)
  9527. #endif
  9528. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9529. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9530. HALMAC_8822C_SUPPORT)
  9531. /* 2 REG_SDIO_CMD_ERR_CONTENT (Offset 0x102500C4) */
  9532. #define BIT_SHIFT_SDIO_CMD_ERR_CONTENT 0
  9533. #define BIT_MASK_SDIO_CMD_ERR_CONTENT 0xffffffffffL
  9534. #define BIT_SDIO_CMD_ERR_CONTENT(x) \
  9535. (((x) & BIT_MASK_SDIO_CMD_ERR_CONTENT) \
  9536. << BIT_SHIFT_SDIO_CMD_ERR_CONTENT)
  9537. #define BITS_SDIO_CMD_ERR_CONTENT \
  9538. (BIT_MASK_SDIO_CMD_ERR_CONTENT << BIT_SHIFT_SDIO_CMD_ERR_CONTENT)
  9539. #define BIT_CLEAR_SDIO_CMD_ERR_CONTENT(x) ((x) & (~BITS_SDIO_CMD_ERR_CONTENT))
  9540. #define BIT_GET_SDIO_CMD_ERR_CONTENT(x) \
  9541. (((x) >> BIT_SHIFT_SDIO_CMD_ERR_CONTENT) & \
  9542. BIT_MASK_SDIO_CMD_ERR_CONTENT)
  9543. #define BIT_SET_SDIO_CMD_ERR_CONTENT(x, v) \
  9544. (BIT_CLEAR_SDIO_CMD_ERR_CONTENT(x) | BIT_SDIO_CMD_ERR_CONTENT(v))
  9545. #endif
  9546. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9547. /* 2 REG_MEM_RMC (Offset 0x00C8) */
  9548. #define BIT_SHIFT_MEM_RME_WL_V2 4
  9549. #define BIT_MASK_MEM_RME_WL_V2 0x3f
  9550. #define BIT_MEM_RME_WL_V2(x) \
  9551. (((x) & BIT_MASK_MEM_RME_WL_V2) << BIT_SHIFT_MEM_RME_WL_V2)
  9552. #define BITS_MEM_RME_WL_V2 (BIT_MASK_MEM_RME_WL_V2 << BIT_SHIFT_MEM_RME_WL_V2)
  9553. #define BIT_CLEAR_MEM_RME_WL_V2(x) ((x) & (~BITS_MEM_RME_WL_V2))
  9554. #define BIT_GET_MEM_RME_WL_V2(x) \
  9555. (((x) >> BIT_SHIFT_MEM_RME_WL_V2) & BIT_MASK_MEM_RME_WL_V2)
  9556. #define BIT_SET_MEM_RME_WL_V2(x, v) \
  9557. (BIT_CLEAR_MEM_RME_WL_V2(x) | BIT_MEM_RME_WL_V2(v))
  9558. #define BIT_SHIFT_MEM_RME_HCI_V2 0
  9559. #define BIT_MASK_MEM_RME_HCI_V2 0x1f
  9560. #define BIT_MEM_RME_HCI_V2(x) \
  9561. (((x) & BIT_MASK_MEM_RME_HCI_V2) << BIT_SHIFT_MEM_RME_HCI_V2)
  9562. #define BITS_MEM_RME_HCI_V2 \
  9563. (BIT_MASK_MEM_RME_HCI_V2 << BIT_SHIFT_MEM_RME_HCI_V2)
  9564. #define BIT_CLEAR_MEM_RME_HCI_V2(x) ((x) & (~BITS_MEM_RME_HCI_V2))
  9565. #define BIT_GET_MEM_RME_HCI_V2(x) \
  9566. (((x) >> BIT_SHIFT_MEM_RME_HCI_V2) & BIT_MASK_MEM_RME_HCI_V2)
  9567. #define BIT_SET_MEM_RME_HCI_V2(x, v) \
  9568. (BIT_CLEAR_MEM_RME_HCI_V2(x) | BIT_MEM_RME_HCI_V2(v))
  9569. #endif
  9570. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  9571. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9572. HALMAC_8822C_SUPPORT)
  9573. /* 2 REG_SDIO_CRC_ERR_IDX (Offset 0x102500C9) */
  9574. #define BIT_D3_CRC_ERR BIT(4)
  9575. #define BIT_D2_CRC_ERR BIT(3)
  9576. #define BIT_D1_CRC_ERR BIT(2)
  9577. #define BIT_D0_CRC_ERR BIT(1)
  9578. #define BIT_CMD_CRC_ERR BIT(0)
  9579. #endif
  9580. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9581. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  9582. /* 2 REG_SDIO_DATA_CRC (Offset 0x102500CA) */
  9583. #define BIT_SHIFT_SDIO_DATA_CRC 0
  9584. #define BIT_MASK_SDIO_DATA_CRC 0xffff
  9585. #define BIT_SDIO_DATA_CRC(x) \
  9586. (((x) & BIT_MASK_SDIO_DATA_CRC) << BIT_SHIFT_SDIO_DATA_CRC)
  9587. #define BITS_SDIO_DATA_CRC (BIT_MASK_SDIO_DATA_CRC << BIT_SHIFT_SDIO_DATA_CRC)
  9588. #define BIT_CLEAR_SDIO_DATA_CRC(x) ((x) & (~BITS_SDIO_DATA_CRC))
  9589. #define BIT_GET_SDIO_DATA_CRC(x) \
  9590. (((x) >> BIT_SHIFT_SDIO_DATA_CRC) & BIT_MASK_SDIO_DATA_CRC)
  9591. #define BIT_SET_SDIO_DATA_CRC(x, v) \
  9592. (BIT_CLEAR_SDIO_DATA_CRC(x) | BIT_SDIO_DATA_CRC(v))
  9593. #endif
  9594. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9595. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9596. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9597. HALMAC_8881A_SUPPORT)
  9598. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9599. #define BIT_SHIFT_EFUSE_BURN_GNT 24
  9600. #define BIT_MASK_EFUSE_BURN_GNT 0xff
  9601. #define BIT_EFUSE_BURN_GNT(x) \
  9602. (((x) & BIT_MASK_EFUSE_BURN_GNT) << BIT_SHIFT_EFUSE_BURN_GNT)
  9603. #define BITS_EFUSE_BURN_GNT \
  9604. (BIT_MASK_EFUSE_BURN_GNT << BIT_SHIFT_EFUSE_BURN_GNT)
  9605. #define BIT_CLEAR_EFUSE_BURN_GNT(x) ((x) & (~BITS_EFUSE_BURN_GNT))
  9606. #define BIT_GET_EFUSE_BURN_GNT(x) \
  9607. (((x) >> BIT_SHIFT_EFUSE_BURN_GNT) & BIT_MASK_EFUSE_BURN_GNT)
  9608. #define BIT_SET_EFUSE_BURN_GNT(x, v) \
  9609. (BIT_CLEAR_EFUSE_BURN_GNT(x) | BIT_EFUSE_BURN_GNT(v))
  9610. #endif
  9611. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9612. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9613. #define BIT_SHIFT_EFUSE_PG_PWD 24
  9614. #define BIT_MASK_EFUSE_PG_PWD 0xff
  9615. #define BIT_EFUSE_PG_PWD(x) \
  9616. (((x) & BIT_MASK_EFUSE_PG_PWD) << BIT_SHIFT_EFUSE_PG_PWD)
  9617. #define BITS_EFUSE_PG_PWD (BIT_MASK_EFUSE_PG_PWD << BIT_SHIFT_EFUSE_PG_PWD)
  9618. #define BIT_CLEAR_EFUSE_PG_PWD(x) ((x) & (~BITS_EFUSE_PG_PWD))
  9619. #define BIT_GET_EFUSE_PG_PWD(x) \
  9620. (((x) >> BIT_SHIFT_EFUSE_PG_PWD) & BIT_MASK_EFUSE_PG_PWD)
  9621. #define BIT_SET_EFUSE_PG_PWD(x, v) \
  9622. (BIT_CLEAR_EFUSE_PG_PWD(x) | BIT_EFUSE_PG_PWD(v))
  9623. #define BIT_DBG_READ_EN BIT(16)
  9624. #endif
  9625. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9626. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9627. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9628. HALMAC_8881A_SUPPORT)
  9629. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9630. #define BIT_STOP_WL_PMC BIT(9)
  9631. #define BIT_STOP_SYM_PMC BIT(8)
  9632. #endif
  9633. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9634. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9635. #define BIT_SHIFT_EDATA1_V1 8
  9636. #define BIT_MASK_EDATA1_V1 0xff
  9637. #define BIT_EDATA1_V1(x) (((x) & BIT_MASK_EDATA1_V1) << BIT_SHIFT_EDATA1_V1)
  9638. #define BITS_EDATA1_V1 (BIT_MASK_EDATA1_V1 << BIT_SHIFT_EDATA1_V1)
  9639. #define BIT_CLEAR_EDATA1_V1(x) ((x) & (~BITS_EDATA1_V1))
  9640. #define BIT_GET_EDATA1_V1(x) (((x) >> BIT_SHIFT_EDATA1_V1) & BIT_MASK_EDATA1_V1)
  9641. #define BIT_SET_EDATA1_V1(x, v) (BIT_CLEAR_EDATA1_V1(x) | BIT_EDATA1_V1(v))
  9642. #endif
  9643. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  9644. HALMAC_8822C_SUPPORT)
  9645. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9646. #define BIT_BT_ACCESS_WL_PAGE0 BIT(6)
  9647. #endif
  9648. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9649. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9650. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9651. HALMAC_8881A_SUPPORT)
  9652. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9653. #define BIT_REG_RST_WLPMC BIT(5)
  9654. #define BIT_REG_RST_PD12N BIT(4)
  9655. #define BIT_SYSON_DIS_WLREG_WRMSK BIT(3)
  9656. #define BIT_SYSON_DIS_PMCREG_WRMSK BIT(2)
  9657. #endif
  9658. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  9659. /* 2 REG_SDIO_TRANS_FIFO_STATUS (Offset 0x102500CC) */
  9660. #define BIT_TRANS_FIFO_UNDERFLOW BIT(1)
  9661. #endif
  9662. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9663. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  9664. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  9665. HALMAC_8881A_SUPPORT)
  9666. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9667. #define BIT_SHIFT_SYSON_REG_ARB 0
  9668. #define BIT_MASK_SYSON_REG_ARB 0x3
  9669. #define BIT_SYSON_REG_ARB(x) \
  9670. (((x) & BIT_MASK_SYSON_REG_ARB) << BIT_SHIFT_SYSON_REG_ARB)
  9671. #define BITS_SYSON_REG_ARB (BIT_MASK_SYSON_REG_ARB << BIT_SHIFT_SYSON_REG_ARB)
  9672. #define BIT_CLEAR_SYSON_REG_ARB(x) ((x) & (~BITS_SYSON_REG_ARB))
  9673. #define BIT_GET_SYSON_REG_ARB(x) \
  9674. (((x) >> BIT_SHIFT_SYSON_REG_ARB) & BIT_MASK_SYSON_REG_ARB)
  9675. #define BIT_SET_SYSON_REG_ARB(x, v) \
  9676. (BIT_CLEAR_SYSON_REG_ARB(x) | BIT_SYSON_REG_ARB(v))
  9677. #endif
  9678. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  9679. /* 2 REG_SDIO_TRANS_FIFO_STATUS (Offset 0x102500CC) */
  9680. #define BIT_TRANS_FIFO_OVERFLOW BIT(0)
  9681. #endif
  9682. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9683. /* 2 REG_PMC_DBG_CTRL2 (Offset 0x00CC) */
  9684. #define BIT_SHIFT_EDATA0_V1 0
  9685. #define BIT_MASK_EDATA0_V1 0xff
  9686. #define BIT_EDATA0_V1(x) (((x) & BIT_MASK_EDATA0_V1) << BIT_SHIFT_EDATA0_V1)
  9687. #define BITS_EDATA0_V1 (BIT_MASK_EDATA0_V1 << BIT_SHIFT_EDATA0_V1)
  9688. #define BIT_CLEAR_EDATA0_V1(x) ((x) & (~BITS_EDATA0_V1))
  9689. #define BIT_GET_EDATA0_V1(x) (((x) >> BIT_SHIFT_EDATA0_V1) & BIT_MASK_EDATA0_V1)
  9690. #define BIT_SET_EDATA0_V1(x, v) (BIT_CLEAR_EDATA0_V1(x) | BIT_EDATA0_V1(v))
  9691. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9692. #define BIT_SCAN_PLL_BYPASS BIT(30)
  9693. #define BIT_DRF_BIST_FAIL_V1 BIT(28)
  9694. #endif
  9695. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9696. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9697. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9698. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9699. #define BIT_BIST_USB_DIS BIT(27)
  9700. #endif
  9701. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9702. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9703. #define BIT_DRF_BIST_READY_V1 BIT(27)
  9704. #endif
  9705. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9706. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9707. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9708. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9709. #define BIT_BIST_PCI_DIS BIT(26)
  9710. #endif
  9711. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9712. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9713. #define BIT_BIST_FAIL_V1 BIT(26)
  9714. #endif
  9715. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9716. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9717. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9718. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9719. #define BIT_BIST_BT_DIS BIT(25)
  9720. #endif
  9721. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9722. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9723. #define BIT_BIST_READY_V1 BIT(25)
  9724. #endif
  9725. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9726. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9727. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9728. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9729. #define BIT_BIST_WL_DIS BIT(24)
  9730. #endif
  9731. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9732. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9733. #define BIT_BIST_START_PAUSE_V1 BIT(24)
  9734. #endif
  9735. #if (HALMAC_8192F_SUPPORT)
  9736. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9737. #define BIT_SHIFT_BIST_RPT_SEL_V1 20
  9738. #define BIT_MASK_BIST_RPT_SEL_V1 0xf
  9739. #define BIT_BIST_RPT_SEL_V1(x) \
  9740. (((x) & BIT_MASK_BIST_RPT_SEL_V1) << BIT_SHIFT_BIST_RPT_SEL_V1)
  9741. #define BITS_BIST_RPT_SEL_V1 \
  9742. (BIT_MASK_BIST_RPT_SEL_V1 << BIT_SHIFT_BIST_RPT_SEL_V1)
  9743. #define BIT_CLEAR_BIST_RPT_SEL_V1(x) ((x) & (~BITS_BIST_RPT_SEL_V1))
  9744. #define BIT_GET_BIST_RPT_SEL_V1(x) \
  9745. (((x) >> BIT_SHIFT_BIST_RPT_SEL_V1) & BIT_MASK_BIST_RPT_SEL_V1)
  9746. #define BIT_SET_BIST_RPT_SEL_V1(x, v) \
  9747. (BIT_CLEAR_BIST_RPT_SEL_V1(x) | BIT_BIST_RPT_SEL_V1(v))
  9748. #endif
  9749. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9750. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9751. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9752. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9753. #define BIT_SHIFT_BIST_RPT_SEL 16
  9754. #define BIT_MASK_BIST_RPT_SEL 0xf
  9755. #define BIT_BIST_RPT_SEL(x) \
  9756. (((x) & BIT_MASK_BIST_RPT_SEL) << BIT_SHIFT_BIST_RPT_SEL)
  9757. #define BITS_BIST_RPT_SEL (BIT_MASK_BIST_RPT_SEL << BIT_SHIFT_BIST_RPT_SEL)
  9758. #define BIT_CLEAR_BIST_RPT_SEL(x) ((x) & (~BITS_BIST_RPT_SEL))
  9759. #define BIT_GET_BIST_RPT_SEL(x) \
  9760. (((x) >> BIT_SHIFT_BIST_RPT_SEL) & BIT_MASK_BIST_RPT_SEL)
  9761. #define BIT_SET_BIST_RPT_SEL(x, v) \
  9762. (BIT_CLEAR_BIST_RPT_SEL(x) | BIT_BIST_RPT_SEL(v))
  9763. #endif
  9764. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9765. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9766. #define BIT_SHIFT_MBIST_RSTNI 8
  9767. #define BIT_MASK_MBIST_RSTNI 0x3ff
  9768. #define BIT_MBIST_RSTNI(x) \
  9769. (((x) & BIT_MASK_MBIST_RSTNI) << BIT_SHIFT_MBIST_RSTNI)
  9770. #define BITS_MBIST_RSTNI (BIT_MASK_MBIST_RSTNI << BIT_SHIFT_MBIST_RSTNI)
  9771. #define BIT_CLEAR_MBIST_RSTNI(x) ((x) & (~BITS_MBIST_RSTNI))
  9772. #define BIT_GET_MBIST_RSTNI(x) \
  9773. (((x) >> BIT_SHIFT_MBIST_RSTNI) & BIT_MASK_MBIST_RSTNI)
  9774. #define BIT_SET_MBIST_RSTNI(x, v) \
  9775. (BIT_CLEAR_MBIST_RSTNI(x) | BIT_MBIST_RSTNI(v))
  9776. #endif
  9777. #if (HALMAC_8192F_SUPPORT)
  9778. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9779. #define BIT_BISD_MODE BIT(6)
  9780. #endif
  9781. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9782. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9783. #define BIT_BIST_RESUME_PS_V1 BIT(5)
  9784. #endif
  9785. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9786. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9787. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9788. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9789. #define BIT_BIST_RESUME_PS BIT(4)
  9790. #endif
  9791. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9792. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9793. #define BIT_BIST_RESUME_V1 BIT(4)
  9794. #endif
  9795. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  9796. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9797. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9798. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9799. #define BIT_BIST_RESUME BIT(3)
  9800. #endif
  9801. #if (HALMAC_8192F_SUPPORT)
  9802. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9803. #define BIT_BIST_DRF BIT(3)
  9804. #endif
  9805. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9806. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9807. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9808. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9809. #define BIT_BIST_NORMAL BIT(2)
  9810. #endif
  9811. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9812. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9813. #define BIT_SHIFT_BIST_MODE 2
  9814. #define BIT_MASK_BIST_MODE 0x3
  9815. #define BIT_BIST_MODE(x) (((x) & BIT_MASK_BIST_MODE) << BIT_SHIFT_BIST_MODE)
  9816. #define BITS_BIST_MODE (BIT_MASK_BIST_MODE << BIT_SHIFT_BIST_MODE)
  9817. #define BIT_CLEAR_BIST_MODE(x) ((x) & (~BITS_BIST_MODE))
  9818. #define BIT_GET_BIST_MODE(x) (((x) >> BIT_SHIFT_BIST_MODE) & BIT_MASK_BIST_MODE)
  9819. #define BIT_SET_BIST_MODE(x, v) (BIT_CLEAR_BIST_MODE(x) | BIT_BIST_MODE(v))
  9820. #endif
  9821. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9822. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  9823. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9824. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9825. /* 2 REG_BIST_CTRL (Offset 0x00D0) */
  9826. #define BIT_BIST_RSTN BIT(1)
  9827. #define BIT_BIST_CLK_EN BIT(0)
  9828. #endif
  9829. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  9830. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  9831. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9832. /* 2 REG_BIST_RPT (Offset 0x00D4) */
  9833. #define BIT_SHIFT_MBIST_REPORT 0
  9834. #define BIT_MASK_MBIST_REPORT 0xffffffffL
  9835. #define BIT_MBIST_REPORT(x) \
  9836. (((x) & BIT_MASK_MBIST_REPORT) << BIT_SHIFT_MBIST_REPORT)
  9837. #define BITS_MBIST_REPORT (BIT_MASK_MBIST_REPORT << BIT_SHIFT_MBIST_REPORT)
  9838. #define BIT_CLEAR_MBIST_REPORT(x) ((x) & (~BITS_MBIST_REPORT))
  9839. #define BIT_GET_MBIST_REPORT(x) \
  9840. (((x) >> BIT_SHIFT_MBIST_REPORT) & BIT_MASK_MBIST_REPORT)
  9841. #define BIT_SET_MBIST_REPORT(x, v) \
  9842. (BIT_CLEAR_MBIST_REPORT(x) | BIT_MBIST_REPORT(v))
  9843. #endif
  9844. #if (HALMAC_8192E_SUPPORT)
  9845. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9846. #define BIT_RMV_SIGN BIT(31)
  9847. #endif
  9848. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9849. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9850. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9851. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9852. #define BIT_UMEM_RME BIT(31)
  9853. #endif
  9854. #if (HALMAC_8192E_SUPPORT)
  9855. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9856. #define BIT_RMV_2PRF1 BIT(29)
  9857. #define BIT_RMV_2PRF0 BIT(28)
  9858. #endif
  9859. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9860. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9861. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9862. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9863. #define BIT_SHIFT_BT_SPRAM 28
  9864. #define BIT_MASK_BT_SPRAM 0x3
  9865. #define BIT_BT_SPRAM(x) (((x) & BIT_MASK_BT_SPRAM) << BIT_SHIFT_BT_SPRAM)
  9866. #define BITS_BT_SPRAM (BIT_MASK_BT_SPRAM << BIT_SHIFT_BT_SPRAM)
  9867. #define BIT_CLEAR_BT_SPRAM(x) ((x) & (~BITS_BT_SPRAM))
  9868. #define BIT_GET_BT_SPRAM(x) (((x) >> BIT_SHIFT_BT_SPRAM) & BIT_MASK_BT_SPRAM)
  9869. #define BIT_SET_BT_SPRAM(x, v) (BIT_CLEAR_BT_SPRAM(x) | BIT_BT_SPRAM(v))
  9870. #endif
  9871. #if (HALMAC_8192E_SUPPORT)
  9872. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9873. #define BIT_RMV_1PRF1 BIT(27)
  9874. #define BIT_RMV_1PRF0 BIT(26)
  9875. #define BIT_RMV_1PSR BIT(25)
  9876. #define BIT_RMV_ROM BIT(24)
  9877. #endif
  9878. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9879. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9880. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9881. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9882. #define BIT_SHIFT_BT_ROM 24
  9883. #define BIT_MASK_BT_ROM 0xf
  9884. #define BIT_BT_ROM(x) (((x) & BIT_MASK_BT_ROM) << BIT_SHIFT_BT_ROM)
  9885. #define BITS_BT_ROM (BIT_MASK_BT_ROM << BIT_SHIFT_BT_ROM)
  9886. #define BIT_CLEAR_BT_ROM(x) ((x) & (~BITS_BT_ROM))
  9887. #define BIT_GET_BT_ROM(x) (((x) >> BIT_SHIFT_BT_ROM) & BIT_MASK_BT_ROM)
  9888. #define BIT_SET_BT_ROM(x, v) (BIT_CLEAR_BT_ROM(x) | BIT_BT_ROM(v))
  9889. #endif
  9890. #if (HALMAC_8192F_SUPPORT)
  9891. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9892. #define BIT_MEM_RMV1_2PRF1 BIT(19)
  9893. #define BIT_MEM_RMV1_2PRF0 BIT(18)
  9894. #define BIT_MEM_RMV1_1PRF1 BIT(17)
  9895. #define BIT_MEM_RMV1_1PRF0 BIT(16)
  9896. #define BIT_MEM_RMV1_1PSR BIT(15)
  9897. #define BIT_MEM_RMV1_ROM BIT(14)
  9898. #endif
  9899. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9900. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9901. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9902. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9903. #define BIT_SHIFT_PCI_DPRAM 10
  9904. #define BIT_MASK_PCI_DPRAM 0x3
  9905. #define BIT_PCI_DPRAM(x) (((x) & BIT_MASK_PCI_DPRAM) << BIT_SHIFT_PCI_DPRAM)
  9906. #define BITS_PCI_DPRAM (BIT_MASK_PCI_DPRAM << BIT_SHIFT_PCI_DPRAM)
  9907. #define BIT_CLEAR_PCI_DPRAM(x) ((x) & (~BITS_PCI_DPRAM))
  9908. #define BIT_GET_PCI_DPRAM(x) (((x) >> BIT_SHIFT_PCI_DPRAM) & BIT_MASK_PCI_DPRAM)
  9909. #define BIT_SET_PCI_DPRAM(x, v) (BIT_CLEAR_PCI_DPRAM(x) | BIT_PCI_DPRAM(v))
  9910. #endif
  9911. #if (HALMAC_8192E_SUPPORT)
  9912. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9913. #define BIT_SHIFT_MEM_RME_BT 8
  9914. #define BIT_MASK_MEM_RME_BT 0xf
  9915. #define BIT_MEM_RME_BT(x) (((x) & BIT_MASK_MEM_RME_BT) << BIT_SHIFT_MEM_RME_BT)
  9916. #define BITS_MEM_RME_BT (BIT_MASK_MEM_RME_BT << BIT_SHIFT_MEM_RME_BT)
  9917. #define BIT_CLEAR_MEM_RME_BT(x) ((x) & (~BITS_MEM_RME_BT))
  9918. #define BIT_GET_MEM_RME_BT(x) \
  9919. (((x) >> BIT_SHIFT_MEM_RME_BT) & BIT_MASK_MEM_RME_BT)
  9920. #define BIT_SET_MEM_RME_BT(x, v) (BIT_CLEAR_MEM_RME_BT(x) | BIT_MEM_RME_BT(v))
  9921. #endif
  9922. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9923. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9924. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9925. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9926. #define BIT_SHIFT_PCI_SPRAM 8
  9927. #define BIT_MASK_PCI_SPRAM 0x3
  9928. #define BIT_PCI_SPRAM(x) (((x) & BIT_MASK_PCI_SPRAM) << BIT_SHIFT_PCI_SPRAM)
  9929. #define BITS_PCI_SPRAM (BIT_MASK_PCI_SPRAM << BIT_SHIFT_PCI_SPRAM)
  9930. #define BIT_CLEAR_PCI_SPRAM(x) ((x) & (~BITS_PCI_SPRAM))
  9931. #define BIT_GET_PCI_SPRAM(x) (((x) >> BIT_SHIFT_PCI_SPRAM) & BIT_MASK_PCI_SPRAM)
  9932. #define BIT_SET_PCI_SPRAM(x, v) (BIT_CLEAR_PCI_SPRAM(x) | BIT_PCI_SPRAM(v))
  9933. #define BIT_SHIFT_USB_SPRAM 6
  9934. #define BIT_MASK_USB_SPRAM 0x3
  9935. #define BIT_USB_SPRAM(x) (((x) & BIT_MASK_USB_SPRAM) << BIT_SHIFT_USB_SPRAM)
  9936. #define BITS_USB_SPRAM (BIT_MASK_USB_SPRAM << BIT_SHIFT_USB_SPRAM)
  9937. #define BIT_CLEAR_USB_SPRAM(x) ((x) & (~BITS_USB_SPRAM))
  9938. #define BIT_GET_USB_SPRAM(x) (((x) >> BIT_SHIFT_USB_SPRAM) & BIT_MASK_USB_SPRAM)
  9939. #define BIT_SET_USB_SPRAM(x, v) (BIT_CLEAR_USB_SPRAM(x) | BIT_USB_SPRAM(v))
  9940. #endif
  9941. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT)
  9942. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9943. #define BIT_SHIFT_MEM_RME_WL 4
  9944. #define BIT_MASK_MEM_RME_WL 0xf
  9945. #define BIT_MEM_RME_WL(x) (((x) & BIT_MASK_MEM_RME_WL) << BIT_SHIFT_MEM_RME_WL)
  9946. #define BITS_MEM_RME_WL (BIT_MASK_MEM_RME_WL << BIT_SHIFT_MEM_RME_WL)
  9947. #define BIT_CLEAR_MEM_RME_WL(x) ((x) & (~BITS_MEM_RME_WL))
  9948. #define BIT_GET_MEM_RME_WL(x) \
  9949. (((x) >> BIT_SHIFT_MEM_RME_WL) & BIT_MASK_MEM_RME_WL)
  9950. #define BIT_SET_MEM_RME_WL(x, v) (BIT_CLEAR_MEM_RME_WL(x) | BIT_MEM_RME_WL(v))
  9951. #endif
  9952. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9953. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9954. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9955. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9956. #define BIT_SHIFT_USB_SPRF 4
  9957. #define BIT_MASK_USB_SPRF 0x3
  9958. #define BIT_USB_SPRF(x) (((x) & BIT_MASK_USB_SPRF) << BIT_SHIFT_USB_SPRF)
  9959. #define BITS_USB_SPRF (BIT_MASK_USB_SPRF << BIT_SHIFT_USB_SPRF)
  9960. #define BIT_CLEAR_USB_SPRF(x) ((x) & (~BITS_USB_SPRF))
  9961. #define BIT_GET_USB_SPRF(x) (((x) >> BIT_SHIFT_USB_SPRF) & BIT_MASK_USB_SPRF)
  9962. #define BIT_SET_USB_SPRF(x, v) (BIT_CLEAR_USB_SPRF(x) | BIT_USB_SPRF(v))
  9963. #endif
  9964. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT)
  9965. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9966. #define BIT_SHIFT_MEM_RME_HCI 0
  9967. #define BIT_MASK_MEM_RME_HCI 0xf
  9968. #define BIT_MEM_RME_HCI(x) \
  9969. (((x) & BIT_MASK_MEM_RME_HCI) << BIT_SHIFT_MEM_RME_HCI)
  9970. #define BITS_MEM_RME_HCI (BIT_MASK_MEM_RME_HCI << BIT_SHIFT_MEM_RME_HCI)
  9971. #define BIT_CLEAR_MEM_RME_HCI(x) ((x) & (~BITS_MEM_RME_HCI))
  9972. #define BIT_GET_MEM_RME_HCI(x) \
  9973. (((x) >> BIT_SHIFT_MEM_RME_HCI) & BIT_MASK_MEM_RME_HCI)
  9974. #define BIT_SET_MEM_RME_HCI(x, v) \
  9975. (BIT_CLEAR_MEM_RME_HCI(x) | BIT_MEM_RME_HCI(v))
  9976. #endif
  9977. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  9978. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  9979. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  9980. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9981. #define BIT_SHIFT_MCU_ROM 0
  9982. #define BIT_MASK_MCU_ROM 0xf
  9983. #define BIT_MCU_ROM(x) (((x) & BIT_MASK_MCU_ROM) << BIT_SHIFT_MCU_ROM)
  9984. #define BITS_MCU_ROM (BIT_MASK_MCU_ROM << BIT_SHIFT_MCU_ROM)
  9985. #define BIT_CLEAR_MCU_ROM(x) ((x) & (~BITS_MCU_ROM))
  9986. #define BIT_GET_MCU_ROM(x) (((x) >> BIT_SHIFT_MCU_ROM) & BIT_MASK_MCU_ROM)
  9987. #define BIT_SET_MCU_ROM(x, v) (BIT_CLEAR_MCU_ROM(x) | BIT_MCU_ROM(v))
  9988. #endif
  9989. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  9990. /* 2 REG_MEM_CTRL (Offset 0x00D8) */
  9991. #define BIT_SHIFT_BIST_ROM 0
  9992. #define BIT_MASK_BIST_ROM 0xffffffffL
  9993. #define BIT_BIST_ROM(x) (((x) & BIT_MASK_BIST_ROM) << BIT_SHIFT_BIST_ROM)
  9994. #define BITS_BIST_ROM (BIT_MASK_BIST_ROM << BIT_SHIFT_BIST_ROM)
  9995. #define BIT_CLEAR_BIST_ROM(x) ((x) & (~BITS_BIST_ROM))
  9996. #define BIT_GET_BIST_ROM(x) (((x) >> BIT_SHIFT_BIST_ROM) & BIT_MASK_BIST_ROM)
  9997. #define BIT_SET_BIST_ROM(x, v) (BIT_CLEAR_BIST_ROM(x) | BIT_BIST_ROM(v))
  9998. #endif
  9999. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  10000. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10001. #define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4 26
  10002. #define BIT_MASK_BB_DBG_SEL_AFE_SDM_V4 0x7
  10003. #define BIT_BB_DBG_SEL_AFE_SDM_V4(x) \
  10004. (((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_V4) \
  10005. << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4)
  10006. #define BITS_BB_DBG_SEL_AFE_SDM_V4 \
  10007. (BIT_MASK_BB_DBG_SEL_AFE_SDM_V4 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4)
  10008. #define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_V4(x) ((x) & (~BITS_BB_DBG_SEL_AFE_SDM_V4))
  10009. #define BIT_GET_BB_DBG_SEL_AFE_SDM_V4(x) \
  10010. (((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4) & \
  10011. BIT_MASK_BB_DBG_SEL_AFE_SDM_V4)
  10012. #define BIT_SET_BB_DBG_SEL_AFE_SDM_V4(x, v) \
  10013. (BIT_CLEAR_BB_DBG_SEL_AFE_SDM_V4(x) | BIT_BB_DBG_SEL_AFE_SDM_V4(v))
  10014. #endif
  10015. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10016. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  10017. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10018. #define BIT_SYN_AGPIO BIT(20)
  10019. #endif
  10020. #if (HALMAC_8814B_SUPPORT)
  10021. /* 2 REG_SYN_RFC_CTRL (Offset 0x00DC) */
  10022. #define BIT_SHIFT_SYN_RF1_CTRL 8
  10023. #define BIT_MASK_SYN_RF1_CTRL 0xff
  10024. #define BIT_SYN_RF1_CTRL(x) \
  10025. (((x) & BIT_MASK_SYN_RF1_CTRL) << BIT_SHIFT_SYN_RF1_CTRL)
  10026. #define BITS_SYN_RF1_CTRL (BIT_MASK_SYN_RF1_CTRL << BIT_SHIFT_SYN_RF1_CTRL)
  10027. #define BIT_CLEAR_SYN_RF1_CTRL(x) ((x) & (~BITS_SYN_RF1_CTRL))
  10028. #define BIT_GET_SYN_RF1_CTRL(x) \
  10029. (((x) >> BIT_SHIFT_SYN_RF1_CTRL) & BIT_MASK_SYN_RF1_CTRL)
  10030. #define BIT_SET_SYN_RF1_CTRL(x, v) \
  10031. (BIT_CLEAR_SYN_RF1_CTRL(x) | BIT_SYN_RF1_CTRL(v))
  10032. #endif
  10033. #if (HALMAC_8192F_SUPPORT)
  10034. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10035. #define BIT_SHIFT_XTAL_GM_REP 6
  10036. #define BIT_MASK_XTAL_GM_REP 0x3
  10037. #define BIT_XTAL_GM_REP(x) \
  10038. (((x) & BIT_MASK_XTAL_GM_REP) << BIT_SHIFT_XTAL_GM_REP)
  10039. #define BITS_XTAL_GM_REP (BIT_MASK_XTAL_GM_REP << BIT_SHIFT_XTAL_GM_REP)
  10040. #define BIT_CLEAR_XTAL_GM_REP(x) ((x) & (~BITS_XTAL_GM_REP))
  10041. #define BIT_GET_XTAL_GM_REP(x) \
  10042. (((x) >> BIT_SHIFT_XTAL_GM_REP) & BIT_MASK_XTAL_GM_REP)
  10043. #define BIT_SET_XTAL_GM_REP(x, v) \
  10044. (BIT_CLEAR_XTAL_GM_REP(x) | BIT_XTAL_GM_REP(v))
  10045. #define BIT_XTAL_DRV_RF_LATCH_V5 BIT(5)
  10046. #endif
  10047. #if (HALMAC_8192F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  10048. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10049. #define BIT_XTAL_LP BIT(4)
  10050. #define BIT_XTAL_GM_SEP BIT(3)
  10051. #endif
  10052. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  10053. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10054. #define BIT_SHIFT_XTAL_SEL_TOK_V2 0
  10055. #define BIT_MASK_XTAL_SEL_TOK_V2 0x7
  10056. #define BIT_XTAL_SEL_TOK_V2(x) \
  10057. (((x) & BIT_MASK_XTAL_SEL_TOK_V2) << BIT_SHIFT_XTAL_SEL_TOK_V2)
  10058. #define BITS_XTAL_SEL_TOK_V2 \
  10059. (BIT_MASK_XTAL_SEL_TOK_V2 << BIT_SHIFT_XTAL_SEL_TOK_V2)
  10060. #define BIT_CLEAR_XTAL_SEL_TOK_V2(x) ((x) & (~BITS_XTAL_SEL_TOK_V2))
  10061. #define BIT_GET_XTAL_SEL_TOK_V2(x) \
  10062. (((x) >> BIT_SHIFT_XTAL_SEL_TOK_V2) & BIT_MASK_XTAL_SEL_TOK_V2)
  10063. #define BIT_SET_XTAL_SEL_TOK_V2(x, v) \
  10064. (BIT_CLEAR_XTAL_SEL_TOK_V2(x) | BIT_XTAL_SEL_TOK_V2(v))
  10065. #endif
  10066. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10067. /* 2 REG_WLAN_DBG (Offset 0x00DC) */
  10068. #define BIT_SHIFT_WLAN_DBG 0
  10069. #define BIT_MASK_WLAN_DBG 0xffffffffL
  10070. #define BIT_WLAN_DBG(x) (((x) & BIT_MASK_WLAN_DBG) << BIT_SHIFT_WLAN_DBG)
  10071. #define BITS_WLAN_DBG (BIT_MASK_WLAN_DBG << BIT_SHIFT_WLAN_DBG)
  10072. #define BIT_CLEAR_WLAN_DBG(x) ((x) & (~BITS_WLAN_DBG))
  10073. #define BIT_GET_WLAN_DBG(x) (((x) >> BIT_SHIFT_WLAN_DBG) & BIT_MASK_WLAN_DBG)
  10074. #define BIT_SET_WLAN_DBG(x, v) (BIT_CLEAR_WLAN_DBG(x) | BIT_WLAN_DBG(v))
  10075. #endif
  10076. #if (HALMAC_8814B_SUPPORT)
  10077. /* 2 REG_SYN_RFC_CTRL (Offset 0x00DC) */
  10078. #define BIT_SHIFT_SYN_RF0_CTRL 0
  10079. #define BIT_MASK_SYN_RF0_CTRL 0xff
  10080. #define BIT_SYN_RF0_CTRL(x) \
  10081. (((x) & BIT_MASK_SYN_RF0_CTRL) << BIT_SHIFT_SYN_RF0_CTRL)
  10082. #define BITS_SYN_RF0_CTRL (BIT_MASK_SYN_RF0_CTRL << BIT_SHIFT_SYN_RF0_CTRL)
  10083. #define BIT_CLEAR_SYN_RF0_CTRL(x) ((x) & (~BITS_SYN_RF0_CTRL))
  10084. #define BIT_GET_SYN_RF0_CTRL(x) \
  10085. (((x) >> BIT_SHIFT_SYN_RF0_CTRL) & BIT_MASK_SYN_RF0_CTRL)
  10086. #define BIT_SET_SYN_RF0_CTRL(x, v) \
  10087. (BIT_CLEAR_SYN_RF0_CTRL(x) | BIT_SYN_RF0_CTRL(v))
  10088. #endif
  10089. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  10090. /* 2 REG_AFE_CTRL8 (Offset 0x00DC) */
  10091. #define BIT_SHIFT_XTAL_SEL_TOK 0
  10092. #define BIT_MASK_XTAL_SEL_TOK 0x7
  10093. #define BIT_XTAL_SEL_TOK(x) \
  10094. (((x) & BIT_MASK_XTAL_SEL_TOK) << BIT_SHIFT_XTAL_SEL_TOK)
  10095. #define BITS_XTAL_SEL_TOK (BIT_MASK_XTAL_SEL_TOK << BIT_SHIFT_XTAL_SEL_TOK)
  10096. #define BIT_CLEAR_XTAL_SEL_TOK(x) ((x) & (~BITS_XTAL_SEL_TOK))
  10097. #define BIT_GET_XTAL_SEL_TOK(x) \
  10098. (((x) >> BIT_SHIFT_XTAL_SEL_TOK) & BIT_MASK_XTAL_SEL_TOK)
  10099. #define BIT_SET_XTAL_SEL_TOK(x, v) \
  10100. (BIT_CLEAR_XTAL_SEL_TOK(x) | BIT_XTAL_SEL_TOK(v))
  10101. #endif
  10102. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  10103. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  10104. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10105. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10106. #define BIT_RD_SEL BIT(31)
  10107. #endif
  10108. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10109. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10110. #define BIT_CPU_REG_SEL BIT(31)
  10111. #endif
  10112. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10113. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10114. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10115. #define BIT_USB_SIE_INTF_WE_V1 BIT(30)
  10116. #endif
  10117. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10118. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10119. #define BIT_USB3_REG_SEL BIT(30)
  10120. #endif
  10121. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10122. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10123. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10124. #define BIT_USB_SIE_INTF_BYIOREG_V1 BIT(29)
  10125. #endif
  10126. #if (HALMAC_8192F_SUPPORT)
  10127. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10128. #define BIT_SHIFT_USB_SIE_EN 28
  10129. #define BIT_MASK_USB_SIE_EN 0x3
  10130. #define BIT_USB_SIE_EN(x) (((x) & BIT_MASK_USB_SIE_EN) << BIT_SHIFT_USB_SIE_EN)
  10131. #define BITS_USB_SIE_EN (BIT_MASK_USB_SIE_EN << BIT_SHIFT_USB_SIE_EN)
  10132. #define BIT_CLEAR_USB_SIE_EN(x) ((x) & (~BITS_USB_SIE_EN))
  10133. #define BIT_GET_USB_SIE_EN(x) \
  10134. (((x) >> BIT_SHIFT_USB_SIE_EN) & BIT_MASK_USB_SIE_EN)
  10135. #define BIT_SET_USB_SIE_EN(x, v) (BIT_CLEAR_USB_SIE_EN(x) | BIT_USB_SIE_EN(v))
  10136. #endif
  10137. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10138. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10139. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10140. #define BIT_USB_SIE_SELECT BIT(28)
  10141. #endif
  10142. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  10143. HALMAC_8881A_SUPPORT)
  10144. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10145. #define BIT_USB_SIE_INTF_WE BIT(25)
  10146. #endif
  10147. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10148. HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  10149. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10150. #define BIT_USB_SIE_INTF_BYIOREG BIT(24)
  10151. #define BIT_SHIFT_USB_SIE_INTF_ADDR 16
  10152. #define BIT_MASK_USB_SIE_INTF_ADDR 0xff
  10153. #define BIT_USB_SIE_INTF_ADDR(x) \
  10154. (((x) & BIT_MASK_USB_SIE_INTF_ADDR) << BIT_SHIFT_USB_SIE_INTF_ADDR)
  10155. #define BITS_USB_SIE_INTF_ADDR \
  10156. (BIT_MASK_USB_SIE_INTF_ADDR << BIT_SHIFT_USB_SIE_INTF_ADDR)
  10157. #define BIT_CLEAR_USB_SIE_INTF_ADDR(x) ((x) & (~BITS_USB_SIE_INTF_ADDR))
  10158. #define BIT_GET_USB_SIE_INTF_ADDR(x) \
  10159. (((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR) & BIT_MASK_USB_SIE_INTF_ADDR)
  10160. #define BIT_SET_USB_SIE_INTF_ADDR(x, v) \
  10161. (BIT_CLEAR_USB_SIE_INTF_ADDR(x) | BIT_USB_SIE_INTF_ADDR(v))
  10162. #endif
  10163. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10164. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10165. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10166. #define BIT_SHIFT_USB_SIE_INTF_ADDR_V1 16
  10167. #define BIT_MASK_USB_SIE_INTF_ADDR_V1 0x1ff
  10168. #define BIT_USB_SIE_INTF_ADDR_V1(x) \
  10169. (((x) & BIT_MASK_USB_SIE_INTF_ADDR_V1) \
  10170. << BIT_SHIFT_USB_SIE_INTF_ADDR_V1)
  10171. #define BITS_USB_SIE_INTF_ADDR_V1 \
  10172. (BIT_MASK_USB_SIE_INTF_ADDR_V1 << BIT_SHIFT_USB_SIE_INTF_ADDR_V1)
  10173. #define BIT_CLEAR_USB_SIE_INTF_ADDR_V1(x) ((x) & (~BITS_USB_SIE_INTF_ADDR_V1))
  10174. #define BIT_GET_USB_SIE_INTF_ADDR_V1(x) \
  10175. (((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR_V1) & \
  10176. BIT_MASK_USB_SIE_INTF_ADDR_V1)
  10177. #define BIT_SET_USB_SIE_INTF_ADDR_V1(x, v) \
  10178. (BIT_CLEAR_USB_SIE_INTF_ADDR_V1(x) | BIT_USB_SIE_INTF_ADDR_V1(v))
  10179. #endif
  10180. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  10181. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  10182. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10183. HALMAC_8881A_SUPPORT)
  10184. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10185. #define BIT_SHIFT_USB_SIE_INTF_RD 8
  10186. #define BIT_MASK_USB_SIE_INTF_RD 0xff
  10187. #define BIT_USB_SIE_INTF_RD(x) \
  10188. (((x) & BIT_MASK_USB_SIE_INTF_RD) << BIT_SHIFT_USB_SIE_INTF_RD)
  10189. #define BITS_USB_SIE_INTF_RD \
  10190. (BIT_MASK_USB_SIE_INTF_RD << BIT_SHIFT_USB_SIE_INTF_RD)
  10191. #define BIT_CLEAR_USB_SIE_INTF_RD(x) ((x) & (~BITS_USB_SIE_INTF_RD))
  10192. #define BIT_GET_USB_SIE_INTF_RD(x) \
  10193. (((x) >> BIT_SHIFT_USB_SIE_INTF_RD) & BIT_MASK_USB_SIE_INTF_RD)
  10194. #define BIT_SET_USB_SIE_INTF_RD(x, v) \
  10195. (BIT_CLEAR_USB_SIE_INTF_RD(x) | BIT_USB_SIE_INTF_RD(v))
  10196. #endif
  10197. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10198. HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  10199. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10200. #define BIT_SHIFT_NPQ_AVAL_PG 8
  10201. #define BIT_MASK_NPQ_AVAL_PG 0xff
  10202. #define BIT_NPQ_AVAL_PG(x) \
  10203. (((x) & BIT_MASK_NPQ_AVAL_PG) << BIT_SHIFT_NPQ_AVAL_PG)
  10204. #define BITS_NPQ_AVAL_PG (BIT_MASK_NPQ_AVAL_PG << BIT_SHIFT_NPQ_AVAL_PG)
  10205. #define BIT_CLEAR_NPQ_AVAL_PG(x) ((x) & (~BITS_NPQ_AVAL_PG))
  10206. #define BIT_GET_NPQ_AVAL_PG(x) \
  10207. (((x) >> BIT_SHIFT_NPQ_AVAL_PG) & BIT_MASK_NPQ_AVAL_PG)
  10208. #define BIT_SET_NPQ_AVAL_PG(x, v) \
  10209. (BIT_CLEAR_NPQ_AVAL_PG(x) | BIT_NPQ_AVAL_PG(v))
  10210. #endif
  10211. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  10212. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  10213. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10214. HALMAC_8881A_SUPPORT)
  10215. /* 2 REG_USB_SIE_INTF (Offset 0x00E0) */
  10216. #define BIT_SHIFT_USB_SIE_INTF_WD 0
  10217. #define BIT_MASK_USB_SIE_INTF_WD 0xff
  10218. #define BIT_USB_SIE_INTF_WD(x) \
  10219. (((x) & BIT_MASK_USB_SIE_INTF_WD) << BIT_SHIFT_USB_SIE_INTF_WD)
  10220. #define BITS_USB_SIE_INTF_WD \
  10221. (BIT_MASK_USB_SIE_INTF_WD << BIT_SHIFT_USB_SIE_INTF_WD)
  10222. #define BIT_CLEAR_USB_SIE_INTF_WD(x) ((x) & (~BITS_USB_SIE_INTF_WD))
  10223. #define BIT_GET_USB_SIE_INTF_WD(x) \
  10224. (((x) >> BIT_SHIFT_USB_SIE_INTF_WD) & BIT_MASK_USB_SIE_INTF_WD)
  10225. #define BIT_SET_USB_SIE_INTF_WD(x, v) \
  10226. (BIT_CLEAR_USB_SIE_INTF_WD(x) | BIT_USB_SIE_INTF_WD(v))
  10227. #endif
  10228. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10229. /* 2 REG_PCIE_MIO_INTF (Offset 0x00E4) */
  10230. #define BIT_PCIE_MIO_EXIT_L1 BIT(19)
  10231. #define BIT_PCIE_MIO_EXT BIT(18)
  10232. #define BIT_PCIE_MIO_ACK BIT(17)
  10233. #endif
  10234. #if (HALMAC_8192F_SUPPORT)
  10235. /* 2 REG_PCIE_MIO_INTF (Offset 0x00E4) */
  10236. #define BIT_PCIE_MIO_RIO BIT(16)
  10237. #endif
  10238. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10239. HALMAC_8822C_SUPPORT)
  10240. /* 2 REG_PCIE_MIO_INTF (Offset 0x00E4) */
  10241. #define BIT_SHIFT_PCIE_MIO_ADDR_PAGE 16
  10242. #define BIT_MASK_PCIE_MIO_ADDR_PAGE 0x3
  10243. #define BIT_PCIE_MIO_ADDR_PAGE(x) \
  10244. (((x) & BIT_MASK_PCIE_MIO_ADDR_PAGE) << BIT_SHIFT_PCIE_MIO_ADDR_PAGE)
  10245. #define BITS_PCIE_MIO_ADDR_PAGE \
  10246. (BIT_MASK_PCIE_MIO_ADDR_PAGE << BIT_SHIFT_PCIE_MIO_ADDR_PAGE)
  10247. #define BIT_CLEAR_PCIE_MIO_ADDR_PAGE(x) ((x) & (~BITS_PCIE_MIO_ADDR_PAGE))
  10248. #define BIT_GET_PCIE_MIO_ADDR_PAGE(x) \
  10249. (((x) >> BIT_SHIFT_PCIE_MIO_ADDR_PAGE) & BIT_MASK_PCIE_MIO_ADDR_PAGE)
  10250. #define BIT_SET_PCIE_MIO_ADDR_PAGE(x, v) \
  10251. (BIT_CLEAR_PCIE_MIO_ADDR_PAGE(x) | BIT_PCIE_MIO_ADDR_PAGE(v))
  10252. #endif
  10253. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10254. /* 2 REG_PCIE_MIO_INTF (Offset 0x00E4) */
  10255. #define BIT_PCIE_MIO_IOREG BIT(16)
  10256. #endif
  10257. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10258. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10259. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10260. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10261. /* 2 REG_PCIE_MIO_INTF (Offset 0x00E4) */
  10262. #define BIT_PCIE_MIO_BYIOREG BIT(13)
  10263. #define BIT_PCIE_MIO_RE BIT(12)
  10264. #define BIT_SHIFT_PCIE_MIO_WE 8
  10265. #define BIT_MASK_PCIE_MIO_WE 0xf
  10266. #define BIT_PCIE_MIO_WE(x) \
  10267. (((x) & BIT_MASK_PCIE_MIO_WE) << BIT_SHIFT_PCIE_MIO_WE)
  10268. #define BITS_PCIE_MIO_WE (BIT_MASK_PCIE_MIO_WE << BIT_SHIFT_PCIE_MIO_WE)
  10269. #define BIT_CLEAR_PCIE_MIO_WE(x) ((x) & (~BITS_PCIE_MIO_WE))
  10270. #define BIT_GET_PCIE_MIO_WE(x) \
  10271. (((x) >> BIT_SHIFT_PCIE_MIO_WE) & BIT_MASK_PCIE_MIO_WE)
  10272. #define BIT_SET_PCIE_MIO_WE(x, v) \
  10273. (BIT_CLEAR_PCIE_MIO_WE(x) | BIT_PCIE_MIO_WE(v))
  10274. #define BIT_SHIFT_PCIE_MIO_ADDR 0
  10275. #define BIT_MASK_PCIE_MIO_ADDR 0xff
  10276. #define BIT_PCIE_MIO_ADDR(x) \
  10277. (((x) & BIT_MASK_PCIE_MIO_ADDR) << BIT_SHIFT_PCIE_MIO_ADDR)
  10278. #define BITS_PCIE_MIO_ADDR (BIT_MASK_PCIE_MIO_ADDR << BIT_SHIFT_PCIE_MIO_ADDR)
  10279. #define BIT_CLEAR_PCIE_MIO_ADDR(x) ((x) & (~BITS_PCIE_MIO_ADDR))
  10280. #define BIT_GET_PCIE_MIO_ADDR(x) \
  10281. (((x) >> BIT_SHIFT_PCIE_MIO_ADDR) & BIT_MASK_PCIE_MIO_ADDR)
  10282. #define BIT_SET_PCIE_MIO_ADDR(x, v) \
  10283. (BIT_CLEAR_PCIE_MIO_ADDR(x) | BIT_PCIE_MIO_ADDR(v))
  10284. /* 2 REG_PCIE_MIO_INTD (Offset 0x00E8) */
  10285. #define BIT_SHIFT_PCIE_MIO_DATA 0
  10286. #define BIT_MASK_PCIE_MIO_DATA 0xffffffffL
  10287. #define BIT_PCIE_MIO_DATA(x) \
  10288. (((x) & BIT_MASK_PCIE_MIO_DATA) << BIT_SHIFT_PCIE_MIO_DATA)
  10289. #define BITS_PCIE_MIO_DATA (BIT_MASK_PCIE_MIO_DATA << BIT_SHIFT_PCIE_MIO_DATA)
  10290. #define BIT_CLEAR_PCIE_MIO_DATA(x) ((x) & (~BITS_PCIE_MIO_DATA))
  10291. #define BIT_GET_PCIE_MIO_DATA(x) \
  10292. (((x) >> BIT_SHIFT_PCIE_MIO_DATA) & BIT_MASK_PCIE_MIO_DATA)
  10293. #define BIT_SET_PCIE_MIO_DATA(x, v) \
  10294. (BIT_CLEAR_PCIE_MIO_DATA(x) | BIT_PCIE_MIO_DATA(v))
  10295. #endif
  10296. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10297. /* 2 REG_HPON_FSM (Offset 0x00EC) */
  10298. #define BIT_SUSPEND_V1 BIT(31)
  10299. #define BIT_FSM_RESUME_V1 BIT(30)
  10300. #define BIT_HOST_RESUME_SYNC_V1 BIT(29)
  10301. #define BIT_CHIP_PDNB_V1 BIT(28)
  10302. #define BIT_SHIFT_FSM_SUSPEND_V1 25
  10303. #define BIT_MASK_FSM_SUSPEND_V1 0x7
  10304. #define BIT_FSM_SUSPEND_V1(x) \
  10305. (((x) & BIT_MASK_FSM_SUSPEND_V1) << BIT_SHIFT_FSM_SUSPEND_V1)
  10306. #define BITS_FSM_SUSPEND_V1 \
  10307. (BIT_MASK_FSM_SUSPEND_V1 << BIT_SHIFT_FSM_SUSPEND_V1)
  10308. #define BIT_CLEAR_FSM_SUSPEND_V1(x) ((x) & (~BITS_FSM_SUSPEND_V1))
  10309. #define BIT_GET_FSM_SUSPEND_V1(x) \
  10310. (((x) >> BIT_SHIFT_FSM_SUSPEND_V1) & BIT_MASK_FSM_SUSPEND_V1)
  10311. #define BIT_SET_FSM_SUSPEND_V1(x, v) \
  10312. (BIT_CLEAR_FSM_SUSPEND_V1(x) | BIT_FSM_SUSPEND_V1(v))
  10313. #endif
  10314. #if (HALMAC_8814B_SUPPORT)
  10315. /* 2 REG_WLRF1 (Offset 0x00EC) */
  10316. #define BIT_SHIFT_XTAL_SEL 25
  10317. #define BIT_MASK_XTAL_SEL 0x3
  10318. #define BIT_XTAL_SEL(x) (((x) & BIT_MASK_XTAL_SEL) << BIT_SHIFT_XTAL_SEL)
  10319. #define BITS_XTAL_SEL (BIT_MASK_XTAL_SEL << BIT_SHIFT_XTAL_SEL)
  10320. #define BIT_CLEAR_XTAL_SEL(x) ((x) & (~BITS_XTAL_SEL))
  10321. #define BIT_GET_XTAL_SEL(x) (((x) >> BIT_SHIFT_XTAL_SEL) & BIT_MASK_XTAL_SEL)
  10322. #define BIT_SET_XTAL_SEL(x, v) (BIT_CLEAR_XTAL_SEL(x) | BIT_XTAL_SEL(v))
  10323. #endif
  10324. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10325. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10326. /* 2 REG_WLRF1 (Offset 0x00EC) */
  10327. #define BIT_SHIFT_WLRF1_CTRL 24
  10328. #define BIT_MASK_WLRF1_CTRL 0xff
  10329. #define BIT_WLRF1_CTRL(x) (((x) & BIT_MASK_WLRF1_CTRL) << BIT_SHIFT_WLRF1_CTRL)
  10330. #define BITS_WLRF1_CTRL (BIT_MASK_WLRF1_CTRL << BIT_SHIFT_WLRF1_CTRL)
  10331. #define BIT_CLEAR_WLRF1_CTRL(x) ((x) & (~BITS_WLRF1_CTRL))
  10332. #define BIT_GET_WLRF1_CTRL(x) \
  10333. (((x) >> BIT_SHIFT_WLRF1_CTRL) & BIT_MASK_WLRF1_CTRL)
  10334. #define BIT_SET_WLRF1_CTRL(x, v) (BIT_CLEAR_WLRF1_CTRL(x) | BIT_WLRF1_CTRL(v))
  10335. #endif
  10336. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10337. /* 2 REG_HPON_FSM (Offset 0x00EC) */
  10338. #define BIT_PMC_ALD_V1 BIT(24)
  10339. #define BIT_SHIFT_HCI_SEL_1 22
  10340. #define BIT_MASK_HCI_SEL_1 0x3
  10341. #define BIT_HCI_SEL_1(x) (((x) & BIT_MASK_HCI_SEL_1) << BIT_SHIFT_HCI_SEL_1)
  10342. #define BITS_HCI_SEL_1 (BIT_MASK_HCI_SEL_1 << BIT_SHIFT_HCI_SEL_1)
  10343. #define BIT_CLEAR_HCI_SEL_1(x) ((x) & (~BITS_HCI_SEL_1))
  10344. #define BIT_GET_HCI_SEL_1(x) (((x) >> BIT_SHIFT_HCI_SEL_1) & BIT_MASK_HCI_SEL_1)
  10345. #define BIT_SET_HCI_SEL_1(x, v) (BIT_CLEAR_HCI_SEL_1(x) | BIT_HCI_SEL_1(v))
  10346. #define BIT_LOAD_DONE_V1 BIT(21)
  10347. #define BIT_CNT_MATCH BIT(20)
  10348. #define BIT_TIMEUP_V1 BIT(19)
  10349. #define BIT_SPS_12V_VLD BIT(18)
  10350. #define BIT_PCIERST_V1 BIT(17)
  10351. #define BIT_HOST_CLK_VLD BIT(16)
  10352. #endif
  10353. #if (HALMAC_8814B_SUPPORT)
  10354. /* 2 REG_WLRF1 (Offset 0x00EC) */
  10355. #define BIT_SHIFT_WLRF2_CTRL 16
  10356. #define BIT_MASK_WLRF2_CTRL 0xff
  10357. #define BIT_WLRF2_CTRL(x) (((x) & BIT_MASK_WLRF2_CTRL) << BIT_SHIFT_WLRF2_CTRL)
  10358. #define BITS_WLRF2_CTRL (BIT_MASK_WLRF2_CTRL << BIT_SHIFT_WLRF2_CTRL)
  10359. #define BIT_CLEAR_WLRF2_CTRL(x) ((x) & (~BITS_WLRF2_CTRL))
  10360. #define BIT_GET_WLRF2_CTRL(x) \
  10361. (((x) >> BIT_SHIFT_WLRF2_CTRL) & BIT_MASK_WLRF2_CTRL)
  10362. #define BIT_SET_WLRF2_CTRL(x, v) (BIT_CLEAR_WLRF2_CTRL(x) | BIT_WLRF2_CTRL(v))
  10363. #endif
  10364. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10365. /* 2 REG_HPON_FSM (Offset 0x00EC) */
  10366. #define BIT_PMC_WR_V1 BIT(15)
  10367. #define BIT_PMC_DATA_V1 BIT(14)
  10368. #define BIT_SHIFT_PMC_ADDR_V1 8
  10369. #define BIT_MASK_PMC_ADDR_V1 0x3f
  10370. #define BIT_PMC_ADDR_V1(x) \
  10371. (((x) & BIT_MASK_PMC_ADDR_V1) << BIT_SHIFT_PMC_ADDR_V1)
  10372. #define BITS_PMC_ADDR_V1 (BIT_MASK_PMC_ADDR_V1 << BIT_SHIFT_PMC_ADDR_V1)
  10373. #define BIT_CLEAR_PMC_ADDR_V1(x) ((x) & (~BITS_PMC_ADDR_V1))
  10374. #define BIT_GET_PMC_ADDR_V1(x) \
  10375. (((x) >> BIT_SHIFT_PMC_ADDR_V1) & BIT_MASK_PMC_ADDR_V1)
  10376. #define BIT_SET_PMC_ADDR_V1(x, v) \
  10377. (BIT_CLEAR_PMC_ADDR_V1(x) | BIT_PMC_ADDR_V1(v))
  10378. #endif
  10379. #if (HALMAC_8814B_SUPPORT)
  10380. /* 2 REG_WLRF1 (Offset 0x00EC) */
  10381. #define BIT_SHIFT_WLRF3_CTRL 8
  10382. #define BIT_MASK_WLRF3_CTRL 0xff
  10383. #define BIT_WLRF3_CTRL(x) (((x) & BIT_MASK_WLRF3_CTRL) << BIT_SHIFT_WLRF3_CTRL)
  10384. #define BITS_WLRF3_CTRL (BIT_MASK_WLRF3_CTRL << BIT_SHIFT_WLRF3_CTRL)
  10385. #define BIT_CLEAR_WLRF3_CTRL(x) ((x) & (~BITS_WLRF3_CTRL))
  10386. #define BIT_GET_WLRF3_CTRL(x) \
  10387. (((x) >> BIT_SHIFT_WLRF3_CTRL) & BIT_MASK_WLRF3_CTRL)
  10388. #define BIT_SET_WLRF3_CTRL(x, v) (BIT_CLEAR_WLRF3_CTRL(x) | BIT_WLRF3_CTRL(v))
  10389. #endif
  10390. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10391. /* 2 REG_HPON_FSM (Offset 0x00EC) */
  10392. #define BIT_PMC_COUNT_EN_V1 BIT(7)
  10393. #define BIT_SHIFT_FSM_STATE_V1 0
  10394. #define BIT_MASK_FSM_STATE_V1 0x7f
  10395. #define BIT_FSM_STATE_V1(x) \
  10396. (((x) & BIT_MASK_FSM_STATE_V1) << BIT_SHIFT_FSM_STATE_V1)
  10397. #define BITS_FSM_STATE_V1 (BIT_MASK_FSM_STATE_V1 << BIT_SHIFT_FSM_STATE_V1)
  10398. #define BIT_CLEAR_FSM_STATE_V1(x) ((x) & (~BITS_FSM_STATE_V1))
  10399. #define BIT_GET_FSM_STATE_V1(x) \
  10400. (((x) >> BIT_SHIFT_FSM_STATE_V1) & BIT_MASK_FSM_STATE_V1)
  10401. #define BIT_SET_FSM_STATE_V1(x, v) \
  10402. (BIT_CLEAR_FSM_STATE_V1(x) | BIT_FSM_STATE_V1(v))
  10403. #endif
  10404. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10405. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10406. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10407. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10408. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10409. #define BIT_SHIFT_TRP_ICFG 28
  10410. #define BIT_MASK_TRP_ICFG 0xf
  10411. #define BIT_TRP_ICFG(x) (((x) & BIT_MASK_TRP_ICFG) << BIT_SHIFT_TRP_ICFG)
  10412. #define BITS_TRP_ICFG (BIT_MASK_TRP_ICFG << BIT_SHIFT_TRP_ICFG)
  10413. #define BIT_CLEAR_TRP_ICFG(x) ((x) & (~BITS_TRP_ICFG))
  10414. #define BIT_GET_TRP_ICFG(x) (((x) >> BIT_SHIFT_TRP_ICFG) & BIT_MASK_TRP_ICFG)
  10415. #define BIT_SET_TRP_ICFG(x, v) (BIT_CLEAR_TRP_ICFG(x) | BIT_TRP_ICFG(v))
  10416. #endif
  10417. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10418. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10419. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10420. HALMAC_8881A_SUPPORT)
  10421. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10422. #define BIT_RF_TYPE_ID BIT(27)
  10423. #endif
  10424. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10425. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10426. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10427. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10428. #define BIT_BD_HCI_SEL BIT(26)
  10429. #endif
  10430. #if (HALMAC_8192F_SUPPORT)
  10431. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10432. #define BIT_LDO_VLD BIT(26)
  10433. #endif
  10434. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10435. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10436. #define BIT_SHIFT_BD_HCI_SEL_V1 26
  10437. #define BIT_MASK_BD_HCI_SEL_V1 0x3
  10438. #define BIT_BD_HCI_SEL_V1(x) \
  10439. (((x) & BIT_MASK_BD_HCI_SEL_V1) << BIT_SHIFT_BD_HCI_SEL_V1)
  10440. #define BITS_BD_HCI_SEL_V1 (BIT_MASK_BD_HCI_SEL_V1 << BIT_SHIFT_BD_HCI_SEL_V1)
  10441. #define BIT_CLEAR_BD_HCI_SEL_V1(x) ((x) & (~BITS_BD_HCI_SEL_V1))
  10442. #define BIT_GET_BD_HCI_SEL_V1(x) \
  10443. (((x) >> BIT_SHIFT_BD_HCI_SEL_V1) & BIT_MASK_BD_HCI_SEL_V1)
  10444. #define BIT_SET_BD_HCI_SEL_V1(x, v) \
  10445. (BIT_CLEAR_BD_HCI_SEL_V1(x) | BIT_BD_HCI_SEL_V1(v))
  10446. #endif
  10447. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10448. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10449. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10450. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10451. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10452. #define BIT_BD_PKG_SEL BIT(25)
  10453. #endif
  10454. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10455. HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10456. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  10457. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10458. #define BIT_SPSLDO_SEL BIT(24)
  10459. #endif
  10460. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  10461. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10462. #define BIT_INTERNAL_EXTERNAL_SWR BIT(24)
  10463. #endif
  10464. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10465. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10466. #define BIT_LDO_SPS_SEL BIT(24)
  10467. #endif
  10468. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10469. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10470. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10471. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10472. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10473. #define BIT_RTL_ID BIT(23)
  10474. #endif
  10475. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10476. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  10477. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  10478. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10479. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10480. #define BIT_PAD_HWPD_IDN BIT(22)
  10481. #endif
  10482. #if (HALMAC_8192F_SUPPORT)
  10483. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10484. #define BIT_DIS_WL BIT(22)
  10485. #endif
  10486. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10487. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10488. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10489. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10490. #define BIT_TESTMODE BIT(20)
  10491. #endif
  10492. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10493. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10494. #define BIT_SHIFT_PSC_TESTCFG 20
  10495. #define BIT_MASK_PSC_TESTCFG 0x3
  10496. #define BIT_PSC_TESTCFG(x) \
  10497. (((x) & BIT_MASK_PSC_TESTCFG) << BIT_SHIFT_PSC_TESTCFG)
  10498. #define BITS_PSC_TESTCFG (BIT_MASK_PSC_TESTCFG << BIT_SHIFT_PSC_TESTCFG)
  10499. #define BIT_CLEAR_PSC_TESTCFG(x) ((x) & (~BITS_PSC_TESTCFG))
  10500. #define BIT_GET_PSC_TESTCFG(x) \
  10501. (((x) >> BIT_SHIFT_PSC_TESTCFG) & BIT_MASK_PSC_TESTCFG)
  10502. #define BIT_SET_PSC_TESTCFG(x, v) \
  10503. (BIT_CLEAR_PSC_TESTCFG(x) | BIT_PSC_TESTCFG(v))
  10504. #endif
  10505. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10506. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10507. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10508. HALMAC_8881A_SUPPORT)
  10509. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10510. #define BIT_SHIFT_VENDOR_ID 16
  10511. #define BIT_MASK_VENDOR_ID 0xf
  10512. #define BIT_VENDOR_ID(x) (((x) & BIT_MASK_VENDOR_ID) << BIT_SHIFT_VENDOR_ID)
  10513. #define BITS_VENDOR_ID (BIT_MASK_VENDOR_ID << BIT_SHIFT_VENDOR_ID)
  10514. #define BIT_CLEAR_VENDOR_ID(x) ((x) & (~BITS_VENDOR_ID))
  10515. #define BIT_GET_VENDOR_ID(x) (((x) >> BIT_SHIFT_VENDOR_ID) & BIT_MASK_VENDOR_ID)
  10516. #define BIT_SET_VENDOR_ID(x, v) (BIT_CLEAR_VENDOR_ID(x) | BIT_VENDOR_ID(v))
  10517. #endif
  10518. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10519. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10520. #define BIT_SHIFT_CHIP_VER_V2 16
  10521. #define BIT_MASK_CHIP_VER_V2 0xf
  10522. #define BIT_CHIP_VER_V2(x) \
  10523. (((x) & BIT_MASK_CHIP_VER_V2) << BIT_SHIFT_CHIP_VER_V2)
  10524. #define BITS_CHIP_VER_V2 (BIT_MASK_CHIP_VER_V2 << BIT_SHIFT_CHIP_VER_V2)
  10525. #define BIT_CLEAR_CHIP_VER_V2(x) ((x) & (~BITS_CHIP_VER_V2))
  10526. #define BIT_GET_CHIP_VER_V2(x) \
  10527. (((x) >> BIT_SHIFT_CHIP_VER_V2) & BIT_MASK_CHIP_VER_V2)
  10528. #define BIT_SET_CHIP_VER_V2(x, v) \
  10529. (BIT_CLEAR_CHIP_VER_V2(x) | BIT_CHIP_VER_V2(v))
  10530. #endif
  10531. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10532. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10533. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10534. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10535. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10536. #define BIT_SHIFT_CHIP_VER 12
  10537. #define BIT_MASK_CHIP_VER 0xf
  10538. #define BIT_CHIP_VER(x) (((x) & BIT_MASK_CHIP_VER) << BIT_SHIFT_CHIP_VER)
  10539. #define BITS_CHIP_VER (BIT_MASK_CHIP_VER << BIT_SHIFT_CHIP_VER)
  10540. #define BIT_CLEAR_CHIP_VER(x) ((x) & (~BITS_CHIP_VER))
  10541. #define BIT_GET_CHIP_VER(x) (((x) >> BIT_SHIFT_CHIP_VER) & BIT_MASK_CHIP_VER)
  10542. #define BIT_SET_CHIP_VER(x, v) (BIT_CLEAR_CHIP_VER(x) | BIT_CHIP_VER(v))
  10543. #endif
  10544. #if (HALMAC_8192F_SUPPORT)
  10545. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10546. #define BIT_TST_MODE_SEL BIT(11)
  10547. #endif
  10548. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10549. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10550. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10551. #define BIT_BD_MAC3 BIT(11)
  10552. #endif
  10553. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10554. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10555. #define BIT_IC_MACPHY_MODE BIT(11)
  10556. #endif
  10557. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10558. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10559. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10560. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10561. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10562. #define BIT_BD_MAC1 BIT(10)
  10563. #define BIT_BD_MAC2 BIT(9)
  10564. #define BIT_SIC_IDLE BIT(8)
  10565. #endif
  10566. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10567. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  10568. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  10569. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10570. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10571. #define BIT_SW_OFFLOAD_EN BIT(7)
  10572. #endif
  10573. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10574. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10575. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10576. HALMAC_8881A_SUPPORT)
  10577. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10578. #define BIT_OCP_SHUTDN BIT(6)
  10579. #endif
  10580. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10581. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10582. #define BIT_OCP_SHUTDN_1 BIT(6)
  10583. #endif
  10584. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10585. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10586. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10587. HALMAC_8881A_SUPPORT)
  10588. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10589. #define BIT_V15_VLD BIT(5)
  10590. #endif
  10591. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10592. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10593. #define BIT_V12_VLD BIT(5)
  10594. #endif
  10595. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10596. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10597. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10598. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10599. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10600. #define BIT_PCIRSTB BIT(4)
  10601. #endif
  10602. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10603. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10604. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10605. HALMAC_8881A_SUPPORT)
  10606. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10607. #define BIT_PCLK_VLD BIT(3)
  10608. #endif
  10609. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10610. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10611. #define BIT_PCLK_VLD_1 BIT(3)
  10612. #endif
  10613. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10614. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10615. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10616. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10617. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10618. #define BIT_UCLK_VLD BIT(2)
  10619. #endif
  10620. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10621. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10622. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10623. HALMAC_8881A_SUPPORT)
  10624. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10625. #define BIT_ACLK_VLD BIT(1)
  10626. #endif
  10627. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10628. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10629. #define BIT_M200CLK_VLD_V1 BIT(1)
  10630. #endif
  10631. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10632. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10633. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10634. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10635. /* 2 REG_SYS_CFG1 (Offset 0x00F0) */
  10636. #define BIT_XCLK_VLD BIT(0)
  10637. #endif
  10638. #if (HALMAC_8192F_SUPPORT)
  10639. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10640. #define BIT_SYM_OSC32K_OUTSEL BIT(31)
  10641. #define BIT_BTGP_WAKE_BT_LOC_BIT0 BIT(31)
  10642. #define BIT_SHIFT_SYM_SEC_CLKSEL 30
  10643. #define BIT_MASK_SYM_SEC_CLKSEL 0x3
  10644. #define BIT_SYM_SEC_CLKSEL(x) \
  10645. (((x) & BIT_MASK_SYM_SEC_CLKSEL) << BIT_SHIFT_SYM_SEC_CLKSEL)
  10646. #define BITS_SYM_SEC_CLKSEL \
  10647. (BIT_MASK_SYM_SEC_CLKSEL << BIT_SHIFT_SYM_SEC_CLKSEL)
  10648. #define BIT_CLEAR_SYM_SEC_CLKSEL(x) ((x) & (~BITS_SYM_SEC_CLKSEL))
  10649. #define BIT_GET_SYM_SEC_CLKSEL(x) \
  10650. (((x) >> BIT_SHIFT_SYM_SEC_CLKSEL) & BIT_MASK_SYM_SEC_CLKSEL)
  10651. #define BIT_SET_SYM_SEC_CLKSEL(x, v) \
  10652. (BIT_CLEAR_SYM_SEC_CLKSEL(x) | BIT_SYM_SEC_CLKSEL(v))
  10653. #define BIT_SHIFT_WL_GPIO_SEL 30
  10654. #define BIT_MASK_WL_GPIO_SEL 0x3
  10655. #define BIT_WL_GPIO_SEL(x) \
  10656. (((x) & BIT_MASK_WL_GPIO_SEL) << BIT_SHIFT_WL_GPIO_SEL)
  10657. #define BITS_WL_GPIO_SEL (BIT_MASK_WL_GPIO_SEL << BIT_SHIFT_WL_GPIO_SEL)
  10658. #define BIT_CLEAR_WL_GPIO_SEL(x) ((x) & (~BITS_WL_GPIO_SEL))
  10659. #define BIT_GET_WL_GPIO_SEL(x) \
  10660. (((x) >> BIT_SHIFT_WL_GPIO_SEL) & BIT_MASK_WL_GPIO_SEL)
  10661. #define BIT_SET_WL_GPIO_SEL(x, v) \
  10662. (BIT_CLEAR_WL_GPIO_SEL(x) | BIT_WL_GPIO_SEL(v))
  10663. #define BIT_SHIFT_BT_MCM_CTRL_LOC 29
  10664. #define BIT_MASK_BT_MCM_CTRL_LOC 0x3
  10665. #define BIT_BT_MCM_CTRL_LOC(x) \
  10666. (((x) & BIT_MASK_BT_MCM_CTRL_LOC) << BIT_SHIFT_BT_MCM_CTRL_LOC)
  10667. #define BITS_BT_MCM_CTRL_LOC \
  10668. (BIT_MASK_BT_MCM_CTRL_LOC << BIT_SHIFT_BT_MCM_CTRL_LOC)
  10669. #define BIT_CLEAR_BT_MCM_CTRL_LOC(x) ((x) & (~BITS_BT_MCM_CTRL_LOC))
  10670. #define BIT_GET_BT_MCM_CTRL_LOC(x) \
  10671. (((x) >> BIT_SHIFT_BT_MCM_CTRL_LOC) & BIT_MASK_BT_MCM_CTRL_LOC)
  10672. #define BIT_SET_BT_MCM_CTRL_LOC(x, v) \
  10673. (BIT_CLEAR_BT_MCM_CTRL_LOC(x) | BIT_BT_MCM_CTRL_LOC(v))
  10674. #endif
  10675. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10676. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  10677. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10678. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  10679. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10680. #define BIT_SHIFT_RF_RL_ID 28
  10681. #define BIT_MASK_RF_RL_ID 0xf
  10682. #define BIT_RF_RL_ID(x) (((x) & BIT_MASK_RF_RL_ID) << BIT_SHIFT_RF_RL_ID)
  10683. #define BITS_RF_RL_ID (BIT_MASK_RF_RL_ID << BIT_SHIFT_RF_RL_ID)
  10684. #define BIT_CLEAR_RF_RL_ID(x) ((x) & (~BITS_RF_RL_ID))
  10685. #define BIT_GET_RF_RL_ID(x) (((x) >> BIT_SHIFT_RF_RL_ID) & BIT_MASK_RF_RL_ID)
  10686. #define BIT_SET_RF_RL_ID(x, v) (BIT_CLEAR_RF_RL_ID(x) | BIT_RF_RL_ID(v))
  10687. #endif
  10688. #if (HALMAC_8192F_SUPPORT)
  10689. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10690. #define BIT_SHIFT_SYM_MAC_CLKSEL 28
  10691. #define BIT_MASK_SYM_MAC_CLKSEL 0x3
  10692. #define BIT_SYM_MAC_CLKSEL(x) \
  10693. (((x) & BIT_MASK_SYM_MAC_CLKSEL) << BIT_SHIFT_SYM_MAC_CLKSEL)
  10694. #define BITS_SYM_MAC_CLKSEL \
  10695. (BIT_MASK_SYM_MAC_CLKSEL << BIT_SHIFT_SYM_MAC_CLKSEL)
  10696. #define BIT_CLEAR_SYM_MAC_CLKSEL(x) ((x) & (~BITS_SYM_MAC_CLKSEL))
  10697. #define BIT_GET_SYM_MAC_CLKSEL(x) \
  10698. (((x) >> BIT_SHIFT_SYM_MAC_CLKSEL) & BIT_MASK_SYM_MAC_CLKSEL)
  10699. #define BIT_SET_SYM_MAC_CLKSEL(x, v) \
  10700. (BIT_CLEAR_SYM_MAC_CLKSEL(x) | BIT_SYM_MAC_CLKSEL(v))
  10701. #define BIT_SHIFT_SW_DPDT_LOC 27
  10702. #define BIT_MASK_SW_DPDT_LOC 0x3
  10703. #define BIT_SW_DPDT_LOC(x) \
  10704. (((x) & BIT_MASK_SW_DPDT_LOC) << BIT_SHIFT_SW_DPDT_LOC)
  10705. #define BITS_SW_DPDT_LOC (BIT_MASK_SW_DPDT_LOC << BIT_SHIFT_SW_DPDT_LOC)
  10706. #define BIT_CLEAR_SW_DPDT_LOC(x) ((x) & (~BITS_SW_DPDT_LOC))
  10707. #define BIT_GET_SW_DPDT_LOC(x) \
  10708. (((x) >> BIT_SHIFT_SW_DPDT_LOC) & BIT_MASK_SW_DPDT_LOC)
  10709. #define BIT_SET_SW_DPDT_LOC(x, v) \
  10710. (BIT_CLEAR_SW_DPDT_LOC(x) | BIT_SW_DPDT_LOC(v))
  10711. #endif
  10712. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10713. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10714. #define BIT_U3_CLK_VLD BIT(27)
  10715. #endif
  10716. #if (HALMAC_8192F_SUPPORT)
  10717. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10718. #define BIT_WLGP_HW_DIS_LOC_BIT0 BIT(26)
  10719. #endif
  10720. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10721. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10722. #define BIT_PRST_VLD_V1 BIT(26)
  10723. #define BIT_PDN BIT(25)
  10724. #endif
  10725. #if (HALMAC_8192F_SUPPORT)
  10726. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10727. #define BIT_SHIFT_PKG_SEL 24
  10728. #define BIT_MASK_PKG_SEL 0x3
  10729. #define BIT_PKG_SEL(x) (((x) & BIT_MASK_PKG_SEL) << BIT_SHIFT_PKG_SEL)
  10730. #define BITS_PKG_SEL (BIT_MASK_PKG_SEL << BIT_SHIFT_PKG_SEL)
  10731. #define BIT_CLEAR_PKG_SEL(x) ((x) & (~BITS_PKG_SEL))
  10732. #define BIT_GET_PKG_SEL(x) (((x) >> BIT_SHIFT_PKG_SEL) & BIT_MASK_PKG_SEL)
  10733. #define BIT_SET_PKG_SEL(x, v) (BIT_CLEAR_PKG_SEL(x) | BIT_PKG_SEL(v))
  10734. #define BIT_SHIFT_SYM_OSC32K_RCAL 24
  10735. #define BIT_MASK_SYM_OSC32K_RCAL 0x3f
  10736. #define BIT_SYM_OSC32K_RCAL(x) \
  10737. (((x) & BIT_MASK_SYM_OSC32K_RCAL) << BIT_SHIFT_SYM_OSC32K_RCAL)
  10738. #define BITS_SYM_OSC32K_RCAL \
  10739. (BIT_MASK_SYM_OSC32K_RCAL << BIT_SHIFT_SYM_OSC32K_RCAL)
  10740. #define BIT_CLEAR_SYM_OSC32K_RCAL(x) ((x) & (~BITS_SYM_OSC32K_RCAL))
  10741. #define BIT_GET_SYM_OSC32K_RCAL(x) \
  10742. (((x) >> BIT_SHIFT_SYM_OSC32K_RCAL) & BIT_MASK_SYM_OSC32K_RCAL)
  10743. #define BIT_SET_SYM_OSC32K_RCAL(x, v) \
  10744. (BIT_CLEAR_SYM_OSC32K_RCAL(x) | BIT_SYM_OSC32K_RCAL(v))
  10745. #define BIT_SHIFT_SW_GPIO_B_PD 24
  10746. #define BIT_MASK_SW_GPIO_B_PD 0xff
  10747. #define BIT_SW_GPIO_B_PD(x) \
  10748. (((x) & BIT_MASK_SW_GPIO_B_PD) << BIT_SHIFT_SW_GPIO_B_PD)
  10749. #define BITS_SW_GPIO_B_PD (BIT_MASK_SW_GPIO_B_PD << BIT_SHIFT_SW_GPIO_B_PD)
  10750. #define BIT_CLEAR_SW_GPIO_B_PD(x) ((x) & (~BITS_SW_GPIO_B_PD))
  10751. #define BIT_GET_SW_GPIO_B_PD(x) \
  10752. (((x) >> BIT_SHIFT_SW_GPIO_B_PD) & BIT_MASK_SW_GPIO_B_PD)
  10753. #define BIT_SET_SW_GPIO_B_PD(x, v) \
  10754. (BIT_CLEAR_SW_GPIO_B_PD(x) | BIT_SW_GPIO_B_PD(v))
  10755. #define BIT_SHIFT_SW_GPIO_B_IN 24
  10756. #define BIT_MASK_SW_GPIO_B_IN 0xff
  10757. #define BIT_SW_GPIO_B_IN(x) \
  10758. (((x) & BIT_MASK_SW_GPIO_B_IN) << BIT_SHIFT_SW_GPIO_B_IN)
  10759. #define BITS_SW_GPIO_B_IN (BIT_MASK_SW_GPIO_B_IN << BIT_SHIFT_SW_GPIO_B_IN)
  10760. #define BIT_CLEAR_SW_GPIO_B_IN(x) ((x) & (~BITS_SW_GPIO_B_IN))
  10761. #define BIT_GET_SW_GPIO_B_IN(x) \
  10762. (((x) >> BIT_SHIFT_SW_GPIO_B_IN) & BIT_MASK_SW_GPIO_B_IN)
  10763. #define BIT_SET_SW_GPIO_B_IN(x, v) \
  10764. (BIT_CLEAR_SW_GPIO_B_IN(x) | BIT_SW_GPIO_B_IN(v))
  10765. #endif
  10766. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10767. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10768. #define BIT_OCP_SHUTDN_V1 BIT(24)
  10769. #endif
  10770. #if (HALMAC_8192F_SUPPORT)
  10771. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10772. #define BIT_SHIFT_ANT_SEL_01_LOC 23
  10773. #define BIT_MASK_ANT_SEL_01_LOC 0x7
  10774. #define BIT_ANT_SEL_01_LOC(x) \
  10775. (((x) & BIT_MASK_ANT_SEL_01_LOC) << BIT_SHIFT_ANT_SEL_01_LOC)
  10776. #define BITS_ANT_SEL_01_LOC \
  10777. (BIT_MASK_ANT_SEL_01_LOC << BIT_SHIFT_ANT_SEL_01_LOC)
  10778. #define BIT_CLEAR_ANT_SEL_01_LOC(x) ((x) & (~BITS_ANT_SEL_01_LOC))
  10779. #define BIT_GET_ANT_SEL_01_LOC(x) \
  10780. (((x) >> BIT_SHIFT_ANT_SEL_01_LOC) & BIT_MASK_ANT_SEL_01_LOC)
  10781. #define BIT_SET_ANT_SEL_01_LOC(x, v) \
  10782. (BIT_CLEAR_ANT_SEL_01_LOC(x) | BIT_ANT_SEL_01_LOC(v))
  10783. #define BIT_SHIFT_AUTOLOADABLE_AT_1FC 23
  10784. #define BIT_MASK_AUTOLOADABLE_AT_1FC 0x3f
  10785. #define BIT_AUTOLOADABLE_AT_1FC(x) \
  10786. (((x) & BIT_MASK_AUTOLOADABLE_AT_1FC) << BIT_SHIFT_AUTOLOADABLE_AT_1FC)
  10787. #define BITS_AUTOLOADABLE_AT_1FC \
  10788. (BIT_MASK_AUTOLOADABLE_AT_1FC << BIT_SHIFT_AUTOLOADABLE_AT_1FC)
  10789. #define BIT_CLEAR_AUTOLOADABLE_AT_1FC(x) ((x) & (~BITS_AUTOLOADABLE_AT_1FC))
  10790. #define BIT_GET_AUTOLOADABLE_AT_1FC(x) \
  10791. (((x) >> BIT_SHIFT_AUTOLOADABLE_AT_1FC) & BIT_MASK_AUTOLOADABLE_AT_1FC)
  10792. #define BIT_SET_AUTOLOADABLE_AT_1FC(x, v) \
  10793. (BIT_CLEAR_AUTOLOADABLE_AT_1FC(x) | BIT_AUTOLOADABLE_AT_1FC(v))
  10794. #endif
  10795. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10796. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10797. #define BIT_PCLK_VLD_V1 BIT(23)
  10798. #endif
  10799. #if (HALMAC_8192F_SUPPORT)
  10800. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10801. #define BIT_BT_DISN_EN_V1 BIT(22)
  10802. #endif
  10803. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10804. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10805. #define BIT_U2_CLK_VLD BIT(22)
  10806. #endif
  10807. #if (HALMAC_8192F_SUPPORT)
  10808. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10809. #define BIT_SHIFT_ANT_SEL_23_LOC 21
  10810. #define BIT_MASK_ANT_SEL_23_LOC 0x3
  10811. #define BIT_ANT_SEL_23_LOC(x) \
  10812. (((x) & BIT_MASK_ANT_SEL_23_LOC) << BIT_SHIFT_ANT_SEL_23_LOC)
  10813. #define BITS_ANT_SEL_23_LOC \
  10814. (BIT_MASK_ANT_SEL_23_LOC << BIT_SHIFT_ANT_SEL_23_LOC)
  10815. #define BIT_CLEAR_ANT_SEL_23_LOC(x) ((x) & (~BITS_ANT_SEL_23_LOC))
  10816. #define BIT_GET_ANT_SEL_23_LOC(x) \
  10817. (((x) >> BIT_SHIFT_ANT_SEL_23_LOC) & BIT_MASK_ANT_SEL_23_LOC)
  10818. #define BIT_SET_ANT_SEL_23_LOC(x, v) \
  10819. (BIT_CLEAR_ANT_SEL_23_LOC(x) | BIT_ANT_SEL_23_LOC(v))
  10820. #define BIT_BT_SUSN_LOC BIT(21)
  10821. #endif
  10822. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10823. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10824. #define BIT_PLL_CLK_VLD BIT(21)
  10825. #endif
  10826. #if (HALMAC_8192F_SUPPORT)
  10827. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10828. #define BIT_SHIFT_SW_ICFG 20
  10829. #define BIT_MASK_SW_ICFG 0xf
  10830. #define BIT_SW_ICFG(x) (((x) & BIT_MASK_SW_ICFG) << BIT_SHIFT_SW_ICFG)
  10831. #define BITS_SW_ICFG (BIT_MASK_SW_ICFG << BIT_SHIFT_SW_ICFG)
  10832. #define BIT_CLEAR_SW_ICFG(x) ((x) & (~BITS_SW_ICFG))
  10833. #define BIT_GET_SW_ICFG(x) (((x) >> BIT_SHIFT_SW_ICFG) & BIT_MASK_SW_ICFG)
  10834. #define BIT_SET_SW_ICFG(x, v) (BIT_CLEAR_SW_ICFG(x) | BIT_SW_ICFG(v))
  10835. #define BIT_SYM_CONF_BYTE_ENB BIT(20)
  10836. #define BIT_WLBB_RFE_LED1 BIT(20)
  10837. #endif
  10838. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10839. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10840. #define BIT_XCK_VLD BIT(20)
  10841. #endif
  10842. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  10843. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  10844. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  10845. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10846. #define BIT_HPHY_ICFG BIT(19)
  10847. #endif
  10848. #if (HALMAC_8192F_SUPPORT)
  10849. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10850. #define BIT_SHIFT_EXTCK32K_LOC 19
  10851. #define BIT_MASK_EXTCK32K_LOC 0x3
  10852. #define BIT_EXTCK32K_LOC(x) \
  10853. (((x) & BIT_MASK_EXTCK32K_LOC) << BIT_SHIFT_EXTCK32K_LOC)
  10854. #define BITS_EXTCK32K_LOC (BIT_MASK_EXTCK32K_LOC << BIT_SHIFT_EXTCK32K_LOC)
  10855. #define BIT_CLEAR_EXTCK32K_LOC(x) ((x) & (~BITS_EXTCK32K_LOC))
  10856. #define BIT_GET_EXTCK32K_LOC(x) \
  10857. (((x) >> BIT_SHIFT_EXTCK32K_LOC) & BIT_MASK_EXTCK32K_LOC)
  10858. #define BIT_SET_EXTCK32K_LOC(x, v) \
  10859. (BIT_CLEAR_EXTCK32K_LOC(x) | BIT_EXTCK32K_LOC(v))
  10860. #define BIT_WLGP_LED1_EN BIT(19)
  10861. #endif
  10862. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10863. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10864. #define BIT_CK200M_VLD BIT(19)
  10865. #endif
  10866. #if (HALMAC_8192F_SUPPORT)
  10867. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10868. #define BIT_BT_COEX_MBOX_LOC BIT(18)
  10869. #define BIT_WLGP_ANT23_EN BIT(18)
  10870. #endif
  10871. #if (HALMAC_8198F_SUPPORT)
  10872. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10873. #define BIT_HCI_SEL_EMBEDDED BIT(18)
  10874. #endif
  10875. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10876. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10877. #define BIT_BTEN_TRAP BIT(18)
  10878. #define BIT_PKG_EN_V1 BIT(17)
  10879. #endif
  10880. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  10881. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  10882. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  10883. HALMAC_8881A_SUPPORT)
  10884. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10885. #define BIT_SHIFT_SEL_0XC0 16
  10886. #define BIT_MASK_SEL_0XC0 0x3
  10887. #define BIT_SEL_0XC0(x) (((x) & BIT_MASK_SEL_0XC0) << BIT_SHIFT_SEL_0XC0)
  10888. #define BITS_SEL_0XC0 (BIT_MASK_SEL_0XC0 << BIT_SHIFT_SEL_0XC0)
  10889. #define BIT_CLEAR_SEL_0XC0(x) ((x) & (~BITS_SEL_0XC0))
  10890. #define BIT_GET_SEL_0XC0(x) (((x) >> BIT_SHIFT_SEL_0XC0) & BIT_MASK_SEL_0XC0)
  10891. #define BIT_SET_SEL_0XC0(x, v) (BIT_CLEAR_SEL_0XC0(x) | BIT_SEL_0XC0(v))
  10892. #endif
  10893. #if (HALMAC_8192F_SUPPORT)
  10894. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10895. #define BIT_SYM_MCUFWDL_DDMA_EN BIT(16)
  10896. #define BIT_SYM_SPIC_BOOT_ADDR_CMP BIT(16)
  10897. #define BIT_SHIFT_SYM_OSC32K_CLKGEN0 16
  10898. #define BIT_MASK_SYM_OSC32K_CLKGEN0 0xff
  10899. #define BIT_SYM_OSC32K_CLKGEN0(x) \
  10900. (((x) & BIT_MASK_SYM_OSC32K_CLKGEN0) << BIT_SHIFT_SYM_OSC32K_CLKGEN0)
  10901. #define BITS_SYM_OSC32K_CLKGEN0 \
  10902. (BIT_MASK_SYM_OSC32K_CLKGEN0 << BIT_SHIFT_SYM_OSC32K_CLKGEN0)
  10903. #define BIT_CLEAR_SYM_OSC32K_CLKGEN0(x) ((x) & (~BITS_SYM_OSC32K_CLKGEN0))
  10904. #define BIT_GET_SYM_OSC32K_CLKGEN0(x) \
  10905. (((x) >> BIT_SHIFT_SYM_OSC32K_CLKGEN0) & BIT_MASK_SYM_OSC32K_CLKGEN0)
  10906. #define BIT_SET_SYM_OSC32K_CLKGEN0(x, v) \
  10907. (BIT_CLEAR_SYM_OSC32K_CLKGEN0(x) | BIT_SYM_OSC32K_CLKGEN0(v))
  10908. #define BIT_SHIFT_CRC16_RESULT 16
  10909. #define BIT_MASK_CRC16_RESULT 0xffff
  10910. #define BIT_CRC16_RESULT(x) \
  10911. (((x) & BIT_MASK_CRC16_RESULT) << BIT_SHIFT_CRC16_RESULT)
  10912. #define BITS_CRC16_RESULT (BIT_MASK_CRC16_RESULT << BIT_SHIFT_CRC16_RESULT)
  10913. #define BIT_CLEAR_CRC16_RESULT(x) ((x) & (~BITS_CRC16_RESULT))
  10914. #define BIT_GET_CRC16_RESULT(x) \
  10915. (((x) >> BIT_SHIFT_CRC16_RESULT) & BIT_MASK_CRC16_RESULT)
  10916. #define BIT_SET_CRC16_RESULT(x, v) \
  10917. (BIT_CLEAR_CRC16_RESULT(x) | BIT_CRC16_RESULT(v))
  10918. #define BIT_SHIFT_BTGP_LEDIO_LOC 16
  10919. #define BIT_MASK_BTGP_LEDIO_LOC 0x3
  10920. #define BIT_BTGP_LEDIO_LOC(x) \
  10921. (((x) & BIT_MASK_BTGP_LEDIO_LOC) << BIT_SHIFT_BTGP_LEDIO_LOC)
  10922. #define BITS_BTGP_LEDIO_LOC \
  10923. (BIT_MASK_BTGP_LEDIO_LOC << BIT_SHIFT_BTGP_LEDIO_LOC)
  10924. #define BIT_CLEAR_BTGP_LEDIO_LOC(x) ((x) & (~BITS_BTGP_LEDIO_LOC))
  10925. #define BIT_GET_BTGP_LEDIO_LOC(x) \
  10926. (((x) >> BIT_SHIFT_BTGP_LEDIO_LOC) & BIT_MASK_BTGP_LEDIO_LOC)
  10927. #define BIT_SET_BTGP_LEDIO_LOC(x, v) \
  10928. (BIT_CLEAR_BTGP_LEDIO_LOC(x) | BIT_BTGP_LEDIO_LOC(v))
  10929. #define BIT_SHIFT_FEM_EN 16
  10930. #define BIT_MASK_FEM_EN 0x3
  10931. #define BIT_FEM_EN(x) (((x) & BIT_MASK_FEM_EN) << BIT_SHIFT_FEM_EN)
  10932. #define BITS_FEM_EN (BIT_MASK_FEM_EN << BIT_SHIFT_FEM_EN)
  10933. #define BIT_CLEAR_FEM_EN(x) ((x) & (~BITS_FEM_EN))
  10934. #define BIT_GET_FEM_EN(x) (((x) >> BIT_SHIFT_FEM_EN) & BIT_MASK_FEM_EN)
  10935. #define BIT_SET_FEM_EN(x, v) (BIT_CLEAR_FEM_EN(x) | BIT_FEM_EN(v))
  10936. #define BIT_SHIFT_SW_GPIO_B_PU 16
  10937. #define BIT_MASK_SW_GPIO_B_PU 0xff
  10938. #define BIT_SW_GPIO_B_PU(x) \
  10939. (((x) & BIT_MASK_SW_GPIO_B_PU) << BIT_SHIFT_SW_GPIO_B_PU)
  10940. #define BITS_SW_GPIO_B_PU (BIT_MASK_SW_GPIO_B_PU << BIT_SHIFT_SW_GPIO_B_PU)
  10941. #define BIT_CLEAR_SW_GPIO_B_PU(x) ((x) & (~BITS_SW_GPIO_B_PU))
  10942. #define BIT_GET_SW_GPIO_B_PU(x) \
  10943. (((x) >> BIT_SHIFT_SW_GPIO_B_PU) & BIT_MASK_SW_GPIO_B_PU)
  10944. #define BIT_SET_SW_GPIO_B_PU(x, v) \
  10945. (BIT_CLEAR_SW_GPIO_B_PU(x) | BIT_SW_GPIO_B_PU(v))
  10946. #define BIT_SHIFT_SYM_INT_PERIODIC 16
  10947. #define BIT_MASK_SYM_INT_PERIODIC 0x3ff
  10948. #define BIT_SYM_INT_PERIODIC(x) \
  10949. (((x) & BIT_MASK_SYM_INT_PERIODIC) << BIT_SHIFT_SYM_INT_PERIODIC)
  10950. #define BITS_SYM_INT_PERIODIC \
  10951. (BIT_MASK_SYM_INT_PERIODIC << BIT_SHIFT_SYM_INT_PERIODIC)
  10952. #define BIT_CLEAR_SYM_INT_PERIODIC(x) ((x) & (~BITS_SYM_INT_PERIODIC))
  10953. #define BIT_GET_SYM_INT_PERIODIC(x) \
  10954. (((x) >> BIT_SHIFT_SYM_INT_PERIODIC) & BIT_MASK_SYM_INT_PERIODIC)
  10955. #define BIT_SET_SYM_INT_PERIODIC(x, v) \
  10956. (BIT_CLEAR_SYM_INT_PERIODIC(x) | BIT_SYM_INT_PERIODIC(v))
  10957. #endif
  10958. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10959. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10960. #define BIT_TRAP_LDO_SPS_V1 BIT(16)
  10961. #endif
  10962. #if (HALMAC_8192F_SUPPORT)
  10963. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10964. #define BIT_IDV_DPDTSEL_P BIT(15)
  10965. #endif
  10966. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10967. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10968. #define BIT_MACRDY BIT(15)
  10969. #endif
  10970. #if (HALMAC_8192F_SUPPORT)
  10971. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10972. #define BIT_SHIFT_LTE_COEX_UART_LOC 14
  10973. #define BIT_MASK_LTE_COEX_UART_LOC 0x3
  10974. #define BIT_LTE_COEX_UART_LOC(x) \
  10975. (((x) & BIT_MASK_LTE_COEX_UART_LOC) << BIT_SHIFT_LTE_COEX_UART_LOC)
  10976. #define BITS_LTE_COEX_UART_LOC \
  10977. (BIT_MASK_LTE_COEX_UART_LOC << BIT_SHIFT_LTE_COEX_UART_LOC)
  10978. #define BIT_CLEAR_LTE_COEX_UART_LOC(x) ((x) & (~BITS_LTE_COEX_UART_LOC))
  10979. #define BIT_GET_LTE_COEX_UART_LOC(x) \
  10980. (((x) >> BIT_SHIFT_LTE_COEX_UART_LOC) & BIT_MASK_LTE_COEX_UART_LOC)
  10981. #define BIT_SET_LTE_COEX_UART_LOC(x, v) \
  10982. (BIT_CLEAR_LTE_COEX_UART_LOC(x) | BIT_LTE_COEX_UART_LOC(v))
  10983. #define BIT_IDV_DPDTSEL_N BIT(14)
  10984. #endif
  10985. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  10986. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10987. #define BIT_12V_VLD BIT(14)
  10988. #define BIT_U3PHY_RST BIT(13)
  10989. #endif
  10990. #if (HALMAC_8192F_SUPPORT)
  10991. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  10992. #define BIT_SHIFT_SYM_LDOA12V_WT 12
  10993. #define BIT_MASK_SYM_LDOA12V_WT 0x3
  10994. #define BIT_SYM_LDOA12V_WT(x) \
  10995. (((x) & BIT_MASK_SYM_LDOA12V_WT) << BIT_SHIFT_SYM_LDOA12V_WT)
  10996. #define BITS_SYM_LDOA12V_WT \
  10997. (BIT_MASK_SYM_LDOA12V_WT << BIT_SHIFT_SYM_LDOA12V_WT)
  10998. #define BIT_CLEAR_SYM_LDOA12V_WT(x) ((x) & (~BITS_SYM_LDOA12V_WT))
  10999. #define BIT_GET_SYM_LDOA12V_WT(x) \
  11000. (((x) >> BIT_SHIFT_SYM_LDOA12V_WT) & BIT_MASK_SYM_LDOA12V_WT)
  11001. #define BIT_SET_SYM_LDOA12V_WT(x, v) \
  11002. (BIT_CLEAR_SYM_LDOA12V_WT(x) | BIT_SYM_LDOA12V_WT(v))
  11003. #define BIT_SHIFT_SYM_OSC32K_TEMP_COMP 12
  11004. #define BIT_MASK_SYM_OSC32K_TEMP_COMP 0xf
  11005. #define BIT_SYM_OSC32K_TEMP_COMP(x) \
  11006. (((x) & BIT_MASK_SYM_OSC32K_TEMP_COMP) \
  11007. << BIT_SHIFT_SYM_OSC32K_TEMP_COMP)
  11008. #define BITS_SYM_OSC32K_TEMP_COMP \
  11009. (BIT_MASK_SYM_OSC32K_TEMP_COMP << BIT_SHIFT_SYM_OSC32K_TEMP_COMP)
  11010. #define BIT_CLEAR_SYM_OSC32K_TEMP_COMP(x) ((x) & (~BITS_SYM_OSC32K_TEMP_COMP))
  11011. #define BIT_GET_SYM_OSC32K_TEMP_COMP(x) \
  11012. (((x) >> BIT_SHIFT_SYM_OSC32K_TEMP_COMP) & \
  11013. BIT_MASK_SYM_OSC32K_TEMP_COMP)
  11014. #define BIT_SET_SYM_OSC32K_TEMP_COMP(x, v) \
  11015. (BIT_CLEAR_SYM_OSC32K_TEMP_COMP(x) | BIT_SYM_OSC32K_TEMP_COMP(v))
  11016. #define BIT_SHIFT_LTE_3W_LOC 12
  11017. #define BIT_MASK_LTE_3W_LOC 0x3
  11018. #define BIT_LTE_3W_LOC(x) (((x) & BIT_MASK_LTE_3W_LOC) << BIT_SHIFT_LTE_3W_LOC)
  11019. #define BITS_LTE_3W_LOC (BIT_MASK_LTE_3W_LOC << BIT_SHIFT_LTE_3W_LOC)
  11020. #define BIT_CLEAR_LTE_3W_LOC(x) ((x) & (~BITS_LTE_3W_LOC))
  11021. #define BIT_GET_LTE_3W_LOC(x) \
  11022. (((x) >> BIT_SHIFT_LTE_3W_LOC) & BIT_MASK_LTE_3W_LOC)
  11023. #define BIT_SET_LTE_3W_LOC(x, v) (BIT_CLEAR_LTE_3W_LOC(x) | BIT_LTE_3W_LOC(v))
  11024. #define BIT_SHIFT_HW_EXTWOL_LOC 12
  11025. #define BIT_MASK_HW_EXTWOL_LOC 0x3
  11026. #define BIT_HW_EXTWOL_LOC(x) \
  11027. (((x) & BIT_MASK_HW_EXTWOL_LOC) << BIT_SHIFT_HW_EXTWOL_LOC)
  11028. #define BITS_HW_EXTWOL_LOC (BIT_MASK_HW_EXTWOL_LOC << BIT_SHIFT_HW_EXTWOL_LOC)
  11029. #define BIT_CLEAR_HW_EXTWOL_LOC(x) ((x) & (~BITS_HW_EXTWOL_LOC))
  11030. #define BIT_GET_HW_EXTWOL_LOC(x) \
  11031. (((x) >> BIT_SHIFT_HW_EXTWOL_LOC) & BIT_MASK_HW_EXTWOL_LOC)
  11032. #define BIT_SET_HW_EXTWOL_LOC(x, v) \
  11033. (BIT_CLEAR_HW_EXTWOL_LOC(x) | BIT_HW_EXTWOL_LOC(v))
  11034. #endif
  11035. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11036. HALMAC_8822C_SUPPORT)
  11037. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11038. #define BIT_SHIFT_HCI_SEL_V4 12
  11039. #define BIT_MASK_HCI_SEL_V4 0x3
  11040. #define BIT_HCI_SEL_V4(x) (((x) & BIT_MASK_HCI_SEL_V4) << BIT_SHIFT_HCI_SEL_V4)
  11041. #define BITS_HCI_SEL_V4 (BIT_MASK_HCI_SEL_V4 << BIT_SHIFT_HCI_SEL_V4)
  11042. #define BIT_CLEAR_HCI_SEL_V4(x) ((x) & (~BITS_HCI_SEL_V4))
  11043. #define BIT_GET_HCI_SEL_V4(x) \
  11044. (((x) >> BIT_SHIFT_HCI_SEL_V4) & BIT_MASK_HCI_SEL_V4)
  11045. #define BIT_SET_HCI_SEL_V4(x, v) (BIT_CLEAR_HCI_SEL_V4(x) | BIT_HCI_SEL_V4(v))
  11046. #endif
  11047. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11048. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11049. #define BIT_USB2_SEL_V1 BIT(12)
  11050. #endif
  11051. #if (HALMAC_8822B_SUPPORT)
  11052. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11053. #define BIT_SHIFT_HCI_SEL_V3 12
  11054. #define BIT_MASK_HCI_SEL_V3 0x7
  11055. #define BIT_HCI_SEL_V3(x) (((x) & BIT_MASK_HCI_SEL_V3) << BIT_SHIFT_HCI_SEL_V3)
  11056. #define BITS_HCI_SEL_V3 (BIT_MASK_HCI_SEL_V3 << BIT_SHIFT_HCI_SEL_V3)
  11057. #define BIT_CLEAR_HCI_SEL_V3(x) ((x) & (~BITS_HCI_SEL_V3))
  11058. #define BIT_GET_HCI_SEL_V3(x) \
  11059. (((x) >> BIT_SHIFT_HCI_SEL_V3) & BIT_MASK_HCI_SEL_V3)
  11060. #define BIT_SET_HCI_SEL_V3(x, v) (BIT_CLEAR_HCI_SEL_V3(x) | BIT_HCI_SEL_V3(v))
  11061. #endif
  11062. #if (HALMAC_8192F_SUPPORT)
  11063. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11064. #define BIT_SIC_LOC BIT(11)
  11065. #endif
  11066. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11067. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11068. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11069. HALMAC_8881A_SUPPORT)
  11070. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11071. #define BIT_USB_OPERATION_MODE BIT(10)
  11072. #endif
  11073. #if (HALMAC_8192F_SUPPORT)
  11074. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11075. #define BIT_SHIFT_BTGP_WAKE_LOC 10
  11076. #define BIT_MASK_BTGP_WAKE_LOC 0x3
  11077. #define BIT_BTGP_WAKE_LOC(x) \
  11078. (((x) & BIT_MASK_BTGP_WAKE_LOC) << BIT_SHIFT_BTGP_WAKE_LOC)
  11079. #define BITS_BTGP_WAKE_LOC (BIT_MASK_BTGP_WAKE_LOC << BIT_SHIFT_BTGP_WAKE_LOC)
  11080. #define BIT_CLEAR_BTGP_WAKE_LOC(x) ((x) & (~BITS_BTGP_WAKE_LOC))
  11081. #define BIT_GET_BTGP_WAKE_LOC(x) \
  11082. (((x) >> BIT_SHIFT_BTGP_WAKE_LOC) & BIT_MASK_BTGP_WAKE_LOC)
  11083. #define BIT_SET_BTGP_WAKE_LOC(x, v) \
  11084. (BIT_CLEAR_BTGP_WAKE_LOC(x) | BIT_BTGP_WAKE_LOC(v))
  11085. #endif
  11086. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11087. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11088. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11089. HALMAC_8881A_SUPPORT)
  11090. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11091. #define BIT_BT_PDN BIT(9)
  11092. #endif
  11093. #if (HALMAC_8192F_SUPPORT)
  11094. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11095. #define BIT_SHIFT_WLMAC_DBG_LOC 9
  11096. #define BIT_MASK_WLMAC_DBG_LOC 0x3
  11097. #define BIT_WLMAC_DBG_LOC(x) \
  11098. (((x) & BIT_MASK_WLMAC_DBG_LOC) << BIT_SHIFT_WLMAC_DBG_LOC)
  11099. #define BITS_WLMAC_DBG_LOC (BIT_MASK_WLMAC_DBG_LOC << BIT_SHIFT_WLMAC_DBG_LOC)
  11100. #define BIT_CLEAR_WLMAC_DBG_LOC(x) ((x) & (~BITS_WLMAC_DBG_LOC))
  11101. #define BIT_GET_WLMAC_DBG_LOC(x) \
  11102. (((x) >> BIT_SHIFT_WLMAC_DBG_LOC) & BIT_MASK_WLMAC_DBG_LOC)
  11103. #define BIT_SET_WLMAC_DBG_LOC(x, v) \
  11104. (BIT_CLEAR_WLMAC_DBG_LOC(x) | BIT_WLMAC_DBG_LOC(v))
  11105. #endif
  11106. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11107. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11108. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11109. HALMAC_8881A_SUPPORT)
  11110. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11111. #define BIT_AUTO_WLPON BIT(8)
  11112. #endif
  11113. #if (HALMAC_8192F_SUPPORT)
  11114. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11115. #define BIT_SYM_MCU_CLK_DIV2 BIT(8)
  11116. #define BIT_SHIFT_SYM_OSC32K_LDO_V18ADJ 8
  11117. #define BIT_MASK_SYM_OSC32K_LDO_V18ADJ 0xf
  11118. #define BIT_SYM_OSC32K_LDO_V18ADJ(x) \
  11119. (((x) & BIT_MASK_SYM_OSC32K_LDO_V18ADJ) \
  11120. << BIT_SHIFT_SYM_OSC32K_LDO_V18ADJ)
  11121. #define BITS_SYM_OSC32K_LDO_V18ADJ \
  11122. (BIT_MASK_SYM_OSC32K_LDO_V18ADJ << BIT_SHIFT_SYM_OSC32K_LDO_V18ADJ)
  11123. #define BIT_CLEAR_SYM_OSC32K_LDO_V18ADJ(x) ((x) & (~BITS_SYM_OSC32K_LDO_V18ADJ))
  11124. #define BIT_GET_SYM_OSC32K_LDO_V18ADJ(x) \
  11125. (((x) >> BIT_SHIFT_SYM_OSC32K_LDO_V18ADJ) & \
  11126. BIT_MASK_SYM_OSC32K_LDO_V18ADJ)
  11127. #define BIT_SET_SYM_OSC32K_LDO_V18ADJ(x, v) \
  11128. (BIT_CLEAR_SYM_OSC32K_LDO_V18ADJ(x) | BIT_SYM_OSC32K_LDO_V18ADJ(v))
  11129. #define BIT_SHIFT_HOST_WAKE_WL_LOC 8
  11130. #define BIT_MASK_HOST_WAKE_WL_LOC 0x3
  11131. #define BIT_HOST_WAKE_WL_LOC(x) \
  11132. (((x) & BIT_MASK_HOST_WAKE_WL_LOC) << BIT_SHIFT_HOST_WAKE_WL_LOC)
  11133. #define BITS_HOST_WAKE_WL_LOC \
  11134. (BIT_MASK_HOST_WAKE_WL_LOC << BIT_SHIFT_HOST_WAKE_WL_LOC)
  11135. #define BIT_CLEAR_HOST_WAKE_WL_LOC(x) ((x) & (~BITS_HOST_WAKE_WL_LOC))
  11136. #define BIT_GET_HOST_WAKE_WL_LOC(x) \
  11137. (((x) >> BIT_SHIFT_HOST_WAKE_WL_LOC) & BIT_MASK_HOST_WAKE_WL_LOC)
  11138. #define BIT_SET_HOST_WAKE_WL_LOC(x, v) \
  11139. (BIT_CLEAR_HOST_WAKE_WL_LOC(x) | BIT_HOST_WAKE_WL_LOC(v))
  11140. #define BIT_SHIFT_SW_GPIO_B_OE2 8
  11141. #define BIT_MASK_SW_GPIO_B_OE2 0xff
  11142. #define BIT_SW_GPIO_B_OE2(x) \
  11143. (((x) & BIT_MASK_SW_GPIO_B_OE2) << BIT_SHIFT_SW_GPIO_B_OE2)
  11144. #define BITS_SW_GPIO_B_OE2 (BIT_MASK_SW_GPIO_B_OE2 << BIT_SHIFT_SW_GPIO_B_OE2)
  11145. #define BIT_CLEAR_SW_GPIO_B_OE2(x) ((x) & (~BITS_SW_GPIO_B_OE2))
  11146. #define BIT_GET_SW_GPIO_B_OE2(x) \
  11147. (((x) >> BIT_SHIFT_SW_GPIO_B_OE2) & BIT_MASK_SW_GPIO_B_OE2)
  11148. #define BIT_SET_SW_GPIO_B_OE2(x, v) \
  11149. (BIT_CLEAR_SW_GPIO_B_OE2(x) | BIT_SW_GPIO_B_OE2(v))
  11150. #endif
  11151. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11152. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11153. #define BIT_SHIFT_TRAP_ICFG 8
  11154. #define BIT_MASK_TRAP_ICFG 0xf
  11155. #define BIT_TRAP_ICFG(x) (((x) & BIT_MASK_TRAP_ICFG) << BIT_SHIFT_TRAP_ICFG)
  11156. #define BITS_TRAP_ICFG (BIT_MASK_TRAP_ICFG << BIT_SHIFT_TRAP_ICFG)
  11157. #define BIT_CLEAR_TRAP_ICFG(x) ((x) & (~BITS_TRAP_ICFG))
  11158. #define BIT_GET_TRAP_ICFG(x) (((x) >> BIT_SHIFT_TRAP_ICFG) & BIT_MASK_TRAP_ICFG)
  11159. #define BIT_SET_TRAP_ICFG(x, v) (BIT_CLEAR_TRAP_ICFG(x) | BIT_TRAP_ICFG(v))
  11160. #endif
  11161. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11162. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11163. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11164. HALMAC_8881A_SUPPORT)
  11165. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11166. #define BIT_WL_MODE BIT(7)
  11167. #endif
  11168. #if (HALMAC_8192F_SUPPORT)
  11169. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11170. #define BIT_SPI_FLASH_LOC BIT(7)
  11171. #define BIT_SHIFT_WLPHY_DBG_LOC 7
  11172. #define BIT_MASK_WLPHY_DBG_LOC 0x3
  11173. #define BIT_WLPHY_DBG_LOC(x) \
  11174. (((x) & BIT_MASK_WLPHY_DBG_LOC) << BIT_SHIFT_WLPHY_DBG_LOC)
  11175. #define BITS_WLPHY_DBG_LOC (BIT_MASK_WLPHY_DBG_LOC << BIT_SHIFT_WLPHY_DBG_LOC)
  11176. #define BIT_CLEAR_WLPHY_DBG_LOC(x) ((x) & (~BITS_WLPHY_DBG_LOC))
  11177. #define BIT_GET_WLPHY_DBG_LOC(x) \
  11178. (((x) >> BIT_SHIFT_WLPHY_DBG_LOC) & BIT_MASK_WLPHY_DBG_LOC)
  11179. #define BIT_SET_WLPHY_DBG_LOC(x, v) \
  11180. (BIT_CLEAR_WLPHY_DBG_LOC(x) | BIT_WLPHY_DBG_LOC(v))
  11181. #endif
  11182. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11183. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11184. #define BIT_WLAN_ID BIT(7)
  11185. #endif
  11186. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11187. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11188. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11189. HALMAC_8881A_SUPPORT)
  11190. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11191. #define BIT_PKG_SEL_HCI BIT(6)
  11192. #endif
  11193. #if (HALMAC_8192F_SUPPORT)
  11194. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11195. #define BIT_SHIFT_SYM_OSC32K_COMP_LOAD_CUR 6
  11196. #define BIT_MASK_SYM_OSC32K_COMP_LOAD_CUR 0x3
  11197. #define BIT_SYM_OSC32K_COMP_LOAD_CUR(x) \
  11198. (((x) & BIT_MASK_SYM_OSC32K_COMP_LOAD_CUR) \
  11199. << BIT_SHIFT_SYM_OSC32K_COMP_LOAD_CUR)
  11200. #define BITS_SYM_OSC32K_COMP_LOAD_CUR \
  11201. (BIT_MASK_SYM_OSC32K_COMP_LOAD_CUR \
  11202. << BIT_SHIFT_SYM_OSC32K_COMP_LOAD_CUR)
  11203. #define BIT_CLEAR_SYM_OSC32K_COMP_LOAD_CUR(x) \
  11204. ((x) & (~BITS_SYM_OSC32K_COMP_LOAD_CUR))
  11205. #define BIT_GET_SYM_OSC32K_COMP_LOAD_CUR(x) \
  11206. (((x) >> BIT_SHIFT_SYM_OSC32K_COMP_LOAD_CUR) & \
  11207. BIT_MASK_SYM_OSC32K_COMP_LOAD_CUR)
  11208. #define BIT_SET_SYM_OSC32K_COMP_LOAD_CUR(x, v) \
  11209. (BIT_CLEAR_SYM_OSC32K_COMP_LOAD_CUR(x) | \
  11210. BIT_SYM_OSC32K_COMP_LOAD_CUR(v))
  11211. #define BIT_WLGP_HW_DIS_LOC_BIT1 BIT(6)
  11212. #define BIT_XTAL_CKOUT_LOC BIT(6)
  11213. #endif
  11214. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11215. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11216. #define BIT_ALDN BIT(6)
  11217. #endif
  11218. #if (HALMAC_8192F_SUPPORT)
  11219. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11220. #define BIT_XTAL_CLKREQ_EN BIT(5)
  11221. #endif
  11222. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11223. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11224. #define BIT_BTCOEX_CMDEN BIT(5)
  11225. #endif
  11226. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11227. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  11228. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11229. #define BIT_SHIFT_HCI_SEL 4
  11230. #define BIT_MASK_HCI_SEL 0x3
  11231. #define BIT_HCI_SEL(x) (((x) & BIT_MASK_HCI_SEL) << BIT_SHIFT_HCI_SEL)
  11232. #define BITS_HCI_SEL (BIT_MASK_HCI_SEL << BIT_SHIFT_HCI_SEL)
  11233. #define BIT_CLEAR_HCI_SEL(x) ((x) & (~BITS_HCI_SEL))
  11234. #define BIT_GET_HCI_SEL(x) (((x) >> BIT_SHIFT_HCI_SEL) & BIT_MASK_HCI_SEL)
  11235. #define BIT_SET_HCI_SEL(x, v) (BIT_CLEAR_HCI_SEL(x) | BIT_HCI_SEL(v))
  11236. #endif
  11237. #if (HALMAC_8192F_SUPPORT)
  11238. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11239. #define BIT_SYM_BOOT_SEL BIT(4)
  11240. #define BIT_SHIFT_SYM_OSC32K_COMP_LATCH_CUR 4
  11241. #define BIT_MASK_SYM_OSC32K_COMP_LATCH_CUR 0x3
  11242. #define BIT_SYM_OSC32K_COMP_LATCH_CUR(x) \
  11243. (((x) & BIT_MASK_SYM_OSC32K_COMP_LATCH_CUR) \
  11244. << BIT_SHIFT_SYM_OSC32K_COMP_LATCH_CUR)
  11245. #define BITS_SYM_OSC32K_COMP_LATCH_CUR \
  11246. (BIT_MASK_SYM_OSC32K_COMP_LATCH_CUR \
  11247. << BIT_SHIFT_SYM_OSC32K_COMP_LATCH_CUR)
  11248. #define BIT_CLEAR_SYM_OSC32K_COMP_LATCH_CUR(x) \
  11249. ((x) & (~BITS_SYM_OSC32K_COMP_LATCH_CUR))
  11250. #define BIT_GET_SYM_OSC32K_COMP_LATCH_CUR(x) \
  11251. (((x) >> BIT_SHIFT_SYM_OSC32K_COMP_LATCH_CUR) & \
  11252. BIT_MASK_SYM_OSC32K_COMP_LATCH_CUR)
  11253. #define BIT_SET_SYM_OSC32K_COMP_LATCH_CUR(x, v) \
  11254. (BIT_CLEAR_SYM_OSC32K_COMP_LATCH_CUR(x) | \
  11255. BIT_SYM_OSC32K_COMP_LATCH_CUR(v))
  11256. #define BIT_SHIFT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY 4
  11257. #define BIT_MASK_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY 0x3ff
  11258. #define BIT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(x) \
  11259. (((x) & BIT_MASK_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY) \
  11260. << BIT_SHIFT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY)
  11261. #define BITS_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY \
  11262. (BIT_MASK_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY \
  11263. << BIT_SHIFT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY)
  11264. #define BIT_CLEAR_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(x) \
  11265. ((x) & (~BITS_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY))
  11266. #define BIT_GET_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(x) \
  11267. (((x) >> BIT_SHIFT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY) & \
  11268. BIT_MASK_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY)
  11269. #define BIT_SET_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(x, v) \
  11270. (BIT_CLEAR_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(x) | \
  11271. BIT_CRC16_CHECK_MAXIMUM_ADDRESS_BOUNDARY(v))
  11272. #define BIT_HOST_WAKE_WL_EN BIT(4)
  11273. #define BIT_SHIFT_XTAL_CLKREQ_LOC 4
  11274. #define BIT_MASK_XTAL_CLKREQ_LOC 0x3
  11275. #define BIT_XTAL_CLKREQ_LOC(x) \
  11276. (((x) & BIT_MASK_XTAL_CLKREQ_LOC) << BIT_SHIFT_XTAL_CLKREQ_LOC)
  11277. #define BITS_XTAL_CLKREQ_LOC \
  11278. (BIT_MASK_XTAL_CLKREQ_LOC << BIT_SHIFT_XTAL_CLKREQ_LOC)
  11279. #define BIT_CLEAR_XTAL_CLKREQ_LOC(x) ((x) & (~BITS_XTAL_CLKREQ_LOC))
  11280. #define BIT_GET_XTAL_CLKREQ_LOC(x) \
  11281. (((x) >> BIT_SHIFT_XTAL_CLKREQ_LOC) & BIT_MASK_XTAL_CLKREQ_LOC)
  11282. #define BIT_SET_XTAL_CLKREQ_LOC(x, v) \
  11283. (BIT_CLEAR_XTAL_CLKREQ_LOC(x) | BIT_XTAL_CLKREQ_LOC(v))
  11284. #endif
  11285. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11286. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11287. #define BIT_BT_EN BIT(4)
  11288. #endif
  11289. #if (HALMAC_8192F_SUPPORT)
  11290. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11291. #define BIT_BTGP_MCM_UART_EN BIT(3)
  11292. #define BIT_WLGP_UART_LOC BIT(3)
  11293. #endif
  11294. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11295. HALMAC_8822C_SUPPORT)
  11296. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11297. #define BIT_SHIFT_PAD_HCI_SEL_V2 3
  11298. #define BIT_MASK_PAD_HCI_SEL_V2 0x3
  11299. #define BIT_PAD_HCI_SEL_V2(x) \
  11300. (((x) & BIT_MASK_PAD_HCI_SEL_V2) << BIT_SHIFT_PAD_HCI_SEL_V2)
  11301. #define BITS_PAD_HCI_SEL_V2 \
  11302. (BIT_MASK_PAD_HCI_SEL_V2 << BIT_SHIFT_PAD_HCI_SEL_V2)
  11303. #define BIT_CLEAR_PAD_HCI_SEL_V2(x) ((x) & (~BITS_PAD_HCI_SEL_V2))
  11304. #define BIT_GET_PAD_HCI_SEL_V2(x) \
  11305. (((x) >> BIT_SHIFT_PAD_HCI_SEL_V2) & BIT_MASK_PAD_HCI_SEL_V2)
  11306. #define BIT_SET_PAD_HCI_SEL_V2(x, v) \
  11307. (BIT_CLEAR_PAD_HCI_SEL_V2(x) | BIT_PAD_HCI_SEL_V2(v))
  11308. #endif
  11309. #if (HALMAC_8822B_SUPPORT)
  11310. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11311. #define BIT_SHIFT_PAD_HCI_SEL_V1 3
  11312. #define BIT_MASK_PAD_HCI_SEL_V1 0x7
  11313. #define BIT_PAD_HCI_SEL_V1(x) \
  11314. (((x) & BIT_MASK_PAD_HCI_SEL_V1) << BIT_SHIFT_PAD_HCI_SEL_V1)
  11315. #define BITS_PAD_HCI_SEL_V1 \
  11316. (BIT_MASK_PAD_HCI_SEL_V1 << BIT_SHIFT_PAD_HCI_SEL_V1)
  11317. #define BIT_CLEAR_PAD_HCI_SEL_V1(x) ((x) & (~BITS_PAD_HCI_SEL_V1))
  11318. #define BIT_GET_PAD_HCI_SEL_V1(x) \
  11319. (((x) >> BIT_SHIFT_PAD_HCI_SEL_V1) & BIT_MASK_PAD_HCI_SEL_V1)
  11320. #define BIT_SET_PAD_HCI_SEL_V1(x, v) \
  11321. (BIT_CLEAR_PAD_HCI_SEL_V1(x) | BIT_PAD_HCI_SEL_V1(v))
  11322. #endif
  11323. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11324. HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)
  11325. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11326. #define BIT_SHIFT_PAD_HCI_SEL 2
  11327. #define BIT_MASK_PAD_HCI_SEL 0x3
  11328. #define BIT_PAD_HCI_SEL(x) \
  11329. (((x) & BIT_MASK_PAD_HCI_SEL) << BIT_SHIFT_PAD_HCI_SEL)
  11330. #define BITS_PAD_HCI_SEL (BIT_MASK_PAD_HCI_SEL << BIT_SHIFT_PAD_HCI_SEL)
  11331. #define BIT_CLEAR_PAD_HCI_SEL(x) ((x) & (~BITS_PAD_HCI_SEL))
  11332. #define BIT_GET_PAD_HCI_SEL(x) \
  11333. (((x) >> BIT_SHIFT_PAD_HCI_SEL) & BIT_MASK_PAD_HCI_SEL)
  11334. #define BIT_SET_PAD_HCI_SEL(x, v) \
  11335. (BIT_CLEAR_PAD_HCI_SEL(x) | BIT_PAD_HCI_SEL(v))
  11336. #endif
  11337. #if (HALMAC_8192F_SUPPORT)
  11338. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11339. #define BIT_SHIFT_SYM_OSC32K_COMP_GM_CUR 2
  11340. #define BIT_MASK_SYM_OSC32K_COMP_GM_CUR 0x3
  11341. #define BIT_SYM_OSC32K_COMP_GM_CUR(x) \
  11342. (((x) & BIT_MASK_SYM_OSC32K_COMP_GM_CUR) \
  11343. << BIT_SHIFT_SYM_OSC32K_COMP_GM_CUR)
  11344. #define BITS_SYM_OSC32K_COMP_GM_CUR \
  11345. (BIT_MASK_SYM_OSC32K_COMP_GM_CUR << BIT_SHIFT_SYM_OSC32K_COMP_GM_CUR)
  11346. #define BIT_CLEAR_SYM_OSC32K_COMP_GM_CUR(x) \
  11347. ((x) & (~BITS_SYM_OSC32K_COMP_GM_CUR))
  11348. #define BIT_GET_SYM_OSC32K_COMP_GM_CUR(x) \
  11349. (((x) >> BIT_SHIFT_SYM_OSC32K_COMP_GM_CUR) & \
  11350. BIT_MASK_SYM_OSC32K_COMP_GM_CUR)
  11351. #define BIT_SET_SYM_OSC32K_COMP_GM_CUR(x, v) \
  11352. (BIT_CLEAR_SYM_OSC32K_COMP_GM_CUR(x) | BIT_SYM_OSC32K_COMP_GM_CUR(v))
  11353. #define BIT_WLGP_MCM_COEXFEN BIT(2)
  11354. #endif
  11355. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11356. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11357. #define BIT_SHIFT_HCI_SEL_V2 2
  11358. #define BIT_MASK_HCI_SEL_V2 0x3
  11359. #define BIT_HCI_SEL_V2(x) (((x) & BIT_MASK_HCI_SEL_V2) << BIT_SHIFT_HCI_SEL_V2)
  11360. #define BITS_HCI_SEL_V2 (BIT_MASK_HCI_SEL_V2 << BIT_SHIFT_HCI_SEL_V2)
  11361. #define BIT_CLEAR_HCI_SEL_V2(x) ((x) & (~BITS_HCI_SEL_V2))
  11362. #define BIT_GET_HCI_SEL_V2(x) \
  11363. (((x) >> BIT_SHIFT_HCI_SEL_V2) & BIT_MASK_HCI_SEL_V2)
  11364. #define BIT_SET_HCI_SEL_V2(x, v) (BIT_CLEAR_HCI_SEL_V2(x) | BIT_HCI_SEL_V2(v))
  11365. #endif
  11366. #if (HALMAC_8192F_SUPPORT)
  11367. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11368. #define BIT_BT_COEX_MCM_MBOX BIT(1)
  11369. #define BIT_SHIFT_BTGP_WAKE_HST_LOC 1
  11370. #define BIT_MASK_BTGP_WAKE_HST_LOC 0x3
  11371. #define BIT_BTGP_WAKE_HST_LOC(x) \
  11372. (((x) & BIT_MASK_BTGP_WAKE_HST_LOC) << BIT_SHIFT_BTGP_WAKE_HST_LOC)
  11373. #define BITS_BTGP_WAKE_HST_LOC \
  11374. (BIT_MASK_BTGP_WAKE_HST_LOC << BIT_SHIFT_BTGP_WAKE_HST_LOC)
  11375. #define BIT_CLEAR_BTGP_WAKE_HST_LOC(x) ((x) & (~BITS_BTGP_WAKE_HST_LOC))
  11376. #define BIT_GET_BTGP_WAKE_HST_LOC(x) \
  11377. (((x) >> BIT_SHIFT_BTGP_WAKE_HST_LOC) & BIT_MASK_BTGP_WAKE_HST_LOC)
  11378. #define BIT_SET_BTGP_WAKE_HST_LOC(x, v) \
  11379. (BIT_CLEAR_BTGP_WAKE_HST_LOC(x) | BIT_BTGP_WAKE_HST_LOC(v))
  11380. #define BIT_SYM_HCI_TADMA_ALLOW BIT(1)
  11381. #endif
  11382. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11383. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11384. #define BIT_TST_MOD_SEL BIT(1)
  11385. #endif
  11386. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11387. HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11388. HALMAC_8881A_SUPPORT)
  11389. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11390. #define BIT_SHIFT_EFS_HCI_SEL 0
  11391. #define BIT_MASK_EFS_HCI_SEL 0x3
  11392. #define BIT_EFS_HCI_SEL(x) \
  11393. (((x) & BIT_MASK_EFS_HCI_SEL) << BIT_SHIFT_EFS_HCI_SEL)
  11394. #define BITS_EFS_HCI_SEL (BIT_MASK_EFS_HCI_SEL << BIT_SHIFT_EFS_HCI_SEL)
  11395. #define BIT_CLEAR_EFS_HCI_SEL(x) ((x) & (~BITS_EFS_HCI_SEL))
  11396. #define BIT_GET_EFS_HCI_SEL(x) \
  11397. (((x) >> BIT_SHIFT_EFS_HCI_SEL) & BIT_MASK_EFS_HCI_SEL)
  11398. #define BIT_SET_EFS_HCI_SEL(x, v) \
  11399. (BIT_CLEAR_EFS_HCI_SEL(x) | BIT_EFS_HCI_SEL(v))
  11400. #endif
  11401. #if (HALMAC_8192F_SUPPORT)
  11402. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11403. #define BIT_SYM_BOOT_CFG BIT(0)
  11404. #define BIT_SHIFT_SYM_SPIC_BOOT_EXT_ADDR 0
  11405. #define BIT_MASK_SYM_SPIC_BOOT_EXT_ADDR 0xffff
  11406. #define BIT_SYM_SPIC_BOOT_EXT_ADDR(x) \
  11407. (((x) & BIT_MASK_SYM_SPIC_BOOT_EXT_ADDR) \
  11408. << BIT_SHIFT_SYM_SPIC_BOOT_EXT_ADDR)
  11409. #define BITS_SYM_SPIC_BOOT_EXT_ADDR \
  11410. (BIT_MASK_SYM_SPIC_BOOT_EXT_ADDR << BIT_SHIFT_SYM_SPIC_BOOT_EXT_ADDR)
  11411. #define BIT_CLEAR_SYM_SPIC_BOOT_EXT_ADDR(x) \
  11412. ((x) & (~BITS_SYM_SPIC_BOOT_EXT_ADDR))
  11413. #define BIT_GET_SYM_SPIC_BOOT_EXT_ADDR(x) \
  11414. (((x) >> BIT_SHIFT_SYM_SPIC_BOOT_EXT_ADDR) & \
  11415. BIT_MASK_SYM_SPIC_BOOT_EXT_ADDR)
  11416. #define BIT_SET_SYM_SPIC_BOOT_EXT_ADDR(x, v) \
  11417. (BIT_CLEAR_SYM_SPIC_BOOT_EXT_ADDR(x) | BIT_SYM_SPIC_BOOT_EXT_ADDR(v))
  11418. #define BIT_SHIFT_SYM_OSC32K_FREQSEL 0
  11419. #define BIT_MASK_SYM_OSC32K_FREQSEL 0x3
  11420. #define BIT_SYM_OSC32K_FREQSEL(x) \
  11421. (((x) & BIT_MASK_SYM_OSC32K_FREQSEL) << BIT_SHIFT_SYM_OSC32K_FREQSEL)
  11422. #define BITS_SYM_OSC32K_FREQSEL \
  11423. (BIT_MASK_SYM_OSC32K_FREQSEL << BIT_SHIFT_SYM_OSC32K_FREQSEL)
  11424. #define BIT_CLEAR_SYM_OSC32K_FREQSEL(x) ((x) & (~BITS_SYM_OSC32K_FREQSEL))
  11425. #define BIT_GET_SYM_OSC32K_FREQSEL(x) \
  11426. (((x) >> BIT_SHIFT_SYM_OSC32K_FREQSEL) & BIT_MASK_SYM_OSC32K_FREQSEL)
  11427. #define BIT_SET_SYM_OSC32K_FREQSEL(x, v) \
  11428. (BIT_CLEAR_SYM_OSC32K_FREQSEL(x) | BIT_SYM_OSC32K_FREQSEL(v))
  11429. #define BIT_CRC16_CHECK_ENABLE BIT(0)
  11430. #define BIT_SW_GPIO_FUNC BIT(0)
  11431. #define BIT_BTGP_WAKE_BT_LOC BIT(0)
  11432. #define BIT_SHIFT_SW_GPIO_A_OUT 0
  11433. #define BIT_MASK_SW_GPIO_A_OUT 0xffffffffL
  11434. #define BIT_SW_GPIO_A_OUT(x) \
  11435. (((x) & BIT_MASK_SW_GPIO_A_OUT) << BIT_SHIFT_SW_GPIO_A_OUT)
  11436. #define BITS_SW_GPIO_A_OUT (BIT_MASK_SW_GPIO_A_OUT << BIT_SHIFT_SW_GPIO_A_OUT)
  11437. #define BIT_CLEAR_SW_GPIO_A_OUT(x) ((x) & (~BITS_SW_GPIO_A_OUT))
  11438. #define BIT_GET_SW_GPIO_A_OUT(x) \
  11439. (((x) >> BIT_SHIFT_SW_GPIO_A_OUT) & BIT_MASK_SW_GPIO_A_OUT)
  11440. #define BIT_SET_SW_GPIO_A_OUT(x, v) \
  11441. (BIT_CLEAR_SW_GPIO_A_OUT(x) | BIT_SW_GPIO_A_OUT(v))
  11442. #define BIT_SHIFT_SW_GPIO_A_OEN 0
  11443. #define BIT_MASK_SW_GPIO_A_OEN 0xffffffffL
  11444. #define BIT_SW_GPIO_A_OEN(x) \
  11445. (((x) & BIT_MASK_SW_GPIO_A_OEN) << BIT_SHIFT_SW_GPIO_A_OEN)
  11446. #define BITS_SW_GPIO_A_OEN (BIT_MASK_SW_GPIO_A_OEN << BIT_SHIFT_SW_GPIO_A_OEN)
  11447. #define BIT_CLEAR_SW_GPIO_A_OEN(x) ((x) & (~BITS_SW_GPIO_A_OEN))
  11448. #define BIT_GET_SW_GPIO_A_OEN(x) \
  11449. (((x) >> BIT_SHIFT_SW_GPIO_A_OEN) & BIT_MASK_SW_GPIO_A_OEN)
  11450. #define BIT_SET_SW_GPIO_A_OEN(x, v) \
  11451. (BIT_CLEAR_SW_GPIO_A_OEN(x) | BIT_SW_GPIO_A_OEN(v))
  11452. #define BIT_SHIFT_SW_GPIO_A_OE2 0
  11453. #define BIT_MASK_SW_GPIO_A_OE2 0xffffffffL
  11454. #define BIT_SW_GPIO_A_OE2(x) \
  11455. (((x) & BIT_MASK_SW_GPIO_A_OE2) << BIT_SHIFT_SW_GPIO_A_OE2)
  11456. #define BITS_SW_GPIO_A_OE2 (BIT_MASK_SW_GPIO_A_OE2 << BIT_SHIFT_SW_GPIO_A_OE2)
  11457. #define BIT_CLEAR_SW_GPIO_A_OE2(x) ((x) & (~BITS_SW_GPIO_A_OE2))
  11458. #define BIT_GET_SW_GPIO_A_OE2(x) \
  11459. (((x) >> BIT_SHIFT_SW_GPIO_A_OE2) & BIT_MASK_SW_GPIO_A_OE2)
  11460. #define BIT_SET_SW_GPIO_A_OE2(x, v) \
  11461. (BIT_CLEAR_SW_GPIO_A_OE2(x) | BIT_SW_GPIO_A_OE2(v))
  11462. #define BIT_SHIFT_SW_GPIO_A_PU 0
  11463. #define BIT_MASK_SW_GPIO_A_PU 0xffffffffL
  11464. #define BIT_SW_GPIO_A_PU(x) \
  11465. (((x) & BIT_MASK_SW_GPIO_A_PU) << BIT_SHIFT_SW_GPIO_A_PU)
  11466. #define BITS_SW_GPIO_A_PU (BIT_MASK_SW_GPIO_A_PU << BIT_SHIFT_SW_GPIO_A_PU)
  11467. #define BIT_CLEAR_SW_GPIO_A_PU(x) ((x) & (~BITS_SW_GPIO_A_PU))
  11468. #define BIT_GET_SW_GPIO_A_PU(x) \
  11469. (((x) >> BIT_SHIFT_SW_GPIO_A_PU) & BIT_MASK_SW_GPIO_A_PU)
  11470. #define BIT_SET_SW_GPIO_A_PU(x, v) \
  11471. (BIT_CLEAR_SW_GPIO_A_PU(x) | BIT_SW_GPIO_A_PU(v))
  11472. #define BIT_SHIFT_SW_GPIO_A_PD 0
  11473. #define BIT_MASK_SW_GPIO_A_PD 0xffffffffL
  11474. #define BIT_SW_GPIO_A_PD(x) \
  11475. (((x) & BIT_MASK_SW_GPIO_A_PD) << BIT_SHIFT_SW_GPIO_A_PD)
  11476. #define BITS_SW_GPIO_A_PD (BIT_MASK_SW_GPIO_A_PD << BIT_SHIFT_SW_GPIO_A_PD)
  11477. #define BIT_CLEAR_SW_GPIO_A_PD(x) ((x) & (~BITS_SW_GPIO_A_PD))
  11478. #define BIT_GET_SW_GPIO_A_PD(x) \
  11479. (((x) >> BIT_SHIFT_SW_GPIO_A_PD) & BIT_MASK_SW_GPIO_A_PD)
  11480. #define BIT_SET_SW_GPIO_A_PD(x, v) \
  11481. (BIT_CLEAR_SW_GPIO_A_PD(x) | BIT_SW_GPIO_A_PD(v))
  11482. #define BIT_SHIFT_SW_GPIO_A_IN 0
  11483. #define BIT_MASK_SW_GPIO_A_IN 0xffffffffL
  11484. #define BIT_SW_GPIO_A_IN(x) \
  11485. (((x) & BIT_MASK_SW_GPIO_A_IN) << BIT_SHIFT_SW_GPIO_A_IN)
  11486. #define BITS_SW_GPIO_A_IN (BIT_MASK_SW_GPIO_A_IN << BIT_SHIFT_SW_GPIO_A_IN)
  11487. #define BIT_CLEAR_SW_GPIO_A_IN(x) ((x) & (~BITS_SW_GPIO_A_IN))
  11488. #define BIT_GET_SW_GPIO_A_IN(x) \
  11489. (((x) >> BIT_SHIFT_SW_GPIO_A_IN) & BIT_MASK_SW_GPIO_A_IN)
  11490. #define BIT_SET_SW_GPIO_A_IN(x, v) \
  11491. (BIT_CLEAR_SW_GPIO_A_IN(x) | BIT_SW_GPIO_A_IN(v))
  11492. #define BIT_SHIFT_SW_GPIO_B_OEN 0
  11493. #define BIT_MASK_SW_GPIO_B_OEN 0xff
  11494. #define BIT_SW_GPIO_B_OEN(x) \
  11495. (((x) & BIT_MASK_SW_GPIO_B_OEN) << BIT_SHIFT_SW_GPIO_B_OEN)
  11496. #define BITS_SW_GPIO_B_OEN (BIT_MASK_SW_GPIO_B_OEN << BIT_SHIFT_SW_GPIO_B_OEN)
  11497. #define BIT_CLEAR_SW_GPIO_B_OEN(x) ((x) & (~BITS_SW_GPIO_B_OEN))
  11498. #define BIT_GET_SW_GPIO_B_OEN(x) \
  11499. (((x) >> BIT_SHIFT_SW_GPIO_B_OEN) & BIT_MASK_SW_GPIO_B_OEN)
  11500. #define BIT_SET_SW_GPIO_B_OEN(x, v) \
  11501. (BIT_CLEAR_SW_GPIO_B_OEN(x) | BIT_SW_GPIO_B_OEN(v))
  11502. #define BIT_SHIFT_SW_GPIO_B_OUT 0
  11503. #define BIT_MASK_SW_GPIO_B_OUT 0xff
  11504. #define BIT_SW_GPIO_B_OUT(x) \
  11505. (((x) & BIT_MASK_SW_GPIO_B_OUT) << BIT_SHIFT_SW_GPIO_B_OUT)
  11506. #define BITS_SW_GPIO_B_OUT (BIT_MASK_SW_GPIO_B_OUT << BIT_SHIFT_SW_GPIO_B_OUT)
  11507. #define BIT_CLEAR_SW_GPIO_B_OUT(x) ((x) & (~BITS_SW_GPIO_B_OUT))
  11508. #define BIT_GET_SW_GPIO_B_OUT(x) \
  11509. (((x) >> BIT_SHIFT_SW_GPIO_B_OUT) & BIT_MASK_SW_GPIO_B_OUT)
  11510. #define BIT_SET_SW_GPIO_B_OUT(x, v) \
  11511. (BIT_CLEAR_SW_GPIO_B_OUT(x) | BIT_SW_GPIO_B_OUT(v))
  11512. #define BIT_SYM_FW_CTL_HCI_TXDMA_EN BIT(0)
  11513. #define BIT_SHIFT_TDE_H2C_RD_ADDR 0
  11514. #define BIT_MASK_TDE_H2C_RD_ADDR 0x3ffff
  11515. #define BIT_TDE_H2C_RD_ADDR(x) \
  11516. (((x) & BIT_MASK_TDE_H2C_RD_ADDR) << BIT_SHIFT_TDE_H2C_RD_ADDR)
  11517. #define BITS_TDE_H2C_RD_ADDR \
  11518. (BIT_MASK_TDE_H2C_RD_ADDR << BIT_SHIFT_TDE_H2C_RD_ADDR)
  11519. #define BIT_CLEAR_TDE_H2C_RD_ADDR(x) ((x) & (~BITS_TDE_H2C_RD_ADDR))
  11520. #define BIT_GET_TDE_H2C_RD_ADDR(x) \
  11521. (((x) >> BIT_SHIFT_TDE_H2C_RD_ADDR) & BIT_MASK_TDE_H2C_RD_ADDR)
  11522. #define BIT_SET_TDE_H2C_RD_ADDR(x, v) \
  11523. (BIT_CLEAR_TDE_H2C_RD_ADDR(x) | BIT_TDE_H2C_RD_ADDR(v))
  11524. #define BIT_SHIFT_TDE_H2C_WR_ADDR 0
  11525. #define BIT_MASK_TDE_H2C_WR_ADDR 0x3ffff
  11526. #define BIT_TDE_H2C_WR_ADDR(x) \
  11527. (((x) & BIT_MASK_TDE_H2C_WR_ADDR) << BIT_SHIFT_TDE_H2C_WR_ADDR)
  11528. #define BITS_TDE_H2C_WR_ADDR \
  11529. (BIT_MASK_TDE_H2C_WR_ADDR << BIT_SHIFT_TDE_H2C_WR_ADDR)
  11530. #define BIT_CLEAR_TDE_H2C_WR_ADDR(x) ((x) & (~BITS_TDE_H2C_WR_ADDR))
  11531. #define BIT_GET_TDE_H2C_WR_ADDR(x) \
  11532. (((x) >> BIT_SHIFT_TDE_H2C_WR_ADDR) & BIT_MASK_TDE_H2C_WR_ADDR)
  11533. #define BIT_SET_TDE_H2C_WR_ADDR(x, v) \
  11534. (BIT_CLEAR_TDE_H2C_WR_ADDR(x) | BIT_TDE_H2C_WR_ADDR(v))
  11535. #endif
  11536. #if (HALMAC_8812F_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11537. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11538. #define BIT_SHIFT_EFS_HCI_SEL_V1 0
  11539. #define BIT_MASK_EFS_HCI_SEL_V1 0x7
  11540. #define BIT_EFS_HCI_SEL_V1(x) \
  11541. (((x) & BIT_MASK_EFS_HCI_SEL_V1) << BIT_SHIFT_EFS_HCI_SEL_V1)
  11542. #define BITS_EFS_HCI_SEL_V1 \
  11543. (BIT_MASK_EFS_HCI_SEL_V1 << BIT_SHIFT_EFS_HCI_SEL_V1)
  11544. #define BIT_CLEAR_EFS_HCI_SEL_V1(x) ((x) & (~BITS_EFS_HCI_SEL_V1))
  11545. #define BIT_GET_EFS_HCI_SEL_V1(x) \
  11546. (((x) >> BIT_SHIFT_EFS_HCI_SEL_V1) & BIT_MASK_EFS_HCI_SEL_V1)
  11547. #define BIT_SET_EFS_HCI_SEL_V1(x, v) \
  11548. (BIT_CLEAR_EFS_HCI_SEL_V1(x) | BIT_EFS_HCI_SEL_V1(v))
  11549. #endif
  11550. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11551. /* 2 REG_SYS_STATUS1 (Offset 0x00F4) */
  11552. #define BIT_PAD_HWPDB BIT(0)
  11553. #endif
  11554. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  11555. /* 2 REG_SYS_STATUS2 (Offset 0x00F8) */
  11556. #define BIT_HIOE_ON_TIMEOUT BIT(23)
  11557. #define BIT_SIC_ON_TIMEOUT BIT(22)
  11558. #define BIT_CPU_ON_TIMEOUT BIT(21)
  11559. #define BIT_HCI_ON_TIMEOUT BIT(20)
  11560. #endif
  11561. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11562. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11563. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11564. HALMAC_8881A_SUPPORT)
  11565. /* 2 REG_SYS_STATUS2 (Offset 0x00F8) */
  11566. #define BIT_SIO_ALDN BIT(19)
  11567. #define BIT_USB_ALDN BIT(18)
  11568. #define BIT_PCI_ALDN BIT(17)
  11569. #define BIT_SYS_ALDN BIT(16)
  11570. #define BIT_SHIFT_EPVID1 8
  11571. #define BIT_MASK_EPVID1 0xff
  11572. #define BIT_EPVID1(x) (((x) & BIT_MASK_EPVID1) << BIT_SHIFT_EPVID1)
  11573. #define BITS_EPVID1 (BIT_MASK_EPVID1 << BIT_SHIFT_EPVID1)
  11574. #define BIT_CLEAR_EPVID1(x) ((x) & (~BITS_EPVID1))
  11575. #define BIT_GET_EPVID1(x) (((x) >> BIT_SHIFT_EPVID1) & BIT_MASK_EPVID1)
  11576. #define BIT_SET_EPVID1(x, v) (BIT_CLEAR_EPVID1(x) | BIT_EPVID1(v))
  11577. #define BIT_SHIFT_EPVID0 0
  11578. #define BIT_MASK_EPVID0 0xff
  11579. #define BIT_EPVID0(x) (((x) & BIT_MASK_EPVID0) << BIT_SHIFT_EPVID0)
  11580. #define BITS_EPVID0 (BIT_MASK_EPVID0 << BIT_SHIFT_EPVID0)
  11581. #define BIT_CLEAR_EPVID0(x) ((x) & (~BITS_EPVID0))
  11582. #define BIT_GET_EPVID0(x) (((x) >> BIT_SHIFT_EPVID0) & BIT_MASK_EPVID0)
  11583. #define BIT_SET_EPVID0(x, v) (BIT_CLEAR_EPVID0(x) | BIT_EPVID0(v))
  11584. #endif
  11585. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11586. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11587. #define BIT_USB2_SEL_1 BIT(31)
  11588. #endif
  11589. #if (HALMAC_8814B_SUPPORT)
  11590. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11591. #define BIT_USB2_SEL BIT(31)
  11592. #define BIT_FEN_WLMAC_OFF BIT(31)
  11593. #endif
  11594. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11595. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11596. #define BIT_USB3PHY_RST BIT(30)
  11597. #endif
  11598. #if (HALMAC_8814B_SUPPORT)
  11599. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11600. #define BIT_U3PHY_RST_V1 BIT(30)
  11601. #endif
  11602. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11603. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11604. #define BIT_U3_TERM_DET BIT(29)
  11605. #endif
  11606. #if (HALMAC_8814B_SUPPORT)
  11607. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11608. #define BIT_U3_TERM_DETECT BIT(29)
  11609. #endif
  11610. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11611. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11612. #define BIT_USB23_DBG_SEL BIT(24)
  11613. #endif
  11614. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  11615. HALMAC_8822C_SUPPORT)
  11616. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11617. #define BIT_HCI_SEL_EMBEDDED BIT(8)
  11618. #endif
  11619. #if (HALMAC_8814B_SUPPORT)
  11620. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11621. #define BIT_ISO_BB2PP BIT(7)
  11622. #define BIT_ISO_DENG2PP BIT(6)
  11623. #endif
  11624. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11625. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11626. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11627. HALMAC_8881A_SUPPORT)
  11628. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11629. #define BIT_SHIFT_HW_ID 0
  11630. #define BIT_MASK_HW_ID 0xff
  11631. #define BIT_HW_ID(x) (((x) & BIT_MASK_HW_ID) << BIT_SHIFT_HW_ID)
  11632. #define BITS_HW_ID (BIT_MASK_HW_ID << BIT_SHIFT_HW_ID)
  11633. #define BIT_CLEAR_HW_ID(x) ((x) & (~BITS_HW_ID))
  11634. #define BIT_GET_HW_ID(x) (((x) >> BIT_SHIFT_HW_ID) & BIT_MASK_HW_ID)
  11635. #define BIT_SET_HW_ID(x, v) (BIT_CLEAR_HW_ID(x) | BIT_HW_ID(v))
  11636. #endif
  11637. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11638. /* 2 REG_SYS_CFG2 (Offset 0x00FC) */
  11639. #define BIT_SHIFT_CHIPID 0
  11640. #define BIT_MASK_CHIPID 0xff
  11641. #define BIT_CHIPID(x) (((x) & BIT_MASK_CHIPID) << BIT_SHIFT_CHIPID)
  11642. #define BITS_CHIPID (BIT_MASK_CHIPID << BIT_SHIFT_CHIPID)
  11643. #define BIT_CLEAR_CHIPID(x) ((x) & (~BITS_CHIPID))
  11644. #define BIT_GET_CHIPID(x) (((x) >> BIT_SHIFT_CHIPID) & BIT_MASK_CHIPID)
  11645. #define BIT_SET_CHIPID(x, v) (BIT_CLEAR_CHIPID(x) | BIT_CHIPID(v))
  11646. #endif
  11647. #if (HALMAC_8192F_SUPPORT)
  11648. /* 2 REG_CR (Offset 0x0100) */
  11649. #define BIT_BIST_H32BIT_SEL BIT(29)
  11650. #endif
  11651. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  11652. /* 2 REG_CR (Offset 0x0100) */
  11653. #define BIT_MACIO_TIMEOUT_EN BIT(29)
  11654. #endif
  11655. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11656. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11657. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11658. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11659. /* 2 REG_CR (Offset 0x0100) */
  11660. #define BIT_SHIFT_LBMODE 24
  11661. #define BIT_MASK_LBMODE 0x1f
  11662. #define BIT_LBMODE(x) (((x) & BIT_MASK_LBMODE) << BIT_SHIFT_LBMODE)
  11663. #define BITS_LBMODE (BIT_MASK_LBMODE << BIT_SHIFT_LBMODE)
  11664. #define BIT_CLEAR_LBMODE(x) ((x) & (~BITS_LBMODE))
  11665. #define BIT_GET_LBMODE(x) (((x) >> BIT_SHIFT_LBMODE) & BIT_MASK_LBMODE)
  11666. #define BIT_SET_LBMODE(x, v) (BIT_CLEAR_LBMODE(x) | BIT_LBMODE(v))
  11667. #define BIT_SHIFT_NETYPE1 18
  11668. #define BIT_MASK_NETYPE1 0x3
  11669. #define BIT_NETYPE1(x) (((x) & BIT_MASK_NETYPE1) << BIT_SHIFT_NETYPE1)
  11670. #define BITS_NETYPE1 (BIT_MASK_NETYPE1 << BIT_SHIFT_NETYPE1)
  11671. #define BIT_CLEAR_NETYPE1(x) ((x) & (~BITS_NETYPE1))
  11672. #define BIT_GET_NETYPE1(x) (((x) >> BIT_SHIFT_NETYPE1) & BIT_MASK_NETYPE1)
  11673. #define BIT_SET_NETYPE1(x, v) (BIT_CLEAR_NETYPE1(x) | BIT_NETYPE1(v))
  11674. #define BIT_SHIFT_NETYPE0 16
  11675. #define BIT_MASK_NETYPE0 0x3
  11676. #define BIT_NETYPE0(x) (((x) & BIT_MASK_NETYPE0) << BIT_SHIFT_NETYPE0)
  11677. #define BITS_NETYPE0 (BIT_MASK_NETYPE0 << BIT_SHIFT_NETYPE0)
  11678. #define BIT_CLEAR_NETYPE0(x) ((x) & (~BITS_NETYPE0))
  11679. #define BIT_GET_NETYPE0(x) (((x) >> BIT_SHIFT_NETYPE0) & BIT_MASK_NETYPE0)
  11680. #define BIT_SET_NETYPE0(x, v) (BIT_CLEAR_NETYPE0(x) | BIT_NETYPE0(v))
  11681. #endif
  11682. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  11683. /* 2 REG_CR (Offset 0x0100) */
  11684. #define BIT_STAT_FUNC_RST BIT(13)
  11685. #endif
  11686. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11687. HALMAC_8822C_SUPPORT)
  11688. /* 2 REG_CR (Offset 0x0100) */
  11689. #define BIT_COUNTER_STS_EN BIT(13)
  11690. #endif
  11691. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  11692. /* 2 REG_CR (Offset 0x0100) */
  11693. #define BIT_PTA_I2C_MBOX_EN BIT(12)
  11694. #endif
  11695. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  11696. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  11697. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  11698. HALMAC_8822C_SUPPORT)
  11699. /* 2 REG_CR (Offset 0x0100) */
  11700. #define BIT_I2C_MAILBOX_EN BIT(12)
  11701. #endif
  11702. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11703. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11704. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11705. /* 2 REG_CR (Offset 0x0100) */
  11706. #define BIT_SHCUT_EN BIT(11)
  11707. #endif
  11708. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11709. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11710. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11711. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11712. /* 2 REG_CR (Offset 0x0100) */
  11713. #define BIT_32K_CAL_TMR_EN BIT(10)
  11714. #define BIT_MAC_SEC_EN BIT(9)
  11715. #define BIT_ENSWBCN BIT(8)
  11716. #define BIT_MACRXEN BIT(7)
  11717. #define BIT_MACTXEN BIT(6)
  11718. #define BIT_SCHEDULE_EN BIT(5)
  11719. #define BIT_PROTOCOL_EN BIT(4)
  11720. #endif
  11721. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11722. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11723. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11724. /* 2 REG_CR (Offset 0x0100) */
  11725. #define BIT_SHIFT_I2C_M_BUS_GNT_FW 4
  11726. #define BIT_MASK_I2C_M_BUS_GNT_FW 0x7
  11727. #define BIT_I2C_M_BUS_GNT_FW(x) \
  11728. (((x) & BIT_MASK_I2C_M_BUS_GNT_FW) << BIT_SHIFT_I2C_M_BUS_GNT_FW)
  11729. #define BITS_I2C_M_BUS_GNT_FW \
  11730. (BIT_MASK_I2C_M_BUS_GNT_FW << BIT_SHIFT_I2C_M_BUS_GNT_FW)
  11731. #define BIT_CLEAR_I2C_M_BUS_GNT_FW(x) ((x) & (~BITS_I2C_M_BUS_GNT_FW))
  11732. #define BIT_GET_I2C_M_BUS_GNT_FW(x) \
  11733. (((x) >> BIT_SHIFT_I2C_M_BUS_GNT_FW) & BIT_MASK_I2C_M_BUS_GNT_FW)
  11734. #define BIT_SET_I2C_M_BUS_GNT_FW(x, v) \
  11735. (BIT_CLEAR_I2C_M_BUS_GNT_FW(x) | BIT_I2C_M_BUS_GNT_FW(v))
  11736. #endif
  11737. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11738. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11739. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11740. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11741. /* 2 REG_CR (Offset 0x0100) */
  11742. #define BIT_RXDMA_EN BIT(3)
  11743. #endif
  11744. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11745. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11746. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11747. /* 2 REG_CR (Offset 0x0100) */
  11748. #define BIT_I2C_M_GNT_FW BIT(3)
  11749. #endif
  11750. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11751. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11752. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11753. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11754. /* 2 REG_CR (Offset 0x0100) */
  11755. #define BIT_TXDMA_EN BIT(2)
  11756. #define BIT_HCI_RXDMA_EN BIT(1)
  11757. #endif
  11758. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11759. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11760. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11761. /* 2 REG_CR (Offset 0x0100) */
  11762. #define BIT_SHIFT_I2C_M_SPEED 1
  11763. #define BIT_MASK_I2C_M_SPEED 0x3
  11764. #define BIT_I2C_M_SPEED(x) \
  11765. (((x) & BIT_MASK_I2C_M_SPEED) << BIT_SHIFT_I2C_M_SPEED)
  11766. #define BITS_I2C_M_SPEED (BIT_MASK_I2C_M_SPEED << BIT_SHIFT_I2C_M_SPEED)
  11767. #define BIT_CLEAR_I2C_M_SPEED(x) ((x) & (~BITS_I2C_M_SPEED))
  11768. #define BIT_GET_I2C_M_SPEED(x) \
  11769. (((x) >> BIT_SHIFT_I2C_M_SPEED) & BIT_MASK_I2C_M_SPEED)
  11770. #define BIT_SET_I2C_M_SPEED(x, v) \
  11771. (BIT_CLEAR_I2C_M_SPEED(x) | BIT_I2C_M_SPEED(v))
  11772. #endif
  11773. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  11774. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11775. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11776. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11777. /* 2 REG_CR (Offset 0x0100) */
  11778. #define BIT_HCI_TXDMA_EN BIT(0)
  11779. #endif
  11780. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11781. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11782. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  11783. /* 2 REG_CR (Offset 0x0100) */
  11784. #define BIT_I2C_M_UNLOCK BIT(0)
  11785. #endif
  11786. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  11787. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  11788. /* 2 REG_PG_SIZE (Offset 0x0104) */
  11789. #define BIT_SHIFT_DBG_FIFO_SEL 16
  11790. #define BIT_MASK_DBG_FIFO_SEL 0xff
  11791. #define BIT_DBG_FIFO_SEL(x) \
  11792. (((x) & BIT_MASK_DBG_FIFO_SEL) << BIT_SHIFT_DBG_FIFO_SEL)
  11793. #define BITS_DBG_FIFO_SEL (BIT_MASK_DBG_FIFO_SEL << BIT_SHIFT_DBG_FIFO_SEL)
  11794. #define BIT_CLEAR_DBG_FIFO_SEL(x) ((x) & (~BITS_DBG_FIFO_SEL))
  11795. #define BIT_GET_DBG_FIFO_SEL(x) \
  11796. (((x) >> BIT_SHIFT_DBG_FIFO_SEL) & BIT_MASK_DBG_FIFO_SEL)
  11797. #define BIT_SET_DBG_FIFO_SEL(x, v) \
  11798. (BIT_CLEAR_DBG_FIFO_SEL(x) | BIT_DBG_FIFO_SEL(v))
  11799. #endif
  11800. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  11801. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11802. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  11803. /* 2 REG_PKT_BUFF_ACCESS_CTRL (Offset 0x0106) */
  11804. #define BIT_SHIFT_PKT_BUFF_ACCESS_CTRL 0
  11805. #define BIT_MASK_PKT_BUFF_ACCESS_CTRL 0xff
  11806. #define BIT_PKT_BUFF_ACCESS_CTRL(x) \
  11807. (((x) & BIT_MASK_PKT_BUFF_ACCESS_CTRL) \
  11808. << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL)
  11809. #define BITS_PKT_BUFF_ACCESS_CTRL \
  11810. (BIT_MASK_PKT_BUFF_ACCESS_CTRL << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL)
  11811. #define BIT_CLEAR_PKT_BUFF_ACCESS_CTRL(x) ((x) & (~BITS_PKT_BUFF_ACCESS_CTRL))
  11812. #define BIT_GET_PKT_BUFF_ACCESS_CTRL(x) \
  11813. (((x) >> BIT_SHIFT_PKT_BUFF_ACCESS_CTRL) & \
  11814. BIT_MASK_PKT_BUFF_ACCESS_CTRL)
  11815. #define BIT_SET_PKT_BUFF_ACCESS_CTRL(x, v) \
  11816. (BIT_CLEAR_PKT_BUFF_ACCESS_CTRL(x) | BIT_PKT_BUFF_ACCESS_CTRL(v))
  11817. #endif
  11818. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  11819. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  11820. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  11821. HALMAC_8822C_SUPPORT)
  11822. /* 2 REG_TSF_CLK_STATE (Offset 0x0108) */
  11823. #define BIT_RXPKTBUF_DBG BIT(16)
  11824. #endif
  11825. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  11826. /* 2 REG_TSF_CLK_STATE (Offset 0x0108) */
  11827. #define BIT_TSF_CLK_IDX BIT(15)
  11828. #endif
  11829. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  11830. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  11831. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  11832. HALMAC_8822C_SUPPORT)
  11833. /* 2 REG_TSF_CLK_STATE (Offset 0x0108) */
  11834. #define BIT_TSF_CLK_STABLE BIT(15)
  11835. #define BIT_SHIFT_PKTBUF_DBG_ADDR 0
  11836. #define BIT_MASK_PKTBUF_DBG_ADDR 0x1fff
  11837. #define BIT_PKTBUF_DBG_ADDR(x) \
  11838. (((x) & BIT_MASK_PKTBUF_DBG_ADDR) << BIT_SHIFT_PKTBUF_DBG_ADDR)
  11839. #define BITS_PKTBUF_DBG_ADDR \
  11840. (BIT_MASK_PKTBUF_DBG_ADDR << BIT_SHIFT_PKTBUF_DBG_ADDR)
  11841. #define BIT_CLEAR_PKTBUF_DBG_ADDR(x) ((x) & (~BITS_PKTBUF_DBG_ADDR))
  11842. #define BIT_GET_PKTBUF_DBG_ADDR(x) \
  11843. (((x) >> BIT_SHIFT_PKTBUF_DBG_ADDR) & BIT_MASK_PKTBUF_DBG_ADDR)
  11844. #define BIT_SET_PKTBUF_DBG_ADDR(x, v) \
  11845. (BIT_CLEAR_PKTBUF_DBG_ADDR(x) | BIT_PKTBUF_DBG_ADDR(v))
  11846. #endif
  11847. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  11848. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11849. #define BIT_CSI_BW_EN BIT(31)
  11850. #endif
  11851. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  11852. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11853. #define BIT_SHIFT_TXDMA_HIQ_MAP_V1 19
  11854. #define BIT_MASK_TXDMA_HIQ_MAP_V1 0x7
  11855. #define BIT_TXDMA_HIQ_MAP_V1(x) \
  11856. (((x) & BIT_MASK_TXDMA_HIQ_MAP_V1) << BIT_SHIFT_TXDMA_HIQ_MAP_V1)
  11857. #define BITS_TXDMA_HIQ_MAP_V1 \
  11858. (BIT_MASK_TXDMA_HIQ_MAP_V1 << BIT_SHIFT_TXDMA_HIQ_MAP_V1)
  11859. #define BIT_CLEAR_TXDMA_HIQ_MAP_V1(x) ((x) & (~BITS_TXDMA_HIQ_MAP_V1))
  11860. #define BIT_GET_TXDMA_HIQ_MAP_V1(x) \
  11861. (((x) >> BIT_SHIFT_TXDMA_HIQ_MAP_V1) & BIT_MASK_TXDMA_HIQ_MAP_V1)
  11862. #define BIT_SET_TXDMA_HIQ_MAP_V1(x, v) \
  11863. (BIT_CLEAR_TXDMA_HIQ_MAP_V1(x) | BIT_TXDMA_HIQ_MAP_V1(v))
  11864. #endif
  11865. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  11866. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11867. #define BIT_SHIFT_TXDMA_CMQ_MAP 16
  11868. #define BIT_MASK_TXDMA_CMQ_MAP 0x3
  11869. #define BIT_TXDMA_CMQ_MAP(x) \
  11870. (((x) & BIT_MASK_TXDMA_CMQ_MAP) << BIT_SHIFT_TXDMA_CMQ_MAP)
  11871. #define BITS_TXDMA_CMQ_MAP (BIT_MASK_TXDMA_CMQ_MAP << BIT_SHIFT_TXDMA_CMQ_MAP)
  11872. #define BIT_CLEAR_TXDMA_CMQ_MAP(x) ((x) & (~BITS_TXDMA_CMQ_MAP))
  11873. #define BIT_GET_TXDMA_CMQ_MAP(x) \
  11874. (((x) >> BIT_SHIFT_TXDMA_CMQ_MAP) & BIT_MASK_TXDMA_CMQ_MAP)
  11875. #define BIT_SET_TXDMA_CMQ_MAP(x, v) \
  11876. (BIT_CLEAR_TXDMA_CMQ_MAP(x) | BIT_TXDMA_CMQ_MAP(v))
  11877. #endif
  11878. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  11879. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11880. #define BIT_SHIFT_TXDMA_MGQ_MAP_V1 16
  11881. #define BIT_MASK_TXDMA_MGQ_MAP_V1 0x7
  11882. #define BIT_TXDMA_MGQ_MAP_V1(x) \
  11883. (((x) & BIT_MASK_TXDMA_MGQ_MAP_V1) << BIT_SHIFT_TXDMA_MGQ_MAP_V1)
  11884. #define BITS_TXDMA_MGQ_MAP_V1 \
  11885. (BIT_MASK_TXDMA_MGQ_MAP_V1 << BIT_SHIFT_TXDMA_MGQ_MAP_V1)
  11886. #define BIT_CLEAR_TXDMA_MGQ_MAP_V1(x) ((x) & (~BITS_TXDMA_MGQ_MAP_V1))
  11887. #define BIT_GET_TXDMA_MGQ_MAP_V1(x) \
  11888. (((x) >> BIT_SHIFT_TXDMA_MGQ_MAP_V1) & BIT_MASK_TXDMA_MGQ_MAP_V1)
  11889. #define BIT_SET_TXDMA_MGQ_MAP_V1(x, v) \
  11890. (BIT_CLEAR_TXDMA_MGQ_MAP_V1(x) | BIT_TXDMA_MGQ_MAP_V1(v))
  11891. #endif
  11892. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  11893. HALMAC_8822C_SUPPORT)
  11894. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11895. #define BIT_SHIFT_TXDMA_H2C_MAP 16
  11896. #define BIT_MASK_TXDMA_H2C_MAP 0x3
  11897. #define BIT_TXDMA_H2C_MAP(x) \
  11898. (((x) & BIT_MASK_TXDMA_H2C_MAP) << BIT_SHIFT_TXDMA_H2C_MAP)
  11899. #define BITS_TXDMA_H2C_MAP (BIT_MASK_TXDMA_H2C_MAP << BIT_SHIFT_TXDMA_H2C_MAP)
  11900. #define BIT_CLEAR_TXDMA_H2C_MAP(x) ((x) & (~BITS_TXDMA_H2C_MAP))
  11901. #define BIT_GET_TXDMA_H2C_MAP(x) \
  11902. (((x) >> BIT_SHIFT_TXDMA_H2C_MAP) & BIT_MASK_TXDMA_H2C_MAP)
  11903. #define BIT_SET_TXDMA_H2C_MAP(x, v) \
  11904. (BIT_CLEAR_TXDMA_H2C_MAP(x) | BIT_TXDMA_H2C_MAP(v))
  11905. #endif
  11906. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11907. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11908. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11909. HALMAC_8881A_SUPPORT)
  11910. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11911. #define BIT_SHIFT_TXDMA_HIQ_MAP 14
  11912. #define BIT_MASK_TXDMA_HIQ_MAP 0x3
  11913. #define BIT_TXDMA_HIQ_MAP(x) \
  11914. (((x) & BIT_MASK_TXDMA_HIQ_MAP) << BIT_SHIFT_TXDMA_HIQ_MAP)
  11915. #define BITS_TXDMA_HIQ_MAP (BIT_MASK_TXDMA_HIQ_MAP << BIT_SHIFT_TXDMA_HIQ_MAP)
  11916. #define BIT_CLEAR_TXDMA_HIQ_MAP(x) ((x) & (~BITS_TXDMA_HIQ_MAP))
  11917. #define BIT_GET_TXDMA_HIQ_MAP(x) \
  11918. (((x) >> BIT_SHIFT_TXDMA_HIQ_MAP) & BIT_MASK_TXDMA_HIQ_MAP)
  11919. #define BIT_SET_TXDMA_HIQ_MAP(x, v) \
  11920. (BIT_CLEAR_TXDMA_HIQ_MAP(x) | BIT_TXDMA_HIQ_MAP(v))
  11921. #endif
  11922. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  11923. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11924. #define BIT_SHIFT_TXDMA_BKQ_MAP_V1 13
  11925. #define BIT_MASK_TXDMA_BKQ_MAP_V1 0x7
  11926. #define BIT_TXDMA_BKQ_MAP_V1(x) \
  11927. (((x) & BIT_MASK_TXDMA_BKQ_MAP_V1) << BIT_SHIFT_TXDMA_BKQ_MAP_V1)
  11928. #define BITS_TXDMA_BKQ_MAP_V1 \
  11929. (BIT_MASK_TXDMA_BKQ_MAP_V1 << BIT_SHIFT_TXDMA_BKQ_MAP_V1)
  11930. #define BIT_CLEAR_TXDMA_BKQ_MAP_V1(x) ((x) & (~BITS_TXDMA_BKQ_MAP_V1))
  11931. #define BIT_GET_TXDMA_BKQ_MAP_V1(x) \
  11932. (((x) >> BIT_SHIFT_TXDMA_BKQ_MAP_V1) & BIT_MASK_TXDMA_BKQ_MAP_V1)
  11933. #define BIT_SET_TXDMA_BKQ_MAP_V1(x, v) \
  11934. (BIT_CLEAR_TXDMA_BKQ_MAP_V1(x) | BIT_TXDMA_BKQ_MAP_V1(v))
  11935. #endif
  11936. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11937. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11938. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11939. HALMAC_8881A_SUPPORT)
  11940. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11941. #define BIT_SHIFT_TXDMA_MGQ_MAP 12
  11942. #define BIT_MASK_TXDMA_MGQ_MAP 0x3
  11943. #define BIT_TXDMA_MGQ_MAP(x) \
  11944. (((x) & BIT_MASK_TXDMA_MGQ_MAP) << BIT_SHIFT_TXDMA_MGQ_MAP)
  11945. #define BITS_TXDMA_MGQ_MAP (BIT_MASK_TXDMA_MGQ_MAP << BIT_SHIFT_TXDMA_MGQ_MAP)
  11946. #define BIT_CLEAR_TXDMA_MGQ_MAP(x) ((x) & (~BITS_TXDMA_MGQ_MAP))
  11947. #define BIT_GET_TXDMA_MGQ_MAP(x) \
  11948. (((x) >> BIT_SHIFT_TXDMA_MGQ_MAP) & BIT_MASK_TXDMA_MGQ_MAP)
  11949. #define BIT_SET_TXDMA_MGQ_MAP(x, v) \
  11950. (BIT_CLEAR_TXDMA_MGQ_MAP(x) | BIT_TXDMA_MGQ_MAP(v))
  11951. #define BIT_SHIFT_TXDMA_BKQ_MAP 10
  11952. #define BIT_MASK_TXDMA_BKQ_MAP 0x3
  11953. #define BIT_TXDMA_BKQ_MAP(x) \
  11954. (((x) & BIT_MASK_TXDMA_BKQ_MAP) << BIT_SHIFT_TXDMA_BKQ_MAP)
  11955. #define BITS_TXDMA_BKQ_MAP (BIT_MASK_TXDMA_BKQ_MAP << BIT_SHIFT_TXDMA_BKQ_MAP)
  11956. #define BIT_CLEAR_TXDMA_BKQ_MAP(x) ((x) & (~BITS_TXDMA_BKQ_MAP))
  11957. #define BIT_GET_TXDMA_BKQ_MAP(x) \
  11958. (((x) >> BIT_SHIFT_TXDMA_BKQ_MAP) & BIT_MASK_TXDMA_BKQ_MAP)
  11959. #define BIT_SET_TXDMA_BKQ_MAP(x, v) \
  11960. (BIT_CLEAR_TXDMA_BKQ_MAP(x) | BIT_TXDMA_BKQ_MAP(v))
  11961. #endif
  11962. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  11963. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11964. #define BIT_SHIFT_TXDMA_BEQ_MAP_V1 10
  11965. #define BIT_MASK_TXDMA_BEQ_MAP_V1 0x7
  11966. #define BIT_TXDMA_BEQ_MAP_V1(x) \
  11967. (((x) & BIT_MASK_TXDMA_BEQ_MAP_V1) << BIT_SHIFT_TXDMA_BEQ_MAP_V1)
  11968. #define BITS_TXDMA_BEQ_MAP_V1 \
  11969. (BIT_MASK_TXDMA_BEQ_MAP_V1 << BIT_SHIFT_TXDMA_BEQ_MAP_V1)
  11970. #define BIT_CLEAR_TXDMA_BEQ_MAP_V1(x) ((x) & (~BITS_TXDMA_BEQ_MAP_V1))
  11971. #define BIT_GET_TXDMA_BEQ_MAP_V1(x) \
  11972. (((x) >> BIT_SHIFT_TXDMA_BEQ_MAP_V1) & BIT_MASK_TXDMA_BEQ_MAP_V1)
  11973. #define BIT_SET_TXDMA_BEQ_MAP_V1(x, v) \
  11974. (BIT_CLEAR_TXDMA_BEQ_MAP_V1(x) | BIT_TXDMA_BEQ_MAP_V1(v))
  11975. #endif
  11976. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  11977. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  11978. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  11979. HALMAC_8881A_SUPPORT)
  11980. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11981. #define BIT_SHIFT_TXDMA_BEQ_MAP 8
  11982. #define BIT_MASK_TXDMA_BEQ_MAP 0x3
  11983. #define BIT_TXDMA_BEQ_MAP(x) \
  11984. (((x) & BIT_MASK_TXDMA_BEQ_MAP) << BIT_SHIFT_TXDMA_BEQ_MAP)
  11985. #define BITS_TXDMA_BEQ_MAP (BIT_MASK_TXDMA_BEQ_MAP << BIT_SHIFT_TXDMA_BEQ_MAP)
  11986. #define BIT_CLEAR_TXDMA_BEQ_MAP(x) ((x) & (~BITS_TXDMA_BEQ_MAP))
  11987. #define BIT_GET_TXDMA_BEQ_MAP(x) \
  11988. (((x) >> BIT_SHIFT_TXDMA_BEQ_MAP) & BIT_MASK_TXDMA_BEQ_MAP)
  11989. #define BIT_SET_TXDMA_BEQ_MAP(x, v) \
  11990. (BIT_CLEAR_TXDMA_BEQ_MAP(x) | BIT_TXDMA_BEQ_MAP(v))
  11991. #endif
  11992. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  11993. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  11994. #define BIT_SHIFT_TXDMA_VIQ_MAP_V1 7
  11995. #define BIT_MASK_TXDMA_VIQ_MAP_V1 0x7
  11996. #define BIT_TXDMA_VIQ_MAP_V1(x) \
  11997. (((x) & BIT_MASK_TXDMA_VIQ_MAP_V1) << BIT_SHIFT_TXDMA_VIQ_MAP_V1)
  11998. #define BITS_TXDMA_VIQ_MAP_V1 \
  11999. (BIT_MASK_TXDMA_VIQ_MAP_V1 << BIT_SHIFT_TXDMA_VIQ_MAP_V1)
  12000. #define BIT_CLEAR_TXDMA_VIQ_MAP_V1(x) ((x) & (~BITS_TXDMA_VIQ_MAP_V1))
  12001. #define BIT_GET_TXDMA_VIQ_MAP_V1(x) \
  12002. (((x) >> BIT_SHIFT_TXDMA_VIQ_MAP_V1) & BIT_MASK_TXDMA_VIQ_MAP_V1)
  12003. #define BIT_SET_TXDMA_VIQ_MAP_V1(x, v) \
  12004. (BIT_CLEAR_TXDMA_VIQ_MAP_V1(x) | BIT_TXDMA_VIQ_MAP_V1(v))
  12005. #endif
  12006. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12007. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12008. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  12009. HALMAC_8881A_SUPPORT)
  12010. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  12011. #define BIT_SHIFT_TXDMA_VIQ_MAP 6
  12012. #define BIT_MASK_TXDMA_VIQ_MAP 0x3
  12013. #define BIT_TXDMA_VIQ_MAP(x) \
  12014. (((x) & BIT_MASK_TXDMA_VIQ_MAP) << BIT_SHIFT_TXDMA_VIQ_MAP)
  12015. #define BITS_TXDMA_VIQ_MAP (BIT_MASK_TXDMA_VIQ_MAP << BIT_SHIFT_TXDMA_VIQ_MAP)
  12016. #define BIT_CLEAR_TXDMA_VIQ_MAP(x) ((x) & (~BITS_TXDMA_VIQ_MAP))
  12017. #define BIT_GET_TXDMA_VIQ_MAP(x) \
  12018. (((x) >> BIT_SHIFT_TXDMA_VIQ_MAP) & BIT_MASK_TXDMA_VIQ_MAP)
  12019. #define BIT_SET_TXDMA_VIQ_MAP(x, v) \
  12020. (BIT_CLEAR_TXDMA_VIQ_MAP(x) | BIT_TXDMA_VIQ_MAP(v))
  12021. #define BIT_SHIFT_TXDMA_VOQ_MAP 4
  12022. #define BIT_MASK_TXDMA_VOQ_MAP 0x3
  12023. #define BIT_TXDMA_VOQ_MAP(x) \
  12024. (((x) & BIT_MASK_TXDMA_VOQ_MAP) << BIT_SHIFT_TXDMA_VOQ_MAP)
  12025. #define BITS_TXDMA_VOQ_MAP (BIT_MASK_TXDMA_VOQ_MAP << BIT_SHIFT_TXDMA_VOQ_MAP)
  12026. #define BIT_CLEAR_TXDMA_VOQ_MAP(x) ((x) & (~BITS_TXDMA_VOQ_MAP))
  12027. #define BIT_GET_TXDMA_VOQ_MAP(x) \
  12028. (((x) >> BIT_SHIFT_TXDMA_VOQ_MAP) & BIT_MASK_TXDMA_VOQ_MAP)
  12029. #define BIT_SET_TXDMA_VOQ_MAP(x, v) \
  12030. (BIT_CLEAR_TXDMA_VOQ_MAP(x) | BIT_TXDMA_VOQ_MAP(v))
  12031. #endif
  12032. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  12033. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  12034. #define BIT_SHIFT_TXDMA_VOQ_MAP_V1 4
  12035. #define BIT_MASK_TXDMA_VOQ_MAP_V1 0x7
  12036. #define BIT_TXDMA_VOQ_MAP_V1(x) \
  12037. (((x) & BIT_MASK_TXDMA_VOQ_MAP_V1) << BIT_SHIFT_TXDMA_VOQ_MAP_V1)
  12038. #define BITS_TXDMA_VOQ_MAP_V1 \
  12039. (BIT_MASK_TXDMA_VOQ_MAP_V1 << BIT_SHIFT_TXDMA_VOQ_MAP_V1)
  12040. #define BIT_CLEAR_TXDMA_VOQ_MAP_V1(x) ((x) & (~BITS_TXDMA_VOQ_MAP_V1))
  12041. #define BIT_GET_TXDMA_VOQ_MAP_V1(x) \
  12042. (((x) >> BIT_SHIFT_TXDMA_VOQ_MAP_V1) & BIT_MASK_TXDMA_VOQ_MAP_V1)
  12043. #define BIT_SET_TXDMA_VOQ_MAP_V1(x, v) \
  12044. (BIT_CLEAR_TXDMA_VOQ_MAP_V1(x) | BIT_TXDMA_VOQ_MAP_V1(v))
  12045. #endif
  12046. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12047. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  12048. #define BIT_TXDMA_BW_EN BIT(3)
  12049. #endif
  12050. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  12051. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12052. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12053. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  12054. /* 2 REG_TXDMA_PQ_MAP (Offset 0x010C) */
  12055. #define BIT_RXDMA_AGG_EN BIT(2)
  12056. #define BIT_RXSHFT_EN BIT(1)
  12057. #define BIT_RXDMA_ARBBW_EN BIT(0)
  12058. #endif
  12059. #if (HALMAC_8814A_SUPPORT)
  12060. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12061. #define BIT_SHIFT_RXFFOVFL_RSV_V1 28
  12062. #define BIT_MASK_RXFFOVFL_RSV_V1 0xf
  12063. #define BIT_RXFFOVFL_RSV_V1(x) \
  12064. (((x) & BIT_MASK_RXFFOVFL_RSV_V1) << BIT_SHIFT_RXFFOVFL_RSV_V1)
  12065. #define BITS_RXFFOVFL_RSV_V1 \
  12066. (BIT_MASK_RXFFOVFL_RSV_V1 << BIT_SHIFT_RXFFOVFL_RSV_V1)
  12067. #define BIT_CLEAR_RXFFOVFL_RSV_V1(x) ((x) & (~BITS_RXFFOVFL_RSV_V1))
  12068. #define BIT_GET_RXFFOVFL_RSV_V1(x) \
  12069. (((x) >> BIT_SHIFT_RXFFOVFL_RSV_V1) & BIT_MASK_RXFFOVFL_RSV_V1)
  12070. #define BIT_SET_RXFFOVFL_RSV_V1(x, v) \
  12071. (BIT_CLEAR_RXFFOVFL_RSV_V1(x) | BIT_RXFFOVFL_RSV_V1(v))
  12072. #endif
  12073. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  12074. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12075. #define BIT_SHIFT_RXFF0_BNDY 16
  12076. #define BIT_MASK_RXFF0_BNDY 0xffff
  12077. #define BIT_RXFF0_BNDY(x) (((x) & BIT_MASK_RXFF0_BNDY) << BIT_SHIFT_RXFF0_BNDY)
  12078. #define BITS_RXFF0_BNDY (BIT_MASK_RXFF0_BNDY << BIT_SHIFT_RXFF0_BNDY)
  12079. #define BIT_CLEAR_RXFF0_BNDY(x) ((x) & (~BITS_RXFF0_BNDY))
  12080. #define BIT_GET_RXFF0_BNDY(x) \
  12081. (((x) >> BIT_SHIFT_RXFF0_BNDY) & BIT_MASK_RXFF0_BNDY)
  12082. #define BIT_SET_RXFF0_BNDY(x, v) (BIT_CLEAR_RXFF0_BNDY(x) | BIT_RXFF0_BNDY(v))
  12083. #endif
  12084. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  12085. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12086. #define BIT_SHIFT_FWFFOVFL_RSV 16
  12087. #define BIT_MASK_FWFFOVFL_RSV 0xf
  12088. #define BIT_FWFFOVFL_RSV(x) \
  12089. (((x) & BIT_MASK_FWFFOVFL_RSV) << BIT_SHIFT_FWFFOVFL_RSV)
  12090. #define BITS_FWFFOVFL_RSV (BIT_MASK_FWFFOVFL_RSV << BIT_SHIFT_FWFFOVFL_RSV)
  12091. #define BIT_CLEAR_FWFFOVFL_RSV(x) ((x) & (~BITS_FWFFOVFL_RSV))
  12092. #define BIT_GET_FWFFOVFL_RSV(x) \
  12093. (((x) >> BIT_SHIFT_FWFFOVFL_RSV) & BIT_MASK_FWFFOVFL_RSV)
  12094. #define BIT_SET_FWFFOVFL_RSV(x, v) \
  12095. (BIT_CLEAR_FWFFOVFL_RSV(x) | BIT_FWFFOVFL_RSV(v))
  12096. #endif
  12097. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  12098. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12099. #define BIT_SHIFT_RXFFOVFL_RSV 8
  12100. #define BIT_MASK_RXFFOVFL_RSV 0xf
  12101. #define BIT_RXFFOVFL_RSV(x) \
  12102. (((x) & BIT_MASK_RXFFOVFL_RSV) << BIT_SHIFT_RXFFOVFL_RSV)
  12103. #define BITS_RXFFOVFL_RSV (BIT_MASK_RXFFOVFL_RSV << BIT_SHIFT_RXFFOVFL_RSV)
  12104. #define BIT_CLEAR_RXFFOVFL_RSV(x) ((x) & (~BITS_RXFFOVFL_RSV))
  12105. #define BIT_GET_RXFFOVFL_RSV(x) \
  12106. (((x) >> BIT_SHIFT_RXFFOVFL_RSV) & BIT_MASK_RXFFOVFL_RSV)
  12107. #define BIT_SET_RXFFOVFL_RSV(x, v) \
  12108. (BIT_CLEAR_RXFFOVFL_RSV(x) | BIT_RXFFOVFL_RSV(v))
  12109. #endif
  12110. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12111. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12112. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12113. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12114. #define BIT_SHIFT_RXFFOVFL_RSV_V2 8
  12115. #define BIT_MASK_RXFFOVFL_RSV_V2 0xf
  12116. #define BIT_RXFFOVFL_RSV_V2(x) \
  12117. (((x) & BIT_MASK_RXFFOVFL_RSV_V2) << BIT_SHIFT_RXFFOVFL_RSV_V2)
  12118. #define BITS_RXFFOVFL_RSV_V2 \
  12119. (BIT_MASK_RXFFOVFL_RSV_V2 << BIT_SHIFT_RXFFOVFL_RSV_V2)
  12120. #define BIT_CLEAR_RXFFOVFL_RSV_V2(x) ((x) & (~BITS_RXFFOVFL_RSV_V2))
  12121. #define BIT_GET_RXFFOVFL_RSV_V2(x) \
  12122. (((x) >> BIT_SHIFT_RXFFOVFL_RSV_V2) & BIT_MASK_RXFFOVFL_RSV_V2)
  12123. #define BIT_SET_RXFFOVFL_RSV_V2(x, v) \
  12124. (BIT_CLEAR_RXFFOVFL_RSV_V2(x) | BIT_RXFFOVFL_RSV_V2(v))
  12125. #endif
  12126. #if (HALMAC_8814A_SUPPORT)
  12127. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12128. #define BIT_SHIFT_RXFF0_BNDY_V1 8
  12129. #define BIT_MASK_RXFF0_BNDY_V1 0x3ffff
  12130. #define BIT_RXFF0_BNDY_V1(x) \
  12131. (((x) & BIT_MASK_RXFF0_BNDY_V1) << BIT_SHIFT_RXFF0_BNDY_V1)
  12132. #define BITS_RXFF0_BNDY_V1 (BIT_MASK_RXFF0_BNDY_V1 << BIT_SHIFT_RXFF0_BNDY_V1)
  12133. #define BIT_CLEAR_RXFF0_BNDY_V1(x) ((x) & (~BITS_RXFF0_BNDY_V1))
  12134. #define BIT_GET_RXFF0_BNDY_V1(x) \
  12135. (((x) >> BIT_SHIFT_RXFF0_BNDY_V1) & BIT_MASK_RXFF0_BNDY_V1)
  12136. #define BIT_SET_RXFF0_BNDY_V1(x, v) \
  12137. (BIT_CLEAR_RXFF0_BNDY_V1(x) | BIT_RXFF0_BNDY_V1(v))
  12138. #endif
  12139. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  12140. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  12141. HALMAC_8881A_SUPPORT)
  12142. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12143. #define BIT_SHIFT_TXPKTBUF_PGBNDY 0
  12144. #define BIT_MASK_TXPKTBUF_PGBNDY 0xff
  12145. #define BIT_TXPKTBUF_PGBNDY(x) \
  12146. (((x) & BIT_MASK_TXPKTBUF_PGBNDY) << BIT_SHIFT_TXPKTBUF_PGBNDY)
  12147. #define BITS_TXPKTBUF_PGBNDY \
  12148. (BIT_MASK_TXPKTBUF_PGBNDY << BIT_SHIFT_TXPKTBUF_PGBNDY)
  12149. #define BIT_CLEAR_TXPKTBUF_PGBNDY(x) ((x) & (~BITS_TXPKTBUF_PGBNDY))
  12150. #define BIT_GET_TXPKTBUF_PGBNDY(x) \
  12151. (((x) >> BIT_SHIFT_TXPKTBUF_PGBNDY) & BIT_MASK_TXPKTBUF_PGBNDY)
  12152. #define BIT_SET_TXPKTBUF_PGBNDY(x, v) \
  12153. (BIT_CLEAR_TXPKTBUF_PGBNDY(x) | BIT_TXPKTBUF_PGBNDY(v))
  12154. #endif
  12155. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12156. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12157. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12158. /* 2 REG_TRXFF_BNDY (Offset 0x0114) */
  12159. #define BIT_SHIFT_RXFF0_BNDY_V2 0
  12160. #define BIT_MASK_RXFF0_BNDY_V2 0x3ffff
  12161. #define BIT_RXFF0_BNDY_V2(x) \
  12162. (((x) & BIT_MASK_RXFF0_BNDY_V2) << BIT_SHIFT_RXFF0_BNDY_V2)
  12163. #define BITS_RXFF0_BNDY_V2 (BIT_MASK_RXFF0_BNDY_V2 << BIT_SHIFT_RXFF0_BNDY_V2)
  12164. #define BIT_CLEAR_RXFF0_BNDY_V2(x) ((x) & (~BITS_RXFF0_BNDY_V2))
  12165. #define BIT_GET_RXFF0_BNDY_V2(x) \
  12166. (((x) >> BIT_SHIFT_RXFF0_BNDY_V2) & BIT_MASK_RXFF0_BNDY_V2)
  12167. #define BIT_SET_RXFF0_BNDY_V2(x, v) \
  12168. (BIT_CLEAR_RXFF0_BNDY_V2(x) | BIT_RXFF0_BNDY_V2(v))
  12169. #define BIT_SHIFT_RXFF0_RDPTR_V2 0
  12170. #define BIT_MASK_RXFF0_RDPTR_V2 0x3ffff
  12171. #define BIT_RXFF0_RDPTR_V2(x) \
  12172. (((x) & BIT_MASK_RXFF0_RDPTR_V2) << BIT_SHIFT_RXFF0_RDPTR_V2)
  12173. #define BITS_RXFF0_RDPTR_V2 \
  12174. (BIT_MASK_RXFF0_RDPTR_V2 << BIT_SHIFT_RXFF0_RDPTR_V2)
  12175. #define BIT_CLEAR_RXFF0_RDPTR_V2(x) ((x) & (~BITS_RXFF0_RDPTR_V2))
  12176. #define BIT_GET_RXFF0_RDPTR_V2(x) \
  12177. (((x) >> BIT_SHIFT_RXFF0_RDPTR_V2) & BIT_MASK_RXFF0_RDPTR_V2)
  12178. #define BIT_SET_RXFF0_RDPTR_V2(x, v) \
  12179. (BIT_CLEAR_RXFF0_RDPTR_V2(x) | BIT_RXFF0_RDPTR_V2(v))
  12180. #define BIT_SHIFT_RXFF0_WTPTR_V2 0
  12181. #define BIT_MASK_RXFF0_WTPTR_V2 0x3ffff
  12182. #define BIT_RXFF0_WTPTR_V2(x) \
  12183. (((x) & BIT_MASK_RXFF0_WTPTR_V2) << BIT_SHIFT_RXFF0_WTPTR_V2)
  12184. #define BITS_RXFF0_WTPTR_V2 \
  12185. (BIT_MASK_RXFF0_WTPTR_V2 << BIT_SHIFT_RXFF0_WTPTR_V2)
  12186. #define BIT_CLEAR_RXFF0_WTPTR_V2(x) ((x) & (~BITS_RXFF0_WTPTR_V2))
  12187. #define BIT_GET_RXFF0_WTPTR_V2(x) \
  12188. (((x) >> BIT_SHIFT_RXFF0_WTPTR_V2) & BIT_MASK_RXFF0_WTPTR_V2)
  12189. #define BIT_SET_RXFF0_WTPTR_V2(x, v) \
  12190. (BIT_CLEAR_RXFF0_WTPTR_V2(x) | BIT_RXFF0_WTPTR_V2(v))
  12191. #endif
  12192. #if (HALMAC_8814A_SUPPORT)
  12193. /* 2 REG_FF_STATUS (Offset 0x0118) */
  12194. #define BIT_SHIFT_RXFF0_RDPTR_V1 13
  12195. #define BIT_MASK_RXFF0_RDPTR_V1 0x3ffff
  12196. #define BIT_RXFF0_RDPTR_V1(x) \
  12197. (((x) & BIT_MASK_RXFF0_RDPTR_V1) << BIT_SHIFT_RXFF0_RDPTR_V1)
  12198. #define BITS_RXFF0_RDPTR_V1 \
  12199. (BIT_MASK_RXFF0_RDPTR_V1 << BIT_SHIFT_RXFF0_RDPTR_V1)
  12200. #define BIT_CLEAR_RXFF0_RDPTR_V1(x) ((x) & (~BITS_RXFF0_RDPTR_V1))
  12201. #define BIT_GET_RXFF0_RDPTR_V1(x) \
  12202. (((x) >> BIT_SHIFT_RXFF0_RDPTR_V1) & BIT_MASK_RXFF0_RDPTR_V1)
  12203. #define BIT_SET_RXFF0_RDPTR_V1(x, v) \
  12204. (BIT_CLEAR_RXFF0_RDPTR_V1(x) | BIT_RXFF0_RDPTR_V1(v))
  12205. #endif
  12206. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  12207. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12208. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12209. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  12210. /* 2 REG_PTA_I2C_MBOX (Offset 0x0118) */
  12211. #define BIT_SHIFT_I2C_M_STATUS 8
  12212. #define BIT_MASK_I2C_M_STATUS 0xf
  12213. #define BIT_I2C_M_STATUS(x) \
  12214. (((x) & BIT_MASK_I2C_M_STATUS) << BIT_SHIFT_I2C_M_STATUS)
  12215. #define BITS_I2C_M_STATUS (BIT_MASK_I2C_M_STATUS << BIT_SHIFT_I2C_M_STATUS)
  12216. #define BIT_CLEAR_I2C_M_STATUS(x) ((x) & (~BITS_I2C_M_STATUS))
  12217. #define BIT_GET_I2C_M_STATUS(x) \
  12218. (((x) >> BIT_SHIFT_I2C_M_STATUS) & BIT_MASK_I2C_M_STATUS)
  12219. #define BIT_SET_I2C_M_STATUS(x, v) \
  12220. (BIT_CLEAR_I2C_M_STATUS(x) | BIT_I2C_M_STATUS(v))
  12221. #endif
  12222. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  12223. /* 2 REG_PTA_I2C_MBOX (Offset 0x0118) */
  12224. #define BIT_SHIFT_I2C_M_BUS_GNT 4
  12225. #define BIT_MASK_I2C_M_BUS_GNT 0x7
  12226. #define BIT_I2C_M_BUS_GNT(x) \
  12227. (((x) & BIT_MASK_I2C_M_BUS_GNT) << BIT_SHIFT_I2C_M_BUS_GNT)
  12228. #define BITS_I2C_M_BUS_GNT (BIT_MASK_I2C_M_BUS_GNT << BIT_SHIFT_I2C_M_BUS_GNT)
  12229. #define BIT_CLEAR_I2C_M_BUS_GNT(x) ((x) & (~BITS_I2C_M_BUS_GNT))
  12230. #define BIT_GET_I2C_M_BUS_GNT(x) \
  12231. (((x) >> BIT_SHIFT_I2C_M_BUS_GNT) & BIT_MASK_I2C_M_BUS_GNT)
  12232. #define BIT_SET_I2C_M_BUS_GNT(x, v) \
  12233. (BIT_CLEAR_I2C_M_BUS_GNT(x) | BIT_I2C_M_BUS_GNT(v))
  12234. #define BIT_I2C_GNT_FW BIT(3)
  12235. #define BIT_SHIFT_I2C_DATA_RATE 1
  12236. #define BIT_MASK_I2C_DATA_RATE 0x3
  12237. #define BIT_I2C_DATA_RATE(x) \
  12238. (((x) & BIT_MASK_I2C_DATA_RATE) << BIT_SHIFT_I2C_DATA_RATE)
  12239. #define BITS_I2C_DATA_RATE (BIT_MASK_I2C_DATA_RATE << BIT_SHIFT_I2C_DATA_RATE)
  12240. #define BIT_CLEAR_I2C_DATA_RATE(x) ((x) & (~BITS_I2C_DATA_RATE))
  12241. #define BIT_GET_I2C_DATA_RATE(x) \
  12242. (((x) >> BIT_SHIFT_I2C_DATA_RATE) & BIT_MASK_I2C_DATA_RATE)
  12243. #define BIT_SET_I2C_DATA_RATE(x, v) \
  12244. (BIT_CLEAR_I2C_DATA_RATE(x) | BIT_I2C_DATA_RATE(v))
  12245. #define BIT_I2C_SW_CONTROL_UNLOCK BIT(0)
  12246. #endif
  12247. #if (HALMAC_8814A_SUPPORT)
  12248. /* 2 REG_FF_STATUS (Offset 0x0118) */
  12249. #define BIT_SHIFT_RXFF0_WTPTR_V1 0
  12250. #define BIT_MASK_RXFF0_WTPTR_V1 0x3ffff
  12251. #define BIT_RXFF0_WTPTR_V1(x) \
  12252. (((x) & BIT_MASK_RXFF0_WTPTR_V1) << BIT_SHIFT_RXFF0_WTPTR_V1)
  12253. #define BITS_RXFF0_WTPTR_V1 \
  12254. (BIT_MASK_RXFF0_WTPTR_V1 << BIT_SHIFT_RXFF0_WTPTR_V1)
  12255. #define BIT_CLEAR_RXFF0_WTPTR_V1(x) ((x) & (~BITS_RXFF0_WTPTR_V1))
  12256. #define BIT_GET_RXFF0_WTPTR_V1(x) \
  12257. (((x) >> BIT_SHIFT_RXFF0_WTPTR_V1) & BIT_MASK_RXFF0_WTPTR_V1)
  12258. #define BIT_SET_RXFF0_WTPTR_V1(x, v) \
  12259. (BIT_CLEAR_RXFF0_WTPTR_V1(x) | BIT_RXFF0_WTPTR_V1(v))
  12260. #endif
  12261. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  12262. /* 2 REG_RXFF_PTR (Offset 0x011C) */
  12263. #define BIT_SHIFT_RXFF0_RDPTR 16
  12264. #define BIT_MASK_RXFF0_RDPTR 0xffff
  12265. #define BIT_RXFF0_RDPTR(x) \
  12266. (((x) & BIT_MASK_RXFF0_RDPTR) << BIT_SHIFT_RXFF0_RDPTR)
  12267. #define BITS_RXFF0_RDPTR (BIT_MASK_RXFF0_RDPTR << BIT_SHIFT_RXFF0_RDPTR)
  12268. #define BIT_CLEAR_RXFF0_RDPTR(x) ((x) & (~BITS_RXFF0_RDPTR))
  12269. #define BIT_GET_RXFF0_RDPTR(x) \
  12270. (((x) >> BIT_SHIFT_RXFF0_RDPTR) & BIT_MASK_RXFF0_RDPTR)
  12271. #define BIT_SET_RXFF0_RDPTR(x, v) \
  12272. (BIT_CLEAR_RXFF0_RDPTR(x) | BIT_RXFF0_RDPTR(v))
  12273. #define BIT_SHIFT_RXFF0_WTPTR 0
  12274. #define BIT_MASK_RXFF0_WTPTR 0xffff
  12275. #define BIT_RXFF0_WTPTR(x) \
  12276. (((x) & BIT_MASK_RXFF0_WTPTR) << BIT_SHIFT_RXFF0_WTPTR)
  12277. #define BITS_RXFF0_WTPTR (BIT_MASK_RXFF0_WTPTR << BIT_SHIFT_RXFF0_WTPTR)
  12278. #define BIT_CLEAR_RXFF0_WTPTR(x) ((x) & (~BITS_RXFF0_WTPTR))
  12279. #define BIT_GET_RXFF0_WTPTR(x) \
  12280. (((x) >> BIT_SHIFT_RXFF0_WTPTR) & BIT_MASK_RXFF0_WTPTR)
  12281. #define BIT_SET_RXFF0_WTPTR(x, v) \
  12282. (BIT_CLEAR_RXFF0_WTPTR(x) | BIT_RXFF0_WTPTR(v))
  12283. #endif
  12284. #if (HALMAC_8192F_SUPPORT)
  12285. /* 2 REG_FEIMR (Offset 0x0120) */
  12286. #define BIT_H2C_OK_INT_MSK BIT(31)
  12287. #endif
  12288. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12289. /* 2 REG_FE1IMR (Offset 0x0120) */
  12290. #define BIT_FS_SW_PLL_LEAVE_32K_INT_EN BIT(31)
  12291. #endif
  12292. #if (HALMAC_8814B_SUPPORT)
  12293. /* 2 REG_FE1IMR (Offset 0x0120) */
  12294. #define BIT_CPUMGQ_DROP_BY_HOLD_TIME_INT_EN BIT(31)
  12295. #endif
  12296. #if (HALMAC_8192F_SUPPORT)
  12297. /* 2 REG_FEIMR (Offset 0x0120) */
  12298. #define BIT_H2C_CMD_FULL_INT_MSK BIT(30)
  12299. #endif
  12300. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12301. /* 2 REG_FE1IMR (Offset 0x0120) */
  12302. #define BIT_FS_FWFF_FULL_INT_EN BIT(30)
  12303. #endif
  12304. #if (HALMAC_8814B_SUPPORT)
  12305. /* 2 REG_FE1IMR (Offset 0x0120) */
  12306. #define BIT_FWFF_FULL_INT_EN BIT(30)
  12307. #endif
  12308. #if (HALMAC_8192F_SUPPORT)
  12309. /* 2 REG_FEIMR (Offset 0x0120) */
  12310. #define BIT_PWR_INT_127_MSK_V1 BIT(29)
  12311. #endif
  12312. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  12313. /* 2 REG_FE1IMR (Offset 0x0120) */
  12314. #define BIT_BB_STOP_RX_INT_EN BIT(29)
  12315. #endif
  12316. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12317. /* 2 REG_FE1IMR (Offset 0x0120) */
  12318. #define BIT_FS_BB_STOP_RX_INT_EN BIT(29)
  12319. #endif
  12320. #if (HALMAC_8192F_SUPPORT)
  12321. /* 2 REG_FEIMR (Offset 0x0120) */
  12322. #define BIT_PWR_INT_126_MSK BIT(28)
  12323. #endif
  12324. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12325. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12326. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12327. /* 2 REG_FE1IMR (Offset 0x0120) */
  12328. #define BIT_FS_RXDMA2_DONE_INT_EN BIT(28)
  12329. #endif
  12330. #if (HALMAC_8192F_SUPPORT)
  12331. /* 2 REG_FEIMR (Offset 0x0120) */
  12332. #define BIT_PWR_INT_125TO96_MSK BIT(27)
  12333. #endif
  12334. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12335. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12336. HALMAC_8822B_SUPPORT)
  12337. /* 2 REG_FE1IMR (Offset 0x0120) */
  12338. #define BIT_FS_RXDONE3_INT_EN BIT(27)
  12339. #endif
  12340. #if (HALMAC_8192F_SUPPORT)
  12341. /* 2 REG_FEIMR (Offset 0x0120) */
  12342. #define BIT_PWR_INT_95TO64_MSK_V1 BIT(26)
  12343. #endif
  12344. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12345. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12346. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12347. /* 2 REG_FE1IMR (Offset 0x0120) */
  12348. #define BIT_FS_RXDONE2_INT_EN BIT(26)
  12349. #endif
  12350. #if (HALMAC_8192F_SUPPORT)
  12351. /* 2 REG_FEIMR (Offset 0x0120) */
  12352. #define BIT_PWR_INT_63TO32_MSK_V1 BIT(25)
  12353. #endif
  12354. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12355. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12356. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12357. /* 2 REG_FE1IMR (Offset 0x0120) */
  12358. #define BIT_FS_RX_BCN_P4_INT_EN BIT(25)
  12359. #endif
  12360. #if (HALMAC_8192F_SUPPORT)
  12361. /* 2 REG_FEIMR (Offset 0x0120) */
  12362. #define BIT_PWR_INT_31TO0_MSK_V1 BIT(24)
  12363. #endif
  12364. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12365. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12367. /* 2 REG_FE1IMR (Offset 0x0120) */
  12368. #define BIT_FS_RX_BCN_P3_INT_EN BIT(24)
  12369. #define BIT_FS_RX_BCN_P2_INT_EN BIT(23)
  12370. #define BIT_FS_RX_BCN_P1_INT_EN BIT(22)
  12371. #endif
  12372. #if (HALMAC_8192F_SUPPORT)
  12373. /* 2 REG_FEIMR (Offset 0x0120) */
  12374. #define BIT_BF0_TIMEOUT_INT_MSK BIT(21)
  12375. #endif
  12376. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12377. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12378. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12379. /* 2 REG_FE1IMR (Offset 0x0120) */
  12380. #define BIT_FS_RX_BCN_P0_INT_EN BIT(21)
  12381. #endif
  12382. #if (HALMAC_8192F_SUPPORT)
  12383. /* 2 REG_FEIMR (Offset 0x0120) */
  12384. #define BIT_BF1_TIMEOUT_INT_MSK BIT(20)
  12385. #endif
  12386. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12387. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12388. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12389. /* 2 REG_FE1IMR (Offset 0x0120) */
  12390. #define BIT_FS_RX_UMD0_INT_EN BIT(20)
  12391. #endif
  12392. #if (HALMAC_8192F_SUPPORT)
  12393. /* 2 REG_FEIMR (Offset 0x0120) */
  12394. #define BIT_EVTQ_TXDONE_INT_MSK BIT(19)
  12395. #endif
  12396. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12397. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12398. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12399. /* 2 REG_FE1IMR (Offset 0x0120) */
  12400. #define BIT_FS_RX_UMD1_INT_EN BIT(19)
  12401. #endif
  12402. #if (HALMAC_8192F_SUPPORT)
  12403. /* 2 REG_FEIMR (Offset 0x0120) */
  12404. #define BIT_EVTQ_START_INT_MSK BIT(18)
  12405. #endif
  12406. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12407. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12408. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12409. /* 2 REG_FE1IMR (Offset 0x0120) */
  12410. #define BIT_FS_RX_BMD0_INT_EN BIT(18)
  12411. #endif
  12412. #if (HALMAC_8192F_SUPPORT)
  12413. /* 2 REG_FEIMR (Offset 0x0120) */
  12414. #define BIT_TXBCN2_OK_INT_MSK BIT(17)
  12415. #endif
  12416. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12417. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12418. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12419. /* 2 REG_FE1IMR (Offset 0x0120) */
  12420. #define BIT_FS_RX_BMD1_INT_EN BIT(17)
  12421. #endif
  12422. #if (HALMAC_8192F_SUPPORT)
  12423. /* 2 REG_FEIMR (Offset 0x0120) */
  12424. #define BIT_TXBCN2_ERR_INT_MSK BIT(16)
  12425. #endif
  12426. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12427. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12428. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12429. /* 2 REG_FE1IMR (Offset 0x0120) */
  12430. #define BIT_FS_RXDONE_INT_EN BIT(16)
  12431. #endif
  12432. #if (HALMAC_8192F_SUPPORT)
  12433. /* 2 REG_FEIMR (Offset 0x0120) */
  12434. #define BIT_DWWIN_END_INT_MSK BIT(15)
  12435. #endif
  12436. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12437. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12438. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12439. /* 2 REG_FE1IMR (Offset 0x0120) */
  12440. #define BIT_FS_WWLAN_INT_EN BIT(15)
  12441. #endif
  12442. #if (HALMAC_8192F_SUPPORT)
  12443. /* 2 REG_FEIMR (Offset 0x0120) */
  12444. #define BIT_BCN2_EARLY_INT_MSK BIT(14)
  12445. #endif
  12446. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12447. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12448. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12449. /* 2 REG_FE1IMR (Offset 0x0120) */
  12450. #define BIT_FS_SOUND_DONE_INT_EN BIT(14)
  12451. #endif
  12452. #if (HALMAC_8192F_SUPPORT)
  12453. /* 2 REG_FEIMR (Offset 0x0120) */
  12454. #define BIT_TBTT1_INT_MSK BIT(13)
  12455. #endif
  12456. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12457. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  12458. /* 2 REG_FE1IMR (Offset 0x0120) */
  12459. #define BIT_FS_LP_STBY_INT_EN BIT(13)
  12460. #endif
  12461. #if (HALMAC_8192F_SUPPORT)
  12462. /* 2 REG_FEIMR (Offset 0x0120) */
  12463. #define BIT_PSTIMERB_INT_MSK BIT(12)
  12464. #endif
  12465. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12466. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12467. HALMAC_8822B_SUPPORT)
  12468. /* 2 REG_FE1IMR (Offset 0x0120) */
  12469. #define BIT_FS_TRL_MTR_INT_EN BIT(12)
  12470. #endif
  12471. #if (HALMAC_8192F_SUPPORT)
  12472. /* 2 REG_FEIMR (Offset 0x0120) */
  12473. #define BIT_PSTIMERA_INT_MSK BIT(11)
  12474. #endif
  12475. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12476. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12477. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12478. /* 2 REG_FE1IMR (Offset 0x0120) */
  12479. #define BIT_FS_BF1_PRETO_INT_EN BIT(11)
  12480. #endif
  12481. #if (HALMAC_8192F_SUPPORT)
  12482. /* 2 REG_FEIMR (Offset 0x0120) */
  12483. #define BIT_P2P_RFOFF_EARLY_INT_MSK BIT(10)
  12484. #endif
  12485. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12486. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12487. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12488. /* 2 REG_FE1IMR (Offset 0x0120) */
  12489. #define BIT_FS_BF0_PRETO_INT_EN BIT(10)
  12490. #endif
  12491. #if (HALMAC_8192F_SUPPORT)
  12492. /* 2 REG_FEIMR (Offset 0x0120) */
  12493. #define BIT_MACID_RELEASE_INT_MSK BIT(9)
  12494. #endif
  12495. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12496. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12497. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12498. /* 2 REG_FE1IMR (Offset 0x0120) */
  12499. #define BIT_FS_PTCL_RELEASE_MACID_INT_EN BIT(9)
  12500. #endif
  12501. #if (HALMAC_8192F_SUPPORT)
  12502. /* 2 REG_FEIMR (Offset 0x0120) */
  12503. #define BIT_NANRPT_DONE_INT_MSK BIT(8)
  12504. #endif
  12505. #if (HALMAC_8198F_SUPPORT)
  12506. /* 2 REG_FE1IMR (Offset 0x0120) */
  12507. #define BIT_PRETXERR_HANDLE_FSIMR BIT(8)
  12508. #endif
  12509. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12510. /* 2 REG_FE1IMR (Offset 0x0120) */
  12511. #define BIT_FS_PRETX_ERRHLD_INT_EN BIT(8)
  12512. #endif
  12513. #if (HALMAC_8814B_SUPPORT)
  12514. /* 2 REG_FE1IMR (Offset 0x0120) */
  12515. #define BIT_PRETX_ERRHLD_INT_EN BIT(8)
  12516. #endif
  12517. #if (HALMAC_8192F_SUPPORT)
  12518. /* 2 REG_FEIMR (Offset 0x0120) */
  12519. #define BIT_FTM_PTT_INT_MSK_V1 BIT(7)
  12520. #endif
  12521. #if (HALMAC_8814B_SUPPORT)
  12522. /* 2 REG_FE1IMR (Offset 0x0120) */
  12523. #define BIT_FS_GTRD_INT_EN BIT(7)
  12524. #endif
  12525. #if (HALMAC_8192F_SUPPORT)
  12526. /* 2 REG_FEIMR (Offset 0x0120) */
  12527. #define BIT_RXFTMREQ_OK_INT_MSK BIT(6)
  12528. #endif
  12529. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12530. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  12531. HALMAC_8822C_SUPPORT)
  12532. /* 2 REG_FE1IMR (Offset 0x0120) */
  12533. #define BIT_FS_LTE_COEX_EN BIT(6)
  12534. #endif
  12535. #if (HALMAC_8192F_SUPPORT)
  12536. /* 2 REG_FEIMR (Offset 0x0120) */
  12537. #define BIT_RXFTM_INT_MSK_V1 BIT(5)
  12538. #endif
  12539. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12540. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12541. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12542. /* 2 REG_FE1IMR (Offset 0x0120) */
  12543. #define BIT_FS_WLACTOFF_INT_EN BIT(5)
  12544. #endif
  12545. #if (HALMAC_8192F_SUPPORT)
  12546. /* 2 REG_FEIMR (Offset 0x0120) */
  12547. #define BIT_TXFTM_INT_MSK_V1 BIT(4)
  12548. #endif
  12549. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12550. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12551. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12552. /* 2 REG_FE1IMR (Offset 0x0120) */
  12553. #define BIT_FS_WLACTON_INT_EN BIT(4)
  12554. #endif
  12555. #if (HALMAC_8192F_SUPPORT)
  12556. /* 2 REG_FEIMR (Offset 0x0120) */
  12557. #define BIT_LTECOEX_INT_MSK BIT(3)
  12558. #endif
  12559. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12560. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12561. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12562. /* 2 REG_FE1IMR (Offset 0x0120) */
  12563. #define BIT_FS_BTCMD_INT_EN BIT(3)
  12564. #endif
  12565. #if (HALMAC_8192E_SUPPORT)
  12566. /* 2 REG_FEIMR (Offset 0x0120) */
  12567. #define BIT_REG_MAILBOX_TO_I2C_INT BIT(2)
  12568. #endif
  12569. #if (HALMAC_8192F_SUPPORT)
  12570. /* 2 REG_FEIMR (Offset 0x0120) */
  12571. #define BIT_MAILBOX_INT_MSK BIT(2)
  12572. #endif
  12573. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12574. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12575. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12576. /* 2 REG_FE1IMR (Offset 0x0120) */
  12577. #define BIT_FS_REG_MAILBOX_TO_I2C_INT_EN BIT(2)
  12578. #endif
  12579. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12580. /* 2 REG_FEIMR (Offset 0x0120) */
  12581. #define BIT_TRPC_TO_INT_EN BIT(1)
  12582. #endif
  12583. #if (HALMAC_8192F_SUPPORT)
  12584. /* 2 REG_FEIMR (Offset 0x0120) */
  12585. #define BIT_FLC_DRUTO_INT_MSK BIT(1)
  12586. #endif
  12587. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12588. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12589. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12590. /* 2 REG_FE1IMR (Offset 0x0120) */
  12591. #define BIT_FS_TRPC_TO_INT_EN_V1 BIT(1)
  12592. #endif
  12593. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12594. /* 2 REG_FEIMR (Offset 0x0120) */
  12595. #define BIT_BIT_RPC_O_T_INT_EN BIT(0)
  12596. #endif
  12597. #if (HALMAC_8192F_SUPPORT)
  12598. /* 2 REG_FEIMR (Offset 0x0120) */
  12599. #define BIT_FLC_PKTTH_INT_MSK BIT(0)
  12600. #endif
  12601. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12602. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12603. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12604. /* 2 REG_FE1IMR (Offset 0x0120) */
  12605. #define BIT_FS_RPC_O_T_INT_EN_V1 BIT(0)
  12606. #endif
  12607. #if (HALMAC_8192F_SUPPORT)
  12608. /* 2 REG_FEISR (Offset 0x0124) */
  12609. #define BIT_H2C_OK_INT BIT(31)
  12610. #endif
  12611. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12612. /* 2 REG_FE1ISR (Offset 0x0124) */
  12613. #define BIT_FS_SW_PLL_LEAVE_32K_INT BIT(31)
  12614. #endif
  12615. #if (HALMAC_8814B_SUPPORT)
  12616. /* 2 REG_FE1ISR (Offset 0x0124) */
  12617. #define BIT_CPUMGQ_DROP_BY_HOLD_TIME_INT BIT(31)
  12618. #endif
  12619. #if (HALMAC_8192F_SUPPORT)
  12620. /* 2 REG_FEISR (Offset 0x0124) */
  12621. #define BIT_H2C_CMD_FULL_INT BIT(30)
  12622. #endif
  12623. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12624. /* 2 REG_FE1ISR (Offset 0x0124) */
  12625. #define BIT_FS_FS_FWFF_FULL_INT BIT(30)
  12626. #endif
  12627. #if (HALMAC_8814B_SUPPORT)
  12628. /* 2 REG_FE1ISR (Offset 0x0124) */
  12629. #define BIT_FWFF_FULL_INT BIT(30)
  12630. #endif
  12631. #if (HALMAC_8192F_SUPPORT)
  12632. /* 2 REG_FEISR (Offset 0x0124) */
  12633. #define BIT_PWR_INT_127_V2 BIT(29)
  12634. #endif
  12635. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  12636. /* 2 REG_FE1ISR (Offset 0x0124) */
  12637. #define BIT_BB_STOP_RX_INT BIT(29)
  12638. #endif
  12639. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12640. /* 2 REG_FE1ISR (Offset 0x0124) */
  12641. #define BIT_FS_BB_STOP_RX_INT BIT(29)
  12642. #endif
  12643. #if (HALMAC_8192F_SUPPORT)
  12644. /* 2 REG_FEISR (Offset 0x0124) */
  12645. #define BIT_PWR_INT_126 BIT(28)
  12646. #endif
  12647. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12648. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12649. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12650. /* 2 REG_FE1ISR (Offset 0x0124) */
  12651. #define BIT_FS_RXDMA2_DONE_INT BIT(28)
  12652. #endif
  12653. #if (HALMAC_8192F_SUPPORT)
  12654. /* 2 REG_FEISR (Offset 0x0124) */
  12655. #define BIT_PWR_INT_125TO96 BIT(27)
  12656. #endif
  12657. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12658. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  12659. /* 2 REG_FE1ISR (Offset 0x0124) */
  12660. #define BIT_FS_RXDONE3_INT BIT(27)
  12661. #endif
  12662. #if (HALMAC_8814B_SUPPORT)
  12663. /* 2 REG_FE1ISR (Offset 0x0124) */
  12664. #define BIT_FS_RXDONE3_INT_INT BIT(27)
  12665. #endif
  12666. #if (HALMAC_8192F_SUPPORT)
  12667. /* 2 REG_FEISR (Offset 0x0124) */
  12668. #define BIT_PWR_INT_95TO64_V1 BIT(26)
  12669. #endif
  12670. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12671. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12672. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12673. /* 2 REG_FE1ISR (Offset 0x0124) */
  12674. #define BIT_FS_RXDONE2_INT BIT(26)
  12675. #endif
  12676. #if (HALMAC_8192F_SUPPORT)
  12677. /* 2 REG_FEISR (Offset 0x0124) */
  12678. #define BIT_PWR_INT_63TO32_V1 BIT(25)
  12679. #endif
  12680. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12681. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12682. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12683. /* 2 REG_FE1ISR (Offset 0x0124) */
  12684. #define BIT_FS_RX_BCN_P4_INT BIT(25)
  12685. #endif
  12686. #if (HALMAC_8192F_SUPPORT)
  12687. /* 2 REG_FEISR (Offset 0x0124) */
  12688. #define BIT_PWR_INT_31TO0_V1 BIT(24)
  12689. #endif
  12690. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12691. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12692. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12693. /* 2 REG_FE1ISR (Offset 0x0124) */
  12694. #define BIT_FS_RX_BCN_P3_INT BIT(24)
  12695. #define BIT_FS_RX_BCN_P2_INT BIT(23)
  12696. #define BIT_FS_RX_BCN_P1_INT BIT(22)
  12697. #define BIT_FS_RX_BCN_P0_INT BIT(21)
  12698. #define BIT_FS_RX_UMD0_INT BIT(20)
  12699. #endif
  12700. #if (HALMAC_8192F_SUPPORT)
  12701. /* 2 REG_FEISR (Offset 0x0124) */
  12702. #define BIT_EVTQ_TXDONE_INT BIT(19)
  12703. #endif
  12704. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12705. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12706. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12707. /* 2 REG_FE1ISR (Offset 0x0124) */
  12708. #define BIT_FS_RX_UMD1_INT BIT(19)
  12709. #endif
  12710. #if (HALMAC_8192F_SUPPORT)
  12711. /* 2 REG_FEISR (Offset 0x0124) */
  12712. #define BIT_EVTQ_START_INT BIT(18)
  12713. #endif
  12714. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12715. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12716. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12717. /* 2 REG_FE1ISR (Offset 0x0124) */
  12718. #define BIT_FS_RX_BMD0_INT BIT(18)
  12719. #endif
  12720. #if (HALMAC_8192F_SUPPORT)
  12721. /* 2 REG_FEISR (Offset 0x0124) */
  12722. #define BIT_TXBCN2_OK_INT BIT(17)
  12723. #endif
  12724. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12725. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12726. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12727. /* 2 REG_FE1ISR (Offset 0x0124) */
  12728. #define BIT_FS_RX_BMD1_INT BIT(17)
  12729. #endif
  12730. #if (HALMAC_8192F_SUPPORT)
  12731. /* 2 REG_FEISR (Offset 0x0124) */
  12732. #define BIT_TXBCN2_ERR_INT BIT(16)
  12733. #endif
  12734. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12735. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12736. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12737. /* 2 REG_FE1ISR (Offset 0x0124) */
  12738. #define BIT_FS_RXDONE_INT BIT(16)
  12739. #endif
  12740. #if (HALMAC_8192F_SUPPORT)
  12741. /* 2 REG_FEISR (Offset 0x0124) */
  12742. #define BIT_DWWIN_END_INT BIT(15)
  12743. #endif
  12744. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12745. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12746. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12747. /* 2 REG_FE1ISR (Offset 0x0124) */
  12748. #define BIT_FS_WWLAN_INT BIT(15)
  12749. #endif
  12750. #if (HALMAC_8192F_SUPPORT)
  12751. /* 2 REG_FEISR (Offset 0x0124) */
  12752. #define BIT_BCN2_EARLY_INT BIT(14)
  12753. #endif
  12754. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12755. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12756. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12757. /* 2 REG_FE1ISR (Offset 0x0124) */
  12758. #define BIT_FS_SOUND_DONE_INT BIT(14)
  12759. #endif
  12760. #if (HALMAC_8192F_SUPPORT)
  12761. /* 2 REG_FEISR (Offset 0x0124) */
  12762. #define BIT_TBTT1_INT BIT(13)
  12763. #endif
  12764. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12765. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  12766. /* 2 REG_FE1ISR (Offset 0x0124) */
  12767. #define BIT_FS_LP_STBY_INT BIT(13)
  12768. #endif
  12769. #if (HALMAC_8192F_SUPPORT)
  12770. /* 2 REG_FEISR (Offset 0x0124) */
  12771. #define BIT_PSTIMERB_INT BIT(12)
  12772. #endif
  12773. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12774. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12775. HALMAC_8822B_SUPPORT)
  12776. /* 2 REG_FE1ISR (Offset 0x0124) */
  12777. #define BIT_FS_TRL_MTR_INT BIT(12)
  12778. #endif
  12779. #if (HALMAC_8192F_SUPPORT)
  12780. /* 2 REG_FEISR (Offset 0x0124) */
  12781. #define BIT_PSTIMERA_INT BIT(11)
  12782. #endif
  12783. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12784. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12785. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12786. /* 2 REG_FE1ISR (Offset 0x0124) */
  12787. #define BIT_FS_BF1_PRETO_INT BIT(11)
  12788. #endif
  12789. #if (HALMAC_8192F_SUPPORT)
  12790. /* 2 REG_FEISR (Offset 0x0124) */
  12791. #define BIT_P2P_RFOFF_EARLY_INT BIT(10)
  12792. #endif
  12793. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12794. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12795. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12796. /* 2 REG_FE1ISR (Offset 0x0124) */
  12797. #define BIT_FS_BF0_PRETO_INT BIT(10)
  12798. #endif
  12799. #if (HALMAC_8192F_SUPPORT)
  12800. /* 2 REG_FEISR (Offset 0x0124) */
  12801. #define BIT_MACID_RELEASE_INT BIT(9)
  12802. #endif
  12803. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12804. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12805. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12806. /* 2 REG_FE1ISR (Offset 0x0124) */
  12807. #define BIT_FS_PTCL_RELEASE_MACID_INT BIT(9)
  12808. #endif
  12809. #if (HALMAC_8192F_SUPPORT)
  12810. /* 2 REG_FEISR (Offset 0x0124) */
  12811. #define BIT_NANRPT_DONE_INT BIT(8)
  12812. #endif
  12813. #if (HALMAC_8198F_SUPPORT)
  12814. /* 2 REG_FE1ISR (Offset 0x0124) */
  12815. #define BIT_PRETXERR_HANDLE_FSISR BIT(8)
  12816. #endif
  12817. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  12818. /* 2 REG_FE1ISR (Offset 0x0124) */
  12819. #define BIT_FS_PRETX_ERRHLD_INT BIT(8)
  12820. #endif
  12821. #if (HALMAC_8814B_SUPPORT)
  12822. /* 2 REG_FE1ISR (Offset 0x0124) */
  12823. #define BIT_PRETX_ERRHLD_INT BIT(8)
  12824. #endif
  12825. #if (HALMAC_8192F_SUPPORT)
  12826. /* 2 REG_FEISR (Offset 0x0124) */
  12827. #define BIT_FTM_PTT_INT_V1 BIT(7)
  12828. #endif
  12829. #if (HALMAC_8814B_SUPPORT)
  12830. /* 2 REG_FE1ISR (Offset 0x0124) */
  12831. #define BIT_SND_RDY_INT BIT(7)
  12832. #endif
  12833. #if (HALMAC_8192F_SUPPORT)
  12834. /* 2 REG_FEISR (Offset 0x0124) */
  12835. #define BIT_RXFTMREQ_OK_INT BIT(6)
  12836. #endif
  12837. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12838. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  12839. HALMAC_8822C_SUPPORT)
  12840. /* 2 REG_FE1ISR (Offset 0x0124) */
  12841. #define BIT_FS_LTE_COEX_INT BIT(6)
  12842. #endif
  12843. #if (HALMAC_8192F_SUPPORT)
  12844. /* 2 REG_FEISR (Offset 0x0124) */
  12845. #define BIT_RXFTM_INT_V1 BIT(5)
  12846. #endif
  12847. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12848. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12849. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12850. /* 2 REG_FE1ISR (Offset 0x0124) */
  12851. #define BIT_FS_WLACTOFF_INT BIT(5)
  12852. #endif
  12853. #if (HALMAC_8192F_SUPPORT)
  12854. /* 2 REG_FEISR (Offset 0x0124) */
  12855. #define BIT_TXFTM_INT_V1 BIT(4)
  12856. #endif
  12857. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12858. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12859. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12860. /* 2 REG_FE1ISR (Offset 0x0124) */
  12861. #define BIT_FS_WLACTON_INT BIT(4)
  12862. #endif
  12863. #if (HALMAC_8192F_SUPPORT)
  12864. /* 2 REG_FEISR (Offset 0x0124) */
  12865. #define BIT_LTECOEX_INT BIT(3)
  12866. #endif
  12867. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12868. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  12869. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12870. /* 2 REG_FE1ISR (Offset 0x0124) */
  12871. #define BIT_FS_BCN_RX_INT_INT BIT(3)
  12872. #endif
  12873. #if (HALMAC_8814B_SUPPORT)
  12874. /* 2 REG_FE1ISR (Offset 0x0124) */
  12875. #define BIT_BT_CMD_INT BIT(3)
  12876. #endif
  12877. #if (HALMAC_8192E_SUPPORT)
  12878. /* 2 REG_FEISR (Offset 0x0124) */
  12879. #define BIT_MAILBOX_TO_I2C BIT(2)
  12880. #endif
  12881. #if (HALMAC_8192F_SUPPORT)
  12882. /* 2 REG_FEISR (Offset 0x0124) */
  12883. #define BIT_MAILBOX_INT BIT(2)
  12884. #endif
  12885. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12886. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12887. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12888. /* 2 REG_FE1ISR (Offset 0x0124) */
  12889. #define BIT_FS_MAILBOX_TO_I2C_INT BIT(2)
  12890. #endif
  12891. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12892. /* 2 REG_FEISR (Offset 0x0124) */
  12893. #define BIT_TRPC_TO_INT BIT(1)
  12894. #endif
  12895. #if (HALMAC_8192F_SUPPORT)
  12896. /* 2 REG_FEISR (Offset 0x0124) */
  12897. #define BIT_FLC_DRUTO_INT BIT(1)
  12898. #endif
  12899. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12900. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12901. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12902. /* 2 REG_FE1ISR (Offset 0x0124) */
  12903. #define BIT_FS_TRPC_TO_INT BIT(1)
  12904. #endif
  12905. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12906. /* 2 REG_FEISR (Offset 0x0124) */
  12907. #define BIT_RPC_O_T_INT BIT(0)
  12908. #endif
  12909. #if (HALMAC_8192F_SUPPORT)
  12910. /* 2 REG_FEISR (Offset 0x0124) */
  12911. #define BIT_FLC_PKTTH_INT BIT(0)
  12912. #endif
  12913. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12914. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12915. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12916. /* 2 REG_FE1ISR (Offset 0x0124) */
  12917. #define BIT_FS_RPC_O_T_INT BIT(0)
  12918. #endif
  12919. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  12920. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  12921. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  12922. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  12923. /* 2 REG_CPWM (Offset 0x012C) */
  12924. #define BIT_CPWM_TOGGLING BIT(31)
  12925. #define BIT_SHIFT_CPWM_MOD 24
  12926. #define BIT_MASK_CPWM_MOD 0x7f
  12927. #define BIT_CPWM_MOD(x) (((x) & BIT_MASK_CPWM_MOD) << BIT_SHIFT_CPWM_MOD)
  12928. #define BITS_CPWM_MOD (BIT_MASK_CPWM_MOD << BIT_SHIFT_CPWM_MOD)
  12929. #define BIT_CLEAR_CPWM_MOD(x) ((x) & (~BITS_CPWM_MOD))
  12930. #define BIT_GET_CPWM_MOD(x) (((x) >> BIT_SHIFT_CPWM_MOD) & BIT_MASK_CPWM_MOD)
  12931. #define BIT_SET_CPWM_MOD(x, v) (BIT_CLEAR_CPWM_MOD(x) | BIT_CPWM_MOD(v))
  12932. #endif
  12933. #if (HALMAC_8192F_SUPPORT)
  12934. /* 2 REG_FWIMR (Offset 0x0130) */
  12935. #define BIT_PCIE_BCNDMAERR_INT_MSK BIT(31)
  12936. #endif
  12937. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12938. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12939. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12940. /* 2 REG_FWIMR (Offset 0x0130) */
  12941. #define BIT_FS_TXBCNOK_MB7_INT_EN BIT(31)
  12942. #endif
  12943. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12944. /* 2 REG_FWIMR (Offset 0x0130) */
  12945. #define BIT_SOUND_DONE_MSK BIT(30)
  12946. #endif
  12947. #if (HALMAC_8192F_SUPPORT)
  12948. /* 2 REG_FWIMR (Offset 0x0130) */
  12949. #define BIT_SOUND_DONE_INT_MSK BIT(30)
  12950. #endif
  12951. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12952. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12953. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12954. /* 2 REG_FWIMR (Offset 0x0130) */
  12955. #define BIT_FS_TXBCNOK_MB6_INT_EN BIT(30)
  12956. #endif
  12957. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12958. /* 2 REG_FWIMR (Offset 0x0130) */
  12959. #define BIT_TRY_DONE_MSK BIT(29)
  12960. #endif
  12961. #if (HALMAC_8192F_SUPPORT)
  12962. /* 2 REG_FWIMR (Offset 0x0130) */
  12963. #define BIT_TRY_DONE_INT_MSK BIT(29)
  12964. #endif
  12965. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12966. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12967. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12968. /* 2 REG_FWIMR (Offset 0x0130) */
  12969. #define BIT_FS_TXBCNOK_MB5_INT_EN BIT(29)
  12970. #endif
  12971. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12972. /* 2 REG_FWIMR (Offset 0x0130) */
  12973. #define BIT_TXRPT_CNT_FULL_MSK BIT(28)
  12974. #endif
  12975. #if (HALMAC_8192F_SUPPORT)
  12976. /* 2 REG_FWIMR (Offset 0x0130) */
  12977. #define BIT_TXRPT_CNT_FULL_INT_MSK BIT(28)
  12978. #endif
  12979. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12980. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12981. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12982. /* 2 REG_FWIMR (Offset 0x0130) */
  12983. #define BIT_FS_TXBCNOK_MB4_INT_EN BIT(28)
  12984. #endif
  12985. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  12986. /* 2 REG_FWIMR (Offset 0x0130) */
  12987. #define BIT_WLACTOFF_INT_EN BIT(27)
  12988. #endif
  12989. #if (HALMAC_8192F_SUPPORT)
  12990. /* 2 REG_FWIMR (Offset 0x0130) */
  12991. #define BIT_WLACTOFF_INT_MSK BIT(27)
  12992. #endif
  12993. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  12994. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  12995. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  12996. /* 2 REG_FWIMR (Offset 0x0130) */
  12997. #define BIT_FS_TXBCNOK_MB3_INT_EN BIT(27)
  12998. #endif
  12999. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13000. /* 2 REG_FWIMR (Offset 0x0130) */
  13001. #define BIT_WLACTON_INT_EN BIT(26)
  13002. #endif
  13003. #if (HALMAC_8192F_SUPPORT)
  13004. /* 2 REG_FWIMR (Offset 0x0130) */
  13005. #define BIT_WLACTON_INT_MSK BIT(26)
  13006. #endif
  13007. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13008. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13009. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13010. /* 2 REG_FWIMR (Offset 0x0130) */
  13011. #define BIT_FS_TXBCNOK_MB2_INT_EN BIT(26)
  13012. #endif
  13013. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13014. /* 2 REG_FWIMR (Offset 0x0130) */
  13015. #define BIT_TXPKTIN_INT_EN BIT(25)
  13016. #endif
  13017. #if (HALMAC_8192F_SUPPORT)
  13018. /* 2 REG_FWIMR (Offset 0x0130) */
  13019. #define BIT_TXPKTIN_INT_MSK BIT(25)
  13020. #endif
  13021. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13022. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13023. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13024. /* 2 REG_FWIMR (Offset 0x0130) */
  13025. #define BIT_FS_TXBCNOK_MB1_INT_EN BIT(25)
  13026. #endif
  13027. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13028. /* 2 REG_FWIMR (Offset 0x0130) */
  13029. #define BIT_TXBCNOK_MSK BIT(24)
  13030. #endif
  13031. #if (HALMAC_8192F_SUPPORT)
  13032. /* 2 REG_FWIMR (Offset 0x0130) */
  13033. #define BIT_TXBCNOK_INT_MSK BIT(24)
  13034. #endif
  13035. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13036. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13037. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13038. /* 2 REG_FWIMR (Offset 0x0130) */
  13039. #define BIT_FS_TXBCNOK_MB0_INT_EN BIT(24)
  13040. #endif
  13041. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13042. /* 2 REG_FWIMR (Offset 0x0130) */
  13043. #define BIT_TXBCNERR_MSK BIT(23)
  13044. #endif
  13045. #if (HALMAC_8192F_SUPPORT)
  13046. /* 2 REG_FWIMR (Offset 0x0130) */
  13047. #define BIT_TXBCNERR_INT_MSK BIT(23)
  13048. #endif
  13049. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13050. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13051. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13052. /* 2 REG_FWIMR (Offset 0x0130) */
  13053. #define BIT_FS_TXBCNERR_MB7_INT_EN BIT(23)
  13054. #endif
  13055. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13056. /* 2 REG_FWIMR (Offset 0x0130) */
  13057. #define BIT_RX_UMD0_EN BIT(22)
  13058. #endif
  13059. #if (HALMAC_8192F_SUPPORT)
  13060. /* 2 REG_FWIMR (Offset 0x0130) */
  13061. #define BIT_RX_UMD0_INT_MSK BIT(22)
  13062. #endif
  13063. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13064. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13065. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13066. /* 2 REG_FWIMR (Offset 0x0130) */
  13067. #define BIT_FS_TXBCNERR_MB6_INT_EN BIT(22)
  13068. #endif
  13069. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13070. /* 2 REG_FWIMR (Offset 0x0130) */
  13071. #define BIT_RX_UMD1_EN BIT(21)
  13072. #endif
  13073. #if (HALMAC_8192F_SUPPORT)
  13074. /* 2 REG_FWIMR (Offset 0x0130) */
  13075. #define BIT_RX_UMD1_INT_MSK BIT(21)
  13076. #endif
  13077. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13078. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13079. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13080. /* 2 REG_FWIMR (Offset 0x0130) */
  13081. #define BIT_FS_TXBCNERR_MB5_INT_EN BIT(21)
  13082. #endif
  13083. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13084. /* 2 REG_FWIMR (Offset 0x0130) */
  13085. #define BIT_RX_BMD0_EN BIT(20)
  13086. #endif
  13087. #if (HALMAC_8192F_SUPPORT)
  13088. /* 2 REG_FWIMR (Offset 0x0130) */
  13089. #define BIT_RX_BMD0_INT_MSK BIT(20)
  13090. #endif
  13091. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13092. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13093. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13094. /* 2 REG_FWIMR (Offset 0x0130) */
  13095. #define BIT_FS_TXBCNERR_MB4_INT_EN BIT(20)
  13096. #endif
  13097. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13098. /* 2 REG_FWIMR (Offset 0x0130) */
  13099. #define BIT_RX_BMD1_EN BIT(19)
  13100. #endif
  13101. #if (HALMAC_8192F_SUPPORT)
  13102. /* 2 REG_FWIMR (Offset 0x0130) */
  13103. #define BIT_RX_BMD1_INT_MSK BIT(19)
  13104. #endif
  13105. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13106. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13107. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13108. /* 2 REG_FWIMR (Offset 0x0130) */
  13109. #define BIT_FS_TXBCNERR_MB3_INT_EN BIT(19)
  13110. #endif
  13111. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13112. /* 2 REG_FWIMR (Offset 0x0130) */
  13113. #define BIT_BCN_RX_INT_EN BIT(18)
  13114. #endif
  13115. #if (HALMAC_8192F_SUPPORT)
  13116. /* 2 REG_FWIMR (Offset 0x0130) */
  13117. #define BIT_BCN_RX_INT_INT_MSK BIT(18)
  13118. #endif
  13119. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13120. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13121. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13122. /* 2 REG_FWIMR (Offset 0x0130) */
  13123. #define BIT_FS_TXBCNERR_MB2_INT_EN BIT(18)
  13124. #endif
  13125. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13126. /* 2 REG_FWIMR (Offset 0x0130) */
  13127. #define BIT_TBTTINT_MSK BIT(17)
  13128. #endif
  13129. #if (HALMAC_8192F_SUPPORT)
  13130. /* 2 REG_FWIMR (Offset 0x0130) */
  13131. #define BIT_TBTTINT_INT_MSK BIT(17)
  13132. #endif
  13133. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13134. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13135. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13136. /* 2 REG_FWIMR (Offset 0x0130) */
  13137. #define BIT_FS_TXBCNERR_MB1_INT_EN BIT(17)
  13138. #endif
  13139. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13140. /* 2 REG_FWIMR (Offset 0x0130) */
  13141. #define BIT_BCNERLY_MSK BIT(16)
  13142. #endif
  13143. #if (HALMAC_8192F_SUPPORT)
  13144. /* 2 REG_FWIMR (Offset 0x0130) */
  13145. #define BIT_BCNERLY_INT_MSK BIT(16)
  13146. #endif
  13147. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13148. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13149. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13150. /* 2 REG_FWIMR (Offset 0x0130) */
  13151. #define BIT_FS_TXBCNERR_MB0_INT_EN BIT(16)
  13152. #endif
  13153. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13154. /* 2 REG_FWIMR (Offset 0x0130) */
  13155. #define BIT_BCNDMA7_MSK BIT(15)
  13156. #endif
  13157. #if (HALMAC_8192F_SUPPORT)
  13158. /* 2 REG_FWIMR (Offset 0x0130) */
  13159. #define BIT_BCNDMA7_INT_MSK BIT(15)
  13160. #endif
  13161. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  13162. /* 2 REG_FWIMR (Offset 0x0130) */
  13163. #define BIT_CPUMGN_POLLED_PKT_DONE_INT_EN BIT(15)
  13164. #endif
  13165. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  13166. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13167. /* 2 REG_FWIMR (Offset 0x0130) */
  13168. #define BIT_CPU_MGQ_TXDONE_INT_EN BIT(15)
  13169. #endif
  13170. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13171. /* 2 REG_FWIMR (Offset 0x0130) */
  13172. #define BIT_BCNDMA6_MSK BIT(14)
  13173. #endif
  13174. #if (HALMAC_8192F_SUPPORT)
  13175. /* 2 REG_FWIMR (Offset 0x0130) */
  13176. #define BIT_BCNDMA6_INT_MSK BIT(14)
  13177. #endif
  13178. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  13179. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13180. /* 2 REG_FWIMR (Offset 0x0130) */
  13181. #define BIT_SIFS_OVERSPEC_INT_EN BIT(14)
  13182. #endif
  13183. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13184. /* 2 REG_FWIMR (Offset 0x0130) */
  13185. #define BIT_BCNDMA5_MSK BIT(13)
  13186. #endif
  13187. #if (HALMAC_8192F_SUPPORT)
  13188. /* 2 REG_FWIMR (Offset 0x0130) */
  13189. #define BIT_BCNDMA5_INT_MSK BIT(13)
  13190. #endif
  13191. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13192. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13193. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13194. /* 2 REG_FWIMR (Offset 0x0130) */
  13195. #define BIT_FS_MGNTQ_RPTR_RELEASE_INT_EN BIT(13)
  13196. #endif
  13197. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13198. /* 2 REG_FWIMR (Offset 0x0130) */
  13199. #define BIT_BCNDMA4_MSK BIT(12)
  13200. #endif
  13201. #if (HALMAC_8192F_SUPPORT)
  13202. /* 2 REG_FWIMR (Offset 0x0130) */
  13203. #define BIT_BCNDMA4_INT_MSK BIT(12)
  13204. #endif
  13205. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13206. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13207. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13208. /* 2 REG_FWIMR (Offset 0x0130) */
  13209. #define BIT_FS_MGNTQFF_TO_INT_EN BIT(12)
  13210. #endif
  13211. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13212. /* 2 REG_FWIMR (Offset 0x0130) */
  13213. #define BIT_BCNDMA3_MSK BIT(11)
  13214. #endif
  13215. #if (HALMAC_8192F_SUPPORT)
  13216. /* 2 REG_FWIMR (Offset 0x0130) */
  13217. #define BIT_BCNDMA3_INT_MSK BIT(11)
  13218. #endif
  13219. #if (HALMAC_8197F_SUPPORT)
  13220. /* 2 REG_FWIMR (Offset 0x0130) */
  13221. #define BIT_FS_DDMA1_LP_INT_ENBIT_CPUMGN_POLLED_PKT_BUSY_ERR_INT_EN BIT(11)
  13222. #endif
  13223. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  13224. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13225. /* 2 REG_FWIMR (Offset 0x0130) */
  13226. #define BIT_FS_CPUMGQ_ERR_INT_EN BIT(11)
  13227. #endif
  13228. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)
  13229. /* 2 REG_FWIMR (Offset 0x0130) */
  13230. #define BIT_FS_DDMA1_LP_INT_EN BIT(11)
  13231. #endif
  13232. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13233. /* 2 REG_FWIMR (Offset 0x0130) */
  13234. #define BIT_BCNDMA2_MSK BIT(10)
  13235. #endif
  13236. #if (HALMAC_8192F_SUPPORT)
  13237. /* 2 REG_FWIMR (Offset 0x0130) */
  13238. #define BIT_BCNDMA2_INT_MSK BIT(10)
  13239. #endif
  13240. #if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  13241. HALMAC_8821C_SUPPORT)
  13242. /* 2 REG_FWIMR (Offset 0x0130) */
  13243. #define BIT_FS_DDMA1_HP_INT_EN BIT(10)
  13244. #endif
  13245. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13246. /* 2 REG_FWIMR (Offset 0x0130) */
  13247. #define BIT_BCNDMA1_MSK BIT(9)
  13248. #endif
  13249. #if (HALMAC_8192F_SUPPORT)
  13250. /* 2 REG_FWIMR (Offset 0x0130) */
  13251. #define BIT_BCNDMA1_INT_MSK BIT(9)
  13252. #endif
  13253. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13254. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13255. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13256. /* 2 REG_FWIMR (Offset 0x0130) */
  13257. #define BIT_FS_DDMA0_LP_INT_EN BIT(9)
  13258. #endif
  13259. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13260. /* 2 REG_FWIMR (Offset 0x0130) */
  13261. #define BIT_BCNDMA0_MSK BIT(8)
  13262. #endif
  13263. #if (HALMAC_8192F_SUPPORT)
  13264. /* 2 REG_FWIMR (Offset 0x0130) */
  13265. #define BIT_BCNDMA0_INT_MSK BIT(8)
  13266. #endif
  13267. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13268. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13269. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13270. /* 2 REG_FWIMR (Offset 0x0130) */
  13271. #define BIT_FS_DDMA0_HP_INT_EN BIT(8)
  13272. #endif
  13273. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13274. /* 2 REG_FWIMR (Offset 0x0130) */
  13275. #define BIT_LP_STBY_MSK BIT(7)
  13276. #endif
  13277. #if (HALMAC_8192F_SUPPORT)
  13278. /* 2 REG_FWIMR (Offset 0x0130) */
  13279. #define BIT_LP_STBY_INT_MSK BIT(7)
  13280. #endif
  13281. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13282. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13283. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13284. /* 2 REG_FWIMR (Offset 0x0130) */
  13285. #define BIT_FS_TRXRPT_INT_EN BIT(7)
  13286. #endif
  13287. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13288. /* 2 REG_FWIMR (Offset 0x0130) */
  13289. #define BIT_CTWENDINT_MSK BIT(6)
  13290. #endif
  13291. #if (HALMAC_8192F_SUPPORT)
  13292. /* 2 REG_FWIMR (Offset 0x0130) */
  13293. #define BIT_CTWENDINT_INT_MSK BIT(6)
  13294. #endif
  13295. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13296. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13297. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13298. /* 2 REG_FWIMR (Offset 0x0130) */
  13299. #define BIT_FS_C2H_W_READY_INT_EN BIT(6)
  13300. #endif
  13301. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13302. /* 2 REG_FWIMR (Offset 0x0130) */
  13303. #define BIT_HRCV_MSK BIT(5)
  13304. #endif
  13305. #if (HALMAC_8192F_SUPPORT)
  13306. /* 2 REG_FWIMR (Offset 0x0130) */
  13307. #define BIT_HRCV_INT_MSK BIT(5)
  13308. #endif
  13309. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13310. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13311. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13312. /* 2 REG_FWIMR (Offset 0x0130) */
  13313. #define BIT_FS_HRCV_INT_EN BIT(5)
  13314. #endif
  13315. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13316. /* 2 REG_FWIMR (Offset 0x0130) */
  13317. #define BIT_H2CCMD_MSK BIT(4)
  13318. #endif
  13319. #if (HALMAC_8192F_SUPPORT)
  13320. /* 2 REG_FWIMR (Offset 0x0130) */
  13321. #define BIT_H2CCMD_INT_MSK BIT(4)
  13322. #endif
  13323. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13324. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13325. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13326. /* 2 REG_FWIMR (Offset 0x0130) */
  13327. #define BIT_FS_H2CCMD_INT_EN BIT(4)
  13328. #endif
  13329. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13330. /* 2 REG_FWIMR (Offset 0x0130) */
  13331. #define BIT_RXDONE_MSK BIT(3)
  13332. #endif
  13333. #if (HALMAC_8192F_SUPPORT)
  13334. /* 2 REG_FWIMR (Offset 0x0130) */
  13335. #define BIT_RXDONE_INT_MSK BIT(3)
  13336. #endif
  13337. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13338. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13339. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13340. /* 2 REG_FWIMR (Offset 0x0130) */
  13341. #define BIT_FS_TXPKTIN_INT_EN BIT(3)
  13342. #endif
  13343. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13344. /* 2 REG_FWIMR (Offset 0x0130) */
  13345. #define BIT_ERRORHDL_MSK BIT(2)
  13346. #endif
  13347. #if (HALMAC_8192F_SUPPORT)
  13348. /* 2 REG_FWIMR (Offset 0x0130) */
  13349. #define BIT_ERRORHDL_INT_MSK BIT(2)
  13350. #endif
  13351. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13352. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13353. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13354. /* 2 REG_FWIMR (Offset 0x0130) */
  13355. #define BIT_FS_ERRORHDL_INT_EN BIT(2)
  13356. #endif
  13357. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13358. /* 2 REG_FWIMR (Offset 0x0130) */
  13359. #define BIT_TXCCX_MSK_FW BIT(1)
  13360. #endif
  13361. #if (HALMAC_8192F_SUPPORT)
  13362. /* 2 REG_FWIMR (Offset 0x0130) */
  13363. #define BIT_TXCCX_INT_MSK BIT(1)
  13364. #endif
  13365. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13366. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13367. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13368. /* 2 REG_FWIMR (Offset 0x0130) */
  13369. #define BIT_FS_TXCCX_INT_EN BIT(1)
  13370. #endif
  13371. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13372. /* 2 REG_FWIMR (Offset 0x0130) */
  13373. #define BIT_TXCLOSE_MSK BIT(0)
  13374. #endif
  13375. #if (HALMAC_8192F_SUPPORT)
  13376. /* 2 REG_FWIMR (Offset 0x0130) */
  13377. #define BIT_TXCLOSE_INT_MSK BIT(0)
  13378. #endif
  13379. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13380. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13381. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13382. /* 2 REG_FWIMR (Offset 0x0130) */
  13383. #define BIT_FS_TXCLOSE_INT_EN BIT(0)
  13384. #endif
  13385. #if (HALMAC_8192F_SUPPORT)
  13386. /* 2 REG_FWISR (Offset 0x0134) */
  13387. #define BIT_PCIE_BCNDMAERR_INT BIT(31)
  13388. #endif
  13389. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13390. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13391. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13392. /* 2 REG_FWISR (Offset 0x0134) */
  13393. #define BIT_FS_TXBCNOK_MB7_INT BIT(31)
  13394. #endif
  13395. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13396. /* 2 REG_FWISR (Offset 0x0134) */
  13397. #define BIT_SOUND_DONE_INT BIT(30)
  13398. #endif
  13399. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13400. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13401. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13402. /* 2 REG_FWISR (Offset 0x0134) */
  13403. #define BIT_FS_TXBCNOK_MB6_INT BIT(30)
  13404. #endif
  13405. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13406. /* 2 REG_FWISR (Offset 0x0134) */
  13407. #define BIT_TRY_DONE_INT BIT(29)
  13408. #endif
  13409. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13410. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13411. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13412. /* 2 REG_FWISR (Offset 0x0134) */
  13413. #define BIT_FS_TXBCNOK_MB5_INT BIT(29)
  13414. #endif
  13415. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13416. /* 2 REG_FWISR (Offset 0x0134) */
  13417. #define BIT_TXRPT_CNT_FULL_INT BIT(28)
  13418. #endif
  13419. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13420. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13421. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13422. /* 2 REG_FWISR (Offset 0x0134) */
  13423. #define BIT_FS_TXBCNOK_MB4_INT BIT(28)
  13424. #endif
  13425. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13426. /* 2 REG_FWISR (Offset 0x0134) */
  13427. #define BIT_WLACTOFF_INT BIT(27)
  13428. #endif
  13429. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13430. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13431. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13432. /* 2 REG_FWISR (Offset 0x0134) */
  13433. #define BIT_FS_TXBCNOK_MB3_INT BIT(27)
  13434. #endif
  13435. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13436. /* 2 REG_FWISR (Offset 0x0134) */
  13437. #define BIT_WLACTON_INT BIT(26)
  13438. #endif
  13439. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13440. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13441. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13442. /* 2 REG_FWISR (Offset 0x0134) */
  13443. #define BIT_FS_TXBCNOK_MB2_INT BIT(26)
  13444. #endif
  13445. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13446. /* 2 REG_FWISR (Offset 0x0134) */
  13447. #define BIT_TXPKTIN_INT BIT(25)
  13448. #endif
  13449. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13450. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13451. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13452. /* 2 REG_FWISR (Offset 0x0134) */
  13453. #define BIT_FS_TXBCNOK_MB1_INT BIT(25)
  13454. #endif
  13455. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13456. /* 2 REG_FWISR (Offset 0x0134) */
  13457. #define BIT_TXBCNOK_INT BIT(24)
  13458. #endif
  13459. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13460. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13461. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13462. /* 2 REG_FWISR (Offset 0x0134) */
  13463. #define BIT_FS_TXBCNOK_MB0_INT BIT(24)
  13464. #endif
  13465. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13466. /* 2 REG_FWISR (Offset 0x0134) */
  13467. #define BIT_TXBCNERR_INT BIT(23)
  13468. #endif
  13469. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13470. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13471. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13472. /* 2 REG_FWISR (Offset 0x0134) */
  13473. #define BIT_FS_TXBCNERR_MB7_INT BIT(23)
  13474. #endif
  13475. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13476. /* 2 REG_FWISR (Offset 0x0134) */
  13477. #define BIT_RX_UMD0_INT BIT(22)
  13478. #endif
  13479. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13480. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13481. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13482. /* 2 REG_FWISR (Offset 0x0134) */
  13483. #define BIT_FS_TXBCNERR_MB6_INT BIT(22)
  13484. #endif
  13485. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13486. /* 2 REG_FWISR (Offset 0x0134) */
  13487. #define BIT_RX_UMD1_INT BIT(21)
  13488. #endif
  13489. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13490. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13491. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13492. /* 2 REG_FWISR (Offset 0x0134) */
  13493. #define BIT_FS_TXBCNERR_MB5_INT BIT(21)
  13494. #endif
  13495. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13496. /* 2 REG_FWISR (Offset 0x0134) */
  13497. #define BIT_RX_BMD0_INT BIT(20)
  13498. #endif
  13499. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13500. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13501. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13502. /* 2 REG_FWISR (Offset 0x0134) */
  13503. #define BIT_FS_TXBCNERR_MB4_INT BIT(20)
  13504. #endif
  13505. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13506. /* 2 REG_FWISR (Offset 0x0134) */
  13507. #define BIT_RX_BMD1_INT BIT(19)
  13508. #endif
  13509. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13510. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13511. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13512. /* 2 REG_FWISR (Offset 0x0134) */
  13513. #define BIT_FS_TXBCNERR_MB3_INT BIT(19)
  13514. #endif
  13515. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13516. /* 2 REG_FWISR (Offset 0x0134) */
  13517. #define BIT_BCN_RX_INT_INT BIT(18)
  13518. #endif
  13519. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13520. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13521. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13522. /* 2 REG_FWISR (Offset 0x0134) */
  13523. #define BIT_FS_TXBCNERR_MB2_INT BIT(18)
  13524. #endif
  13525. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13526. /* 2 REG_FWISR (Offset 0x0134) */
  13527. #define BIT_TBTTINT_INT BIT(17)
  13528. #endif
  13529. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13530. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13531. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13532. /* 2 REG_FWISR (Offset 0x0134) */
  13533. #define BIT_FS_TXBCNERR_MB1_INT BIT(17)
  13534. #endif
  13535. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13536. /* 2 REG_FWISR (Offset 0x0134) */
  13537. #define BIT_BCNERLY_INT BIT(16)
  13538. #endif
  13539. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13540. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13541. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13542. /* 2 REG_FWISR (Offset 0x0134) */
  13543. #define BIT_FS_TXBCNERR_MB0_INT BIT(16)
  13544. #endif
  13545. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13546. /* 2 REG_FWISR (Offset 0x0134) */
  13547. #define BIT_BCNDMA7_INT BIT(15)
  13548. #endif
  13549. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  13550. /* 2 REG_FWISR (Offset 0x0134) */
  13551. #define BIT_CPUMGN_POLLED_PKT_DONE_INT BIT(15)
  13552. #endif
  13553. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  13554. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13555. /* 2 REG_FWISR (Offset 0x0134) */
  13556. #define BIT_CPU_MGQ_TXDONE_INT BIT(15)
  13557. #endif
  13558. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13559. /* 2 REG_FWISR (Offset 0x0134) */
  13560. #define BIT_BCNDMA6_INT BIT(14)
  13561. #endif
  13562. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  13563. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13564. /* 2 REG_FWISR (Offset 0x0134) */
  13565. #define BIT_SIFS_OVERSPEC_INT BIT(14)
  13566. #endif
  13567. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13568. /* 2 REG_FWISR (Offset 0x0134) */
  13569. #define BIT_BCNDMA5_INT BIT(13)
  13570. #endif
  13571. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13572. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13573. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13574. /* 2 REG_FWISR (Offset 0x0134) */
  13575. #define BIT_FS_MGNTQ_RPTR_RELEASE_INT BIT(13)
  13576. #endif
  13577. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13578. /* 2 REG_FWISR (Offset 0x0134) */
  13579. #define BIT_BCNDMA4_INT BIT(12)
  13580. #endif
  13581. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13582. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13583. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13584. /* 2 REG_FWISR (Offset 0x0134) */
  13585. #define BIT_FS_MGNTQFF_TO_INT BIT(12)
  13586. #endif
  13587. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13588. /* 2 REG_FWISR (Offset 0x0134) */
  13589. #define BIT_BCNDMA3_INT BIT(11)
  13590. #endif
  13591. #if (HALMAC_8197F_SUPPORT)
  13592. /* 2 REG_FWISR (Offset 0x0134) */
  13593. #define BIT_FS_DDMA1_LP_INTBIT_CPUMGN_POLLED_PKT_BUSY_ERR_INT BIT(11)
  13594. #endif
  13595. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  13596. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13597. /* 2 REG_FWISR (Offset 0x0134) */
  13598. #define BIT_FS_CPUMGQ_ERR_INT BIT(11)
  13599. #endif
  13600. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)
  13601. /* 2 REG_FWISR (Offset 0x0134) */
  13602. #define BIT_FS_DDMA1_LP_INT BIT(11)
  13603. #endif
  13604. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13605. /* 2 REG_FWISR (Offset 0x0134) */
  13606. #define BIT_BCNDMA2_INT BIT(10)
  13607. #endif
  13608. #if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  13609. HALMAC_8821C_SUPPORT)
  13610. /* 2 REG_FWISR (Offset 0x0134) */
  13611. #define BIT_FS_DDMA1_HP_INT BIT(10)
  13612. #endif
  13613. #if (HALMAC_8814B_SUPPORT)
  13614. /* 2 REG_FWISR (Offset 0x0134) */
  13615. #define BIT_FWCMD_PKTIN_INT BIT(10)
  13616. #endif
  13617. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13618. /* 2 REG_FWISR (Offset 0x0134) */
  13619. #define BIT_BCNDMA1_INT BIT(9)
  13620. #endif
  13621. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13622. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13623. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13624. /* 2 REG_FWISR (Offset 0x0134) */
  13625. #define BIT_FS_DDMA0_LP_INT BIT(9)
  13626. #endif
  13627. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13628. /* 2 REG_FWISR (Offset 0x0134) */
  13629. #define BIT_BCNDMA0_INT BIT(8)
  13630. #endif
  13631. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13632. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13633. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13634. /* 2 REG_FWISR (Offset 0x0134) */
  13635. #define BIT_FS_DDMA0_HP_INT BIT(8)
  13636. #endif
  13637. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13638. /* 2 REG_FWISR (Offset 0x0134) */
  13639. #define BIT_LP_STBY_INT BIT(7)
  13640. #endif
  13641. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13642. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13643. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13644. /* 2 REG_FWISR (Offset 0x0134) */
  13645. #define BIT_FS_TRXRPT_INT BIT(7)
  13646. #endif
  13647. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13648. /* 2 REG_FWISR (Offset 0x0134) */
  13649. #define BIT_CTWENDINT_INT BIT(6)
  13650. #endif
  13651. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13652. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13653. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13654. /* 2 REG_FWISR (Offset 0x0134) */
  13655. #define BIT_FS_C2H_W_READY_INT BIT(6)
  13656. #endif
  13657. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13658. /* 2 REG_FWISR (Offset 0x0134) */
  13659. #define BIT_HRCV_INT BIT(5)
  13660. #endif
  13661. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13662. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13663. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13664. /* 2 REG_FWISR (Offset 0x0134) */
  13665. #define BIT_FS_HRCV_INT BIT(5)
  13666. #endif
  13667. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13668. /* 2 REG_FWISR (Offset 0x0134) */
  13669. #define BIT_H2CCMD_INT BIT(4)
  13670. #endif
  13671. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13672. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13673. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13674. /* 2 REG_FWISR (Offset 0x0134) */
  13675. #define BIT_FS_H2CCMD_INT BIT(4)
  13676. #endif
  13677. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13678. /* 2 REG_FWISR (Offset 0x0134) */
  13679. #define BIT_RXDONE_INT BIT(3)
  13680. #endif
  13681. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13682. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13683. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13684. /* 2 REG_FWISR (Offset 0x0134) */
  13685. #define BIT_FS_TXPKTIN_INT BIT(3)
  13686. #endif
  13687. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13688. /* 2 REG_FWISR (Offset 0x0134) */
  13689. #define BIT_ERRORHDL_INT BIT(2)
  13690. #endif
  13691. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13692. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13693. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13694. /* 2 REG_FWISR (Offset 0x0134) */
  13695. #define BIT_FS_ERRORHDL_INT BIT(2)
  13696. #endif
  13697. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13698. /* 2 REG_FWISR (Offset 0x0134) */
  13699. #define BIT_TXCCX_INT BIT(1)
  13700. #endif
  13701. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13702. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13703. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13704. /* 2 REG_FWISR (Offset 0x0134) */
  13705. #define BIT_FS_TXCCX_INT BIT(1)
  13706. #endif
  13707. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13708. /* 2 REG_FWISR (Offset 0x0134) */
  13709. #define BIT_TXCLOSE_INT BIT(0)
  13710. #endif
  13711. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13712. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13713. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13714. /* 2 REG_FWISR (Offset 0x0134) */
  13715. #define BIT_FS_TXCLOSE_INT BIT(0)
  13716. #endif
  13717. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13718. /* 2 REG_FTIMR (Offset 0x0138) */
  13719. #define BIT_GTINT6_MSK BIT(31)
  13720. #endif
  13721. #if (HALMAC_8192F_SUPPORT)
  13722. /* 2 REG_FTIMR (Offset 0x0138) */
  13723. #define BIT_GT6INT_MSK BIT(31)
  13724. #endif
  13725. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13726. /* 2 REG_FTIMR (Offset 0x0138) */
  13727. #define BIT_TX_NULL1_INT_MSK BIT(30)
  13728. #define BIT_TX_NULL0_INT_MSK BIT(29)
  13729. #define BIT_MTI_BCNIVLEAR_INT_MSK BIT(28)
  13730. #endif
  13731. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13732. /* 2 REG_FTIMR (Offset 0x0138) */
  13733. #define BIT_ATIMINT_MSK BIT(27)
  13734. #endif
  13735. #if (HALMAC_8192F_SUPPORT)
  13736. /* 2 REG_FTIMR (Offset 0x0138) */
  13737. #define BIT_ATIM_INT_MSK BIT(27)
  13738. #endif
  13739. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13740. /* 2 REG_FTIMR (Offset 0x0138) */
  13741. #define BIT_WWLAN_INT_EN BIT(26)
  13742. #endif
  13743. #if (HALMAC_8192F_SUPPORT)
  13744. /* 2 REG_FTIMR (Offset 0x0138) */
  13745. #define BIT_WWLAN_INT_MSK BIT(26)
  13746. #endif
  13747. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13748. /* 2 REG_FTIMR (Offset 0x0138) */
  13749. #define BIT_C2H_W_READY_EN BIT(25)
  13750. #endif
  13751. #if (HALMAC_8192F_SUPPORT)
  13752. /* 2 REG_FTIMR (Offset 0x0138) */
  13753. #define BIT_C2H_W_READY_MSK BIT(25)
  13754. #endif
  13755. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13756. /* 2 REG_FTIMR (Offset 0x0138) */
  13757. #define BIT_TRL_MTR_EN BIT(24)
  13758. #endif
  13759. #if (HALMAC_8192F_SUPPORT)
  13760. /* 2 REG_FTIMR (Offset 0x0138) */
  13761. #define BIT_TRL_MTR_INT_MSK BIT(24)
  13762. #endif
  13763. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13764. /* 2 REG_FTIMR (Offset 0x0138) */
  13765. #define BIT_CLR_PS_STATUS_MSK BIT(23)
  13766. #endif
  13767. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13768. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13769. HALMAC_8822C_SUPPORT)
  13770. /* 2 REG_FTIMR (Offset 0x0138) */
  13771. #define BIT_PS_TIMER_C_EARLY_INT_EN BIT(23)
  13772. #endif
  13773. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13774. /* 2 REG_FTIMR (Offset 0x0138) */
  13775. #define BIT_RETRIEVE_BUFFERED_MSK BIT(22)
  13776. #endif
  13777. #if (HALMAC_8192F_SUPPORT)
  13778. /* 2 REG_FTIMR (Offset 0x0138) */
  13779. #define BIT_RETRIEVE_BUFFERED_INT_MSK BIT(22)
  13780. #endif
  13781. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13782. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13783. HALMAC_8822C_SUPPORT)
  13784. /* 2 REG_FTIMR (Offset 0x0138) */
  13785. #define BIT_PS_TIMER_B_EARLY_INT_EN BIT(22)
  13786. #endif
  13787. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13788. /* 2 REG_FTIMR (Offset 0x0138) */
  13789. #define BIT_RPWMINT2_MSK BIT(21)
  13790. #endif
  13791. #if (HALMAC_8192F_SUPPORT)
  13792. /* 2 REG_FTIMR (Offset 0x0138) */
  13793. #define BIT_RPWM2INT_MSK BIT(21)
  13794. #endif
  13795. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13796. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13797. HALMAC_8822C_SUPPORT)
  13798. /* 2 REG_FTIMR (Offset 0x0138) */
  13799. #define BIT_PS_TIMER_A_EARLY_INT_EN BIT(21)
  13800. #endif
  13801. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13802. /* 2 REG_FTIMR (Offset 0x0138) */
  13803. #define BIT_TSF_BIT32_TOGGLE_MSK_V1 BIT(20)
  13804. #endif
  13805. #if (HALMAC_8192F_SUPPORT)
  13806. /* 2 REG_FTIMR (Offset 0x0138) */
  13807. #define BIT_TSF_BIT32_TOGGLE_INT_MSK BIT(20)
  13808. #endif
  13809. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13810. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13811. HALMAC_8822C_SUPPORT)
  13812. /* 2 REG_FTIMR (Offset 0x0138) */
  13813. #define BIT_CPUMGQ_TX_TIMER_EARLY_INT_EN BIT(20)
  13814. #endif
  13815. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13816. /* 2 REG_FTIMR (Offset 0x0138) */
  13817. #define BIT_TRIGGER_PKT_MSK BIT(19)
  13818. #endif
  13819. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13820. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13821. HALMAC_8822C_SUPPORT)
  13822. /* 2 REG_FTIMR (Offset 0x0138) */
  13823. #define BIT_PS_TIMER_C_INT_EN BIT(19)
  13824. #endif
  13825. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13826. /* 2 REG_FTIMR (Offset 0x0138) */
  13827. #define BIT_FW_BTCMD_INTMSK BIT(18)
  13828. #endif
  13829. #if (HALMAC_8192F_SUPPORT)
  13830. /* 2 REG_FTIMR (Offset 0x0138) */
  13831. #define BIT_FW_BTCMD_INT_MSK BIT(18)
  13832. #endif
  13833. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13834. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13835. HALMAC_8822C_SUPPORT)
  13836. /* 2 REG_FTIMR (Offset 0x0138) */
  13837. #define BIT_PS_TIMER_B_INT_EN BIT(18)
  13838. #endif
  13839. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13840. /* 2 REG_FTIMR (Offset 0x0138) */
  13841. #define BIT_P2P_RFOFF_INTMSK BIT(17)
  13842. #endif
  13843. #if (HALMAC_8192F_SUPPORT)
  13844. /* 2 REG_FTIMR (Offset 0x0138) */
  13845. #define BIT_P2P_RFOFF_INT_MSK BIT(17)
  13846. #endif
  13847. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13848. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13849. HALMAC_8822C_SUPPORT)
  13850. /* 2 REG_FTIMR (Offset 0x0138) */
  13851. #define BIT_PS_TIMER_A_INT_EN BIT(17)
  13852. #endif
  13853. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13854. /* 2 REG_FTIMR (Offset 0x0138) */
  13855. #define BIT_P2P_RFON_INTMSK BIT(16)
  13856. #endif
  13857. #if (HALMAC_8192F_SUPPORT)
  13858. /* 2 REG_FTIMR (Offset 0x0138) */
  13859. #define BIT_P2P_RFON_INT_MSK BIT(16)
  13860. #endif
  13861. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13862. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  13863. HALMAC_8822C_SUPPORT)
  13864. /* 2 REG_FTIMR (Offset 0x0138) */
  13865. #define BIT_CPUMGQ_TX_TIMER_INT_EN BIT(16)
  13866. #endif
  13867. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13868. /* 2 REG_FTIMR (Offset 0x0138) */
  13869. #define BIT_TXBCN1ERR_MSK BIT(15)
  13870. #endif
  13871. #if (HALMAC_8192F_SUPPORT)
  13872. /* 2 REG_FTIMR (Offset 0x0138) */
  13873. #define BIT_TX_BCN1ERR_INT_MSK BIT(15)
  13874. #endif
  13875. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13876. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13877. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13878. /* 2 REG_FTIMR (Offset 0x0138) */
  13879. #define BIT_FS_PS_TIMEOUT2_EN BIT(15)
  13880. #endif
  13881. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13882. /* 2 REG_FTIMR (Offset 0x0138) */
  13883. #define BIT_TXBCN1OK_MSK BIT(14)
  13884. #endif
  13885. #if (HALMAC_8192F_SUPPORT)
  13886. /* 2 REG_FTIMR (Offset 0x0138) */
  13887. #define BIT_TX_BCN1OK_INT_MSK BIT(14)
  13888. #endif
  13889. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13890. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13891. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13892. /* 2 REG_FTIMR (Offset 0x0138) */
  13893. #define BIT_FS_PS_TIMEOUT1_EN BIT(14)
  13894. #endif
  13895. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13896. /* 2 REG_FTIMR (Offset 0x0138) */
  13897. #define BIT_FT_ATIMEND_EMSK BIT(13)
  13898. #endif
  13899. #if (HALMAC_8192F_SUPPORT)
  13900. /* 2 REG_FTIMR (Offset 0x0138) */
  13901. #define BIT_FT_ATIMEND_E_MSK BIT(13)
  13902. #endif
  13903. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13904. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13905. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13906. /* 2 REG_FTIMR (Offset 0x0138) */
  13907. #define BIT_FS_PS_TIMEOUT0_EN BIT(13)
  13908. #endif
  13909. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13910. /* 2 REG_FTIMR (Offset 0x0138) */
  13911. #define BIT_BCNDMAINT_EMSK BIT(12)
  13912. #endif
  13913. #if (HALMAC_8192F_SUPPORT)
  13914. /* 2 REG_FTIMR (Offset 0x0138) */
  13915. #define BIT_BCNDMAINT_E_MSK_V1 BIT(12)
  13916. #endif
  13917. #if (HALMAC_8814B_SUPPORT)
  13918. /* 2 REG_FTIMR (Offset 0x0138) */
  13919. #define BIT_FS_GTINT12_EN BIT(12)
  13920. #endif
  13921. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13922. /* 2 REG_FTIMR (Offset 0x0138) */
  13923. #define BIT_GTINT5_MSK BIT(11)
  13924. #endif
  13925. #if (HALMAC_8192F_SUPPORT)
  13926. /* 2 REG_FTIMR (Offset 0x0138) */
  13927. #define BIT_GT5INT_MSK BIT(11)
  13928. #endif
  13929. #if (HALMAC_8814B_SUPPORT)
  13930. /* 2 REG_FTIMR (Offset 0x0138) */
  13931. #define BIT_FS_GTINT11_EN BIT(11)
  13932. #endif
  13933. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  13934. /* 2 REG_FTIMR (Offset 0x0138) */
  13935. #define BIT_EOSP_INT_MSK BIT(10)
  13936. #endif
  13937. #if (HALMAC_8814B_SUPPORT)
  13938. /* 2 REG_FTIMR (Offset 0x0138) */
  13939. #define BIT_FS_GTINT10_EN BIT(10)
  13940. #endif
  13941. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13942. /* 2 REG_FTIMR (Offset 0x0138) */
  13943. #define BIT_RX_BCN_E_MSK BIT(9)
  13944. #endif
  13945. #if (HALMAC_8192F_SUPPORT)
  13946. /* 2 REG_FTIMR (Offset 0x0138) */
  13947. #define BIT_RX_BCN_E_INT_MSK BIT(9)
  13948. #endif
  13949. #if (HALMAC_8814B_SUPPORT)
  13950. /* 2 REG_FTIMR (Offset 0x0138) */
  13951. #define BIT_FS_GTINT9_EN BIT(9)
  13952. #endif
  13953. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13954. /* 2 REG_FTIMR (Offset 0x0138) */
  13955. #define BIT_RPWM_INT_EN BIT(8)
  13956. #endif
  13957. #if (HALMAC_8192F_SUPPORT)
  13958. /* 2 REG_FTIMR (Offset 0x0138) */
  13959. #define BIT_RPWMINT_MSK BIT(8)
  13960. #endif
  13961. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13962. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13963. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13964. /* 2 REG_FTIMR (Offset 0x0138) */
  13965. #define BIT_FS_GTINT8_EN BIT(8)
  13966. #endif
  13967. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13968. /* 2 REG_FTIMR (Offset 0x0138) */
  13969. #define BIT_PSTIMER_MSK BIT(7)
  13970. #endif
  13971. #if (HALMAC_8192F_SUPPORT)
  13972. /* 2 REG_FTIMR (Offset 0x0138) */
  13973. #define BIT_PSTIMER_INT_MSK BIT(7)
  13974. #endif
  13975. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13976. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13977. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13978. /* 2 REG_FTIMR (Offset 0x0138) */
  13979. #define BIT_FS_GTINT7_EN BIT(7)
  13980. #endif
  13981. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13982. /* 2 REG_FTIMR (Offset 0x0138) */
  13983. #define BIT_TIMEOUT1_MSK BIT(6)
  13984. #endif
  13985. #if (HALMAC_8192F_SUPPORT)
  13986. /* 2 REG_FTIMR (Offset 0x0138) */
  13987. #define BIT_TIMEOUT1_INT_MSK BIT(6)
  13988. #endif
  13989. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  13990. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  13991. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  13992. /* 2 REG_FTIMR (Offset 0x0138) */
  13993. #define BIT_FS_GTINT6_EN BIT(6)
  13994. #endif
  13995. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  13996. /* 2 REG_FTIMR (Offset 0x0138) */
  13997. #define BIT_TIMEOUT0_MSK BIT(5)
  13998. #endif
  13999. #if (HALMAC_8192F_SUPPORT)
  14000. /* 2 REG_FTIMR (Offset 0x0138) */
  14001. #define BIT_TIMEOUT0_INT_MSK BIT(5)
  14002. #endif
  14003. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14004. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14005. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14006. /* 2 REG_FTIMR (Offset 0x0138) */
  14007. #define BIT_FS_GTINT5_EN BIT(5)
  14008. #endif
  14009. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14010. /* 2 REG_FTIMR (Offset 0x0138) */
  14011. #define BIT_FT_GTINT4_MSK BIT(4)
  14012. #endif
  14013. #if (HALMAC_8192F_SUPPORT)
  14014. /* 2 REG_FTIMR (Offset 0x0138) */
  14015. #define BIT_FT_GT4INT_MSK BIT(4)
  14016. #endif
  14017. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14018. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14019. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14020. /* 2 REG_FTIMR (Offset 0x0138) */
  14021. #define BIT_FS_GTINT4_EN BIT(4)
  14022. #endif
  14023. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14024. /* 2 REG_FTIMR (Offset 0x0138) */
  14025. #define BIT_FT_GTINT3_MSK BIT(3)
  14026. #endif
  14027. #if (HALMAC_8192F_SUPPORT)
  14028. /* 2 REG_FTIMR (Offset 0x0138) */
  14029. #define BIT_FT_GT3INT_MSK BIT(3)
  14030. #endif
  14031. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14032. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14033. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14034. /* 2 REG_FTIMR (Offset 0x0138) */
  14035. #define BIT_FS_GTINT3_EN BIT(3)
  14036. #endif
  14037. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14038. /* 2 REG_FTIMR (Offset 0x0138) */
  14039. #define BIT_GTINT2_MSK BIT(2)
  14040. #endif
  14041. #if (HALMAC_8192F_SUPPORT)
  14042. /* 2 REG_FTIMR (Offset 0x0138) */
  14043. #define BIT_GT2INT_MSK BIT(2)
  14044. #endif
  14045. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14046. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14047. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14048. /* 2 REG_FTIMR (Offset 0x0138) */
  14049. #define BIT_FS_GTINT2_EN BIT(2)
  14050. #endif
  14051. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14052. /* 2 REG_FTIMR (Offset 0x0138) */
  14053. #define BIT_GTINT1_MSK BIT(1)
  14054. #endif
  14055. #if (HALMAC_8192F_SUPPORT)
  14056. /* 2 REG_FTIMR (Offset 0x0138) */
  14057. #define BIT_GT1INT_MSK BIT(1)
  14058. #endif
  14059. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14060. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14061. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14062. /* 2 REG_FTIMR (Offset 0x0138) */
  14063. #define BIT_FS_GTINT1_EN BIT(1)
  14064. #endif
  14065. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14066. /* 2 REG_FTIMR (Offset 0x0138) */
  14067. #define BIT_GTINT0_MSK BIT(0)
  14068. #endif
  14069. #if (HALMAC_8192F_SUPPORT)
  14070. /* 2 REG_FTIMR (Offset 0x0138) */
  14071. #define BIT_GT0INT_MSK BIT(0)
  14072. #endif
  14073. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14074. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14075. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14076. /* 2 REG_FTIMR (Offset 0x0138) */
  14077. #define BIT_FS_GTINT0_EN BIT(0)
  14078. #endif
  14079. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14080. /* 2 REG_FTISR (Offset 0x013C) */
  14081. #define BIT_GT6INT BIT(31)
  14082. #define BIT_TX_NULL1_INT BIT(30)
  14083. #define BIT_TX_NULL0_INT BIT(29)
  14084. #define BIT_MTI_BCNIVLEAR_INT BIT(28)
  14085. #define BIT_ATIM_INT BIT(27)
  14086. #define BIT_WWLAN_INT BIT(26)
  14087. #endif
  14088. #if (HALMAC_8814B_SUPPORT)
  14089. /* 2 REG_FTISR (Offset 0x013C) */
  14090. #define BIT_PS_TIMER_5_EARLY__INT BIT(26)
  14091. #endif
  14092. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14093. /* 2 REG_FTISR (Offset 0x013C) */
  14094. #define BIT_C2H_W_READY BIT(25)
  14095. #endif
  14096. #if (HALMAC_8814B_SUPPORT)
  14097. /* 2 REG_FTISR (Offset 0x013C) */
  14098. #define BIT_PS_TIMER_4_EARLY__INT BIT(25)
  14099. #endif
  14100. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14101. /* 2 REG_FTISR (Offset 0x013C) */
  14102. #define BIT_TRL_MTR_INT BIT(24)
  14103. #endif
  14104. #if (HALMAC_8814B_SUPPORT)
  14105. /* 2 REG_FTISR (Offset 0x013C) */
  14106. #define BIT_PS_TIMER_3_EARLY__INT BIT(24)
  14107. #endif
  14108. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14109. /* 2 REG_FTISR (Offset 0x013C) */
  14110. #define BIT_CLR_PS_STATUS BIT(23)
  14111. #endif
  14112. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14113. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14114. /* 2 REG_FTISR (Offset 0x013C) */
  14115. #define BIT_PS_TIMER_C_EARLY__INT BIT(23)
  14116. #endif
  14117. #if (HALMAC_8814B_SUPPORT)
  14118. /* 2 REG_FTISR (Offset 0x013C) */
  14119. #define BIT_PS_TIMER_2_EARLY__INT BIT(23)
  14120. #endif
  14121. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14122. /* 2 REG_FTISR (Offset 0x013C) */
  14123. #define BIT_RETRIEVE_BUFFERED_INT BIT(22)
  14124. #endif
  14125. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14126. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14127. /* 2 REG_FTISR (Offset 0x013C) */
  14128. #define BIT_PS_TIMER_B_EARLY__INT BIT(22)
  14129. #endif
  14130. #if (HALMAC_8814B_SUPPORT)
  14131. /* 2 REG_FTISR (Offset 0x013C) */
  14132. #define BIT_PS_TIMER_1_EARLY__INT BIT(22)
  14133. #endif
  14134. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14135. /* 2 REG_FTISR (Offset 0x013C) */
  14136. #define BIT_RPWM2INT BIT(21)
  14137. #endif
  14138. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14139. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14140. /* 2 REG_FTISR (Offset 0x013C) */
  14141. #define BIT_PS_TIMER_A_EARLY__INT BIT(21)
  14142. #endif
  14143. #if (HALMAC_8814B_SUPPORT)
  14144. /* 2 REG_FTISR (Offset 0x013C) */
  14145. #define BIT_PS_TIMER_0_EARLY__INT BIT(21)
  14146. #endif
  14147. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14148. /* 2 REG_FTISR (Offset 0x013C) */
  14149. #define BIT_TSF_BIT32_TOGGLE_INT_V1 BIT(20)
  14150. #endif
  14151. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14152. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  14153. HALMAC_8822C_SUPPORT)
  14154. /* 2 REG_FTISR (Offset 0x013C) */
  14155. #define BIT_CPUMGQ_TX_TIMER_EARLY_INT BIT(20)
  14156. #endif
  14157. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14158. /* 2 REG_FTISR (Offset 0x013C) */
  14159. #define BIT_TRIGGER_PKT BIT(19)
  14160. #endif
  14161. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14162. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14163. /* 2 REG_FTISR (Offset 0x013C) */
  14164. #define BIT_PS_TIMER_C_INT BIT(19)
  14165. #endif
  14166. #if (HALMAC_8814B_SUPPORT)
  14167. /* 2 REG_FTISR (Offset 0x013C) */
  14168. #define BIT_PS_TIMER_5_INT BIT(19)
  14169. #endif
  14170. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14171. /* 2 REG_FTISR (Offset 0x013C) */
  14172. #define BIT_FW_BTCMD_INT BIT(18)
  14173. #endif
  14174. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14175. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14176. /* 2 REG_FTISR (Offset 0x013C) */
  14177. #define BIT_PS_TIMER_B_INT BIT(18)
  14178. #endif
  14179. #if (HALMAC_8814B_SUPPORT)
  14180. /* 2 REG_FTISR (Offset 0x013C) */
  14181. #define BIT_PS_TIMER_4_INT BIT(18)
  14182. #endif
  14183. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14184. /* 2 REG_FTISR (Offset 0x013C) */
  14185. #define BIT_P2P_RFOFF_INT BIT(17)
  14186. #endif
  14187. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14188. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14189. /* 2 REG_FTISR (Offset 0x013C) */
  14190. #define BIT_PS_TIMER_A_INT BIT(17)
  14191. #endif
  14192. #if (HALMAC_8814B_SUPPORT)
  14193. /* 2 REG_FTISR (Offset 0x013C) */
  14194. #define BIT_PS_TIMER_3_INT BIT(17)
  14195. #endif
  14196. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14197. /* 2 REG_FTISR (Offset 0x013C) */
  14198. #define BIT_P2P_RFON_INT BIT(16)
  14199. #define BIT_SHIFT_LLTINI_PDATA 16
  14200. #define BIT_MASK_LLTINI_PDATA 0xff
  14201. #define BIT_LLTINI_PDATA(x) \
  14202. (((x) & BIT_MASK_LLTINI_PDATA) << BIT_SHIFT_LLTINI_PDATA)
  14203. #define BITS_LLTINI_PDATA (BIT_MASK_LLTINI_PDATA << BIT_SHIFT_LLTINI_PDATA)
  14204. #define BIT_CLEAR_LLTINI_PDATA(x) ((x) & (~BITS_LLTINI_PDATA))
  14205. #define BIT_GET_LLTINI_PDATA(x) \
  14206. (((x) >> BIT_SHIFT_LLTINI_PDATA) & BIT_MASK_LLTINI_PDATA)
  14207. #define BIT_SET_LLTINI_PDATA(x, v) \
  14208. (BIT_CLEAR_LLTINI_PDATA(x) | BIT_LLTINI_PDATA(v))
  14209. #endif
  14210. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14211. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  14212. HALMAC_8822C_SUPPORT)
  14213. /* 2 REG_FTISR (Offset 0x013C) */
  14214. #define BIT_CPUMGQ_TX_TIMER_INT BIT(16)
  14215. #endif
  14216. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14217. /* 2 REG_FTISR (Offset 0x013C) */
  14218. #define BIT_TX_BCN1ERR_INT BIT(15)
  14219. #endif
  14220. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14221. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  14222. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14223. /* 2 REG_FTISR (Offset 0x013C) */
  14224. #define BIT_FS_PS_TIMEOUT2_INT BIT(15)
  14225. #endif
  14226. #if (HALMAC_8814B_SUPPORT)
  14227. /* 2 REG_FTISR (Offset 0x013C) */
  14228. #define BIT_PS_TIMER_2_INT BIT(15)
  14229. #endif
  14230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14231. /* 2 REG_FTISR (Offset 0x013C) */
  14232. #define BIT_TX_BCN1OK_INT BIT(14)
  14233. #endif
  14234. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14235. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  14236. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14237. /* 2 REG_FTISR (Offset 0x013C) */
  14238. #define BIT_FS_PS_TIMEOUT1_INT BIT(14)
  14239. #endif
  14240. #if (HALMAC_8814B_SUPPORT)
  14241. /* 2 REG_FTISR (Offset 0x013C) */
  14242. #define BIT_PS_TIMER_1_INT BIT(14)
  14243. #endif
  14244. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14245. /* 2 REG_FTISR (Offset 0x013C) */
  14246. #define BIT_FT_ATIMEND_E BIT(13)
  14247. #endif
  14248. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14249. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  14250. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14251. /* 2 REG_FTISR (Offset 0x013C) */
  14252. #define BIT_FS_PS_TIMEOUT0_INT BIT(13)
  14253. #endif
  14254. #if (HALMAC_8814B_SUPPORT)
  14255. /* 2 REG_FTISR (Offset 0x013C) */
  14256. #define BIT_PS_TIMER_0_INT BIT(13)
  14257. #endif
  14258. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14259. /* 2 REG_FTISR (Offset 0x013C) */
  14260. #define BIT_BCNDMAINT_E_V1 BIT(12)
  14261. #endif
  14262. #if (HALMAC_8814B_SUPPORT)
  14263. /* 2 REG_FTISR (Offset 0x013C) */
  14264. #define BIT_FS_GTINT12_INT BIT(12)
  14265. #endif
  14266. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14267. /* 2 REG_FTISR (Offset 0x013C) */
  14268. #define BIT_GT5INT BIT(11)
  14269. #endif
  14270. #if (HALMAC_8814B_SUPPORT)
  14271. /* 2 REG_FTISR (Offset 0x013C) */
  14272. #define BIT_FS_GTINT11_INT BIT(11)
  14273. #endif
  14274. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14275. /* 2 REG_FTISR (Offset 0x013C) */
  14276. #define BIT_EOSP_INT BIT(10)
  14277. #endif
  14278. #if (HALMAC_8814B_SUPPORT)
  14279. /* 2 REG_FTISR (Offset 0x013C) */
  14280. #define BIT_FS_GTINT10_INT BIT(10)
  14281. #endif
  14282. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14283. /* 2 REG_FTISR (Offset 0x013C) */
  14284. #define BIT_RX_BCN_E_INT BIT(9)
  14285. #endif
  14286. #if (HALMAC_8814B_SUPPORT)
  14287. /* 2 REG_FTISR (Offset 0x013C) */
  14288. #define BIT_FS_GTINT9_INT BIT(9)
  14289. #endif
  14290. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14291. /* 2 REG_FTISR (Offset 0x013C) */
  14292. #define BIT_RPWMINT BIT(8)
  14293. #define BIT_SHIFT_LLTINI_ADDR 8
  14294. #define BIT_MASK_LLTINI_ADDR 0xff
  14295. #define BIT_LLTINI_ADDR(x) \
  14296. (((x) & BIT_MASK_LLTINI_ADDR) << BIT_SHIFT_LLTINI_ADDR)
  14297. #define BITS_LLTINI_ADDR (BIT_MASK_LLTINI_ADDR << BIT_SHIFT_LLTINI_ADDR)
  14298. #define BIT_CLEAR_LLTINI_ADDR(x) ((x) & (~BITS_LLTINI_ADDR))
  14299. #define BIT_GET_LLTINI_ADDR(x) \
  14300. (((x) >> BIT_SHIFT_LLTINI_ADDR) & BIT_MASK_LLTINI_ADDR)
  14301. #define BIT_SET_LLTINI_ADDR(x, v) \
  14302. (BIT_CLEAR_LLTINI_ADDR(x) | BIT_LLTINI_ADDR(v))
  14303. #endif
  14304. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14305. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14306. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14307. /* 2 REG_FTISR (Offset 0x013C) */
  14308. #define BIT_FS_GTINT8_INT BIT(8)
  14309. #endif
  14310. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14311. /* 2 REG_FTISR (Offset 0x013C) */
  14312. #define BIT_PSTIMER_INT BIT(7)
  14313. #endif
  14314. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14315. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14316. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14317. /* 2 REG_FTISR (Offset 0x013C) */
  14318. #define BIT_FS_GTINT7_INT BIT(7)
  14319. #endif
  14320. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14321. /* 2 REG_FTISR (Offset 0x013C) */
  14322. #define BIT_TIMEOUT1_INT BIT(6)
  14323. #endif
  14324. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14325. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14326. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14327. /* 2 REG_FTISR (Offset 0x013C) */
  14328. #define BIT_FS_GTINT6_INT BIT(6)
  14329. #endif
  14330. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14331. /* 2 REG_FTISR (Offset 0x013C) */
  14332. #define BIT_TIMEOUT0_INT BIT(5)
  14333. #endif
  14334. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14335. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14336. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14337. /* 2 REG_FTISR (Offset 0x013C) */
  14338. #define BIT_FS_GTINT5_INT BIT(5)
  14339. #endif
  14340. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14341. /* 2 REG_FTISR (Offset 0x013C) */
  14342. #define BIT_FT_GT4INT BIT(4)
  14343. #endif
  14344. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14345. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14346. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14347. /* 2 REG_FTISR (Offset 0x013C) */
  14348. #define BIT_FS_GTINT4_INT BIT(4)
  14349. #endif
  14350. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14351. /* 2 REG_FTISR (Offset 0x013C) */
  14352. #define BIT_FT_GT3INT BIT(3)
  14353. #endif
  14354. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14355. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14356. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14357. /* 2 REG_FTISR (Offset 0x013C) */
  14358. #define BIT_FS_GTINT3_INT BIT(3)
  14359. #endif
  14360. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14361. /* 2 REG_FTISR (Offset 0x013C) */
  14362. #define BIT_GT2INT BIT(2)
  14363. #endif
  14364. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14365. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14367. /* 2 REG_FTISR (Offset 0x013C) */
  14368. #define BIT_FS_GTINT2_INT BIT(2)
  14369. #endif
  14370. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14371. /* 2 REG_FTISR (Offset 0x013C) */
  14372. #define BIT_GT1INT BIT(1)
  14373. #endif
  14374. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14375. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14376. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14377. /* 2 REG_FTISR (Offset 0x013C) */
  14378. #define BIT_FS_GTINT1_INT BIT(1)
  14379. #endif
  14380. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  14381. /* 2 REG_FTISR (Offset 0x013C) */
  14382. #define BIT_GT0INT BIT(0)
  14383. #define BIT_SHIFT_LLTINI_HDATA 0
  14384. #define BIT_MASK_LLTINI_HDATA 0xff
  14385. #define BIT_LLTINI_HDATA(x) \
  14386. (((x) & BIT_MASK_LLTINI_HDATA) << BIT_SHIFT_LLTINI_HDATA)
  14387. #define BITS_LLTINI_HDATA (BIT_MASK_LLTINI_HDATA << BIT_SHIFT_LLTINI_HDATA)
  14388. #define BIT_CLEAR_LLTINI_HDATA(x) ((x) & (~BITS_LLTINI_HDATA))
  14389. #define BIT_GET_LLTINI_HDATA(x) \
  14390. (((x) >> BIT_SHIFT_LLTINI_HDATA) & BIT_MASK_LLTINI_HDATA)
  14391. #define BIT_SET_LLTINI_HDATA(x, v) \
  14392. (BIT_CLEAR_LLTINI_HDATA(x) | BIT_LLTINI_HDATA(v))
  14393. #endif
  14394. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14395. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14396. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14397. /* 2 REG_FTISR (Offset 0x013C) */
  14398. #define BIT_FS_GTINT0_INT BIT(0)
  14399. #endif
  14400. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  14401. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  14402. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  14403. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  14404. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14405. #define BIT_SHIFT_PKTBUF_WRITE_EN 24
  14406. #define BIT_MASK_PKTBUF_WRITE_EN 0xff
  14407. #define BIT_PKTBUF_WRITE_EN(x) \
  14408. (((x) & BIT_MASK_PKTBUF_WRITE_EN) << BIT_SHIFT_PKTBUF_WRITE_EN)
  14409. #define BITS_PKTBUF_WRITE_EN \
  14410. (BIT_MASK_PKTBUF_WRITE_EN << BIT_SHIFT_PKTBUF_WRITE_EN)
  14411. #define BIT_CLEAR_PKTBUF_WRITE_EN(x) ((x) & (~BITS_PKTBUF_WRITE_EN))
  14412. #define BIT_GET_PKTBUF_WRITE_EN(x) \
  14413. (((x) >> BIT_SHIFT_PKTBUF_WRITE_EN) & BIT_MASK_PKTBUF_WRITE_EN)
  14414. #define BIT_SET_PKTBUF_WRITE_EN(x, v) \
  14415. (BIT_CLEAR_PKTBUF_WRITE_EN(x) | BIT_PKTBUF_WRITE_EN(v))
  14416. #endif
  14417. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14418. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14419. #define BIT_TXPKT_BUF_READ_EN BIT(23)
  14420. #endif
  14421. #if (HALMAC_8192F_SUPPORT)
  14422. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14423. #define BIT_TXPKTBUF_DBG BIT(23)
  14424. #endif
  14425. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14426. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14427. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14428. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14429. #define BIT_TXRPTBUF_DBG BIT(23)
  14430. #endif
  14431. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14432. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14433. #define BIT_TXRPT_BUF_READ_EN BIT(20)
  14434. #endif
  14435. #if (HALMAC_8192F_SUPPORT)
  14436. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14437. #define BIT_TXRPTBUF_DBG_V2 BIT(20)
  14438. #endif
  14439. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  14440. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  14441. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  14442. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14443. #define BIT_TXPKTBUF_DBG_V2 BIT(20)
  14444. #endif
  14445. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14446. /* 2 REG_PKTBUF_DBG_CTRL (Offset 0x0140) */
  14447. #define BIT_RXPKT_BUF_READ_EN BIT(16)
  14448. #define BIT_SHIFT_PKTBUF_ADDR 0
  14449. #define BIT_MASK_PKTBUF_ADDR 0x1fff
  14450. #define BIT_PKTBUF_ADDR(x) \
  14451. (((x) & BIT_MASK_PKTBUF_ADDR) << BIT_SHIFT_PKTBUF_ADDR)
  14452. #define BITS_PKTBUF_ADDR (BIT_MASK_PKTBUF_ADDR << BIT_SHIFT_PKTBUF_ADDR)
  14453. #define BIT_CLEAR_PKTBUF_ADDR(x) ((x) & (~BITS_PKTBUF_ADDR))
  14454. #define BIT_GET_PKTBUF_ADDR(x) \
  14455. (((x) >> BIT_SHIFT_PKTBUF_ADDR) & BIT_MASK_PKTBUF_ADDR)
  14456. #define BIT_SET_PKTBUF_ADDR(x, v) \
  14457. (BIT_CLEAR_PKTBUF_ADDR(x) | BIT_PKTBUF_ADDR(v))
  14458. #endif
  14459. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  14460. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  14461. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  14462. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  14463. /* 2 REG_PKTBUF_DBG_DATA_L (Offset 0x0144) */
  14464. #define BIT_SHIFT_PKTBUF_DBG_DATA_L 0
  14465. #define BIT_MASK_PKTBUF_DBG_DATA_L 0xffffffffL
  14466. #define BIT_PKTBUF_DBG_DATA_L(x) \
  14467. (((x) & BIT_MASK_PKTBUF_DBG_DATA_L) << BIT_SHIFT_PKTBUF_DBG_DATA_L)
  14468. #define BITS_PKTBUF_DBG_DATA_L \
  14469. (BIT_MASK_PKTBUF_DBG_DATA_L << BIT_SHIFT_PKTBUF_DBG_DATA_L)
  14470. #define BIT_CLEAR_PKTBUF_DBG_DATA_L(x) ((x) & (~BITS_PKTBUF_DBG_DATA_L))
  14471. #define BIT_GET_PKTBUF_DBG_DATA_L(x) \
  14472. (((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_L) & BIT_MASK_PKTBUF_DBG_DATA_L)
  14473. #define BIT_SET_PKTBUF_DBG_DATA_L(x, v) \
  14474. (BIT_CLEAR_PKTBUF_DBG_DATA_L(x) | BIT_PKTBUF_DBG_DATA_L(v))
  14475. /* 2 REG_PKTBUF_DBG_DATA_H (Offset 0x0148) */
  14476. #define BIT_SHIFT_PKTBUF_DBG_DATA_H 0
  14477. #define BIT_MASK_PKTBUF_DBG_DATA_H 0xffffffffL
  14478. #define BIT_PKTBUF_DBG_DATA_H(x) \
  14479. (((x) & BIT_MASK_PKTBUF_DBG_DATA_H) << BIT_SHIFT_PKTBUF_DBG_DATA_H)
  14480. #define BITS_PKTBUF_DBG_DATA_H \
  14481. (BIT_MASK_PKTBUF_DBG_DATA_H << BIT_SHIFT_PKTBUF_DBG_DATA_H)
  14482. #define BIT_CLEAR_PKTBUF_DBG_DATA_H(x) ((x) & (~BITS_PKTBUF_DBG_DATA_H))
  14483. #define BIT_GET_PKTBUF_DBG_DATA_H(x) \
  14484. (((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_H) & BIT_MASK_PKTBUF_DBG_DATA_H)
  14485. #define BIT_SET_PKTBUF_DBG_DATA_H(x, v) \
  14486. (BIT_CLEAR_PKTBUF_DBG_DATA_H(x) | BIT_PKTBUF_DBG_DATA_H(v))
  14487. /* 2 REG_CPWM2 (Offset 0x014C) */
  14488. #define BIT_SHIFT_L0S_TO_RCVY_NUM 16
  14489. #define BIT_MASK_L0S_TO_RCVY_NUM 0xff
  14490. #define BIT_L0S_TO_RCVY_NUM(x) \
  14491. (((x) & BIT_MASK_L0S_TO_RCVY_NUM) << BIT_SHIFT_L0S_TO_RCVY_NUM)
  14492. #define BITS_L0S_TO_RCVY_NUM \
  14493. (BIT_MASK_L0S_TO_RCVY_NUM << BIT_SHIFT_L0S_TO_RCVY_NUM)
  14494. #define BIT_CLEAR_L0S_TO_RCVY_NUM(x) ((x) & (~BITS_L0S_TO_RCVY_NUM))
  14495. #define BIT_GET_L0S_TO_RCVY_NUM(x) \
  14496. (((x) >> BIT_SHIFT_L0S_TO_RCVY_NUM) & BIT_MASK_L0S_TO_RCVY_NUM)
  14497. #define BIT_SET_L0S_TO_RCVY_NUM(x, v) \
  14498. (BIT_CLEAR_L0S_TO_RCVY_NUM(x) | BIT_L0S_TO_RCVY_NUM(v))
  14499. #define BIT_CPWM2_TOGGLING BIT(15)
  14500. #define BIT_SHIFT_CPWM2_MOD 0
  14501. #define BIT_MASK_CPWM2_MOD 0x7fff
  14502. #define BIT_CPWM2_MOD(x) (((x) & BIT_MASK_CPWM2_MOD) << BIT_SHIFT_CPWM2_MOD)
  14503. #define BITS_CPWM2_MOD (BIT_MASK_CPWM2_MOD << BIT_SHIFT_CPWM2_MOD)
  14504. #define BIT_CLEAR_CPWM2_MOD(x) ((x) & (~BITS_CPWM2_MOD))
  14505. #define BIT_GET_CPWM2_MOD(x) (((x) >> BIT_SHIFT_CPWM2_MOD) & BIT_MASK_CPWM2_MOD)
  14506. #define BIT_SET_CPWM2_MOD(x, v) (BIT_CLEAR_CPWM2_MOD(x) | BIT_CPWM2_MOD(v))
  14507. /* 2 REG_TC0_CTRL (Offset 0x0150) */
  14508. #define BIT_TC0INT_EN BIT(26)
  14509. #define BIT_TC0MODE BIT(25)
  14510. #define BIT_TC0EN BIT(24)
  14511. #define BIT_SHIFT_TC0DATA 0
  14512. #define BIT_MASK_TC0DATA 0xffffff
  14513. #define BIT_TC0DATA(x) (((x) & BIT_MASK_TC0DATA) << BIT_SHIFT_TC0DATA)
  14514. #define BITS_TC0DATA (BIT_MASK_TC0DATA << BIT_SHIFT_TC0DATA)
  14515. #define BIT_CLEAR_TC0DATA(x) ((x) & (~BITS_TC0DATA))
  14516. #define BIT_GET_TC0DATA(x) (((x) >> BIT_SHIFT_TC0DATA) & BIT_MASK_TC0DATA)
  14517. #define BIT_SET_TC0DATA(x, v) (BIT_CLEAR_TC0DATA(x) | BIT_TC0DATA(v))
  14518. /* 2 REG_TC1_CTRL (Offset 0x0154) */
  14519. #define BIT_TC1INT_EN BIT(26)
  14520. #define BIT_TC1MODE BIT(25)
  14521. #define BIT_TC1EN BIT(24)
  14522. #define BIT_SHIFT_TC1DATA 0
  14523. #define BIT_MASK_TC1DATA 0xffffff
  14524. #define BIT_TC1DATA(x) (((x) & BIT_MASK_TC1DATA) << BIT_SHIFT_TC1DATA)
  14525. #define BITS_TC1DATA (BIT_MASK_TC1DATA << BIT_SHIFT_TC1DATA)
  14526. #define BIT_CLEAR_TC1DATA(x) ((x) & (~BITS_TC1DATA))
  14527. #define BIT_GET_TC1DATA(x) (((x) >> BIT_SHIFT_TC1DATA) & BIT_MASK_TC1DATA)
  14528. #define BIT_SET_TC1DATA(x, v) (BIT_CLEAR_TC1DATA(x) | BIT_TC1DATA(v))
  14529. /* 2 REG_TC2_CTRL (Offset 0x0158) */
  14530. #define BIT_TC2INT_EN BIT(26)
  14531. #define BIT_TC2MODE BIT(25)
  14532. #define BIT_TC2EN BIT(24)
  14533. #define BIT_SHIFT_TC2DATA 0
  14534. #define BIT_MASK_TC2DATA 0xffffff
  14535. #define BIT_TC2DATA(x) (((x) & BIT_MASK_TC2DATA) << BIT_SHIFT_TC2DATA)
  14536. #define BITS_TC2DATA (BIT_MASK_TC2DATA << BIT_SHIFT_TC2DATA)
  14537. #define BIT_CLEAR_TC2DATA(x) ((x) & (~BITS_TC2DATA))
  14538. #define BIT_GET_TC2DATA(x) (((x) >> BIT_SHIFT_TC2DATA) & BIT_MASK_TC2DATA)
  14539. #define BIT_SET_TC2DATA(x, v) (BIT_CLEAR_TC2DATA(x) | BIT_TC2DATA(v))
  14540. /* 2 REG_TC3_CTRL (Offset 0x015C) */
  14541. #define BIT_TC3INT_EN BIT(26)
  14542. #define BIT_TC3MODE BIT(25)
  14543. #define BIT_TC3EN BIT(24)
  14544. #define BIT_SHIFT_TC3DATA 0
  14545. #define BIT_MASK_TC3DATA 0xffffff
  14546. #define BIT_TC3DATA(x) (((x) & BIT_MASK_TC3DATA) << BIT_SHIFT_TC3DATA)
  14547. #define BITS_TC3DATA (BIT_MASK_TC3DATA << BIT_SHIFT_TC3DATA)
  14548. #define BIT_CLEAR_TC3DATA(x) ((x) & (~BITS_TC3DATA))
  14549. #define BIT_GET_TC3DATA(x) (((x) >> BIT_SHIFT_TC3DATA) & BIT_MASK_TC3DATA)
  14550. #define BIT_SET_TC3DATA(x, v) (BIT_CLEAR_TC3DATA(x) | BIT_TC3DATA(v))
  14551. /* 2 REG_TC4_CTRL (Offset 0x0160) */
  14552. #define BIT_TC4INT_EN BIT(26)
  14553. #define BIT_TC4MODE BIT(25)
  14554. #define BIT_TC4EN BIT(24)
  14555. #define BIT_SHIFT_TC4DATA 0
  14556. #define BIT_MASK_TC4DATA 0xffffff
  14557. #define BIT_TC4DATA(x) (((x) & BIT_MASK_TC4DATA) << BIT_SHIFT_TC4DATA)
  14558. #define BITS_TC4DATA (BIT_MASK_TC4DATA << BIT_SHIFT_TC4DATA)
  14559. #define BIT_CLEAR_TC4DATA(x) ((x) & (~BITS_TC4DATA))
  14560. #define BIT_GET_TC4DATA(x) (((x) >> BIT_SHIFT_TC4DATA) & BIT_MASK_TC4DATA)
  14561. #define BIT_SET_TC4DATA(x, v) (BIT_CLEAR_TC4DATA(x) | BIT_TC4DATA(v))
  14562. /* 2 REG_TCUNIT_BASE (Offset 0x0164) */
  14563. #define BIT_SHIFT_TCUNIT_BASE 0
  14564. #define BIT_MASK_TCUNIT_BASE 0x3fff
  14565. #define BIT_TCUNIT_BASE(x) \
  14566. (((x) & BIT_MASK_TCUNIT_BASE) << BIT_SHIFT_TCUNIT_BASE)
  14567. #define BITS_TCUNIT_BASE (BIT_MASK_TCUNIT_BASE << BIT_SHIFT_TCUNIT_BASE)
  14568. #define BIT_CLEAR_TCUNIT_BASE(x) ((x) & (~BITS_TCUNIT_BASE))
  14569. #define BIT_GET_TCUNIT_BASE(x) \
  14570. (((x) >> BIT_SHIFT_TCUNIT_BASE) & BIT_MASK_TCUNIT_BASE)
  14571. #define BIT_SET_TCUNIT_BASE(x, v) \
  14572. (BIT_CLEAR_TCUNIT_BASE(x) | BIT_TCUNIT_BASE(v))
  14573. #endif
  14574. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14575. /* 2 REG_TC5_CTRL (Offset 0x0168) */
  14576. #define BIT_TC50INT_EN BIT(26)
  14577. #endif
  14578. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14579. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  14580. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  14581. HALMAC_8822C_SUPPORT)
  14582. /* 2 REG_TC5_CTRL (Offset 0x0168) */
  14583. #define BIT_TC5INT_EN BIT(26)
  14584. #endif
  14585. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  14586. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  14587. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  14588. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  14589. /* 2 REG_TC5_CTRL (Offset 0x0168) */
  14590. #define BIT_TC5MODE BIT(25)
  14591. #define BIT_TC5EN BIT(24)
  14592. #define BIT_SHIFT_TC5DATA 0
  14593. #define BIT_MASK_TC5DATA 0xffffff
  14594. #define BIT_TC5DATA(x) (((x) & BIT_MASK_TC5DATA) << BIT_SHIFT_TC5DATA)
  14595. #define BITS_TC5DATA (BIT_MASK_TC5DATA << BIT_SHIFT_TC5DATA)
  14596. #define BIT_CLEAR_TC5DATA(x) ((x) & (~BITS_TC5DATA))
  14597. #define BIT_GET_TC5DATA(x) (((x) >> BIT_SHIFT_TC5DATA) & BIT_MASK_TC5DATA)
  14598. #define BIT_SET_TC5DATA(x, v) (BIT_CLEAR_TC5DATA(x) | BIT_TC5DATA(v))
  14599. #endif
  14600. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  14601. /* 2 REG_TC6_CTRL (Offset 0x016C) */
  14602. #define BIT_TC60INT_EN BIT(26)
  14603. #endif
  14604. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14605. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  14606. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  14607. HALMAC_8822C_SUPPORT)
  14608. /* 2 REG_TC6_CTRL (Offset 0x016C) */
  14609. #define BIT_TC6INT_EN BIT(26)
  14610. #endif
  14611. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  14612. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  14613. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  14614. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  14615. /* 2 REG_TC6_CTRL (Offset 0x016C) */
  14616. #define BIT_TC6MODE BIT(25)
  14617. #define BIT_TC6EN BIT(24)
  14618. #endif
  14619. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14620. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  14621. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  14622. HALMAC_8822C_SUPPORT)
  14623. /* 2 REG_TC6_CTRL (Offset 0x016C) */
  14624. #define BIT_SHIFT_SEQNUM_MID 16
  14625. #define BIT_MASK_SEQNUM_MID 0xffff
  14626. #define BIT_SEQNUM_MID(x) (((x) & BIT_MASK_SEQNUM_MID) << BIT_SHIFT_SEQNUM_MID)
  14627. #define BITS_SEQNUM_MID (BIT_MASK_SEQNUM_MID << BIT_SHIFT_SEQNUM_MID)
  14628. #define BIT_CLEAR_SEQNUM_MID(x) ((x) & (~BITS_SEQNUM_MID))
  14629. #define BIT_GET_SEQNUM_MID(x) \
  14630. (((x) >> BIT_SHIFT_SEQNUM_MID) & BIT_MASK_SEQNUM_MID)
  14631. #define BIT_SET_SEQNUM_MID(x, v) (BIT_CLEAR_SEQNUM_MID(x) | BIT_SEQNUM_MID(v))
  14632. #endif
  14633. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  14634. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  14635. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  14636. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  14637. /* 2 REG_TC6_CTRL (Offset 0x016C) */
  14638. #define BIT_SHIFT_TC6DATA 0
  14639. #define BIT_MASK_TC6DATA 0xffffff
  14640. #define BIT_TC6DATA(x) (((x) & BIT_MASK_TC6DATA) << BIT_SHIFT_TC6DATA)
  14641. #define BITS_TC6DATA (BIT_MASK_TC6DATA << BIT_SHIFT_TC6DATA)
  14642. #define BIT_CLEAR_TC6DATA(x) ((x) & (~BITS_TC6DATA))
  14643. #define BIT_GET_TC6DATA(x) (((x) >> BIT_SHIFT_TC6DATA) & BIT_MASK_TC6DATA)
  14644. #define BIT_SET_TC6DATA(x, v) (BIT_CLEAR_TC6DATA(x) | BIT_TC6DATA(v))
  14645. #endif
  14646. #if (HALMAC_8192F_SUPPORT)
  14647. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14648. #define BIT_SHIFT_WLON_MBIST_DRF_FAIL 30
  14649. #define BIT_MASK_WLON_MBIST_DRF_FAIL 0x3
  14650. #define BIT_WLON_MBIST_DRF_FAIL(x) \
  14651. (((x) & BIT_MASK_WLON_MBIST_DRF_FAIL) << BIT_SHIFT_WLON_MBIST_DRF_FAIL)
  14652. #define BITS_WLON_MBIST_DRF_FAIL \
  14653. (BIT_MASK_WLON_MBIST_DRF_FAIL << BIT_SHIFT_WLON_MBIST_DRF_FAIL)
  14654. #define BIT_CLEAR_WLON_MBIST_DRF_FAIL(x) ((x) & (~BITS_WLON_MBIST_DRF_FAIL))
  14655. #define BIT_GET_WLON_MBIST_DRF_FAIL(x) \
  14656. (((x) >> BIT_SHIFT_WLON_MBIST_DRF_FAIL) & BIT_MASK_WLON_MBIST_DRF_FAIL)
  14657. #define BIT_SET_WLON_MBIST_DRF_FAIL(x, v) \
  14658. (BIT_CLEAR_WLON_MBIST_DRF_FAIL(x) | BIT_WLON_MBIST_DRF_FAIL(v))
  14659. #endif
  14660. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14661. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14662. HALMAC_8881A_SUPPORT)
  14663. /* 2 REG_MBIST_FAIL (Offset 0x0170) */
  14664. #define BIT_SHIFT_8051_MBIST_FAIL 26
  14665. #define BIT_MASK_8051_MBIST_FAIL 0x7
  14666. #define BIT_8051_MBIST_FAIL(x) \
  14667. (((x) & BIT_MASK_8051_MBIST_FAIL) << BIT_SHIFT_8051_MBIST_FAIL)
  14668. #define BITS_8051_MBIST_FAIL \
  14669. (BIT_MASK_8051_MBIST_FAIL << BIT_SHIFT_8051_MBIST_FAIL)
  14670. #define BIT_CLEAR_8051_MBIST_FAIL(x) ((x) & (~BITS_8051_MBIST_FAIL))
  14671. #define BIT_GET_8051_MBIST_FAIL(x) \
  14672. (((x) >> BIT_SHIFT_8051_MBIST_FAIL) & BIT_MASK_8051_MBIST_FAIL)
  14673. #define BIT_SET_8051_MBIST_FAIL(x, v) \
  14674. (BIT_CLEAR_8051_MBIST_FAIL(x) | BIT_8051_MBIST_FAIL(v))
  14675. #endif
  14676. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  14677. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14678. #define BIT_SHIFT_8051_MBIST_DRF_FAIL 26
  14679. #define BIT_MASK_8051_MBIST_DRF_FAIL 0x3f
  14680. #define BIT_8051_MBIST_DRF_FAIL(x) \
  14681. (((x) & BIT_MASK_8051_MBIST_DRF_FAIL) << BIT_SHIFT_8051_MBIST_DRF_FAIL)
  14682. #define BITS_8051_MBIST_DRF_FAIL \
  14683. (BIT_MASK_8051_MBIST_DRF_FAIL << BIT_SHIFT_8051_MBIST_DRF_FAIL)
  14684. #define BIT_CLEAR_8051_MBIST_DRF_FAIL(x) ((x) & (~BITS_8051_MBIST_DRF_FAIL))
  14685. #define BIT_GET_8051_MBIST_DRF_FAIL(x) \
  14686. (((x) >> BIT_SHIFT_8051_MBIST_DRF_FAIL) & BIT_MASK_8051_MBIST_DRF_FAIL)
  14687. #define BIT_SET_8051_MBIST_DRF_FAIL(x, v) \
  14688. (BIT_CLEAR_8051_MBIST_DRF_FAIL(x) | BIT_8051_MBIST_DRF_FAIL(v))
  14689. #endif
  14690. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14691. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14692. HALMAC_8881A_SUPPORT)
  14693. /* 2 REG_MBIST_FAIL (Offset 0x0170) */
  14694. #define BIT_SHIFT_USB_MBIST_FAIL 24
  14695. #define BIT_MASK_USB_MBIST_FAIL 0x3
  14696. #define BIT_USB_MBIST_FAIL(x) \
  14697. (((x) & BIT_MASK_USB_MBIST_FAIL) << BIT_SHIFT_USB_MBIST_FAIL)
  14698. #define BITS_USB_MBIST_FAIL \
  14699. (BIT_MASK_USB_MBIST_FAIL << BIT_SHIFT_USB_MBIST_FAIL)
  14700. #define BIT_CLEAR_USB_MBIST_FAIL(x) ((x) & (~BITS_USB_MBIST_FAIL))
  14701. #define BIT_GET_USB_MBIST_FAIL(x) \
  14702. (((x) >> BIT_SHIFT_USB_MBIST_FAIL) & BIT_MASK_USB_MBIST_FAIL)
  14703. #define BIT_SET_USB_MBIST_FAIL(x, v) \
  14704. (BIT_CLEAR_USB_MBIST_FAIL(x) | BIT_USB_MBIST_FAIL(v))
  14705. #endif
  14706. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  14707. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14708. #define BIT_SHIFT_USB_MBIST_DRF_FAIL 24
  14709. #define BIT_MASK_USB_MBIST_DRF_FAIL 0x3
  14710. #define BIT_USB_MBIST_DRF_FAIL(x) \
  14711. (((x) & BIT_MASK_USB_MBIST_DRF_FAIL) << BIT_SHIFT_USB_MBIST_DRF_FAIL)
  14712. #define BITS_USB_MBIST_DRF_FAIL \
  14713. (BIT_MASK_USB_MBIST_DRF_FAIL << BIT_SHIFT_USB_MBIST_DRF_FAIL)
  14714. #define BIT_CLEAR_USB_MBIST_DRF_FAIL(x) ((x) & (~BITS_USB_MBIST_DRF_FAIL))
  14715. #define BIT_GET_USB_MBIST_DRF_FAIL(x) \
  14716. (((x) >> BIT_SHIFT_USB_MBIST_DRF_FAIL) & BIT_MASK_USB_MBIST_DRF_FAIL)
  14717. #define BIT_SET_USB_MBIST_DRF_FAIL(x, v) \
  14718. (BIT_CLEAR_USB_MBIST_DRF_FAIL(x) | BIT_USB_MBIST_DRF_FAIL(v))
  14719. #define BIT_SHIFT_PCIE_MBIST_DRF_FAIL 18
  14720. #define BIT_MASK_PCIE_MBIST_DRF_FAIL 0x3f
  14721. #define BIT_PCIE_MBIST_DRF_FAIL(x) \
  14722. (((x) & BIT_MASK_PCIE_MBIST_DRF_FAIL) << BIT_SHIFT_PCIE_MBIST_DRF_FAIL)
  14723. #define BITS_PCIE_MBIST_DRF_FAIL \
  14724. (BIT_MASK_PCIE_MBIST_DRF_FAIL << BIT_SHIFT_PCIE_MBIST_DRF_FAIL)
  14725. #define BIT_CLEAR_PCIE_MBIST_DRF_FAIL(x) ((x) & (~BITS_PCIE_MBIST_DRF_FAIL))
  14726. #define BIT_GET_PCIE_MBIST_DRF_FAIL(x) \
  14727. (((x) >> BIT_SHIFT_PCIE_MBIST_DRF_FAIL) & BIT_MASK_PCIE_MBIST_DRF_FAIL)
  14728. #define BIT_SET_PCIE_MBIST_DRF_FAIL(x, v) \
  14729. (BIT_CLEAR_PCIE_MBIST_DRF_FAIL(x) | BIT_PCIE_MBIST_DRF_FAIL(v))
  14730. #endif
  14731. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14732. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14733. HALMAC_8881A_SUPPORT)
  14734. /* 2 REG_MBIST_FAIL (Offset 0x0170) */
  14735. #define BIT_SHIFT_PCIE_MBIST_FAIL 16
  14736. #define BIT_MASK_PCIE_MBIST_FAIL 0x3f
  14737. #define BIT_PCIE_MBIST_FAIL(x) \
  14738. (((x) & BIT_MASK_PCIE_MBIST_FAIL) << BIT_SHIFT_PCIE_MBIST_FAIL)
  14739. #define BITS_PCIE_MBIST_FAIL \
  14740. (BIT_MASK_PCIE_MBIST_FAIL << BIT_SHIFT_PCIE_MBIST_FAIL)
  14741. #define BIT_CLEAR_PCIE_MBIST_FAIL(x) ((x) & (~BITS_PCIE_MBIST_FAIL))
  14742. #define BIT_GET_PCIE_MBIST_FAIL(x) \
  14743. (((x) >> BIT_SHIFT_PCIE_MBIST_FAIL) & BIT_MASK_PCIE_MBIST_FAIL)
  14744. #define BIT_SET_PCIE_MBIST_FAIL(x, v) \
  14745. (BIT_CLEAR_PCIE_MBIST_FAIL(x) | BIT_PCIE_MBIST_FAIL(v))
  14746. #endif
  14747. #if (HALMAC_8192F_SUPPORT)
  14748. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14749. #define BIT_SHIFT_WLOFF_MBIST_DRF_FAIL 16
  14750. #define BIT_MASK_WLOFF_MBIST_DRF_FAIL 0x3fff
  14751. #define BIT_WLOFF_MBIST_DRF_FAIL(x) \
  14752. (((x) & BIT_MASK_WLOFF_MBIST_DRF_FAIL) \
  14753. << BIT_SHIFT_WLOFF_MBIST_DRF_FAIL)
  14754. #define BITS_WLOFF_MBIST_DRF_FAIL \
  14755. (BIT_MASK_WLOFF_MBIST_DRF_FAIL << BIT_SHIFT_WLOFF_MBIST_DRF_FAIL)
  14756. #define BIT_CLEAR_WLOFF_MBIST_DRF_FAIL(x) ((x) & (~BITS_WLOFF_MBIST_DRF_FAIL))
  14757. #define BIT_GET_WLOFF_MBIST_DRF_FAIL(x) \
  14758. (((x) >> BIT_SHIFT_WLOFF_MBIST_DRF_FAIL) & \
  14759. BIT_MASK_WLOFF_MBIST_DRF_FAIL)
  14760. #define BIT_SET_WLOFF_MBIST_DRF_FAIL(x, v) \
  14761. (BIT_CLEAR_WLOFF_MBIST_DRF_FAIL(x) | BIT_WLOFF_MBIST_DRF_FAIL(v))
  14762. #define BIT_SHIFT_PCIE_MBIST_DRF_FAIL_V1 11
  14763. #define BIT_MASK_PCIE_MBIST_DRF_FAIL_V1 0x1f
  14764. #define BIT_PCIE_MBIST_DRF_FAIL_V1(x) \
  14765. (((x) & BIT_MASK_PCIE_MBIST_DRF_FAIL_V1) \
  14766. << BIT_SHIFT_PCIE_MBIST_DRF_FAIL_V1)
  14767. #define BITS_PCIE_MBIST_DRF_FAIL_V1 \
  14768. (BIT_MASK_PCIE_MBIST_DRF_FAIL_V1 << BIT_SHIFT_PCIE_MBIST_DRF_FAIL_V1)
  14769. #define BIT_CLEAR_PCIE_MBIST_DRF_FAIL_V1(x) \
  14770. ((x) & (~BITS_PCIE_MBIST_DRF_FAIL_V1))
  14771. #define BIT_GET_PCIE_MBIST_DRF_FAIL_V1(x) \
  14772. (((x) >> BIT_SHIFT_PCIE_MBIST_DRF_FAIL_V1) & \
  14773. BIT_MASK_PCIE_MBIST_DRF_FAIL_V1)
  14774. #define BIT_SET_PCIE_MBIST_DRF_FAIL_V1(x, v) \
  14775. (BIT_CLEAR_PCIE_MBIST_DRF_FAIL_V1(x) | BIT_PCIE_MBIST_DRF_FAIL_V1(v))
  14776. #define BIT_SHIFT_USB_MBIST_DRF_FAIL_V1 4
  14777. #define BIT_MASK_USB_MBIST_DRF_FAIL_V1 0x7f
  14778. #define BIT_USB_MBIST_DRF_FAIL_V1(x) \
  14779. (((x) & BIT_MASK_USB_MBIST_DRF_FAIL_V1) \
  14780. << BIT_SHIFT_USB_MBIST_DRF_FAIL_V1)
  14781. #define BITS_USB_MBIST_DRF_FAIL_V1 \
  14782. (BIT_MASK_USB_MBIST_DRF_FAIL_V1 << BIT_SHIFT_USB_MBIST_DRF_FAIL_V1)
  14783. #define BIT_CLEAR_USB_MBIST_DRF_FAIL_V1(x) ((x) & (~BITS_USB_MBIST_DRF_FAIL_V1))
  14784. #define BIT_GET_USB_MBIST_DRF_FAIL_V1(x) \
  14785. (((x) >> BIT_SHIFT_USB_MBIST_DRF_FAIL_V1) & \
  14786. BIT_MASK_USB_MBIST_DRF_FAIL_V1)
  14787. #define BIT_SET_USB_MBIST_DRF_FAIL_V1(x, v) \
  14788. (BIT_CLEAR_USB_MBIST_DRF_FAIL_V1(x) | BIT_USB_MBIST_DRF_FAIL_V1(v))
  14789. #endif
  14790. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  14791. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  14792. /* 2 REG_MBIST_FAIL (Offset 0x0170) */
  14793. #define BIT_SHIFT_MAC_MBIST_FAIL 0
  14794. #define BIT_MASK_MAC_MBIST_FAIL 0xfff
  14795. #define BIT_MAC_MBIST_FAIL(x) \
  14796. (((x) & BIT_MASK_MAC_MBIST_FAIL) << BIT_SHIFT_MAC_MBIST_FAIL)
  14797. #define BITS_MAC_MBIST_FAIL \
  14798. (BIT_MASK_MAC_MBIST_FAIL << BIT_SHIFT_MAC_MBIST_FAIL)
  14799. #define BIT_CLEAR_MAC_MBIST_FAIL(x) ((x) & (~BITS_MAC_MBIST_FAIL))
  14800. #define BIT_GET_MAC_MBIST_FAIL(x) \
  14801. (((x) >> BIT_SHIFT_MAC_MBIST_FAIL) & BIT_MASK_MAC_MBIST_FAIL)
  14802. #define BIT_SET_MAC_MBIST_FAIL(x, v) \
  14803. (BIT_CLEAR_MAC_MBIST_FAIL(x) | BIT_MAC_MBIST_FAIL(v))
  14804. #endif
  14805. #if (HALMAC_8192F_SUPPORT)
  14806. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14807. #define BIT_SHIFT_USB_WLON_MBIST_DRF_FAIL 0
  14808. #define BIT_MASK_USB_WLON_MBIST_DRF_FAIL 0xf
  14809. #define BIT_USB_WLON_MBIST_DRF_FAIL(x) \
  14810. (((x) & BIT_MASK_USB_WLON_MBIST_DRF_FAIL) \
  14811. << BIT_SHIFT_USB_WLON_MBIST_DRF_FAIL)
  14812. #define BITS_USB_WLON_MBIST_DRF_FAIL \
  14813. (BIT_MASK_USB_WLON_MBIST_DRF_FAIL << BIT_SHIFT_USB_WLON_MBIST_DRF_FAIL)
  14814. #define BIT_CLEAR_USB_WLON_MBIST_DRF_FAIL(x) \
  14815. ((x) & (~BITS_USB_WLON_MBIST_DRF_FAIL))
  14816. #define BIT_GET_USB_WLON_MBIST_DRF_FAIL(x) \
  14817. (((x) >> BIT_SHIFT_USB_WLON_MBIST_DRF_FAIL) & \
  14818. BIT_MASK_USB_WLON_MBIST_DRF_FAIL)
  14819. #define BIT_SET_USB_WLON_MBIST_DRF_FAIL(x, v) \
  14820. (BIT_CLEAR_USB_WLON_MBIST_DRF_FAIL(x) | BIT_USB_WLON_MBIST_DRF_FAIL(v))
  14821. #endif
  14822. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  14823. /* 2 REG_MBIST_FAIL (Offset 0x0170) */
  14824. #define BIT_SHIFT_MAC_MBIST_FAIL_DRF 0
  14825. #define BIT_MASK_MAC_MBIST_FAIL_DRF 0x3ffff
  14826. #define BIT_MAC_MBIST_FAIL_DRF(x) \
  14827. (((x) & BIT_MASK_MAC_MBIST_FAIL_DRF) << BIT_SHIFT_MAC_MBIST_FAIL_DRF)
  14828. #define BITS_MAC_MBIST_FAIL_DRF \
  14829. (BIT_MASK_MAC_MBIST_FAIL_DRF << BIT_SHIFT_MAC_MBIST_FAIL_DRF)
  14830. #define BIT_CLEAR_MAC_MBIST_FAIL_DRF(x) ((x) & (~BITS_MAC_MBIST_FAIL_DRF))
  14831. #define BIT_GET_MAC_MBIST_FAIL_DRF(x) \
  14832. (((x) >> BIT_SHIFT_MAC_MBIST_FAIL_DRF) & BIT_MASK_MAC_MBIST_FAIL_DRF)
  14833. #define BIT_SET_MAC_MBIST_FAIL_DRF(x, v) \
  14834. (BIT_CLEAR_MAC_MBIST_FAIL_DRF(x) | BIT_MAC_MBIST_FAIL_DRF(v))
  14835. #endif
  14836. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  14837. /* 2 REG_MBIST_DRF_FAIL (Offset 0x0170) */
  14838. #define BIT_SHIFT_MAC_MBIST_DRF_FAIL 0
  14839. #define BIT_MASK_MAC_MBIST_DRF_FAIL 0x3ffff
  14840. #define BIT_MAC_MBIST_DRF_FAIL(x) \
  14841. (((x) & BIT_MASK_MAC_MBIST_DRF_FAIL) << BIT_SHIFT_MAC_MBIST_DRF_FAIL)
  14842. #define BITS_MAC_MBIST_DRF_FAIL \
  14843. (BIT_MASK_MAC_MBIST_DRF_FAIL << BIT_SHIFT_MAC_MBIST_DRF_FAIL)
  14844. #define BIT_CLEAR_MAC_MBIST_DRF_FAIL(x) ((x) & (~BITS_MAC_MBIST_DRF_FAIL))
  14845. #define BIT_GET_MAC_MBIST_DRF_FAIL(x) \
  14846. (((x) >> BIT_SHIFT_MAC_MBIST_DRF_FAIL) & BIT_MASK_MAC_MBIST_DRF_FAIL)
  14847. #define BIT_SET_MAC_MBIST_DRF_FAIL(x, v) \
  14848. (BIT_CLEAR_MAC_MBIST_DRF_FAIL(x) | BIT_MAC_MBIST_DRF_FAIL(v))
  14849. #endif
  14850. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14851. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14852. HALMAC_8881A_SUPPORT)
  14853. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14854. #define BIT_SHIFT_8051_MBIST_START_PAUSE 26
  14855. #define BIT_MASK_8051_MBIST_START_PAUSE 0x7
  14856. #define BIT_8051_MBIST_START_PAUSE(x) \
  14857. (((x) & BIT_MASK_8051_MBIST_START_PAUSE) \
  14858. << BIT_SHIFT_8051_MBIST_START_PAUSE)
  14859. #define BITS_8051_MBIST_START_PAUSE \
  14860. (BIT_MASK_8051_MBIST_START_PAUSE << BIT_SHIFT_8051_MBIST_START_PAUSE)
  14861. #define BIT_CLEAR_8051_MBIST_START_PAUSE(x) \
  14862. ((x) & (~BITS_8051_MBIST_START_PAUSE))
  14863. #define BIT_GET_8051_MBIST_START_PAUSE(x) \
  14864. (((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE) & \
  14865. BIT_MASK_8051_MBIST_START_PAUSE)
  14866. #define BIT_SET_8051_MBIST_START_PAUSE(x, v) \
  14867. (BIT_CLEAR_8051_MBIST_START_PAUSE(x) | BIT_8051_MBIST_START_PAUSE(v))
  14868. #endif
  14869. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  14870. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14871. #define BIT_SHIFT_8051_MBIST_START_PAUSE_V1 26
  14872. #define BIT_MASK_8051_MBIST_START_PAUSE_V1 0x3f
  14873. #define BIT_8051_MBIST_START_PAUSE_V1(x) \
  14874. (((x) & BIT_MASK_8051_MBIST_START_PAUSE_V1) \
  14875. << BIT_SHIFT_8051_MBIST_START_PAUSE_V1)
  14876. #define BITS_8051_MBIST_START_PAUSE_V1 \
  14877. (BIT_MASK_8051_MBIST_START_PAUSE_V1 \
  14878. << BIT_SHIFT_8051_MBIST_START_PAUSE_V1)
  14879. #define BIT_CLEAR_8051_MBIST_START_PAUSE_V1(x) \
  14880. ((x) & (~BITS_8051_MBIST_START_PAUSE_V1))
  14881. #define BIT_GET_8051_MBIST_START_PAUSE_V1(x) \
  14882. (((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE_V1) & \
  14883. BIT_MASK_8051_MBIST_START_PAUSE_V1)
  14884. #define BIT_SET_8051_MBIST_START_PAUSE_V1(x, v) \
  14885. (BIT_CLEAR_8051_MBIST_START_PAUSE_V1(x) | \
  14886. BIT_8051_MBIST_START_PAUSE_V1(v))
  14887. #endif
  14888. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14889. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14890. HALMAC_8881A_SUPPORT)
  14891. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14892. #define BIT_SHIFT_USB_MBIST_START_PAUSE 24
  14893. #define BIT_MASK_USB_MBIST_START_PAUSE 0x3
  14894. #define BIT_USB_MBIST_START_PAUSE(x) \
  14895. (((x) & BIT_MASK_USB_MBIST_START_PAUSE) \
  14896. << BIT_SHIFT_USB_MBIST_START_PAUSE)
  14897. #define BITS_USB_MBIST_START_PAUSE \
  14898. (BIT_MASK_USB_MBIST_START_PAUSE << BIT_SHIFT_USB_MBIST_START_PAUSE)
  14899. #define BIT_CLEAR_USB_MBIST_START_PAUSE(x) ((x) & (~BITS_USB_MBIST_START_PAUSE))
  14900. #define BIT_GET_USB_MBIST_START_PAUSE(x) \
  14901. (((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE) & \
  14902. BIT_MASK_USB_MBIST_START_PAUSE)
  14903. #define BIT_SET_USB_MBIST_START_PAUSE(x, v) \
  14904. (BIT_CLEAR_USB_MBIST_START_PAUSE(x) | BIT_USB_MBIST_START_PAUSE(v))
  14905. #endif
  14906. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  14907. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14908. #define BIT_SHIFT_USB_MBIST_START_PAUSE_V1 24
  14909. #define BIT_MASK_USB_MBIST_START_PAUSE_V1 0x3
  14910. #define BIT_USB_MBIST_START_PAUSE_V1(x) \
  14911. (((x) & BIT_MASK_USB_MBIST_START_PAUSE_V1) \
  14912. << BIT_SHIFT_USB_MBIST_START_PAUSE_V1)
  14913. #define BITS_USB_MBIST_START_PAUSE_V1 \
  14914. (BIT_MASK_USB_MBIST_START_PAUSE_V1 \
  14915. << BIT_SHIFT_USB_MBIST_START_PAUSE_V1)
  14916. #define BIT_CLEAR_USB_MBIST_START_PAUSE_V1(x) \
  14917. ((x) & (~BITS_USB_MBIST_START_PAUSE_V1))
  14918. #define BIT_GET_USB_MBIST_START_PAUSE_V1(x) \
  14919. (((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE_V1) & \
  14920. BIT_MASK_USB_MBIST_START_PAUSE_V1)
  14921. #define BIT_SET_USB_MBIST_START_PAUSE_V1(x, v) \
  14922. (BIT_CLEAR_USB_MBIST_START_PAUSE_V1(x) | \
  14923. BIT_USB_MBIST_START_PAUSE_V1(v))
  14924. #define BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1 18
  14925. #define BIT_MASK_PCIE_MBIST_START_PAUSE_V1 0x3f
  14926. #define BIT_PCIE_MBIST_START_PAUSE_V1(x) \
  14927. (((x) & BIT_MASK_PCIE_MBIST_START_PAUSE_V1) \
  14928. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1)
  14929. #define BITS_PCIE_MBIST_START_PAUSE_V1 \
  14930. (BIT_MASK_PCIE_MBIST_START_PAUSE_V1 \
  14931. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1)
  14932. #define BIT_CLEAR_PCIE_MBIST_START_PAUSE_V1(x) \
  14933. ((x) & (~BITS_PCIE_MBIST_START_PAUSE_V1))
  14934. #define BIT_GET_PCIE_MBIST_START_PAUSE_V1(x) \
  14935. (((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1) & \
  14936. BIT_MASK_PCIE_MBIST_START_PAUSE_V1)
  14937. #define BIT_SET_PCIE_MBIST_START_PAUSE_V1(x, v) \
  14938. (BIT_CLEAR_PCIE_MBIST_START_PAUSE_V1(x) | \
  14939. BIT_PCIE_MBIST_START_PAUSE_V1(v))
  14940. #endif
  14941. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  14942. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  14943. HALMAC_8881A_SUPPORT)
  14944. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14945. #define BIT_SHIFT_PCIE_MBIST_START_PAUSE 16
  14946. #define BIT_MASK_PCIE_MBIST_START_PAUSE 0x3f
  14947. #define BIT_PCIE_MBIST_START_PAUSE(x) \
  14948. (((x) & BIT_MASK_PCIE_MBIST_START_PAUSE) \
  14949. << BIT_SHIFT_PCIE_MBIST_START_PAUSE)
  14950. #define BITS_PCIE_MBIST_START_PAUSE \
  14951. (BIT_MASK_PCIE_MBIST_START_PAUSE << BIT_SHIFT_PCIE_MBIST_START_PAUSE)
  14952. #define BIT_CLEAR_PCIE_MBIST_START_PAUSE(x) \
  14953. ((x) & (~BITS_PCIE_MBIST_START_PAUSE))
  14954. #define BIT_GET_PCIE_MBIST_START_PAUSE(x) \
  14955. (((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE) & \
  14956. BIT_MASK_PCIE_MBIST_START_PAUSE)
  14957. #define BIT_SET_PCIE_MBIST_START_PAUSE(x, v) \
  14958. (BIT_CLEAR_PCIE_MBIST_START_PAUSE(x) | BIT_PCIE_MBIST_START_PAUSE(v))
  14959. #endif
  14960. #if (HALMAC_8192F_SUPPORT)
  14961. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  14962. #define BIT_SHIFT_WLON_MBIST_START_PAUSE_V1 9
  14963. #define BIT_MASK_WLON_MBIST_START_PAUSE_V1 0x3
  14964. #define BIT_WLON_MBIST_START_PAUSE_V1(x) \
  14965. (((x) & BIT_MASK_WLON_MBIST_START_PAUSE_V1) \
  14966. << BIT_SHIFT_WLON_MBIST_START_PAUSE_V1)
  14967. #define BITS_WLON_MBIST_START_PAUSE_V1 \
  14968. (BIT_MASK_WLON_MBIST_START_PAUSE_V1 \
  14969. << BIT_SHIFT_WLON_MBIST_START_PAUSE_V1)
  14970. #define BIT_CLEAR_WLON_MBIST_START_PAUSE_V1(x) \
  14971. ((x) & (~BITS_WLON_MBIST_START_PAUSE_V1))
  14972. #define BIT_GET_WLON_MBIST_START_PAUSE_V1(x) \
  14973. (((x) >> BIT_SHIFT_WLON_MBIST_START_PAUSE_V1) & \
  14974. BIT_MASK_WLON_MBIST_START_PAUSE_V1)
  14975. #define BIT_SET_WLON_MBIST_START_PAUSE_V1(x, v) \
  14976. (BIT_CLEAR_WLON_MBIST_START_PAUSE_V1(x) | \
  14977. BIT_WLON_MBIST_START_PAUSE_V1(v))
  14978. #define BIT_SHIFT_WLOFF_MBIST_START_PAUSE_V1 4
  14979. #define BIT_MASK_WLOFF_MBIST_START_PAUSE_V1 0x1f
  14980. #define BIT_WLOFF_MBIST_START_PAUSE_V1(x) \
  14981. (((x) & BIT_MASK_WLOFF_MBIST_START_PAUSE_V1) \
  14982. << BIT_SHIFT_WLOFF_MBIST_START_PAUSE_V1)
  14983. #define BITS_WLOFF_MBIST_START_PAUSE_V1 \
  14984. (BIT_MASK_WLOFF_MBIST_START_PAUSE_V1 \
  14985. << BIT_SHIFT_WLOFF_MBIST_START_PAUSE_V1)
  14986. #define BIT_CLEAR_WLOFF_MBIST_START_PAUSE_V1(x) \
  14987. ((x) & (~BITS_WLOFF_MBIST_START_PAUSE_V1))
  14988. #define BIT_GET_WLOFF_MBIST_START_PAUSE_V1(x) \
  14989. (((x) >> BIT_SHIFT_WLOFF_MBIST_START_PAUSE_V1) & \
  14990. BIT_MASK_WLOFF_MBIST_START_PAUSE_V1)
  14991. #define BIT_SET_WLOFF_MBIST_START_PAUSE_V1(x, v) \
  14992. (BIT_CLEAR_WLOFF_MBIST_START_PAUSE_V1(x) | \
  14993. BIT_WLOFF_MBIST_START_PAUSE_V1(v))
  14994. #define BIT_SHIFT_PCIE_MBIST_START_PAUSE_V2 2
  14995. #define BIT_MASK_PCIE_MBIST_START_PAUSE_V2 0x3
  14996. #define BIT_PCIE_MBIST_START_PAUSE_V2(x) \
  14997. (((x) & BIT_MASK_PCIE_MBIST_START_PAUSE_V2) \
  14998. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V2)
  14999. #define BITS_PCIE_MBIST_START_PAUSE_V2 \
  15000. (BIT_MASK_PCIE_MBIST_START_PAUSE_V2 \
  15001. << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V2)
  15002. #define BIT_CLEAR_PCIE_MBIST_START_PAUSE_V2(x) \
  15003. ((x) & (~BITS_PCIE_MBIST_START_PAUSE_V2))
  15004. #define BIT_GET_PCIE_MBIST_START_PAUSE_V2(x) \
  15005. (((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE_V2) & \
  15006. BIT_MASK_PCIE_MBIST_START_PAUSE_V2)
  15007. #define BIT_SET_PCIE_MBIST_START_PAUSE_V2(x, v) \
  15008. (BIT_CLEAR_PCIE_MBIST_START_PAUSE_V2(x) | \
  15009. BIT_PCIE_MBIST_START_PAUSE_V2(v))
  15010. #endif
  15011. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  15012. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  15013. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  15014. #define BIT_SHIFT_MAC_MBIST_START_PAUSE 0
  15015. #define BIT_MASK_MAC_MBIST_START_PAUSE 0xfff
  15016. #define BIT_MAC_MBIST_START_PAUSE(x) \
  15017. (((x) & BIT_MASK_MAC_MBIST_START_PAUSE) \
  15018. << BIT_SHIFT_MAC_MBIST_START_PAUSE)
  15019. #define BITS_MAC_MBIST_START_PAUSE \
  15020. (BIT_MASK_MAC_MBIST_START_PAUSE << BIT_SHIFT_MAC_MBIST_START_PAUSE)
  15021. #define BIT_CLEAR_MAC_MBIST_START_PAUSE(x) ((x) & (~BITS_MAC_MBIST_START_PAUSE))
  15022. #define BIT_GET_MAC_MBIST_START_PAUSE(x) \
  15023. (((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE) & \
  15024. BIT_MASK_MAC_MBIST_START_PAUSE)
  15025. #define BIT_SET_MAC_MBIST_START_PAUSE(x, v) \
  15026. (BIT_CLEAR_MAC_MBIST_START_PAUSE(x) | BIT_MAC_MBIST_START_PAUSE(v))
  15027. #endif
  15028. #if (HALMAC_8192F_SUPPORT)
  15029. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  15030. #define BIT_SHIFT_USB_MBIST_START_PAUSE_V2 0
  15031. #define BIT_MASK_USB_MBIST_START_PAUSE_V2 0x3
  15032. #define BIT_USB_MBIST_START_PAUSE_V2(x) \
  15033. (((x) & BIT_MASK_USB_MBIST_START_PAUSE_V2) \
  15034. << BIT_SHIFT_USB_MBIST_START_PAUSE_V2)
  15035. #define BITS_USB_MBIST_START_PAUSE_V2 \
  15036. (BIT_MASK_USB_MBIST_START_PAUSE_V2 \
  15037. << BIT_SHIFT_USB_MBIST_START_PAUSE_V2)
  15038. #define BIT_CLEAR_USB_MBIST_START_PAUSE_V2(x) \
  15039. ((x) & (~BITS_USB_MBIST_START_PAUSE_V2))
  15040. #define BIT_GET_USB_MBIST_START_PAUSE_V2(x) \
  15041. (((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE_V2) & \
  15042. BIT_MASK_USB_MBIST_START_PAUSE_V2)
  15043. #define BIT_SET_USB_MBIST_START_PAUSE_V2(x, v) \
  15044. (BIT_CLEAR_USB_MBIST_START_PAUSE_V2(x) | \
  15045. BIT_USB_MBIST_START_PAUSE_V2(v))
  15046. #endif
  15047. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  15048. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  15049. /* 2 REG_MBIST_START_PAUSE (Offset 0x0174) */
  15050. #define BIT_SHIFT_MAC_MBIST_START_PAUSE_V1 0
  15051. #define BIT_MASK_MAC_MBIST_START_PAUSE_V1 0x3ffff
  15052. #define BIT_MAC_MBIST_START_PAUSE_V1(x) \
  15053. (((x) & BIT_MASK_MAC_MBIST_START_PAUSE_V1) \
  15054. << BIT_SHIFT_MAC_MBIST_START_PAUSE_V1)
  15055. #define BITS_MAC_MBIST_START_PAUSE_V1 \
  15056. (BIT_MASK_MAC_MBIST_START_PAUSE_V1 \
  15057. << BIT_SHIFT_MAC_MBIST_START_PAUSE_V1)
  15058. #define BIT_CLEAR_MAC_MBIST_START_PAUSE_V1(x) \
  15059. ((x) & (~BITS_MAC_MBIST_START_PAUSE_V1))
  15060. #define BIT_GET_MAC_MBIST_START_PAUSE_V1(x) \
  15061. (((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE_V1) & \
  15062. BIT_MASK_MAC_MBIST_START_PAUSE_V1)
  15063. #define BIT_SET_MAC_MBIST_START_PAUSE_V1(x, v) \
  15064. (BIT_CLEAR_MAC_MBIST_START_PAUSE_V1(x) | \
  15065. BIT_MAC_MBIST_START_PAUSE_V1(v))
  15066. #endif
  15067. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  15068. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  15069. HALMAC_8881A_SUPPORT)
  15070. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15071. #define BIT_SHIFT_8051_MBIST_DONE 26
  15072. #define BIT_MASK_8051_MBIST_DONE 0x7
  15073. #define BIT_8051_MBIST_DONE(x) \
  15074. (((x) & BIT_MASK_8051_MBIST_DONE) << BIT_SHIFT_8051_MBIST_DONE)
  15075. #define BITS_8051_MBIST_DONE \
  15076. (BIT_MASK_8051_MBIST_DONE << BIT_SHIFT_8051_MBIST_DONE)
  15077. #define BIT_CLEAR_8051_MBIST_DONE(x) ((x) & (~BITS_8051_MBIST_DONE))
  15078. #define BIT_GET_8051_MBIST_DONE(x) \
  15079. (((x) >> BIT_SHIFT_8051_MBIST_DONE) & BIT_MASK_8051_MBIST_DONE)
  15080. #define BIT_SET_8051_MBIST_DONE(x, v) \
  15081. (BIT_CLEAR_8051_MBIST_DONE(x) | BIT_8051_MBIST_DONE(v))
  15082. #endif
  15083. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  15084. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15085. #define BIT_SHIFT_8051_MBIST_DONE_V1 26
  15086. #define BIT_MASK_8051_MBIST_DONE_V1 0x3f
  15087. #define BIT_8051_MBIST_DONE_V1(x) \
  15088. (((x) & BIT_MASK_8051_MBIST_DONE_V1) << BIT_SHIFT_8051_MBIST_DONE_V1)
  15089. #define BITS_8051_MBIST_DONE_V1 \
  15090. (BIT_MASK_8051_MBIST_DONE_V1 << BIT_SHIFT_8051_MBIST_DONE_V1)
  15091. #define BIT_CLEAR_8051_MBIST_DONE_V1(x) ((x) & (~BITS_8051_MBIST_DONE_V1))
  15092. #define BIT_GET_8051_MBIST_DONE_V1(x) \
  15093. (((x) >> BIT_SHIFT_8051_MBIST_DONE_V1) & BIT_MASK_8051_MBIST_DONE_V1)
  15094. #define BIT_SET_8051_MBIST_DONE_V1(x, v) \
  15095. (BIT_CLEAR_8051_MBIST_DONE_V1(x) | BIT_8051_MBIST_DONE_V1(v))
  15096. #endif
  15097. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  15098. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  15099. HALMAC_8881A_SUPPORT)
  15100. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15101. #define BIT_SHIFT_USB_MBIST_DONE 24
  15102. #define BIT_MASK_USB_MBIST_DONE 0x3
  15103. #define BIT_USB_MBIST_DONE(x) \
  15104. (((x) & BIT_MASK_USB_MBIST_DONE) << BIT_SHIFT_USB_MBIST_DONE)
  15105. #define BITS_USB_MBIST_DONE \
  15106. (BIT_MASK_USB_MBIST_DONE << BIT_SHIFT_USB_MBIST_DONE)
  15107. #define BIT_CLEAR_USB_MBIST_DONE(x) ((x) & (~BITS_USB_MBIST_DONE))
  15108. #define BIT_GET_USB_MBIST_DONE(x) \
  15109. (((x) >> BIT_SHIFT_USB_MBIST_DONE) & BIT_MASK_USB_MBIST_DONE)
  15110. #define BIT_SET_USB_MBIST_DONE(x, v) \
  15111. (BIT_CLEAR_USB_MBIST_DONE(x) | BIT_USB_MBIST_DONE(v))
  15112. #endif
  15113. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  15114. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15115. #define BIT_SHIFT_USB_MBIST_DONE_V1 24
  15116. #define BIT_MASK_USB_MBIST_DONE_V1 0x3
  15117. #define BIT_USB_MBIST_DONE_V1(x) \
  15118. (((x) & BIT_MASK_USB_MBIST_DONE_V1) << BIT_SHIFT_USB_MBIST_DONE_V1)
  15119. #define BITS_USB_MBIST_DONE_V1 \
  15120. (BIT_MASK_USB_MBIST_DONE_V1 << BIT_SHIFT_USB_MBIST_DONE_V1)
  15121. #define BIT_CLEAR_USB_MBIST_DONE_V1(x) ((x) & (~BITS_USB_MBIST_DONE_V1))
  15122. #define BIT_GET_USB_MBIST_DONE_V1(x) \
  15123. (((x) >> BIT_SHIFT_USB_MBIST_DONE_V1) & BIT_MASK_USB_MBIST_DONE_V1)
  15124. #define BIT_SET_USB_MBIST_DONE_V1(x, v) \
  15125. (BIT_CLEAR_USB_MBIST_DONE_V1(x) | BIT_USB_MBIST_DONE_V1(v))
  15126. #define BIT_SHIFT_PCIE_MBIST_DONE_V1 18
  15127. #define BIT_MASK_PCIE_MBIST_DONE_V1 0x3f
  15128. #define BIT_PCIE_MBIST_DONE_V1(x) \
  15129. (((x) & BIT_MASK_PCIE_MBIST_DONE_V1) << BIT_SHIFT_PCIE_MBIST_DONE_V1)
  15130. #define BITS_PCIE_MBIST_DONE_V1 \
  15131. (BIT_MASK_PCIE_MBIST_DONE_V1 << BIT_SHIFT_PCIE_MBIST_DONE_V1)
  15132. #define BIT_CLEAR_PCIE_MBIST_DONE_V1(x) ((x) & (~BITS_PCIE_MBIST_DONE_V1))
  15133. #define BIT_GET_PCIE_MBIST_DONE_V1(x) \
  15134. (((x) >> BIT_SHIFT_PCIE_MBIST_DONE_V1) & BIT_MASK_PCIE_MBIST_DONE_V1)
  15135. #define BIT_SET_PCIE_MBIST_DONE_V1(x, v) \
  15136. (BIT_CLEAR_PCIE_MBIST_DONE_V1(x) | BIT_PCIE_MBIST_DONE_V1(v))
  15137. #endif
  15138. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  15139. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  15140. HALMAC_8881A_SUPPORT)
  15141. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15142. #define BIT_SHIFT_PCIE_MBIST_DONE 16
  15143. #define BIT_MASK_PCIE_MBIST_DONE 0x3f
  15144. #define BIT_PCIE_MBIST_DONE(x) \
  15145. (((x) & BIT_MASK_PCIE_MBIST_DONE) << BIT_SHIFT_PCIE_MBIST_DONE)
  15146. #define BITS_PCIE_MBIST_DONE \
  15147. (BIT_MASK_PCIE_MBIST_DONE << BIT_SHIFT_PCIE_MBIST_DONE)
  15148. #define BIT_CLEAR_PCIE_MBIST_DONE(x) ((x) & (~BITS_PCIE_MBIST_DONE))
  15149. #define BIT_GET_PCIE_MBIST_DONE(x) \
  15150. (((x) >> BIT_SHIFT_PCIE_MBIST_DONE) & BIT_MASK_PCIE_MBIST_DONE)
  15151. #define BIT_SET_PCIE_MBIST_DONE(x, v) \
  15152. (BIT_CLEAR_PCIE_MBIST_DONE(x) | BIT_PCIE_MBIST_DONE(v))
  15153. #endif
  15154. #if (HALMAC_8192F_SUPPORT)
  15155. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15156. #define BIT_SHIFT_WLON_MBIST_DONE_V1 9
  15157. #define BIT_MASK_WLON_MBIST_DONE_V1 0x3
  15158. #define BIT_WLON_MBIST_DONE_V1(x) \
  15159. (((x) & BIT_MASK_WLON_MBIST_DONE_V1) << BIT_SHIFT_WLON_MBIST_DONE_V1)
  15160. #define BITS_WLON_MBIST_DONE_V1 \
  15161. (BIT_MASK_WLON_MBIST_DONE_V1 << BIT_SHIFT_WLON_MBIST_DONE_V1)
  15162. #define BIT_CLEAR_WLON_MBIST_DONE_V1(x) ((x) & (~BITS_WLON_MBIST_DONE_V1))
  15163. #define BIT_GET_WLON_MBIST_DONE_V1(x) \
  15164. (((x) >> BIT_SHIFT_WLON_MBIST_DONE_V1) & BIT_MASK_WLON_MBIST_DONE_V1)
  15165. #define BIT_SET_WLON_MBIST_DONE_V1(x, v) \
  15166. (BIT_CLEAR_WLON_MBIST_DONE_V1(x) | BIT_WLON_MBIST_DONE_V1(v))
  15167. #define BIT_SHIFT_WLOFF_MBIST_DONE_V1 4
  15168. #define BIT_MASK_WLOFF_MBIST_DONE_V1 0x1f
  15169. #define BIT_WLOFF_MBIST_DONE_V1(x) \
  15170. (((x) & BIT_MASK_WLOFF_MBIST_DONE_V1) << BIT_SHIFT_WLOFF_MBIST_DONE_V1)
  15171. #define BITS_WLOFF_MBIST_DONE_V1 \
  15172. (BIT_MASK_WLOFF_MBIST_DONE_V1 << BIT_SHIFT_WLOFF_MBIST_DONE_V1)
  15173. #define BIT_CLEAR_WLOFF_MBIST_DONE_V1(x) ((x) & (~BITS_WLOFF_MBIST_DONE_V1))
  15174. #define BIT_GET_WLOFF_MBIST_DONE_V1(x) \
  15175. (((x) >> BIT_SHIFT_WLOFF_MBIST_DONE_V1) & BIT_MASK_WLOFF_MBIST_DONE_V1)
  15176. #define BIT_SET_WLOFF_MBIST_DONE_V1(x, v) \
  15177. (BIT_CLEAR_WLOFF_MBIST_DONE_V1(x) | BIT_WLOFF_MBIST_DONE_V1(v))
  15178. #define BIT_SHIFT_PCIE_MBIST_DONE_V2 2
  15179. #define BIT_MASK_PCIE_MBIST_DONE_V2 0x3
  15180. #define BIT_PCIE_MBIST_DONE_V2(x) \
  15181. (((x) & BIT_MASK_PCIE_MBIST_DONE_V2) << BIT_SHIFT_PCIE_MBIST_DONE_V2)
  15182. #define BITS_PCIE_MBIST_DONE_V2 \
  15183. (BIT_MASK_PCIE_MBIST_DONE_V2 << BIT_SHIFT_PCIE_MBIST_DONE_V2)
  15184. #define BIT_CLEAR_PCIE_MBIST_DONE_V2(x) ((x) & (~BITS_PCIE_MBIST_DONE_V2))
  15185. #define BIT_GET_PCIE_MBIST_DONE_V2(x) \
  15186. (((x) >> BIT_SHIFT_PCIE_MBIST_DONE_V2) & BIT_MASK_PCIE_MBIST_DONE_V2)
  15187. #define BIT_SET_PCIE_MBIST_DONE_V2(x, v) \
  15188. (BIT_CLEAR_PCIE_MBIST_DONE_V2(x) | BIT_PCIE_MBIST_DONE_V2(v))
  15189. #endif
  15190. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  15191. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  15192. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15193. #define BIT_SHIFT_MAC_MBIST_DONE 0
  15194. #define BIT_MASK_MAC_MBIST_DONE 0xfff
  15195. #define BIT_MAC_MBIST_DONE(x) \
  15196. (((x) & BIT_MASK_MAC_MBIST_DONE) << BIT_SHIFT_MAC_MBIST_DONE)
  15197. #define BITS_MAC_MBIST_DONE \
  15198. (BIT_MASK_MAC_MBIST_DONE << BIT_SHIFT_MAC_MBIST_DONE)
  15199. #define BIT_CLEAR_MAC_MBIST_DONE(x) ((x) & (~BITS_MAC_MBIST_DONE))
  15200. #define BIT_GET_MAC_MBIST_DONE(x) \
  15201. (((x) >> BIT_SHIFT_MAC_MBIST_DONE) & BIT_MASK_MAC_MBIST_DONE)
  15202. #define BIT_SET_MAC_MBIST_DONE(x, v) \
  15203. (BIT_CLEAR_MAC_MBIST_DONE(x) | BIT_MAC_MBIST_DONE(v))
  15204. #endif
  15205. #if (HALMAC_8192F_SUPPORT)
  15206. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15207. #define BIT_SHIFT_USB_MBIST_DONE_V2 0
  15208. #define BIT_MASK_USB_MBIST_DONE_V2 0x3
  15209. #define BIT_USB_MBIST_DONE_V2(x) \
  15210. (((x) & BIT_MASK_USB_MBIST_DONE_V2) << BIT_SHIFT_USB_MBIST_DONE_V2)
  15211. #define BITS_USB_MBIST_DONE_V2 \
  15212. (BIT_MASK_USB_MBIST_DONE_V2 << BIT_SHIFT_USB_MBIST_DONE_V2)
  15213. #define BIT_CLEAR_USB_MBIST_DONE_V2(x) ((x) & (~BITS_USB_MBIST_DONE_V2))
  15214. #define BIT_GET_USB_MBIST_DONE_V2(x) \
  15215. (((x) >> BIT_SHIFT_USB_MBIST_DONE_V2) & BIT_MASK_USB_MBIST_DONE_V2)
  15216. #define BIT_SET_USB_MBIST_DONE_V2(x, v) \
  15217. (BIT_CLEAR_USB_MBIST_DONE_V2(x) | BIT_USB_MBIST_DONE_V2(v))
  15218. #endif
  15219. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  15220. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  15221. /* 2 REG_MBIST_DONE (Offset 0x0178) */
  15222. #define BIT_SHIFT_MAC_MBIST_DONE_V1 0
  15223. #define BIT_MASK_MAC_MBIST_DONE_V1 0x3ffff
  15224. #define BIT_MAC_MBIST_DONE_V1(x) \
  15225. (((x) & BIT_MASK_MAC_MBIST_DONE_V1) << BIT_SHIFT_MAC_MBIST_DONE_V1)
  15226. #define BITS_MAC_MBIST_DONE_V1 \
  15227. (BIT_MASK_MAC_MBIST_DONE_V1 << BIT_SHIFT_MAC_MBIST_DONE_V1)
  15228. #define BIT_CLEAR_MAC_MBIST_DONE_V1(x) ((x) & (~BITS_MAC_MBIST_DONE_V1))
  15229. #define BIT_GET_MAC_MBIST_DONE_V1(x) \
  15230. (((x) >> BIT_SHIFT_MAC_MBIST_DONE_V1) & BIT_MASK_MAC_MBIST_DONE_V1)
  15231. #define BIT_SET_MAC_MBIST_DONE_V1(x, v) \
  15232. (BIT_CLEAR_MAC_MBIST_DONE_V1(x) | BIT_MAC_MBIST_DONE_V1(v))
  15233. #endif
  15234. #if (HALMAC_8192F_SUPPORT)
  15235. /* 2 REG_MBIST_NRML_FAIL (Offset 0x017C) */
  15236. #define BIT_SHIFT_WLON_MBIST_NRML_FAIL 30
  15237. #define BIT_MASK_WLON_MBIST_NRML_FAIL 0x3
  15238. #define BIT_WLON_MBIST_NRML_FAIL(x) \
  15239. (((x) & BIT_MASK_WLON_MBIST_NRML_FAIL) \
  15240. << BIT_SHIFT_WLON_MBIST_NRML_FAIL)
  15241. #define BITS_WLON_MBIST_NRML_FAIL \
  15242. (BIT_MASK_WLON_MBIST_NRML_FAIL << BIT_SHIFT_WLON_MBIST_NRML_FAIL)
  15243. #define BIT_CLEAR_WLON_MBIST_NRML_FAIL(x) ((x) & (~BITS_WLON_MBIST_NRML_FAIL))
  15244. #define BIT_GET_WLON_MBIST_NRML_FAIL(x) \
  15245. (((x) >> BIT_SHIFT_WLON_MBIST_NRML_FAIL) & \
  15246. BIT_MASK_WLON_MBIST_NRML_FAIL)
  15247. #define BIT_SET_WLON_MBIST_NRML_FAIL(x, v) \
  15248. (BIT_CLEAR_WLON_MBIST_NRML_FAIL(x) | BIT_WLON_MBIST_NRML_FAIL(v))
  15249. #define BIT_SHIFT_WLOFF_MBIST_NRML_FAIL 16
  15250. #define BIT_MASK_WLOFF_MBIST_NRML_FAIL 0x3fff
  15251. #define BIT_WLOFF_MBIST_NRML_FAIL(x) \
  15252. (((x) & BIT_MASK_WLOFF_MBIST_NRML_FAIL) \
  15253. << BIT_SHIFT_WLOFF_MBIST_NRML_FAIL)
  15254. #define BITS_WLOFF_MBIST_NRML_FAIL \
  15255. (BIT_MASK_WLOFF_MBIST_NRML_FAIL << BIT_SHIFT_WLOFF_MBIST_NRML_FAIL)
  15256. #define BIT_CLEAR_WLOFF_MBIST_NRML_FAIL(x) ((x) & (~BITS_WLOFF_MBIST_NRML_FAIL))
  15257. #define BIT_GET_WLOFF_MBIST_NRML_FAIL(x) \
  15258. (((x) >> BIT_SHIFT_WLOFF_MBIST_NRML_FAIL) & \
  15259. BIT_MASK_WLOFF_MBIST_NRML_FAIL)
  15260. #define BIT_SET_WLOFF_MBIST_NRML_FAIL(x, v) \
  15261. (BIT_CLEAR_WLOFF_MBIST_NRML_FAIL(x) | BIT_WLOFF_MBIST_NRML_FAIL(v))
  15262. #define BIT_SHIFT_PCIE_MBIST_NRML_FAIL 11
  15263. #define BIT_MASK_PCIE_MBIST_NRML_FAIL 0x1f
  15264. #define BIT_PCIE_MBIST_NRML_FAIL(x) \
  15265. (((x) & BIT_MASK_PCIE_MBIST_NRML_FAIL) \
  15266. << BIT_SHIFT_PCIE_MBIST_NRML_FAIL)
  15267. #define BITS_PCIE_MBIST_NRML_FAIL \
  15268. (BIT_MASK_PCIE_MBIST_NRML_FAIL << BIT_SHIFT_PCIE_MBIST_NRML_FAIL)
  15269. #define BIT_CLEAR_PCIE_MBIST_NRML_FAIL(x) ((x) & (~BITS_PCIE_MBIST_NRML_FAIL))
  15270. #define BIT_GET_PCIE_MBIST_NRML_FAIL(x) \
  15271. (((x) >> BIT_SHIFT_PCIE_MBIST_NRML_FAIL) & \
  15272. BIT_MASK_PCIE_MBIST_NRML_FAIL)
  15273. #define BIT_SET_PCIE_MBIST_NRML_FAIL(x, v) \
  15274. (BIT_CLEAR_PCIE_MBIST_NRML_FAIL(x) | BIT_PCIE_MBIST_NRML_FAIL(v))
  15275. #define BIT_SHIFT_USB_MBIST_NRML_FAIL 4
  15276. #define BIT_MASK_USB_MBIST_NRML_FAIL 0x7f
  15277. #define BIT_USB_MBIST_NRML_FAIL(x) \
  15278. (((x) & BIT_MASK_USB_MBIST_NRML_FAIL) << BIT_SHIFT_USB_MBIST_NRML_FAIL)
  15279. #define BITS_USB_MBIST_NRML_FAIL \
  15280. (BIT_MASK_USB_MBIST_NRML_FAIL << BIT_SHIFT_USB_MBIST_NRML_FAIL)
  15281. #define BIT_CLEAR_USB_MBIST_NRML_FAIL(x) ((x) & (~BITS_USB_MBIST_NRML_FAIL))
  15282. #define BIT_GET_USB_MBIST_NRML_FAIL(x) \
  15283. (((x) >> BIT_SHIFT_USB_MBIST_NRML_FAIL) & BIT_MASK_USB_MBIST_NRML_FAIL)
  15284. #define BIT_SET_USB_MBIST_NRML_FAIL(x, v) \
  15285. (BIT_CLEAR_USB_MBIST_NRML_FAIL(x) | BIT_USB_MBIST_NRML_FAIL(v))
  15286. #endif
  15287. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  15288. /* 2 REG_MBIST_ROM_CRC_DATA (Offset 0x017C) */
  15289. #define BIT_SHIFT_MBIST_ROM_CRC_DATA 0
  15290. #define BIT_MASK_MBIST_ROM_CRC_DATA 0xffffffffL
  15291. #define BIT_MBIST_ROM_CRC_DATA(x) \
  15292. (((x) & BIT_MASK_MBIST_ROM_CRC_DATA) << BIT_SHIFT_MBIST_ROM_CRC_DATA)
  15293. #define BITS_MBIST_ROM_CRC_DATA \
  15294. (BIT_MASK_MBIST_ROM_CRC_DATA << BIT_SHIFT_MBIST_ROM_CRC_DATA)
  15295. #define BIT_CLEAR_MBIST_ROM_CRC_DATA(x) ((x) & (~BITS_MBIST_ROM_CRC_DATA))
  15296. #define BIT_GET_MBIST_ROM_CRC_DATA(x) \
  15297. (((x) >> BIT_SHIFT_MBIST_ROM_CRC_DATA) & BIT_MASK_MBIST_ROM_CRC_DATA)
  15298. #define BIT_SET_MBIST_ROM_CRC_DATA(x, v) \
  15299. (BIT_CLEAR_MBIST_ROM_CRC_DATA(x) | BIT_MBIST_ROM_CRC_DATA(v))
  15300. #endif
  15301. #if (HALMAC_8192F_SUPPORT)
  15302. /* 2 REG_MBIST_NRML_FAIL (Offset 0x017C) */
  15303. #define BIT_SHIFT_USB_WLON_MBIST_NRML_FAIL 0
  15304. #define BIT_MASK_USB_WLON_MBIST_NRML_FAIL 0xf
  15305. #define BIT_USB_WLON_MBIST_NRML_FAIL(x) \
  15306. (((x) & BIT_MASK_USB_WLON_MBIST_NRML_FAIL) \
  15307. << BIT_SHIFT_USB_WLON_MBIST_NRML_FAIL)
  15308. #define BITS_USB_WLON_MBIST_NRML_FAIL \
  15309. (BIT_MASK_USB_WLON_MBIST_NRML_FAIL \
  15310. << BIT_SHIFT_USB_WLON_MBIST_NRML_FAIL)
  15311. #define BIT_CLEAR_USB_WLON_MBIST_NRML_FAIL(x) \
  15312. ((x) & (~BITS_USB_WLON_MBIST_NRML_FAIL))
  15313. #define BIT_GET_USB_WLON_MBIST_NRML_FAIL(x) \
  15314. (((x) >> BIT_SHIFT_USB_WLON_MBIST_NRML_FAIL) & \
  15315. BIT_MASK_USB_WLON_MBIST_NRML_FAIL)
  15316. #define BIT_SET_USB_WLON_MBIST_NRML_FAIL(x, v) \
  15317. (BIT_CLEAR_USB_WLON_MBIST_NRML_FAIL(x) | \
  15318. BIT_USB_WLON_MBIST_NRML_FAIL(v))
  15319. #endif
  15320. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  15321. /* 2 REG_MBIST_FAIL_NRML (Offset 0x017C) */
  15322. #define BIT_SHIFT_MBIST_FAIL_NRML_V1 0
  15323. #define BIT_MASK_MBIST_FAIL_NRML_V1 0x3ffff
  15324. #define BIT_MBIST_FAIL_NRML_V1(x) \
  15325. (((x) & BIT_MASK_MBIST_FAIL_NRML_V1) << BIT_SHIFT_MBIST_FAIL_NRML_V1)
  15326. #define BITS_MBIST_FAIL_NRML_V1 \
  15327. (BIT_MASK_MBIST_FAIL_NRML_V1 << BIT_SHIFT_MBIST_FAIL_NRML_V1)
  15328. #define BIT_CLEAR_MBIST_FAIL_NRML_V1(x) ((x) & (~BITS_MBIST_FAIL_NRML_V1))
  15329. #define BIT_GET_MBIST_FAIL_NRML_V1(x) \
  15330. (((x) >> BIT_SHIFT_MBIST_FAIL_NRML_V1) & BIT_MASK_MBIST_FAIL_NRML_V1)
  15331. #define BIT_SET_MBIST_FAIL_NRML_V1(x, v) \
  15332. (BIT_CLEAR_MBIST_FAIL_NRML_V1(x) | BIT_MBIST_FAIL_NRML_V1(v))
  15333. #endif
  15334. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  15335. /* 2 REG_MBIST_FAIL_NRML (Offset 0x017C) */
  15336. #define BIT_SHIFT_MBIST_FAIL_NRML 0
  15337. #define BIT_MASK_MBIST_FAIL_NRML 0xffffffffL
  15338. #define BIT_MBIST_FAIL_NRML(x) \
  15339. (((x) & BIT_MASK_MBIST_FAIL_NRML) << BIT_SHIFT_MBIST_FAIL_NRML)
  15340. #define BITS_MBIST_FAIL_NRML \
  15341. (BIT_MASK_MBIST_FAIL_NRML << BIT_SHIFT_MBIST_FAIL_NRML)
  15342. #define BIT_CLEAR_MBIST_FAIL_NRML(x) ((x) & (~BITS_MBIST_FAIL_NRML))
  15343. #define BIT_GET_MBIST_FAIL_NRML(x) \
  15344. (((x) >> BIT_SHIFT_MBIST_FAIL_NRML) & BIT_MASK_MBIST_FAIL_NRML)
  15345. #define BIT_SET_MBIST_FAIL_NRML(x, v) \
  15346. (BIT_CLEAR_MBIST_FAIL_NRML(x) | BIT_MBIST_FAIL_NRML(v))
  15347. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD 0
  15348. #define BIT_MASK_R_WMAC_IPV6_MYIPAD 0xffffffffffffffffffffffffffffffffL
  15349. #define BIT_R_WMAC_IPV6_MYIPAD(x) \
  15350. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD)
  15351. #define BITS_R_WMAC_IPV6_MYIPAD \
  15352. (BIT_MASK_R_WMAC_IPV6_MYIPAD << BIT_SHIFT_R_WMAC_IPV6_MYIPAD)
  15353. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD(x) ((x) & (~BITS_R_WMAC_IPV6_MYIPAD))
  15354. #define BIT_GET_R_WMAC_IPV6_MYIPAD(x) \
  15355. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD) & BIT_MASK_R_WMAC_IPV6_MYIPAD)
  15356. #define BIT_SET_R_WMAC_IPV6_MYIPAD(x, v) \
  15357. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD(x) | BIT_R_WMAC_IPV6_MYIPAD(v))
  15358. #endif
  15359. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  15360. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15361. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15362. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15363. /* 2 REG_AES_DECRPT_DATA (Offset 0x0180) */
  15364. #define BIT_SHIFT_IPS_CFG_ADDR 0
  15365. #define BIT_MASK_IPS_CFG_ADDR 0xff
  15366. #define BIT_IPS_CFG_ADDR(x) \
  15367. (((x) & BIT_MASK_IPS_CFG_ADDR) << BIT_SHIFT_IPS_CFG_ADDR)
  15368. #define BITS_IPS_CFG_ADDR (BIT_MASK_IPS_CFG_ADDR << BIT_SHIFT_IPS_CFG_ADDR)
  15369. #define BIT_CLEAR_IPS_CFG_ADDR(x) ((x) & (~BITS_IPS_CFG_ADDR))
  15370. #define BIT_GET_IPS_CFG_ADDR(x) \
  15371. (((x) >> BIT_SHIFT_IPS_CFG_ADDR) & BIT_MASK_IPS_CFG_ADDR)
  15372. #define BIT_SET_IPS_CFG_ADDR(x, v) \
  15373. (BIT_CLEAR_IPS_CFG_ADDR(x) | BIT_IPS_CFG_ADDR(v))
  15374. /* 2 REG_AES_DECRPT_CFG (Offset 0x0184) */
  15375. #define BIT_SHIFT_IPS_CFG_DATA 0
  15376. #define BIT_MASK_IPS_CFG_DATA 0xffffffffL
  15377. #define BIT_IPS_CFG_DATA(x) \
  15378. (((x) & BIT_MASK_IPS_CFG_DATA) << BIT_SHIFT_IPS_CFG_DATA)
  15379. #define BITS_IPS_CFG_DATA (BIT_MASK_IPS_CFG_DATA << BIT_SHIFT_IPS_CFG_DATA)
  15380. #define BIT_CLEAR_IPS_CFG_DATA(x) ((x) & (~BITS_IPS_CFG_DATA))
  15381. #define BIT_GET_IPS_CFG_DATA(x) \
  15382. (((x) >> BIT_SHIFT_IPS_CFG_DATA) & BIT_MASK_IPS_CFG_DATA)
  15383. #define BIT_SET_IPS_CFG_DATA(x, v) \
  15384. (BIT_CLEAR_IPS_CFG_DATA(x) | BIT_IPS_CFG_DATA(v))
  15385. #endif
  15386. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  15387. /* 2 REG_HIOE_CTRL (Offset 0x0188) */
  15388. #define BIT_HIOE_CFG_FILE_LOC_SEL BIT(31)
  15389. #endif
  15390. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  15391. /* 2 REG_HIOE_CTRL (Offset 0x0188) */
  15392. #define BIT_HIOE_WRITE_REQ BIT(30)
  15393. #define BIT_HIOE_READ_REQ BIT(29)
  15394. #define BIT_INST_FORMAT_ERR BIT(25)
  15395. #define BIT_OP_TIMEOUT_ERR BIT(24)
  15396. #define BIT_SHIFT_HIOE_OP_TIMEOUT 16
  15397. #define BIT_MASK_HIOE_OP_TIMEOUT 0xff
  15398. #define BIT_HIOE_OP_TIMEOUT(x) \
  15399. (((x) & BIT_MASK_HIOE_OP_TIMEOUT) << BIT_SHIFT_HIOE_OP_TIMEOUT)
  15400. #define BITS_HIOE_OP_TIMEOUT \
  15401. (BIT_MASK_HIOE_OP_TIMEOUT << BIT_SHIFT_HIOE_OP_TIMEOUT)
  15402. #define BIT_CLEAR_HIOE_OP_TIMEOUT(x) ((x) & (~BITS_HIOE_OP_TIMEOUT))
  15403. #define BIT_GET_HIOE_OP_TIMEOUT(x) \
  15404. (((x) >> BIT_SHIFT_HIOE_OP_TIMEOUT) & BIT_MASK_HIOE_OP_TIMEOUT)
  15405. #define BIT_SET_HIOE_OP_TIMEOUT(x, v) \
  15406. (BIT_CLEAR_HIOE_OP_TIMEOUT(x) | BIT_HIOE_OP_TIMEOUT(v))
  15407. #endif
  15408. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  15409. HALMAC_8822C_SUPPORT)
  15410. /* 2 REG_MBIST_READ_BIST_RPT_V1 (Offset 0x0188) */
  15411. #define BIT_SHIFT_MBIST_READ_BIST_RPT 0
  15412. #define BIT_MASK_MBIST_READ_BIST_RPT 0xffffffffL
  15413. #define BIT_MBIST_READ_BIST_RPT(x) \
  15414. (((x) & BIT_MASK_MBIST_READ_BIST_RPT) << BIT_SHIFT_MBIST_READ_BIST_RPT)
  15415. #define BITS_MBIST_READ_BIST_RPT \
  15416. (BIT_MASK_MBIST_READ_BIST_RPT << BIT_SHIFT_MBIST_READ_BIST_RPT)
  15417. #define BIT_CLEAR_MBIST_READ_BIST_RPT(x) ((x) & (~BITS_MBIST_READ_BIST_RPT))
  15418. #define BIT_GET_MBIST_READ_BIST_RPT(x) \
  15419. (((x) >> BIT_SHIFT_MBIST_READ_BIST_RPT) & BIT_MASK_MBIST_READ_BIST_RPT)
  15420. #define BIT_SET_MBIST_READ_BIST_RPT(x, v) \
  15421. (BIT_CLEAR_MBIST_READ_BIST_RPT(x) | BIT_MBIST_READ_BIST_RPT(v))
  15422. #endif
  15423. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  15424. /* 2 REG_HIOE_CTRL (Offset 0x0188) */
  15425. #define BIT_SHIFT_BITDATA_CHECKSUM 0
  15426. #define BIT_MASK_BITDATA_CHECKSUM 0xffff
  15427. #define BIT_BITDATA_CHECKSUM(x) \
  15428. (((x) & BIT_MASK_BITDATA_CHECKSUM) << BIT_SHIFT_BITDATA_CHECKSUM)
  15429. #define BITS_BITDATA_CHECKSUM \
  15430. (BIT_MASK_BITDATA_CHECKSUM << BIT_SHIFT_BITDATA_CHECKSUM)
  15431. #define BIT_CLEAR_BITDATA_CHECKSUM(x) ((x) & (~BITS_BITDATA_CHECKSUM))
  15432. #define BIT_GET_BITDATA_CHECKSUM(x) \
  15433. (((x) >> BIT_SHIFT_BITDATA_CHECKSUM) & BIT_MASK_BITDATA_CHECKSUM)
  15434. #define BIT_SET_BITDATA_CHECKSUM(x, v) \
  15435. (BIT_CLEAR_BITDATA_CHECKSUM(x) | BIT_BITDATA_CHECKSUM(v))
  15436. /* 2 REG_HIOE_CFG_FILE (Offset 0x018C) */
  15437. #define BIT_SHIFT_TXBF_END_ADDR 16
  15438. #define BIT_MASK_TXBF_END_ADDR 0xffff
  15439. #define BIT_TXBF_END_ADDR(x) \
  15440. (((x) & BIT_MASK_TXBF_END_ADDR) << BIT_SHIFT_TXBF_END_ADDR)
  15441. #define BITS_TXBF_END_ADDR (BIT_MASK_TXBF_END_ADDR << BIT_SHIFT_TXBF_END_ADDR)
  15442. #define BIT_CLEAR_TXBF_END_ADDR(x) ((x) & (~BITS_TXBF_END_ADDR))
  15443. #define BIT_GET_TXBF_END_ADDR(x) \
  15444. (((x) >> BIT_SHIFT_TXBF_END_ADDR) & BIT_MASK_TXBF_END_ADDR)
  15445. #define BIT_SET_TXBF_END_ADDR(x, v) \
  15446. (BIT_CLEAR_TXBF_END_ADDR(x) | BIT_TXBF_END_ADDR(v))
  15447. #endif
  15448. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  15449. /* 2 REG_MACCLKFRQ (Offset 0x018C) */
  15450. #define BIT_SHIFT_MACCLK_FREQ_LOW32 0
  15451. #define BIT_MASK_MACCLK_FREQ_LOW32 0xffffffffL
  15452. #define BIT_MACCLK_FREQ_LOW32(x) \
  15453. (((x) & BIT_MASK_MACCLK_FREQ_LOW32) << BIT_SHIFT_MACCLK_FREQ_LOW32)
  15454. #define BITS_MACCLK_FREQ_LOW32 \
  15455. (BIT_MASK_MACCLK_FREQ_LOW32 << BIT_SHIFT_MACCLK_FREQ_LOW32)
  15456. #define BIT_CLEAR_MACCLK_FREQ_LOW32(x) ((x) & (~BITS_MACCLK_FREQ_LOW32))
  15457. #define BIT_GET_MACCLK_FREQ_LOW32(x) \
  15458. (((x) >> BIT_SHIFT_MACCLK_FREQ_LOW32) & BIT_MASK_MACCLK_FREQ_LOW32)
  15459. #define BIT_SET_MACCLK_FREQ_LOW32(x, v) \
  15460. (BIT_CLEAR_MACCLK_FREQ_LOW32(x) | BIT_MACCLK_FREQ_LOW32(v))
  15461. #endif
  15462. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  15463. /* 2 REG_HIOE_CFG_FILE (Offset 0x018C) */
  15464. #define BIT_SHIFT_TXBF_STR_ADDR 0
  15465. #define BIT_MASK_TXBF_STR_ADDR 0xffff
  15466. #define BIT_TXBF_STR_ADDR(x) \
  15467. (((x) & BIT_MASK_TXBF_STR_ADDR) << BIT_SHIFT_TXBF_STR_ADDR)
  15468. #define BITS_TXBF_STR_ADDR (BIT_MASK_TXBF_STR_ADDR << BIT_SHIFT_TXBF_STR_ADDR)
  15469. #define BIT_CLEAR_TXBF_STR_ADDR(x) ((x) & (~BITS_TXBF_STR_ADDR))
  15470. #define BIT_GET_TXBF_STR_ADDR(x) \
  15471. (((x) >> BIT_SHIFT_TXBF_STR_ADDR) & BIT_MASK_TXBF_STR_ADDR)
  15472. #define BIT_SET_TXBF_STR_ADDR(x, v) \
  15473. (BIT_CLEAR_TXBF_STR_ADDR(x) | BIT_TXBF_STR_ADDR(v))
  15474. #endif
  15475. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15476. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15477. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15478. /* 2 REG_TMETER (Offset 0x0190) */
  15479. #define BIT_TEMP_VALID BIT(31)
  15480. #define BIT_SHIFT_TEMP_VALUE 24
  15481. #define BIT_MASK_TEMP_VALUE 0x3f
  15482. #define BIT_TEMP_VALUE(x) (((x) & BIT_MASK_TEMP_VALUE) << BIT_SHIFT_TEMP_VALUE)
  15483. #define BITS_TEMP_VALUE (BIT_MASK_TEMP_VALUE << BIT_SHIFT_TEMP_VALUE)
  15484. #define BIT_CLEAR_TEMP_VALUE(x) ((x) & (~BITS_TEMP_VALUE))
  15485. #define BIT_GET_TEMP_VALUE(x) \
  15486. (((x) >> BIT_SHIFT_TEMP_VALUE) & BIT_MASK_TEMP_VALUE)
  15487. #define BIT_SET_TEMP_VALUE(x, v) (BIT_CLEAR_TEMP_VALUE(x) | BIT_TEMP_VALUE(v))
  15488. #endif
  15489. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  15490. /* 2 REG_TMETER (Offset 0x0190) */
  15491. #define BIT_SHIFT_NCO_OUTCLK_FREQ 12
  15492. #define BIT_MASK_NCO_OUTCLK_FREQ 0xfffff
  15493. #define BIT_NCO_OUTCLK_FREQ(x) \
  15494. (((x) & BIT_MASK_NCO_OUTCLK_FREQ) << BIT_SHIFT_NCO_OUTCLK_FREQ)
  15495. #define BITS_NCO_OUTCLK_FREQ \
  15496. (BIT_MASK_NCO_OUTCLK_FREQ << BIT_SHIFT_NCO_OUTCLK_FREQ)
  15497. #define BIT_CLEAR_NCO_OUTCLK_FREQ(x) ((x) & (~BITS_NCO_OUTCLK_FREQ))
  15498. #define BIT_GET_NCO_OUTCLK_FREQ(x) \
  15499. (((x) >> BIT_SHIFT_NCO_OUTCLK_FREQ) & BIT_MASK_NCO_OUTCLK_FREQ)
  15500. #define BIT_SET_NCO_OUTCLK_FREQ(x, v) \
  15501. (BIT_CLEAR_NCO_OUTCLK_FREQ(x) | BIT_NCO_OUTCLK_FREQ(v))
  15502. #endif
  15503. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15504. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15505. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15506. /* 2 REG_TMETER (Offset 0x0190) */
  15507. #define BIT_SHIFT_REG_TMETER_TIMER 8
  15508. #define BIT_MASK_REG_TMETER_TIMER 0xfff
  15509. #define BIT_REG_TMETER_TIMER(x) \
  15510. (((x) & BIT_MASK_REG_TMETER_TIMER) << BIT_SHIFT_REG_TMETER_TIMER)
  15511. #define BITS_REG_TMETER_TIMER \
  15512. (BIT_MASK_REG_TMETER_TIMER << BIT_SHIFT_REG_TMETER_TIMER)
  15513. #define BIT_CLEAR_REG_TMETER_TIMER(x) ((x) & (~BITS_REG_TMETER_TIMER))
  15514. #define BIT_GET_REG_TMETER_TIMER(x) \
  15515. (((x) >> BIT_SHIFT_REG_TMETER_TIMER) & BIT_MASK_REG_TMETER_TIMER)
  15516. #define BIT_SET_REG_TMETER_TIMER(x, v) \
  15517. (BIT_CLEAR_REG_TMETER_TIMER(x) | BIT_REG_TMETER_TIMER(v))
  15518. #define BIT_SHIFT_REG_TEMP_DELTA 2
  15519. #define BIT_MASK_REG_TEMP_DELTA 0x3f
  15520. #define BIT_REG_TEMP_DELTA(x) \
  15521. (((x) & BIT_MASK_REG_TEMP_DELTA) << BIT_SHIFT_REG_TEMP_DELTA)
  15522. #define BITS_REG_TEMP_DELTA \
  15523. (BIT_MASK_REG_TEMP_DELTA << BIT_SHIFT_REG_TEMP_DELTA)
  15524. #define BIT_CLEAR_REG_TEMP_DELTA(x) ((x) & (~BITS_REG_TEMP_DELTA))
  15525. #define BIT_GET_REG_TEMP_DELTA(x) \
  15526. (((x) >> BIT_SHIFT_REG_TEMP_DELTA) & BIT_MASK_REG_TEMP_DELTA)
  15527. #define BIT_SET_REG_TEMP_DELTA(x, v) \
  15528. (BIT_CLEAR_REG_TEMP_DELTA(x) | BIT_REG_TEMP_DELTA(v))
  15529. #define BIT_REG_TMETER_EN BIT(0)
  15530. #endif
  15531. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  15532. /* 2 REG_TMETER (Offset 0x0190) */
  15533. #define BIT_SHIFT_MACCLK_FREQ_HIGH10 0
  15534. #define BIT_MASK_MACCLK_FREQ_HIGH10 0x3ff
  15535. #define BIT_MACCLK_FREQ_HIGH10(x) \
  15536. (((x) & BIT_MASK_MACCLK_FREQ_HIGH10) << BIT_SHIFT_MACCLK_FREQ_HIGH10)
  15537. #define BITS_MACCLK_FREQ_HIGH10 \
  15538. (BIT_MASK_MACCLK_FREQ_HIGH10 << BIT_SHIFT_MACCLK_FREQ_HIGH10)
  15539. #define BIT_CLEAR_MACCLK_FREQ_HIGH10(x) ((x) & (~BITS_MACCLK_FREQ_HIGH10))
  15540. #define BIT_GET_MACCLK_FREQ_HIGH10(x) \
  15541. (((x) >> BIT_SHIFT_MACCLK_FREQ_HIGH10) & BIT_MASK_MACCLK_FREQ_HIGH10)
  15542. #define BIT_SET_MACCLK_FREQ_HIGH10(x, v) \
  15543. (BIT_CLEAR_MACCLK_FREQ_HIGH10(x) | BIT_MACCLK_FREQ_HIGH10(v))
  15544. #endif
  15545. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15546. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15547. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15548. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15549. #define BIT_SHIFT_OSC_32K_CLKGEN_0 16
  15550. #define BIT_MASK_OSC_32K_CLKGEN_0 0xffff
  15551. #define BIT_OSC_32K_CLKGEN_0(x) \
  15552. (((x) & BIT_MASK_OSC_32K_CLKGEN_0) << BIT_SHIFT_OSC_32K_CLKGEN_0)
  15553. #define BITS_OSC_32K_CLKGEN_0 \
  15554. (BIT_MASK_OSC_32K_CLKGEN_0 << BIT_SHIFT_OSC_32K_CLKGEN_0)
  15555. #define BIT_CLEAR_OSC_32K_CLKGEN_0(x) ((x) & (~BITS_OSC_32K_CLKGEN_0))
  15556. #define BIT_GET_OSC_32K_CLKGEN_0(x) \
  15557. (((x) >> BIT_SHIFT_OSC_32K_CLKGEN_0) & BIT_MASK_OSC_32K_CLKGEN_0)
  15558. #define BIT_SET_OSC_32K_CLKGEN_0(x, v) \
  15559. (BIT_CLEAR_OSC_32K_CLKGEN_0(x) | BIT_OSC_32K_CLKGEN_0(v))
  15560. #endif
  15561. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  15562. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15563. #define BIT_32K_CLK_OUT_RDY BIT(12)
  15564. #define BIT_SHIFT_MONITOR_CYCLE_LOG2 8
  15565. #define BIT_MASK_MONITOR_CYCLE_LOG2 0xf
  15566. #define BIT_MONITOR_CYCLE_LOG2(x) \
  15567. (((x) & BIT_MASK_MONITOR_CYCLE_LOG2) << BIT_SHIFT_MONITOR_CYCLE_LOG2)
  15568. #define BITS_MONITOR_CYCLE_LOG2 \
  15569. (BIT_MASK_MONITOR_CYCLE_LOG2 << BIT_SHIFT_MONITOR_CYCLE_LOG2)
  15570. #define BIT_CLEAR_MONITOR_CYCLE_LOG2(x) ((x) & (~BITS_MONITOR_CYCLE_LOG2))
  15571. #define BIT_GET_MONITOR_CYCLE_LOG2(x) \
  15572. (((x) >> BIT_SHIFT_MONITOR_CYCLE_LOG2) & BIT_MASK_MONITOR_CYCLE_LOG2)
  15573. #define BIT_SET_MONITOR_CYCLE_LOG2(x, v) \
  15574. (BIT_CLEAR_MONITOR_CYCLE_LOG2(x) | BIT_MONITOR_CYCLE_LOG2(v))
  15575. #define BIT_SHIFT_FREQVALUE_UNREGCLK 8
  15576. #define BIT_MASK_FREQVALUE_UNREGCLK 0xffffff
  15577. #define BIT_FREQVALUE_UNREGCLK(x) \
  15578. (((x) & BIT_MASK_FREQVALUE_UNREGCLK) << BIT_SHIFT_FREQVALUE_UNREGCLK)
  15579. #define BITS_FREQVALUE_UNREGCLK \
  15580. (BIT_MASK_FREQVALUE_UNREGCLK << BIT_SHIFT_FREQVALUE_UNREGCLK)
  15581. #define BIT_CLEAR_FREQVALUE_UNREGCLK(x) ((x) & (~BITS_FREQVALUE_UNREGCLK))
  15582. #define BIT_GET_FREQVALUE_UNREGCLK(x) \
  15583. (((x) >> BIT_SHIFT_FREQVALUE_UNREGCLK) & BIT_MASK_FREQVALUE_UNREGCLK)
  15584. #define BIT_SET_FREQVALUE_UNREGCLK(x, v) \
  15585. (BIT_CLEAR_FREQVALUE_UNREGCLK(x) | BIT_FREQVALUE_UNREGCLK(v))
  15586. #define BIT_CAL32K_DBGMOD BIT(7)
  15587. #endif
  15588. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15589. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15590. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15591. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15592. #define BIT_SHIFT_OSC_32K_RES_COMP 4
  15593. #define BIT_MASK_OSC_32K_RES_COMP 0x3
  15594. #define BIT_OSC_32K_RES_COMP(x) \
  15595. (((x) & BIT_MASK_OSC_32K_RES_COMP) << BIT_SHIFT_OSC_32K_RES_COMP)
  15596. #define BITS_OSC_32K_RES_COMP \
  15597. (BIT_MASK_OSC_32K_RES_COMP << BIT_SHIFT_OSC_32K_RES_COMP)
  15598. #define BIT_CLEAR_OSC_32K_RES_COMP(x) ((x) & (~BITS_OSC_32K_RES_COMP))
  15599. #define BIT_GET_OSC_32K_RES_COMP(x) \
  15600. (((x) >> BIT_SHIFT_OSC_32K_RES_COMP) & BIT_MASK_OSC_32K_RES_COMP)
  15601. #define BIT_SET_OSC_32K_RES_COMP(x, v) \
  15602. (BIT_CLEAR_OSC_32K_RES_COMP(x) | BIT_OSC_32K_RES_COMP(v))
  15603. #define BIT_OSC_32K_OUT_SEL BIT(3)
  15604. #endif
  15605. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15606. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  15607. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15608. #define BIT_ISO_WL_2_OSC_32K BIT(1)
  15609. #endif
  15610. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15611. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15612. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  15613. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15614. #define BIT_POW_CKGEN BIT(0)
  15615. #endif
  15616. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  15617. /* 2 REG_OSC_32K_CTRL (Offset 0x0194) */
  15618. #define BIT_SHIFT_NCO_THRS 0
  15619. #define BIT_MASK_NCO_THRS 0x7f
  15620. #define BIT_NCO_THRS(x) (((x) & BIT_MASK_NCO_THRS) << BIT_SHIFT_NCO_THRS)
  15621. #define BITS_NCO_THRS (BIT_MASK_NCO_THRS << BIT_SHIFT_NCO_THRS)
  15622. #define BIT_CLEAR_NCO_THRS(x) ((x) & (~BITS_NCO_THRS))
  15623. #define BIT_GET_NCO_THRS(x) (((x) >> BIT_SHIFT_NCO_THRS) & BIT_MASK_NCO_THRS)
  15624. #define BIT_SET_NCO_THRS(x, v) (BIT_CLEAR_NCO_THRS(x) | BIT_NCO_THRS(v))
  15625. #endif
  15626. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15627. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15628. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15629. /* 2 REG_32K_CAL_REG1 (Offset 0x0198) */
  15630. #define BIT_CAL_32K_REG_WR BIT(31)
  15631. #define BIT_CAL_32K_DBG_SEL BIT(22)
  15632. #define BIT_SHIFT_CAL_32K_REG_ADDR 16
  15633. #define BIT_MASK_CAL_32K_REG_ADDR 0x3f
  15634. #define BIT_CAL_32K_REG_ADDR(x) \
  15635. (((x) & BIT_MASK_CAL_32K_REG_ADDR) << BIT_SHIFT_CAL_32K_REG_ADDR)
  15636. #define BITS_CAL_32K_REG_ADDR \
  15637. (BIT_MASK_CAL_32K_REG_ADDR << BIT_SHIFT_CAL_32K_REG_ADDR)
  15638. #define BIT_CLEAR_CAL_32K_REG_ADDR(x) ((x) & (~BITS_CAL_32K_REG_ADDR))
  15639. #define BIT_GET_CAL_32K_REG_ADDR(x) \
  15640. (((x) >> BIT_SHIFT_CAL_32K_REG_ADDR) & BIT_MASK_CAL_32K_REG_ADDR)
  15641. #define BIT_SET_CAL_32K_REG_ADDR(x, v) \
  15642. (BIT_CLEAR_CAL_32K_REG_ADDR(x) | BIT_CAL_32K_REG_ADDR(v))
  15643. #define BIT_SHIFT_CAL_32K_REG_DATA 0
  15644. #define BIT_MASK_CAL_32K_REG_DATA 0xffff
  15645. #define BIT_CAL_32K_REG_DATA(x) \
  15646. (((x) & BIT_MASK_CAL_32K_REG_DATA) << BIT_SHIFT_CAL_32K_REG_DATA)
  15647. #define BITS_CAL_32K_REG_DATA \
  15648. (BIT_MASK_CAL_32K_REG_DATA << BIT_SHIFT_CAL_32K_REG_DATA)
  15649. #define BIT_CLEAR_CAL_32K_REG_DATA(x) ((x) & (~BITS_CAL_32K_REG_DATA))
  15650. #define BIT_GET_CAL_32K_REG_DATA(x) \
  15651. (((x) >> BIT_SHIFT_CAL_32K_REG_DATA) & BIT_MASK_CAL_32K_REG_DATA)
  15652. #define BIT_SET_CAL_32K_REG_DATA(x, v) \
  15653. (BIT_CLEAR_CAL_32K_REG_DATA(x) | BIT_CAL_32K_REG_DATA(v))
  15654. #endif
  15655. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  15656. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  15657. /* 2 REG_C2HEVT (Offset 0x01A0) */
  15658. #define BIT_SHIFT_C2HEVT_MSG 0
  15659. #define BIT_MASK_C2HEVT_MSG 0xffffffffffffffffffffffffffffffffL
  15660. #define BIT_C2HEVT_MSG(x) (((x) & BIT_MASK_C2HEVT_MSG) << BIT_SHIFT_C2HEVT_MSG)
  15661. #define BITS_C2HEVT_MSG (BIT_MASK_C2HEVT_MSG << BIT_SHIFT_C2HEVT_MSG)
  15662. #define BIT_CLEAR_C2HEVT_MSG(x) ((x) & (~BITS_C2HEVT_MSG))
  15663. #define BIT_GET_C2HEVT_MSG(x) \
  15664. (((x) >> BIT_SHIFT_C2HEVT_MSG) & BIT_MASK_C2HEVT_MSG)
  15665. #define BIT_SET_C2HEVT_MSG(x, v) (BIT_CLEAR_C2HEVT_MSG(x) | BIT_C2HEVT_MSG(v))
  15666. #endif
  15667. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  15668. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  15669. /* 2 REG_C2HEVT (Offset 0x01A0) */
  15670. #define BIT_SHIFT_C2HEVT_MSG_V1 0
  15671. #define BIT_MASK_C2HEVT_MSG_V1 0xffffffffL
  15672. #define BIT_C2HEVT_MSG_V1(x) \
  15673. (((x) & BIT_MASK_C2HEVT_MSG_V1) << BIT_SHIFT_C2HEVT_MSG_V1)
  15674. #define BITS_C2HEVT_MSG_V1 (BIT_MASK_C2HEVT_MSG_V1 << BIT_SHIFT_C2HEVT_MSG_V1)
  15675. #define BIT_CLEAR_C2HEVT_MSG_V1(x) ((x) & (~BITS_C2HEVT_MSG_V1))
  15676. #define BIT_GET_C2HEVT_MSG_V1(x) \
  15677. (((x) >> BIT_SHIFT_C2HEVT_MSG_V1) & BIT_MASK_C2HEVT_MSG_V1)
  15678. #define BIT_SET_C2HEVT_MSG_V1(x, v) \
  15679. (BIT_CLEAR_C2HEVT_MSG_V1(x) | BIT_C2HEVT_MSG_V1(v))
  15680. /* 2 REG_C2HEVT_1 (Offset 0x01A4) */
  15681. #define BIT_SHIFT_C2HEVT_MSG_1 0
  15682. #define BIT_MASK_C2HEVT_MSG_1 0xffffffffL
  15683. #define BIT_C2HEVT_MSG_1(x) \
  15684. (((x) & BIT_MASK_C2HEVT_MSG_1) << BIT_SHIFT_C2HEVT_MSG_1)
  15685. #define BITS_C2HEVT_MSG_1 (BIT_MASK_C2HEVT_MSG_1 << BIT_SHIFT_C2HEVT_MSG_1)
  15686. #define BIT_CLEAR_C2HEVT_MSG_1(x) ((x) & (~BITS_C2HEVT_MSG_1))
  15687. #define BIT_GET_C2HEVT_MSG_1(x) \
  15688. (((x) >> BIT_SHIFT_C2HEVT_MSG_1) & BIT_MASK_C2HEVT_MSG_1)
  15689. #define BIT_SET_C2HEVT_MSG_1(x, v) \
  15690. (BIT_CLEAR_C2HEVT_MSG_1(x) | BIT_C2HEVT_MSG_1(v))
  15691. /* 2 REG_C2HEVT_2 (Offset 0x01A8) */
  15692. #define BIT_SHIFT_C2HEVT_MSG_2 0
  15693. #define BIT_MASK_C2HEVT_MSG_2 0xffffffffL
  15694. #define BIT_C2HEVT_MSG_2(x) \
  15695. (((x) & BIT_MASK_C2HEVT_MSG_2) << BIT_SHIFT_C2HEVT_MSG_2)
  15696. #define BITS_C2HEVT_MSG_2 (BIT_MASK_C2HEVT_MSG_2 << BIT_SHIFT_C2HEVT_MSG_2)
  15697. #define BIT_CLEAR_C2HEVT_MSG_2(x) ((x) & (~BITS_C2HEVT_MSG_2))
  15698. #define BIT_GET_C2HEVT_MSG_2(x) \
  15699. (((x) >> BIT_SHIFT_C2HEVT_MSG_2) & BIT_MASK_C2HEVT_MSG_2)
  15700. #define BIT_SET_C2HEVT_MSG_2(x, v) \
  15701. (BIT_CLEAR_C2HEVT_MSG_2(x) | BIT_C2HEVT_MSG_2(v))
  15702. /* 2 REG_C2HEVT_3 (Offset 0x01AC) */
  15703. #define BIT_SHIFT_C2HEVT_MSG_3 0
  15704. #define BIT_MASK_C2HEVT_MSG_3 0xffffffffL
  15705. #define BIT_C2HEVT_MSG_3(x) \
  15706. (((x) & BIT_MASK_C2HEVT_MSG_3) << BIT_SHIFT_C2HEVT_MSG_3)
  15707. #define BITS_C2HEVT_MSG_3 (BIT_MASK_C2HEVT_MSG_3 << BIT_SHIFT_C2HEVT_MSG_3)
  15708. #define BIT_CLEAR_C2HEVT_MSG_3(x) ((x) & (~BITS_C2HEVT_MSG_3))
  15709. #define BIT_GET_C2HEVT_MSG_3(x) \
  15710. (((x) >> BIT_SHIFT_C2HEVT_MSG_3) & BIT_MASK_C2HEVT_MSG_3)
  15711. #define BIT_SET_C2HEVT_MSG_3(x, v) \
  15712. (BIT_CLEAR_C2HEVT_MSG_3(x) | BIT_C2HEVT_MSG_3(v))
  15713. #endif
  15714. #if (HALMAC_8192F_SUPPORT)
  15715. /* 2 REG_MISC_CTRL_V1 (Offset 0x01B0) */
  15716. #define BIT_SHIFT_PHYWR_SETUP_CNT 28
  15717. #define BIT_MASK_PHYWR_SETUP_CNT 0xf
  15718. #define BIT_PHYWR_SETUP_CNT(x) \
  15719. (((x) & BIT_MASK_PHYWR_SETUP_CNT) << BIT_SHIFT_PHYWR_SETUP_CNT)
  15720. #define BITS_PHYWR_SETUP_CNT \
  15721. (BIT_MASK_PHYWR_SETUP_CNT << BIT_SHIFT_PHYWR_SETUP_CNT)
  15722. #define BIT_CLEAR_PHYWR_SETUP_CNT(x) ((x) & (~BITS_PHYWR_SETUP_CNT))
  15723. #define BIT_GET_PHYWR_SETUP_CNT(x) \
  15724. (((x) >> BIT_SHIFT_PHYWR_SETUP_CNT) & BIT_MASK_PHYWR_SETUP_CNT)
  15725. #define BIT_SET_PHYWR_SETUP_CNT(x, v) \
  15726. (BIT_CLEAR_PHYWR_SETUP_CNT(x) | BIT_PHYWR_SETUP_CNT(v))
  15727. #define BIT_SHIFT_PHYWR_HOLD_CNT 24
  15728. #define BIT_MASK_PHYWR_HOLD_CNT 0xf
  15729. #define BIT_PHYWR_HOLD_CNT(x) \
  15730. (((x) & BIT_MASK_PHYWR_HOLD_CNT) << BIT_SHIFT_PHYWR_HOLD_CNT)
  15731. #define BITS_PHYWR_HOLD_CNT \
  15732. (BIT_MASK_PHYWR_HOLD_CNT << BIT_SHIFT_PHYWR_HOLD_CNT)
  15733. #define BIT_CLEAR_PHYWR_HOLD_CNT(x) ((x) & (~BITS_PHYWR_HOLD_CNT))
  15734. #define BIT_GET_PHYWR_HOLD_CNT(x) \
  15735. (((x) >> BIT_SHIFT_PHYWR_HOLD_CNT) & BIT_MASK_PHYWR_HOLD_CNT)
  15736. #define BIT_SET_PHYWR_HOLD_CNT(x, v) \
  15737. (BIT_CLEAR_PHYWR_HOLD_CNT(x) | BIT_PHYWR_HOLD_CNT(v))
  15738. #define BIT_SHIFT_TXBUF_WKCAM_OFFSET 8
  15739. #define BIT_MASK_TXBUF_WKCAM_OFFSET 0x1fff
  15740. #define BIT_TXBUF_WKCAM_OFFSET(x) \
  15741. (((x) & BIT_MASK_TXBUF_WKCAM_OFFSET) << BIT_SHIFT_TXBUF_WKCAM_OFFSET)
  15742. #define BITS_TXBUF_WKCAM_OFFSET \
  15743. (BIT_MASK_TXBUF_WKCAM_OFFSET << BIT_SHIFT_TXBUF_WKCAM_OFFSET)
  15744. #define BIT_CLEAR_TXBUF_WKCAM_OFFSET(x) ((x) & (~BITS_TXBUF_WKCAM_OFFSET))
  15745. #define BIT_GET_TXBUF_WKCAM_OFFSET(x) \
  15746. (((x) >> BIT_SHIFT_TXBUF_WKCAM_OFFSET) & BIT_MASK_TXBUF_WKCAM_OFFSET)
  15747. #define BIT_SET_TXBUF_WKCAM_OFFSET(x, v) \
  15748. (BIT_CLEAR_TXBUF_WKCAM_OFFSET(x) | BIT_TXBUF_WKCAM_OFFSET(v))
  15749. #define BIT_SHIFT_PHYRD_WAIT_CNT 4
  15750. #define BIT_MASK_PHYRD_WAIT_CNT 0xf
  15751. #define BIT_PHYRD_WAIT_CNT(x) \
  15752. (((x) & BIT_MASK_PHYRD_WAIT_CNT) << BIT_SHIFT_PHYRD_WAIT_CNT)
  15753. #define BITS_PHYRD_WAIT_CNT \
  15754. (BIT_MASK_PHYRD_WAIT_CNT << BIT_SHIFT_PHYRD_WAIT_CNT)
  15755. #define BIT_CLEAR_PHYRD_WAIT_CNT(x) ((x) & (~BITS_PHYRD_WAIT_CNT))
  15756. #define BIT_GET_PHYRD_WAIT_CNT(x) \
  15757. (((x) >> BIT_SHIFT_PHYRD_WAIT_CNT) & BIT_MASK_PHYRD_WAIT_CNT)
  15758. #define BIT_SET_PHYRD_WAIT_CNT(x, v) \
  15759. (BIT_CLEAR_PHYRD_WAIT_CNT(x) | BIT_PHYRD_WAIT_CNT(v))
  15760. #define BIT_SHIFT_H2CQ_PRI 0
  15761. #define BIT_MASK_H2CQ_PRI 0x3
  15762. #define BIT_H2CQ_PRI(x) (((x) & BIT_MASK_H2CQ_PRI) << BIT_SHIFT_H2CQ_PRI)
  15763. #define BITS_H2CQ_PRI (BIT_MASK_H2CQ_PRI << BIT_SHIFT_H2CQ_PRI)
  15764. #define BIT_CLEAR_H2CQ_PRI(x) ((x) & (~BITS_H2CQ_PRI))
  15765. #define BIT_GET_H2CQ_PRI(x) (((x) >> BIT_SHIFT_H2CQ_PRI) & BIT_MASK_H2CQ_PRI)
  15766. #define BIT_SET_H2CQ_PRI(x, v) (BIT_CLEAR_H2CQ_PRI(x) | BIT_H2CQ_PRI(v))
  15767. #endif
  15768. #if (HALMAC_8814B_SUPPORT)
  15769. /* 2 REG_RXDESC_BUFF_RPTR (Offset 0x01B0) */
  15770. #define BIT_SHIFT_RXDESC_BUFF_RPTR 0
  15771. #define BIT_MASK_RXDESC_BUFF_RPTR 0xffffffffL
  15772. #define BIT_RXDESC_BUFF_RPTR(x) \
  15773. (((x) & BIT_MASK_RXDESC_BUFF_RPTR) << BIT_SHIFT_RXDESC_BUFF_RPTR)
  15774. #define BITS_RXDESC_BUFF_RPTR \
  15775. (BIT_MASK_RXDESC_BUFF_RPTR << BIT_SHIFT_RXDESC_BUFF_RPTR)
  15776. #define BIT_CLEAR_RXDESC_BUFF_RPTR(x) ((x) & (~BITS_RXDESC_BUFF_RPTR))
  15777. #define BIT_GET_RXDESC_BUFF_RPTR(x) \
  15778. (((x) >> BIT_SHIFT_RXDESC_BUFF_RPTR) & BIT_MASK_RXDESC_BUFF_RPTR)
  15779. #define BIT_SET_RXDESC_BUFF_RPTR(x, v) \
  15780. (BIT_CLEAR_RXDESC_BUFF_RPTR(x) | BIT_RXDESC_BUFF_RPTR(v))
  15781. /* 2 REG_RXDESC_BUFF_WPTR (Offset 0x01B4) */
  15782. #define BIT_SHIFT_RXDESC_BUFF_WPTR 0
  15783. #define BIT_MASK_RXDESC_BUFF_WPTR 0xffffffffL
  15784. #define BIT_RXDESC_BUFF_WPTR(x) \
  15785. (((x) & BIT_MASK_RXDESC_BUFF_WPTR) << BIT_SHIFT_RXDESC_BUFF_WPTR)
  15786. #define BITS_RXDESC_BUFF_WPTR \
  15787. (BIT_MASK_RXDESC_BUFF_WPTR << BIT_SHIFT_RXDESC_BUFF_WPTR)
  15788. #define BIT_CLEAR_RXDESC_BUFF_WPTR(x) ((x) & (~BITS_RXDESC_BUFF_WPTR))
  15789. #define BIT_GET_RXDESC_BUFF_WPTR(x) \
  15790. (((x) >> BIT_SHIFT_RXDESC_BUFF_WPTR) & BIT_MASK_RXDESC_BUFF_WPTR)
  15791. #define BIT_SET_RXDESC_BUFF_WPTR(x, v) \
  15792. (BIT_CLEAR_RXDESC_BUFF_WPTR(x) | BIT_RXDESC_BUFF_WPTR(v))
  15793. #endif
  15794. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  15795. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  15796. HALMAC_8881A_SUPPORT)
  15797. /* 2 REG_SW_DEFINED_PAGE1 (Offset 0x01B8) */
  15798. #define BIT_SHIFT_SW_DEFINED_PAGE1 0
  15799. #define BIT_MASK_SW_DEFINED_PAGE1 0xffffffffffffffffL
  15800. #define BIT_SW_DEFINED_PAGE1(x) \
  15801. (((x) & BIT_MASK_SW_DEFINED_PAGE1) << BIT_SHIFT_SW_DEFINED_PAGE1)
  15802. #define BITS_SW_DEFINED_PAGE1 \
  15803. (BIT_MASK_SW_DEFINED_PAGE1 << BIT_SHIFT_SW_DEFINED_PAGE1)
  15804. #define BIT_CLEAR_SW_DEFINED_PAGE1(x) ((x) & (~BITS_SW_DEFINED_PAGE1))
  15805. #define BIT_GET_SW_DEFINED_PAGE1(x) \
  15806. (((x) >> BIT_SHIFT_SW_DEFINED_PAGE1) & BIT_MASK_SW_DEFINED_PAGE1)
  15807. #define BIT_SET_SW_DEFINED_PAGE1(x, v) \
  15808. (BIT_CLEAR_SW_DEFINED_PAGE1(x) | BIT_SW_DEFINED_PAGE1(v))
  15809. #endif
  15810. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  15811. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  15812. /* 2 REG_SW_DEFINED_PAGE1 (Offset 0x01B8) */
  15813. #define BIT_SHIFT_SW_DEFINED_PAGE1_V1 0
  15814. #define BIT_MASK_SW_DEFINED_PAGE1_V1 0xffffffffL
  15815. #define BIT_SW_DEFINED_PAGE1_V1(x) \
  15816. (((x) & BIT_MASK_SW_DEFINED_PAGE1_V1) << BIT_SHIFT_SW_DEFINED_PAGE1_V1)
  15817. #define BITS_SW_DEFINED_PAGE1_V1 \
  15818. (BIT_MASK_SW_DEFINED_PAGE1_V1 << BIT_SHIFT_SW_DEFINED_PAGE1_V1)
  15819. #define BIT_CLEAR_SW_DEFINED_PAGE1_V1(x) ((x) & (~BITS_SW_DEFINED_PAGE1_V1))
  15820. #define BIT_GET_SW_DEFINED_PAGE1_V1(x) \
  15821. (((x) >> BIT_SHIFT_SW_DEFINED_PAGE1_V1) & BIT_MASK_SW_DEFINED_PAGE1_V1)
  15822. #define BIT_SET_SW_DEFINED_PAGE1_V1(x, v) \
  15823. (BIT_CLEAR_SW_DEFINED_PAGE1_V1(x) | BIT_SW_DEFINED_PAGE1_V1(v))
  15824. /* 2 REG_SW_DEFINED_PAGE2 (Offset 0x01BC) */
  15825. #define BIT_SHIFT_SW_DEFINED_PAGE2 0
  15826. #define BIT_MASK_SW_DEFINED_PAGE2 0xffffffffL
  15827. #define BIT_SW_DEFINED_PAGE2(x) \
  15828. (((x) & BIT_MASK_SW_DEFINED_PAGE2) << BIT_SHIFT_SW_DEFINED_PAGE2)
  15829. #define BITS_SW_DEFINED_PAGE2 \
  15830. (BIT_MASK_SW_DEFINED_PAGE2 << BIT_SHIFT_SW_DEFINED_PAGE2)
  15831. #define BIT_CLEAR_SW_DEFINED_PAGE2(x) ((x) & (~BITS_SW_DEFINED_PAGE2))
  15832. #define BIT_GET_SW_DEFINED_PAGE2(x) \
  15833. (((x) >> BIT_SHIFT_SW_DEFINED_PAGE2) & BIT_MASK_SW_DEFINED_PAGE2)
  15834. #define BIT_SET_SW_DEFINED_PAGE2(x, v) \
  15835. (BIT_CLEAR_SW_DEFINED_PAGE2(x) | BIT_SW_DEFINED_PAGE2(v))
  15836. #endif
  15837. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  15838. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15839. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15840. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15841. /* 2 REG_MCUTST_I (Offset 0x01C0) */
  15842. #define BIT_SHIFT_MCUDMSG_I 0
  15843. #define BIT_MASK_MCUDMSG_I 0xffffffffL
  15844. #define BIT_MCUDMSG_I(x) (((x) & BIT_MASK_MCUDMSG_I) << BIT_SHIFT_MCUDMSG_I)
  15845. #define BITS_MCUDMSG_I (BIT_MASK_MCUDMSG_I << BIT_SHIFT_MCUDMSG_I)
  15846. #define BIT_CLEAR_MCUDMSG_I(x) ((x) & (~BITS_MCUDMSG_I))
  15847. #define BIT_GET_MCUDMSG_I(x) (((x) >> BIT_SHIFT_MCUDMSG_I) & BIT_MASK_MCUDMSG_I)
  15848. #define BIT_SET_MCUDMSG_I(x, v) (BIT_CLEAR_MCUDMSG_I(x) | BIT_MCUDMSG_I(v))
  15849. /* 2 REG_MCUTST_II (Offset 0x01C4) */
  15850. #define BIT_SHIFT_MCUDMSG_II 0
  15851. #define BIT_MASK_MCUDMSG_II 0xffffffffL
  15852. #define BIT_MCUDMSG_II(x) (((x) & BIT_MASK_MCUDMSG_II) << BIT_SHIFT_MCUDMSG_II)
  15853. #define BITS_MCUDMSG_II (BIT_MASK_MCUDMSG_II << BIT_SHIFT_MCUDMSG_II)
  15854. #define BIT_CLEAR_MCUDMSG_II(x) ((x) & (~BITS_MCUDMSG_II))
  15855. #define BIT_GET_MCUDMSG_II(x) \
  15856. (((x) >> BIT_SHIFT_MCUDMSG_II) & BIT_MASK_MCUDMSG_II)
  15857. #define BIT_SET_MCUDMSG_II(x, v) (BIT_CLEAR_MCUDMSG_II(x) | BIT_MCUDMSG_II(v))
  15858. /* 2 REG_FMETHR (Offset 0x01C8) */
  15859. #define BIT_FMSG_INT BIT(31)
  15860. #define BIT_SHIFT_FW_MSG 0
  15861. #define BIT_MASK_FW_MSG 0xffffffffL
  15862. #define BIT_FW_MSG(x) (((x) & BIT_MASK_FW_MSG) << BIT_SHIFT_FW_MSG)
  15863. #define BITS_FW_MSG (BIT_MASK_FW_MSG << BIT_SHIFT_FW_MSG)
  15864. #define BIT_CLEAR_FW_MSG(x) ((x) & (~BITS_FW_MSG))
  15865. #define BIT_GET_FW_MSG(x) (((x) >> BIT_SHIFT_FW_MSG) & BIT_MASK_FW_MSG)
  15866. #define BIT_SET_FW_MSG(x, v) (BIT_CLEAR_FW_MSG(x) | BIT_FW_MSG(v))
  15867. /* 2 REG_HMETFR (Offset 0x01CC) */
  15868. #define BIT_SHIFT_HRCV_MSG 24
  15869. #define BIT_MASK_HRCV_MSG 0xff
  15870. #define BIT_HRCV_MSG(x) (((x) & BIT_MASK_HRCV_MSG) << BIT_SHIFT_HRCV_MSG)
  15871. #define BITS_HRCV_MSG (BIT_MASK_HRCV_MSG << BIT_SHIFT_HRCV_MSG)
  15872. #define BIT_CLEAR_HRCV_MSG(x) ((x) & (~BITS_HRCV_MSG))
  15873. #define BIT_GET_HRCV_MSG(x) (((x) >> BIT_SHIFT_HRCV_MSG) & BIT_MASK_HRCV_MSG)
  15874. #define BIT_SET_HRCV_MSG(x, v) (BIT_CLEAR_HRCV_MSG(x) | BIT_HRCV_MSG(v))
  15875. #define BIT_INT_BOX3 BIT(3)
  15876. #define BIT_INT_BOX2 BIT(2)
  15877. #define BIT_INT_BOX1 BIT(1)
  15878. #define BIT_INT_BOX0 BIT(0)
  15879. /* 2 REG_HMEBOX0 (Offset 0x01D0) */
  15880. #define BIT_SHIFT_HOST_MSG_0 0
  15881. #define BIT_MASK_HOST_MSG_0 0xffffffffL
  15882. #define BIT_HOST_MSG_0(x) (((x) & BIT_MASK_HOST_MSG_0) << BIT_SHIFT_HOST_MSG_0)
  15883. #define BITS_HOST_MSG_0 (BIT_MASK_HOST_MSG_0 << BIT_SHIFT_HOST_MSG_0)
  15884. #define BIT_CLEAR_HOST_MSG_0(x) ((x) & (~BITS_HOST_MSG_0))
  15885. #define BIT_GET_HOST_MSG_0(x) \
  15886. (((x) >> BIT_SHIFT_HOST_MSG_0) & BIT_MASK_HOST_MSG_0)
  15887. #define BIT_SET_HOST_MSG_0(x, v) (BIT_CLEAR_HOST_MSG_0(x) | BIT_HOST_MSG_0(v))
  15888. /* 2 REG_HMEBOX1 (Offset 0x01D4) */
  15889. #define BIT_SHIFT_HOST_MSG_1 0
  15890. #define BIT_MASK_HOST_MSG_1 0xffffffffL
  15891. #define BIT_HOST_MSG_1(x) (((x) & BIT_MASK_HOST_MSG_1) << BIT_SHIFT_HOST_MSG_1)
  15892. #define BITS_HOST_MSG_1 (BIT_MASK_HOST_MSG_1 << BIT_SHIFT_HOST_MSG_1)
  15893. #define BIT_CLEAR_HOST_MSG_1(x) ((x) & (~BITS_HOST_MSG_1))
  15894. #define BIT_GET_HOST_MSG_1(x) \
  15895. (((x) >> BIT_SHIFT_HOST_MSG_1) & BIT_MASK_HOST_MSG_1)
  15896. #define BIT_SET_HOST_MSG_1(x, v) (BIT_CLEAR_HOST_MSG_1(x) | BIT_HOST_MSG_1(v))
  15897. /* 2 REG_HMEBOX2 (Offset 0x01D8) */
  15898. #define BIT_SHIFT_HOST_MSG_2 0
  15899. #define BIT_MASK_HOST_MSG_2 0xffffffffL
  15900. #define BIT_HOST_MSG_2(x) (((x) & BIT_MASK_HOST_MSG_2) << BIT_SHIFT_HOST_MSG_2)
  15901. #define BITS_HOST_MSG_2 (BIT_MASK_HOST_MSG_2 << BIT_SHIFT_HOST_MSG_2)
  15902. #define BIT_CLEAR_HOST_MSG_2(x) ((x) & (~BITS_HOST_MSG_2))
  15903. #define BIT_GET_HOST_MSG_2(x) \
  15904. (((x) >> BIT_SHIFT_HOST_MSG_2) & BIT_MASK_HOST_MSG_2)
  15905. #define BIT_SET_HOST_MSG_2(x, v) (BIT_CLEAR_HOST_MSG_2(x) | BIT_HOST_MSG_2(v))
  15906. /* 2 REG_HMEBOX3 (Offset 0x01DC) */
  15907. #define BIT_SHIFT_HOST_MSG_3 0
  15908. #define BIT_MASK_HOST_MSG_3 0xffffffffL
  15909. #define BIT_HOST_MSG_3(x) (((x) & BIT_MASK_HOST_MSG_3) << BIT_SHIFT_HOST_MSG_3)
  15910. #define BITS_HOST_MSG_3 (BIT_MASK_HOST_MSG_3 << BIT_SHIFT_HOST_MSG_3)
  15911. #define BIT_CLEAR_HOST_MSG_3(x) ((x) & (~BITS_HOST_MSG_3))
  15912. #define BIT_GET_HOST_MSG_3(x) \
  15913. (((x) >> BIT_SHIFT_HOST_MSG_3) & BIT_MASK_HOST_MSG_3)
  15914. #define BIT_SET_HOST_MSG_3(x, v) (BIT_CLEAR_HOST_MSG_3(x) | BIT_HOST_MSG_3(v))
  15915. #endif
  15916. #if (HALMAC_8814B_SUPPORT)
  15917. /* 2 REG_RXDESC_BUFF_BNDY (Offset 0x01E0) */
  15918. #define BIT_FW_FIFO_PTR_RST BIT(18)
  15919. #define BIT_PHY_FIFO_PTR_RST BIT(17)
  15920. #endif
  15921. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15922. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  15923. /* 2 REG_LLT_INIT (Offset 0x01E0) */
  15924. #define BIT_SHIFT_LLTINI_PDATA_V1 16
  15925. #define BIT_MASK_LLTINI_PDATA_V1 0xfff
  15926. #define BIT_LLTINI_PDATA_V1(x) \
  15927. (((x) & BIT_MASK_LLTINI_PDATA_V1) << BIT_SHIFT_LLTINI_PDATA_V1)
  15928. #define BITS_LLTINI_PDATA_V1 \
  15929. (BIT_MASK_LLTINI_PDATA_V1 << BIT_SHIFT_LLTINI_PDATA_V1)
  15930. #define BIT_CLEAR_LLTINI_PDATA_V1(x) ((x) & (~BITS_LLTINI_PDATA_V1))
  15931. #define BIT_GET_LLTINI_PDATA_V1(x) \
  15932. (((x) >> BIT_SHIFT_LLTINI_PDATA_V1) & BIT_MASK_LLTINI_PDATA_V1)
  15933. #define BIT_SET_LLTINI_PDATA_V1(x, v) \
  15934. (BIT_CLEAR_LLTINI_PDATA_V1(x) | BIT_LLTINI_PDATA_V1(v))
  15935. #define BIT_SHIFT_LLTINI_HDATA_V1 0
  15936. #define BIT_MASK_LLTINI_HDATA_V1 0xfff
  15937. #define BIT_LLTINI_HDATA_V1(x) \
  15938. (((x) & BIT_MASK_LLTINI_HDATA_V1) << BIT_SHIFT_LLTINI_HDATA_V1)
  15939. #define BITS_LLTINI_HDATA_V1 \
  15940. (BIT_MASK_LLTINI_HDATA_V1 << BIT_SHIFT_LLTINI_HDATA_V1)
  15941. #define BIT_CLEAR_LLTINI_HDATA_V1(x) ((x) & (~BITS_LLTINI_HDATA_V1))
  15942. #define BIT_GET_LLTINI_HDATA_V1(x) \
  15943. (((x) >> BIT_SHIFT_LLTINI_HDATA_V1) & BIT_MASK_LLTINI_HDATA_V1)
  15944. #define BIT_SET_LLTINI_HDATA_V1(x, v) \
  15945. (BIT_CLEAR_LLTINI_HDATA_V1(x) | BIT_LLTINI_HDATA_V1(v))
  15946. #endif
  15947. #if (HALMAC_8814B_SUPPORT)
  15948. /* 2 REG_RXDESC_BUFF_BNDY (Offset 0x01E0) */
  15949. #define BIT_SHIFT_RXDESC_BUFF_BNDY 0
  15950. #define BIT_MASK_RXDESC_BUFF_BNDY 0xffffffffL
  15951. #define BIT_RXDESC_BUFF_BNDY(x) \
  15952. (((x) & BIT_MASK_RXDESC_BUFF_BNDY) << BIT_SHIFT_RXDESC_BUFF_BNDY)
  15953. #define BITS_RXDESC_BUFF_BNDY \
  15954. (BIT_MASK_RXDESC_BUFF_BNDY << BIT_SHIFT_RXDESC_BUFF_BNDY)
  15955. #define BIT_CLEAR_RXDESC_BUFF_BNDY(x) ((x) & (~BITS_RXDESC_BUFF_BNDY))
  15956. #define BIT_GET_RXDESC_BUFF_BNDY(x) \
  15957. (((x) >> BIT_SHIFT_RXDESC_BUFF_BNDY) & BIT_MASK_RXDESC_BUFF_BNDY)
  15958. #define BIT_SET_RXDESC_BUFF_BNDY(x, v) \
  15959. (BIT_CLEAR_RXDESC_BUFF_BNDY(x) | BIT_RXDESC_BUFF_BNDY(v))
  15960. #endif
  15961. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  15962. /* 2 REG_GENTST (Offset 0x01E4) */
  15963. #define BIT_SHIFT_GENTST 0
  15964. #define BIT_MASK_GENTST 0xffffffffL
  15965. #define BIT_GENTST(x) (((x) & BIT_MASK_GENTST) << BIT_SHIFT_GENTST)
  15966. #define BITS_GENTST (BIT_MASK_GENTST << BIT_SHIFT_GENTST)
  15967. #define BIT_CLEAR_GENTST(x) ((x) & (~BITS_GENTST))
  15968. #define BIT_GET_GENTST(x) (((x) >> BIT_SHIFT_GENTST) & BIT_MASK_GENTST)
  15969. #define BIT_SET_GENTST(x, v) (BIT_CLEAR_GENTST(x) | BIT_GENTST(v))
  15970. #endif
  15971. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15972. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  15973. /* 2 REG_LLT_INIT_ADDR (Offset 0x01E4) */
  15974. #define BIT_SHIFT_LLTINI_ADDR_V1 0
  15975. #define BIT_MASK_LLTINI_ADDR_V1 0xfff
  15976. #define BIT_LLTINI_ADDR_V1(x) \
  15977. (((x) & BIT_MASK_LLTINI_ADDR_V1) << BIT_SHIFT_LLTINI_ADDR_V1)
  15978. #define BITS_LLTINI_ADDR_V1 \
  15979. (BIT_MASK_LLTINI_ADDR_V1 << BIT_SHIFT_LLTINI_ADDR_V1)
  15980. #define BIT_CLEAR_LLTINI_ADDR_V1(x) ((x) & (~BITS_LLTINI_ADDR_V1))
  15981. #define BIT_GET_LLTINI_ADDR_V1(x) \
  15982. (((x) >> BIT_SHIFT_LLTINI_ADDR_V1) & BIT_MASK_LLTINI_ADDR_V1)
  15983. #define BIT_SET_LLTINI_ADDR_V1(x, v) \
  15984. (BIT_CLEAR_LLTINI_ADDR_V1(x) | BIT_LLTINI_ADDR_V1(v))
  15985. #endif
  15986. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  15987. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  15988. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  15989. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  15990. /* 2 REG_BB_ACCESS_CTRL (Offset 0x01E8) */
  15991. #define BIT_SHIFT_BB_WRITE_READ 30
  15992. #define BIT_MASK_BB_WRITE_READ 0x3
  15993. #define BIT_BB_WRITE_READ(x) \
  15994. (((x) & BIT_MASK_BB_WRITE_READ) << BIT_SHIFT_BB_WRITE_READ)
  15995. #define BITS_BB_WRITE_READ (BIT_MASK_BB_WRITE_READ << BIT_SHIFT_BB_WRITE_READ)
  15996. #define BIT_CLEAR_BB_WRITE_READ(x) ((x) & (~BITS_BB_WRITE_READ))
  15997. #define BIT_GET_BB_WRITE_READ(x) \
  15998. (((x) >> BIT_SHIFT_BB_WRITE_READ) & BIT_MASK_BB_WRITE_READ)
  15999. #define BIT_SET_BB_WRITE_READ(x, v) \
  16000. (BIT_CLEAR_BB_WRITE_READ(x) | BIT_BB_WRITE_READ(v))
  16001. #endif
  16002. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  16003. /* 2 REG_BB_ACCESS_CTRL (Offset 0x01E8) */
  16004. #define BIT_SHIFT_BB_WRITE_EN_V1 16
  16005. #define BIT_MASK_BB_WRITE_EN_V1 0xf
  16006. #define BIT_BB_WRITE_EN_V1(x) \
  16007. (((x) & BIT_MASK_BB_WRITE_EN_V1) << BIT_SHIFT_BB_WRITE_EN_V1)
  16008. #define BITS_BB_WRITE_EN_V1 \
  16009. (BIT_MASK_BB_WRITE_EN_V1 << BIT_SHIFT_BB_WRITE_EN_V1)
  16010. #define BIT_CLEAR_BB_WRITE_EN_V1(x) ((x) & (~BITS_BB_WRITE_EN_V1))
  16011. #define BIT_GET_BB_WRITE_EN_V1(x) \
  16012. (((x) >> BIT_SHIFT_BB_WRITE_EN_V1) & BIT_MASK_BB_WRITE_EN_V1)
  16013. #define BIT_SET_BB_WRITE_EN_V1(x, v) \
  16014. (BIT_CLEAR_BB_WRITE_EN_V1(x) | BIT_BB_WRITE_EN_V1(v))
  16015. #endif
  16016. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16017. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16018. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16019. /* 2 REG_BB_ACCESS_CTRL (Offset 0x01E8) */
  16020. #define BIT_SHIFT_BB_WRITE_EN 12
  16021. #define BIT_MASK_BB_WRITE_EN 0xf
  16022. #define BIT_BB_WRITE_EN(x) \
  16023. (((x) & BIT_MASK_BB_WRITE_EN) << BIT_SHIFT_BB_WRITE_EN)
  16024. #define BITS_BB_WRITE_EN (BIT_MASK_BB_WRITE_EN << BIT_SHIFT_BB_WRITE_EN)
  16025. #define BIT_CLEAR_BB_WRITE_EN(x) ((x) & (~BITS_BB_WRITE_EN))
  16026. #define BIT_GET_BB_WRITE_EN(x) \
  16027. (((x) >> BIT_SHIFT_BB_WRITE_EN) & BIT_MASK_BB_WRITE_EN)
  16028. #define BIT_SET_BB_WRITE_EN(x, v) \
  16029. (BIT_CLEAR_BB_WRITE_EN(x) | BIT_BB_WRITE_EN(v))
  16030. #define BIT_SHIFT_BB_ADDR 2
  16031. #define BIT_MASK_BB_ADDR 0x1ff
  16032. #define BIT_BB_ADDR(x) (((x) & BIT_MASK_BB_ADDR) << BIT_SHIFT_BB_ADDR)
  16033. #define BITS_BB_ADDR (BIT_MASK_BB_ADDR << BIT_SHIFT_BB_ADDR)
  16034. #define BIT_CLEAR_BB_ADDR(x) ((x) & (~BITS_BB_ADDR))
  16035. #define BIT_GET_BB_ADDR(x) (((x) >> BIT_SHIFT_BB_ADDR) & BIT_MASK_BB_ADDR)
  16036. #define BIT_SET_BB_ADDR(x, v) (BIT_CLEAR_BB_ADDR(x) | BIT_BB_ADDR(v))
  16037. #endif
  16038. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  16039. /* 2 REG_BB_ACCESS_CTRL (Offset 0x01E8) */
  16040. #define BIT_SHIFT_BB_ADDR_V1 2
  16041. #define BIT_MASK_BB_ADDR_V1 0xfff
  16042. #define BIT_BB_ADDR_V1(x) (((x) & BIT_MASK_BB_ADDR_V1) << BIT_SHIFT_BB_ADDR_V1)
  16043. #define BITS_BB_ADDR_V1 (BIT_MASK_BB_ADDR_V1 << BIT_SHIFT_BB_ADDR_V1)
  16044. #define BIT_CLEAR_BB_ADDR_V1(x) ((x) & (~BITS_BB_ADDR_V1))
  16045. #define BIT_GET_BB_ADDR_V1(x) \
  16046. (((x) >> BIT_SHIFT_BB_ADDR_V1) & BIT_MASK_BB_ADDR_V1)
  16047. #define BIT_SET_BB_ADDR_V1(x, v) (BIT_CLEAR_BB_ADDR_V1(x) | BIT_BB_ADDR_V1(v))
  16048. #endif
  16049. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16050. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16051. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16052. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16053. /* 2 REG_BB_ACCESS_CTRL (Offset 0x01E8) */
  16054. #define BIT_BB_ERRACC BIT(0)
  16055. /* 2 REG_BB_ACCESS_DATA (Offset 0x01EC) */
  16056. #define BIT_SHIFT_BB_DATA 0
  16057. #define BIT_MASK_BB_DATA 0xffffffffL
  16058. #define BIT_BB_DATA(x) (((x) & BIT_MASK_BB_DATA) << BIT_SHIFT_BB_DATA)
  16059. #define BITS_BB_DATA (BIT_MASK_BB_DATA << BIT_SHIFT_BB_DATA)
  16060. #define BIT_CLEAR_BB_DATA(x) ((x) & (~BITS_BB_DATA))
  16061. #define BIT_GET_BB_DATA(x) (((x) >> BIT_SHIFT_BB_DATA) & BIT_MASK_BB_DATA)
  16062. #define BIT_SET_BB_DATA(x, v) (BIT_CLEAR_BB_DATA(x) | BIT_BB_DATA(v))
  16063. /* 2 REG_HMEBOX_E0 (Offset 0x01F0) */
  16064. #define BIT_SHIFT_HMEBOX_E0 0
  16065. #define BIT_MASK_HMEBOX_E0 0xffffffffL
  16066. #define BIT_HMEBOX_E0(x) (((x) & BIT_MASK_HMEBOX_E0) << BIT_SHIFT_HMEBOX_E0)
  16067. #define BITS_HMEBOX_E0 (BIT_MASK_HMEBOX_E0 << BIT_SHIFT_HMEBOX_E0)
  16068. #define BIT_CLEAR_HMEBOX_E0(x) ((x) & (~BITS_HMEBOX_E0))
  16069. #define BIT_GET_HMEBOX_E0(x) (((x) >> BIT_SHIFT_HMEBOX_E0) & BIT_MASK_HMEBOX_E0)
  16070. #define BIT_SET_HMEBOX_E0(x, v) (BIT_CLEAR_HMEBOX_E0(x) | BIT_HMEBOX_E0(v))
  16071. /* 2 REG_HMEBOX_E1 (Offset 0x01F4) */
  16072. #define BIT_SHIFT_HMEBOX_E1 0
  16073. #define BIT_MASK_HMEBOX_E1 0xffffffffL
  16074. #define BIT_HMEBOX_E1(x) (((x) & BIT_MASK_HMEBOX_E1) << BIT_SHIFT_HMEBOX_E1)
  16075. #define BITS_HMEBOX_E1 (BIT_MASK_HMEBOX_E1 << BIT_SHIFT_HMEBOX_E1)
  16076. #define BIT_CLEAR_HMEBOX_E1(x) ((x) & (~BITS_HMEBOX_E1))
  16077. #define BIT_GET_HMEBOX_E1(x) (((x) >> BIT_SHIFT_HMEBOX_E1) & BIT_MASK_HMEBOX_E1)
  16078. #define BIT_SET_HMEBOX_E1(x, v) (BIT_CLEAR_HMEBOX_E1(x) | BIT_HMEBOX_E1(v))
  16079. /* 2 REG_HMEBOX_E2 (Offset 0x01F8) */
  16080. #define BIT_SHIFT_HMEBOX_E2 0
  16081. #define BIT_MASK_HMEBOX_E2 0xffffffffL
  16082. #define BIT_HMEBOX_E2(x) (((x) & BIT_MASK_HMEBOX_E2) << BIT_SHIFT_HMEBOX_E2)
  16083. #define BITS_HMEBOX_E2 (BIT_MASK_HMEBOX_E2 << BIT_SHIFT_HMEBOX_E2)
  16084. #define BIT_CLEAR_HMEBOX_E2(x) ((x) & (~BITS_HMEBOX_E2))
  16085. #define BIT_GET_HMEBOX_E2(x) (((x) >> BIT_SHIFT_HMEBOX_E2) & BIT_MASK_HMEBOX_E2)
  16086. #define BIT_SET_HMEBOX_E2(x, v) (BIT_CLEAR_HMEBOX_E2(x) | BIT_HMEBOX_E2(v))
  16087. /* 2 REG_HMEBOX_E3 (Offset 0x01FC) */
  16088. #define BIT_SHIFT_HMEBOX_E3 0
  16089. #define BIT_MASK_HMEBOX_E3 0xffffffffL
  16090. #define BIT_HMEBOX_E3(x) (((x) & BIT_MASK_HMEBOX_E3) << BIT_SHIFT_HMEBOX_E3)
  16091. #define BITS_HMEBOX_E3 (BIT_MASK_HMEBOX_E3 << BIT_SHIFT_HMEBOX_E3)
  16092. #define BIT_CLEAR_HMEBOX_E3(x) ((x) & (~BITS_HMEBOX_E3))
  16093. #define BIT_GET_HMEBOX_E3(x) (((x) >> BIT_SHIFT_HMEBOX_E3) & BIT_MASK_HMEBOX_E3)
  16094. #define BIT_SET_HMEBOX_E3(x, v) (BIT_CLEAR_HMEBOX_E3(x) | BIT_HMEBOX_E3(v))
  16095. #endif
  16096. #if (HALMAC_8814B_SUPPORT)
  16097. /* 2 REG_BCN_CTRL_0 (Offset 0x0200) */
  16098. #define BIT_BCN1_VALID BIT(31)
  16099. #endif
  16100. #if (HALMAC_8192F_SUPPORT)
  16101. /* 2 REG_RQPN_CTRL_HLPQ (Offset 0x0200) */
  16102. #define BIT_EP2Q_PUBLIC_DIS BIT(29)
  16103. #define BIT_EP1Q_PUBLIC_DIS BIT(28)
  16104. #endif
  16105. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16106. /* 2 REG_RQPN_CTRL_HLPQ (Offset 0x0200) */
  16107. #define BIT_EPQ_PUBLIC_DIS BIT(27)
  16108. #define BIT_NPQ_PUBLIC_DIS BIT(26)
  16109. #define BIT_LPQ_PUBLIC_DIS BIT(25)
  16110. #define BIT_HPQ_PUBLIC_DIS BIT(24)
  16111. #define BIT_SHIFT_PUBQ 16
  16112. #define BIT_MASK_PUBQ 0xff
  16113. #define BIT_PUBQ(x) (((x) & BIT_MASK_PUBQ) << BIT_SHIFT_PUBQ)
  16114. #define BITS_PUBQ (BIT_MASK_PUBQ << BIT_SHIFT_PUBQ)
  16115. #define BIT_CLEAR_PUBQ(x) ((x) & (~BITS_PUBQ))
  16116. #define BIT_GET_PUBQ(x) (((x) >> BIT_SHIFT_PUBQ) & BIT_MASK_PUBQ)
  16117. #define BIT_SET_PUBQ(x, v) (BIT_CLEAR_PUBQ(x) | BIT_PUBQ(v))
  16118. #endif
  16119. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16120. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16121. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16122. /* 2 REG_FIFOPAGE_CTRL_1 (Offset 0x0200) */
  16123. #define BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1 16
  16124. #define BIT_MASK_TX_OQT_HE_FREE_SPACE_V1 0xff
  16125. #define BIT_TX_OQT_HE_FREE_SPACE_V1(x) \
  16126. (((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1) \
  16127. << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1)
  16128. #define BITS_TX_OQT_HE_FREE_SPACE_V1 \
  16129. (BIT_MASK_TX_OQT_HE_FREE_SPACE_V1 << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1)
  16130. #define BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1(x) \
  16131. ((x) & (~BITS_TX_OQT_HE_FREE_SPACE_V1))
  16132. #define BIT_GET_TX_OQT_HE_FREE_SPACE_V1(x) \
  16133. (((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1) & \
  16134. BIT_MASK_TX_OQT_HE_FREE_SPACE_V1)
  16135. #define BIT_SET_TX_OQT_HE_FREE_SPACE_V1(x, v) \
  16136. (BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1(x) | BIT_TX_OQT_HE_FREE_SPACE_V1(v))
  16137. #endif
  16138. #if (HALMAC_8814B_SUPPORT)
  16139. /* 2 REG_BCN_CTRL_0 (Offset 0x0200) */
  16140. #define BIT_SHIFT_BCN1_HEAD 16
  16141. #define BIT_MASK_BCN1_HEAD 0xfff
  16142. #define BIT_BCN1_HEAD(x) (((x) & BIT_MASK_BCN1_HEAD) << BIT_SHIFT_BCN1_HEAD)
  16143. #define BITS_BCN1_HEAD (BIT_MASK_BCN1_HEAD << BIT_SHIFT_BCN1_HEAD)
  16144. #define BIT_CLEAR_BCN1_HEAD(x) ((x) & (~BITS_BCN1_HEAD))
  16145. #define BIT_GET_BCN1_HEAD(x) (((x) >> BIT_SHIFT_BCN1_HEAD) & BIT_MASK_BCN1_HEAD)
  16146. #define BIT_SET_BCN1_HEAD(x, v) (BIT_CLEAR_BCN1_HEAD(x) | BIT_BCN1_HEAD(v))
  16147. #define BIT_BCN0_VALID BIT(15)
  16148. #endif
  16149. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16150. /* 2 REG_RQPN_CTRL_HLPQ (Offset 0x0200) */
  16151. #define BIT_SHIFT_LPQ 8
  16152. #define BIT_MASK_LPQ 0xff
  16153. #define BIT_LPQ(x) (((x) & BIT_MASK_LPQ) << BIT_SHIFT_LPQ)
  16154. #define BITS_LPQ (BIT_MASK_LPQ << BIT_SHIFT_LPQ)
  16155. #define BIT_CLEAR_LPQ(x) ((x) & (~BITS_LPQ))
  16156. #define BIT_GET_LPQ(x) (((x) >> BIT_SHIFT_LPQ) & BIT_MASK_LPQ)
  16157. #define BIT_SET_LPQ(x, v) (BIT_CLEAR_LPQ(x) | BIT_LPQ(v))
  16158. #define BIT_SHIFT_HPQ 0
  16159. #define BIT_MASK_HPQ 0xff
  16160. #define BIT_HPQ(x) (((x) & BIT_MASK_HPQ) << BIT_SHIFT_HPQ)
  16161. #define BITS_HPQ (BIT_MASK_HPQ << BIT_SHIFT_HPQ)
  16162. #define BIT_CLEAR_HPQ(x) ((x) & (~BITS_HPQ))
  16163. #define BIT_GET_HPQ(x) (((x) >> BIT_SHIFT_HPQ) & BIT_MASK_HPQ)
  16164. #define BIT_SET_HPQ(x, v) (BIT_CLEAR_HPQ(x) | BIT_HPQ(v))
  16165. #endif
  16166. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16167. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16168. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16169. /* 2 REG_FIFOPAGE_CTRL_1 (Offset 0x0200) */
  16170. #define BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1 0
  16171. #define BIT_MASK_TX_OQT_NL_FREE_SPACE_V1 0xff
  16172. #define BIT_TX_OQT_NL_FREE_SPACE_V1(x) \
  16173. (((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1) \
  16174. << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1)
  16175. #define BITS_TX_OQT_NL_FREE_SPACE_V1 \
  16176. (BIT_MASK_TX_OQT_NL_FREE_SPACE_V1 << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1)
  16177. #define BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1(x) \
  16178. ((x) & (~BITS_TX_OQT_NL_FREE_SPACE_V1))
  16179. #define BIT_GET_TX_OQT_NL_FREE_SPACE_V1(x) \
  16180. (((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1) & \
  16181. BIT_MASK_TX_OQT_NL_FREE_SPACE_V1)
  16182. #define BIT_SET_TX_OQT_NL_FREE_SPACE_V1(x, v) \
  16183. (BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1(x) | BIT_TX_OQT_NL_FREE_SPACE_V1(v))
  16184. #endif
  16185. #if (HALMAC_8814B_SUPPORT)
  16186. /* 2 REG_BCN_CTRL_0 (Offset 0x0200) */
  16187. #define BIT_SHIFT_BCN0_HEAD 0
  16188. #define BIT_MASK_BCN0_HEAD 0xfff
  16189. #define BIT_BCN0_HEAD(x) (((x) & BIT_MASK_BCN0_HEAD) << BIT_SHIFT_BCN0_HEAD)
  16190. #define BITS_BCN0_HEAD (BIT_MASK_BCN0_HEAD << BIT_SHIFT_BCN0_HEAD)
  16191. #define BIT_CLEAR_BCN0_HEAD(x) ((x) & (~BITS_BCN0_HEAD))
  16192. #define BIT_GET_BCN0_HEAD(x) (((x) >> BIT_SHIFT_BCN0_HEAD) & BIT_MASK_BCN0_HEAD)
  16193. #define BIT_SET_BCN0_HEAD(x, v) (BIT_CLEAR_BCN0_HEAD(x) | BIT_BCN0_HEAD(v))
  16194. #endif
  16195. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16196. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16197. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16198. /* 2 REG_FIFOPAGE_CTRL_2 (Offset 0x0204) */
  16199. #define BIT_BCN_VALID_1_V1 BIT(31)
  16200. #endif
  16201. #if (HALMAC_8814B_SUPPORT)
  16202. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16203. #define BIT_BCN3_VALID BIT(31)
  16204. #endif
  16205. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16206. /* 2 REG_FIFOPAGE_INFO (Offset 0x0204) */
  16207. #define BIT_SHIFT_TXPKTNUM 24
  16208. #define BIT_MASK_TXPKTNUM 0xff
  16209. #define BIT_TXPKTNUM(x) (((x) & BIT_MASK_TXPKTNUM) << BIT_SHIFT_TXPKTNUM)
  16210. #define BITS_TXPKTNUM (BIT_MASK_TXPKTNUM << BIT_SHIFT_TXPKTNUM)
  16211. #define BIT_CLEAR_TXPKTNUM(x) ((x) & (~BITS_TXPKTNUM))
  16212. #define BIT_GET_TXPKTNUM(x) (((x) >> BIT_SHIFT_TXPKTNUM) & BIT_MASK_TXPKTNUM)
  16213. #define BIT_SET_TXPKTNUM(x, v) (BIT_CLEAR_TXPKTNUM(x) | BIT_TXPKTNUM(v))
  16214. #endif
  16215. #if (HALMAC_8814B_SUPPORT)
  16216. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16217. #define BIT_SHIFT_R_BCN_HEAD_SEL_V1 20
  16218. #define BIT_MASK_R_BCN_HEAD_SEL_V1 0x7
  16219. #define BIT_R_BCN_HEAD_SEL_V1(x) \
  16220. (((x) & BIT_MASK_R_BCN_HEAD_SEL_V1) << BIT_SHIFT_R_BCN_HEAD_SEL_V1)
  16221. #define BITS_R_BCN_HEAD_SEL_V1 \
  16222. (BIT_MASK_R_BCN_HEAD_SEL_V1 << BIT_SHIFT_R_BCN_HEAD_SEL_V1)
  16223. #define BIT_CLEAR_R_BCN_HEAD_SEL_V1(x) ((x) & (~BITS_R_BCN_HEAD_SEL_V1))
  16224. #define BIT_GET_R_BCN_HEAD_SEL_V1(x) \
  16225. (((x) >> BIT_SHIFT_R_BCN_HEAD_SEL_V1) & BIT_MASK_R_BCN_HEAD_SEL_V1)
  16226. #define BIT_SET_R_BCN_HEAD_SEL_V1(x, v) \
  16227. (BIT_CLEAR_R_BCN_HEAD_SEL_V1(x) | BIT_R_BCN_HEAD_SEL_V1(v))
  16228. #endif
  16229. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16230. /* 2 REG_FIFOPAGE_INFO (Offset 0x0204) */
  16231. #define BIT_SHIFT_PUBQ_AVAL_PG 16
  16232. #define BIT_MASK_PUBQ_AVAL_PG 0xff
  16233. #define BIT_PUBQ_AVAL_PG(x) \
  16234. (((x) & BIT_MASK_PUBQ_AVAL_PG) << BIT_SHIFT_PUBQ_AVAL_PG)
  16235. #define BITS_PUBQ_AVAL_PG (BIT_MASK_PUBQ_AVAL_PG << BIT_SHIFT_PUBQ_AVAL_PG)
  16236. #define BIT_CLEAR_PUBQ_AVAL_PG(x) ((x) & (~BITS_PUBQ_AVAL_PG))
  16237. #define BIT_GET_PUBQ_AVAL_PG(x) \
  16238. (((x) >> BIT_SHIFT_PUBQ_AVAL_PG) & BIT_MASK_PUBQ_AVAL_PG)
  16239. #define BIT_SET_PUBQ_AVAL_PG(x, v) \
  16240. (BIT_CLEAR_PUBQ_AVAL_PG(x) | BIT_PUBQ_AVAL_PG(v))
  16241. #endif
  16242. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16243. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16244. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16245. /* 2 REG_FIFOPAGE_CTRL_2 (Offset 0x0204) */
  16246. #define BIT_SHIFT_BCN_HEAD_1_V1 16
  16247. #define BIT_MASK_BCN_HEAD_1_V1 0xfff
  16248. #define BIT_BCN_HEAD_1_V1(x) \
  16249. (((x) & BIT_MASK_BCN_HEAD_1_V1) << BIT_SHIFT_BCN_HEAD_1_V1)
  16250. #define BITS_BCN_HEAD_1_V1 (BIT_MASK_BCN_HEAD_1_V1 << BIT_SHIFT_BCN_HEAD_1_V1)
  16251. #define BIT_CLEAR_BCN_HEAD_1_V1(x) ((x) & (~BITS_BCN_HEAD_1_V1))
  16252. #define BIT_GET_BCN_HEAD_1_V1(x) \
  16253. (((x) >> BIT_SHIFT_BCN_HEAD_1_V1) & BIT_MASK_BCN_HEAD_1_V1)
  16254. #define BIT_SET_BCN_HEAD_1_V1(x, v) \
  16255. (BIT_CLEAR_BCN_HEAD_1_V1(x) | BIT_BCN_HEAD_1_V1(v))
  16256. #endif
  16257. #if (HALMAC_8814B_SUPPORT)
  16258. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16259. #define BIT_SHIFT_BCN3_HEAD 16
  16260. #define BIT_MASK_BCN3_HEAD 0xfff
  16261. #define BIT_BCN3_HEAD(x) (((x) & BIT_MASK_BCN3_HEAD) << BIT_SHIFT_BCN3_HEAD)
  16262. #define BITS_BCN3_HEAD (BIT_MASK_BCN3_HEAD << BIT_SHIFT_BCN3_HEAD)
  16263. #define BIT_CLEAR_BCN3_HEAD(x) ((x) & (~BITS_BCN3_HEAD))
  16264. #define BIT_GET_BCN3_HEAD(x) (((x) >> BIT_SHIFT_BCN3_HEAD) & BIT_MASK_BCN3_HEAD)
  16265. #define BIT_SET_BCN3_HEAD(x, v) (BIT_CLEAR_BCN3_HEAD(x) | BIT_BCN3_HEAD(v))
  16266. #endif
  16267. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16268. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16269. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16270. /* 2 REG_FIFOPAGE_CTRL_2 (Offset 0x0204) */
  16271. #define BIT_BCN_VALID_V1 BIT(15)
  16272. #endif
  16273. #if (HALMAC_8814B_SUPPORT)
  16274. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16275. #define BIT_BCN2_VALID BIT(15)
  16276. #endif
  16277. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16278. /* 2 REG_FIFOPAGE_INFO (Offset 0x0204) */
  16279. #define BIT_SHIFT_LPQ_AVAL_PG 8
  16280. #define BIT_MASK_LPQ_AVAL_PG 0xff
  16281. #define BIT_LPQ_AVAL_PG(x) \
  16282. (((x) & BIT_MASK_LPQ_AVAL_PG) << BIT_SHIFT_LPQ_AVAL_PG)
  16283. #define BITS_LPQ_AVAL_PG (BIT_MASK_LPQ_AVAL_PG << BIT_SHIFT_LPQ_AVAL_PG)
  16284. #define BIT_CLEAR_LPQ_AVAL_PG(x) ((x) & (~BITS_LPQ_AVAL_PG))
  16285. #define BIT_GET_LPQ_AVAL_PG(x) \
  16286. (((x) >> BIT_SHIFT_LPQ_AVAL_PG) & BIT_MASK_LPQ_AVAL_PG)
  16287. #define BIT_SET_LPQ_AVAL_PG(x, v) \
  16288. (BIT_CLEAR_LPQ_AVAL_PG(x) | BIT_LPQ_AVAL_PG(v))
  16289. #endif
  16290. #if (HALMAC_8814B_SUPPORT)
  16291. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16292. #define BIT_TDE_ERROR_STOP BIT(3)
  16293. #endif
  16294. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16295. /* 2 REG_FIFOPAGE_INFO (Offset 0x0204) */
  16296. #define BIT_SHIFT_HPQ_AVAL_PG 0
  16297. #define BIT_MASK_HPQ_AVAL_PG 0xff
  16298. #define BIT_HPQ_AVAL_PG(x) \
  16299. (((x) & BIT_MASK_HPQ_AVAL_PG) << BIT_SHIFT_HPQ_AVAL_PG)
  16300. #define BITS_HPQ_AVAL_PG (BIT_MASK_HPQ_AVAL_PG << BIT_SHIFT_HPQ_AVAL_PG)
  16301. #define BIT_CLEAR_HPQ_AVAL_PG(x) ((x) & (~BITS_HPQ_AVAL_PG))
  16302. #define BIT_GET_HPQ_AVAL_PG(x) \
  16303. (((x) >> BIT_SHIFT_HPQ_AVAL_PG) & BIT_MASK_HPQ_AVAL_PG)
  16304. #define BIT_SET_HPQ_AVAL_PG(x, v) \
  16305. (BIT_CLEAR_HPQ_AVAL_PG(x) | BIT_HPQ_AVAL_PG(v))
  16306. #endif
  16307. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16308. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16309. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16310. /* 2 REG_FIFOPAGE_CTRL_2 (Offset 0x0204) */
  16311. #define BIT_SHIFT_BCN_HEAD_V1 0
  16312. #define BIT_MASK_BCN_HEAD_V1 0xfff
  16313. #define BIT_BCN_HEAD_V1(x) \
  16314. (((x) & BIT_MASK_BCN_HEAD_V1) << BIT_SHIFT_BCN_HEAD_V1)
  16315. #define BITS_BCN_HEAD_V1 (BIT_MASK_BCN_HEAD_V1 << BIT_SHIFT_BCN_HEAD_V1)
  16316. #define BIT_CLEAR_BCN_HEAD_V1(x) ((x) & (~BITS_BCN_HEAD_V1))
  16317. #define BIT_GET_BCN_HEAD_V1(x) \
  16318. (((x) >> BIT_SHIFT_BCN_HEAD_V1) & BIT_MASK_BCN_HEAD_V1)
  16319. #define BIT_SET_BCN_HEAD_V1(x, v) \
  16320. (BIT_CLEAR_BCN_HEAD_V1(x) | BIT_BCN_HEAD_V1(v))
  16321. #endif
  16322. #if (HALMAC_8814B_SUPPORT)
  16323. /* 2 REG_BCN_CTRL_1 (Offset 0x0204) */
  16324. #define BIT_SHIFT_BCN2_HEAD 0
  16325. #define BIT_MASK_BCN2_HEAD 0xfff
  16326. #define BIT_BCN2_HEAD(x) (((x) & BIT_MASK_BCN2_HEAD) << BIT_SHIFT_BCN2_HEAD)
  16327. #define BITS_BCN2_HEAD (BIT_MASK_BCN2_HEAD << BIT_SHIFT_BCN2_HEAD)
  16328. #define BIT_CLEAR_BCN2_HEAD(x) ((x) & (~BITS_BCN2_HEAD))
  16329. #define BIT_GET_BCN2_HEAD(x) (((x) >> BIT_SHIFT_BCN2_HEAD) & BIT_MASK_BCN2_HEAD)
  16330. #define BIT_SET_BCN2_HEAD(x, v) (BIT_CLEAR_BCN2_HEAD(x) | BIT_BCN2_HEAD(v))
  16331. #endif
  16332. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16333. /* 2 REG_DWBCN0_CTRL (Offset 0x0208) */
  16334. #define BIT_SHIFT_LLT_FREE_PAGE 24
  16335. #define BIT_MASK_LLT_FREE_PAGE 0xff
  16336. #define BIT_LLT_FREE_PAGE(x) \
  16337. (((x) & BIT_MASK_LLT_FREE_PAGE) << BIT_SHIFT_LLT_FREE_PAGE)
  16338. #define BITS_LLT_FREE_PAGE (BIT_MASK_LLT_FREE_PAGE << BIT_SHIFT_LLT_FREE_PAGE)
  16339. #define BIT_CLEAR_LLT_FREE_PAGE(x) ((x) & (~BITS_LLT_FREE_PAGE))
  16340. #define BIT_GET_LLT_FREE_PAGE(x) \
  16341. (((x) >> BIT_SHIFT_LLT_FREE_PAGE) & BIT_MASK_LLT_FREE_PAGE)
  16342. #define BIT_SET_LLT_FREE_PAGE(x, v) \
  16343. (BIT_CLEAR_LLT_FREE_PAGE(x) | BIT_LLT_FREE_PAGE(v))
  16344. #endif
  16345. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16346. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  16347. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16348. #define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 24
  16349. #define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 0xff
  16350. #define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x) \
  16351. (((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1) \
  16352. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
  16353. #define BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 \
  16354. (BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 \
  16355. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
  16356. #define BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x) \
  16357. ((x) & (~BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1))
  16358. #define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x) \
  16359. (((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1) & \
  16360. BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
  16361. #define BIT_SET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x, v) \
  16362. (BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x) | \
  16363. BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(v))
  16364. #endif
  16365. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  16366. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16367. #define BIT_SHIFT_MAX_TX_PKT_V1 24
  16368. #define BIT_MASK_MAX_TX_PKT_V1 0xff
  16369. #define BIT_MAX_TX_PKT_V1(x) \
  16370. (((x) & BIT_MASK_MAX_TX_PKT_V1) << BIT_SHIFT_MAX_TX_PKT_V1)
  16371. #define BITS_MAX_TX_PKT_V1 (BIT_MASK_MAX_TX_PKT_V1 << BIT_SHIFT_MAX_TX_PKT_V1)
  16372. #define BIT_CLEAR_MAX_TX_PKT_V1(x) ((x) & (~BITS_MAX_TX_PKT_V1))
  16373. #define BIT_GET_MAX_TX_PKT_V1(x) \
  16374. (((x) >> BIT_SHIFT_MAX_TX_PKT_V1) & BIT_MASK_MAX_TX_PKT_V1)
  16375. #define BIT_SET_MAX_TX_PKT_V1(x, v) \
  16376. (BIT_CLEAR_MAX_TX_PKT_V1(x) | BIT_MAX_TX_PKT_V1(v))
  16377. #endif
  16378. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  16379. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16380. #define BIT_TDE_ERROR_STOP_V1 BIT(23)
  16381. #endif
  16382. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16383. /* 2 REG_DWBCN0_CTRL (Offset 0x0208) */
  16384. #define BIT_BCN_VALID BIT(16)
  16385. #define BIT_SHIFT_BCN_HEAD 8
  16386. #define BIT_MASK_BCN_HEAD 0xff
  16387. #define BIT_BCN_HEAD(x) (((x) & BIT_MASK_BCN_HEAD) << BIT_SHIFT_BCN_HEAD)
  16388. #define BITS_BCN_HEAD (BIT_MASK_BCN_HEAD << BIT_SHIFT_BCN_HEAD)
  16389. #define BIT_CLEAR_BCN_HEAD(x) ((x) & (~BITS_BCN_HEAD))
  16390. #define BIT_GET_BCN_HEAD(x) (((x) >> BIT_SHIFT_BCN_HEAD) & BIT_MASK_BCN_HEAD)
  16391. #define BIT_SET_BCN_HEAD(x, v) (BIT_CLEAR_BCN_HEAD(x) | BIT_BCN_HEAD(v))
  16392. #endif
  16393. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16394. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  16395. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16396. #define BIT_SHIFT_LLT_FREE_PAGE_V1 8
  16397. #define BIT_MASK_LLT_FREE_PAGE_V1 0xffff
  16398. #define BIT_LLT_FREE_PAGE_V1(x) \
  16399. (((x) & BIT_MASK_LLT_FREE_PAGE_V1) << BIT_SHIFT_LLT_FREE_PAGE_V1)
  16400. #define BITS_LLT_FREE_PAGE_V1 \
  16401. (BIT_MASK_LLT_FREE_PAGE_V1 << BIT_SHIFT_LLT_FREE_PAGE_V1)
  16402. #define BIT_CLEAR_LLT_FREE_PAGE_V1(x) ((x) & (~BITS_LLT_FREE_PAGE_V1))
  16403. #define BIT_GET_LLT_FREE_PAGE_V1(x) \
  16404. (((x) >> BIT_SHIFT_LLT_FREE_PAGE_V1) & BIT_MASK_LLT_FREE_PAGE_V1)
  16405. #define BIT_SET_LLT_FREE_PAGE_V1(x, v) \
  16406. (BIT_CLEAR_LLT_FREE_PAGE_V1(x) | BIT_LLT_FREE_PAGE_V1(v))
  16407. #endif
  16408. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  16409. HALMAC_8822C_SUPPORT)
  16410. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16411. #define BIT_SHIFT_LLT_FREE_PAGE_V2 8
  16412. #define BIT_MASK_LLT_FREE_PAGE_V2 0xfff
  16413. #define BIT_LLT_FREE_PAGE_V2(x) \
  16414. (((x) & BIT_MASK_LLT_FREE_PAGE_V2) << BIT_SHIFT_LLT_FREE_PAGE_V2)
  16415. #define BITS_LLT_FREE_PAGE_V2 \
  16416. (BIT_MASK_LLT_FREE_PAGE_V2 << BIT_SHIFT_LLT_FREE_PAGE_V2)
  16417. #define BIT_CLEAR_LLT_FREE_PAGE_V2(x) ((x) & (~BITS_LLT_FREE_PAGE_V2))
  16418. #define BIT_GET_LLT_FREE_PAGE_V2(x) \
  16419. (((x) >> BIT_SHIFT_LLT_FREE_PAGE_V2) & BIT_MASK_LLT_FREE_PAGE_V2)
  16420. #define BIT_SET_LLT_FREE_PAGE_V2(x, v) \
  16421. (BIT_CLEAR_LLT_FREE_PAGE_V2(x) | BIT_LLT_FREE_PAGE_V2(v))
  16422. #endif
  16423. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16424. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16425. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16426. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16427. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16428. #define BIT_SHIFT_BLK_DESC_NUM 4
  16429. #define BIT_MASK_BLK_DESC_NUM 0xf
  16430. #define BIT_BLK_DESC_NUM(x) \
  16431. (((x) & BIT_MASK_BLK_DESC_NUM) << BIT_SHIFT_BLK_DESC_NUM)
  16432. #define BITS_BLK_DESC_NUM (BIT_MASK_BLK_DESC_NUM << BIT_SHIFT_BLK_DESC_NUM)
  16433. #define BIT_CLEAR_BLK_DESC_NUM(x) ((x) & (~BITS_BLK_DESC_NUM))
  16434. #define BIT_GET_BLK_DESC_NUM(x) \
  16435. (((x) >> BIT_SHIFT_BLK_DESC_NUM) & BIT_MASK_BLK_DESC_NUM)
  16436. #define BIT_SET_BLK_DESC_NUM(x, v) \
  16437. (BIT_CLEAR_BLK_DESC_NUM(x) | BIT_BLK_DESC_NUM(v))
  16438. #endif
  16439. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16440. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16441. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16442. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16443. #define BIT_R_BCN_HEAD_SEL BIT(3)
  16444. #endif
  16445. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16446. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  16447. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16448. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16449. #define BIT_R_EN_BCN_SW_HEAD_SEL BIT(2)
  16450. #define BIT_LLT_DBG_SEL BIT(1)
  16451. #endif
  16452. #if (HALMAC_8192F_SUPPORT)
  16453. /* 2 REG_DWBCN0_CTRL (Offset 0x0208) */
  16454. #define BIT_BLK_DESC_OPT BIT(0)
  16455. #endif
  16456. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16457. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  16458. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16459. /* 2 REG_AUTO_LLT_V1 (Offset 0x0208) */
  16460. #define BIT_AUTO_INIT_LLT_V1 BIT(0)
  16461. #endif
  16462. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  16463. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  16464. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16465. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16466. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16467. #define BIT_EM_CHKSUM_FIN BIT(31)
  16468. #endif
  16469. #if (HALMAC_8192F_SUPPORT)
  16470. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16471. #define BIT_EN_CHKSUM_ERR_FIN BIT(31)
  16472. #endif
  16473. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  16474. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  16475. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16476. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16477. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16478. #define BIT_EMN_PCIE_DMA_MOD BIT(30)
  16479. #endif
  16480. #if (HALMAC_8192F_SUPPORT)
  16481. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16482. #define BIT_EN_PCIE_DMA_MOD BIT(30)
  16483. #endif
  16484. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  16485. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  16486. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16487. HALMAC_8822C_SUPPORT)
  16488. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16489. #define BIT_EN_TXQUE_CLR BIT(29)
  16490. #define BIT_EN_PCIE_FIFO_MODE BIT(28)
  16491. #endif
  16492. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  16493. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16494. #define BIT_SHIFT_PG_UNDER_TH 16
  16495. #define BIT_MASK_PG_UNDER_TH 0xff
  16496. #define BIT_PG_UNDER_TH(x) \
  16497. (((x) & BIT_MASK_PG_UNDER_TH) << BIT_SHIFT_PG_UNDER_TH)
  16498. #define BITS_PG_UNDER_TH (BIT_MASK_PG_UNDER_TH << BIT_SHIFT_PG_UNDER_TH)
  16499. #define BIT_CLEAR_PG_UNDER_TH(x) ((x) & (~BITS_PG_UNDER_TH))
  16500. #define BIT_GET_PG_UNDER_TH(x) \
  16501. (((x) >> BIT_SHIFT_PG_UNDER_TH) & BIT_MASK_PG_UNDER_TH)
  16502. #define BIT_SET_PG_UNDER_TH(x, v) \
  16503. (BIT_CLEAR_PG_UNDER_TH(x) | BIT_PG_UNDER_TH(v))
  16504. #endif
  16505. #if (HALMAC_8192F_SUPPORT)
  16506. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16507. #define BIT_SHIFT_PG_UNDER_TH_V2 16
  16508. #define BIT_MASK_PG_UNDER_TH_V2 0xff
  16509. #define BIT_PG_UNDER_TH_V2(x) \
  16510. (((x) & BIT_MASK_PG_UNDER_TH_V2) << BIT_SHIFT_PG_UNDER_TH_V2)
  16511. #define BITS_PG_UNDER_TH_V2 \
  16512. (BIT_MASK_PG_UNDER_TH_V2 << BIT_SHIFT_PG_UNDER_TH_V2)
  16513. #define BIT_CLEAR_PG_UNDER_TH_V2(x) ((x) & (~BITS_PG_UNDER_TH_V2))
  16514. #define BIT_GET_PG_UNDER_TH_V2(x) \
  16515. (((x) >> BIT_SHIFT_PG_UNDER_TH_V2) & BIT_MASK_PG_UNDER_TH_V2)
  16516. #define BIT_SET_PG_UNDER_TH_V2(x, v) \
  16517. (BIT_CLEAR_PG_UNDER_TH_V2(x) | BIT_PG_UNDER_TH_V2(v))
  16518. #endif
  16519. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16520. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  16521. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16522. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16523. #define BIT_SHIFT_PG_UNDER_TH_V1 16
  16524. #define BIT_MASK_PG_UNDER_TH_V1 0xfff
  16525. #define BIT_PG_UNDER_TH_V1(x) \
  16526. (((x) & BIT_MASK_PG_UNDER_TH_V1) << BIT_SHIFT_PG_UNDER_TH_V1)
  16527. #define BITS_PG_UNDER_TH_V1 \
  16528. (BIT_MASK_PG_UNDER_TH_V1 << BIT_SHIFT_PG_UNDER_TH_V1)
  16529. #define BIT_CLEAR_PG_UNDER_TH_V1(x) ((x) & (~BITS_PG_UNDER_TH_V1))
  16530. #define BIT_GET_PG_UNDER_TH_V1(x) \
  16531. (((x) >> BIT_SHIFT_PG_UNDER_TH_V1) & BIT_MASK_PG_UNDER_TH_V1)
  16532. #define BIT_SET_PG_UNDER_TH_V1(x, v) \
  16533. (BIT_CLEAR_PG_UNDER_TH_V1(x) | BIT_PG_UNDER_TH_V1(v))
  16534. #endif
  16535. #if (HALMAC_8192F_SUPPORT)
  16536. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16537. #define BIT_EN_RESTORE_H2C_BY_RST BIT(15)
  16538. #endif
  16539. #if (HALMAC_8197F_SUPPORT)
  16540. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16541. #define BIT_EN_RESET_RESTORE_H2C BIT(15)
  16542. #endif
  16543. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  16544. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16545. #define BIT_R_EN_RESET_RESTORE_H2C BIT(15)
  16546. #endif
  16547. #if (HALMAC_8822B_SUPPORT)
  16548. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16549. #define BIT_RESTORE_H2C_ADDRESS BIT(15)
  16550. #endif
  16551. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16552. HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  16553. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16554. #define BIT_SDIO_TDE_FINISH BIT(14)
  16555. #endif
  16556. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16557. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16558. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16559. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16560. /* 2 REG_TXDMA_OFFSET_CHK (Offset 0x020C) */
  16561. #define BIT_SDIO_TXDESC_CHKSUM_EN BIT(13)
  16562. #define BIT_RST_RDPTR BIT(12)
  16563. #define BIT_RST_WRPTR BIT(11)
  16564. #define BIT_CHK_PG_TH_EN BIT(10)
  16565. #define BIT_DROP_DATA_EN BIT(9)
  16566. #define BIT_CHECK_OFFSET_EN BIT(8)
  16567. #define BIT_SHIFT_CHECK_OFFSET 0
  16568. #define BIT_MASK_CHECK_OFFSET 0xff
  16569. #define BIT_CHECK_OFFSET(x) \
  16570. (((x) & BIT_MASK_CHECK_OFFSET) << BIT_SHIFT_CHECK_OFFSET)
  16571. #define BITS_CHECK_OFFSET (BIT_MASK_CHECK_OFFSET << BIT_SHIFT_CHECK_OFFSET)
  16572. #define BIT_CLEAR_CHECK_OFFSET(x) ((x) & (~BITS_CHECK_OFFSET))
  16573. #define BIT_GET_CHECK_OFFSET(x) \
  16574. (((x) >> BIT_SHIFT_CHECK_OFFSET) & BIT_MASK_CHECK_OFFSET)
  16575. #define BIT_SET_CHECK_OFFSET(x, v) \
  16576. (BIT_CLEAR_CHECK_OFFSET(x) | BIT_CHECK_OFFSET(v))
  16577. #endif
  16578. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16579. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16580. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16581. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16582. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16583. #define BIT_LD_RQPN BIT(31)
  16584. #endif
  16585. #if (HALMAC_8814B_SUPPORT)
  16586. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16587. #define BIT_AMSDU_PKT_SIZE_ERR BIT(31)
  16588. #define BIT_AMSDU_EN_ERR BIT(30)
  16589. #define BIT_CHKSUM_AMSDU_EN_ERR BIT(29)
  16590. #define BIT_TXPKTBF_REQ_ERR BIT(28)
  16591. #define BIT_OQT_UDN_16 BIT(27)
  16592. #define BIT_OQT_OVF_16 BIT(26)
  16593. #define BIT_OQT_UDN_14_15 BIT(25)
  16594. #define BIT_OQT_OVF_14_15 BIT(24)
  16595. #define BIT_OQT_UDN_13 BIT(23)
  16596. #define BIT_OQT_OVF_13 BIT(22)
  16597. #define BIT_OQT_UDN_12 BIT(21)
  16598. #define BIT_OQT_OVF_12 BIT(20)
  16599. #define BIT_OQT_UDN_8_11 BIT(19)
  16600. #endif
  16601. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  16602. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16603. #define BIT_TXPKTBUF_REQ_ERR BIT(18)
  16604. #endif
  16605. #if (HALMAC_8814B_SUPPORT)
  16606. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16607. #define BIT_OQT_OVF_8_11 BIT(18)
  16608. #endif
  16609. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16610. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16611. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16612. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16613. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16614. #define BIT_HI_OQT_UDN BIT(17)
  16615. #endif
  16616. #if (HALMAC_8814B_SUPPORT)
  16617. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16618. #define BIT_OQT_UDN_4_7 BIT(17)
  16619. #endif
  16620. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16621. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16622. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16623. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16624. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16625. #define BIT_HI_OQT_OVF BIT(16)
  16626. #endif
  16627. #if (HALMAC_8814B_SUPPORT)
  16628. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16629. #define BIT_OQT_OVF_4_7 BIT(16)
  16630. #endif
  16631. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16632. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16633. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16634. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16635. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16636. #define BIT_PAYLOAD_CHKSUM_ERR BIT(15)
  16637. #endif
  16638. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16639. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16640. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16641. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16642. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16643. #define BIT_RX_CLOSE_EN BIT(15)
  16644. #endif
  16645. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16646. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16647. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16648. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16649. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16650. #define BIT_PAYLOAD_UDN BIT(14)
  16651. #endif
  16652. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16653. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16654. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16655. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16656. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16657. #define BIT_STOP_BCNQ BIT(14)
  16658. #endif
  16659. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16660. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16661. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16662. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16663. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16664. #define BIT_PAYLOAD_OVF BIT(13)
  16665. #endif
  16666. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16667. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16668. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16669. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16670. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16671. #define BIT_STOP_MGQ BIT(13)
  16672. #endif
  16673. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16674. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16675. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16676. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16677. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16678. #define BIT_DSC_CHKSUM_FAIL BIT(12)
  16679. #endif
  16680. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16681. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16682. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16683. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16684. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16685. #define BIT_STOP_VOQ BIT(12)
  16686. #define BIT_UNKNOWN_QSEL BIT(11)
  16687. #define BIT_STOP_VIQ BIT(11)
  16688. #endif
  16689. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16690. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16691. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16692. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16693. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16694. #define BIT_EP_QSEL_DIFF BIT(10)
  16695. #endif
  16696. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16697. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16698. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16699. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16700. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16701. #define BIT_STOP_BEQ BIT(10)
  16702. #endif
  16703. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16704. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16705. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16706. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16707. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16708. #define BIT_TX_OFFS_UNMATCH BIT(9)
  16709. #endif
  16710. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16711. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16712. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16713. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16714. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16715. #define BIT_STOP_BKQ BIT(9)
  16716. #define BIT_TXOQT_UDN BIT(8)
  16717. #define BIT_STOP_RXQ BIT(8)
  16718. #endif
  16719. #if (HALMAC_8814B_SUPPORT)
  16720. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16721. #define BIT_TXOQT_UDN_0_3 BIT(8)
  16722. #endif
  16723. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16724. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16725. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16726. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16727. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16728. #define BIT_TXOQT_OVF BIT(7)
  16729. #define BIT_STOP_HI7Q BIT(7)
  16730. #endif
  16731. #if (HALMAC_8814B_SUPPORT)
  16732. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16733. #define BIT_TXOQT_OVF_0_3 BIT(7)
  16734. #endif
  16735. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16736. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16737. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16738. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16739. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16740. #define BIT_TXDMA_SFF_UDN BIT(6)
  16741. #endif
  16742. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16743. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16744. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16745. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16746. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16747. #define BIT_STOP_HI6Q BIT(6)
  16748. #endif
  16749. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16750. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16751. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16752. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16753. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16754. #define BIT_TXDMA_SFF_OVF BIT(5)
  16755. #endif
  16756. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16757. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16758. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16759. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16760. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16761. #define BIT_STOP_HI5Q BIT(5)
  16762. #endif
  16763. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16764. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16765. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16766. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16767. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16768. #define BIT_LLT_NULL_PG BIT(4)
  16769. #endif
  16770. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16771. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16772. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16773. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16774. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16775. #define BIT_STOP_HI4Q BIT(4)
  16776. #endif
  16777. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16778. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16779. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16780. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16781. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16782. #define BIT_PAGE_UDN BIT(3)
  16783. #endif
  16784. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16785. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16786. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16787. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16788. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16789. #define BIT_STOP_HI3Q BIT(3)
  16790. #endif
  16791. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16792. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16793. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16794. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16795. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16796. #define BIT_PAGE_OVF BIT(2)
  16797. #endif
  16798. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16799. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16800. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16801. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16802. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16803. #define BIT_STOP_HI2Q BIT(2)
  16804. #endif
  16805. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16806. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16807. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16808. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16809. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16810. #define BIT_TXFF_PG_UDN BIT(1)
  16811. #endif
  16812. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16813. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16814. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16815. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16816. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16817. #define BIT_STOP_HI1Q BIT(1)
  16818. #endif
  16819. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16820. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16821. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  16822. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16823. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16824. #define BIT_TXFF_PG_OVF BIT(0)
  16825. #endif
  16826. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  16827. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  16828. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  16829. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  16830. /* 2 REG_TXDMA_STATUS (Offset 0x0210) */
  16831. #define BIT_STOP_HI0Q BIT(0)
  16832. #endif
  16833. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16834. /* 2 REG_RQPN_NPQ (Offset 0x0214) */
  16835. #define BIT_SHIFT_EXQ_AVAL_PG 24
  16836. #define BIT_MASK_EXQ_AVAL_PG 0xff
  16837. #define BIT_EXQ_AVAL_PG(x) \
  16838. (((x) & BIT_MASK_EXQ_AVAL_PG) << BIT_SHIFT_EXQ_AVAL_PG)
  16839. #define BITS_EXQ_AVAL_PG (BIT_MASK_EXQ_AVAL_PG << BIT_SHIFT_EXQ_AVAL_PG)
  16840. #define BIT_CLEAR_EXQ_AVAL_PG(x) ((x) & (~BITS_EXQ_AVAL_PG))
  16841. #define BIT_GET_EXQ_AVAL_PG(x) \
  16842. (((x) >> BIT_SHIFT_EXQ_AVAL_PG) & BIT_MASK_EXQ_AVAL_PG)
  16843. #define BIT_SET_EXQ_AVAL_PG(x, v) \
  16844. (BIT_CLEAR_EXQ_AVAL_PG(x) | BIT_EXQ_AVAL_PG(v))
  16845. #define BIT_SHIFT_EXQ 16
  16846. #define BIT_MASK_EXQ 0xff
  16847. #define BIT_EXQ(x) (((x) & BIT_MASK_EXQ) << BIT_SHIFT_EXQ)
  16848. #define BITS_EXQ (BIT_MASK_EXQ << BIT_SHIFT_EXQ)
  16849. #define BIT_CLEAR_EXQ(x) ((x) & (~BITS_EXQ))
  16850. #define BIT_GET_EXQ(x) (((x) >> BIT_SHIFT_EXQ) & BIT_MASK_EXQ)
  16851. #define BIT_SET_EXQ(x, v) (BIT_CLEAR_EXQ(x) | BIT_EXQ(v))
  16852. #define BIT_SHIFT_NPQ 0
  16853. #define BIT_MASK_NPQ 0xff
  16854. #define BIT_NPQ(x) (((x) & BIT_MASK_NPQ) << BIT_SHIFT_NPQ)
  16855. #define BITS_NPQ (BIT_MASK_NPQ << BIT_SHIFT_NPQ)
  16856. #define BIT_CLEAR_NPQ(x) ((x) & (~BITS_NPQ))
  16857. #define BIT_GET_NPQ(x) (((x) >> BIT_SHIFT_NPQ) & BIT_MASK_NPQ)
  16858. #define BIT_SET_NPQ(x, v) (BIT_CLEAR_NPQ(x) | BIT_NPQ(v))
  16859. #endif
  16860. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  16861. /* 2 REG_TQPNT1 (Offset 0x0218) */
  16862. #define BIT_HPQ_INT_EN BIT(31)
  16863. #endif
  16864. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16865. /* 2 REG_TQPNT1 (Offset 0x0218) */
  16866. #define BIT_SHIFT_NPQ_HIGH_TH 24
  16867. #define BIT_MASK_NPQ_HIGH_TH 0xff
  16868. #define BIT_NPQ_HIGH_TH(x) \
  16869. (((x) & BIT_MASK_NPQ_HIGH_TH) << BIT_SHIFT_NPQ_HIGH_TH)
  16870. #define BITS_NPQ_HIGH_TH (BIT_MASK_NPQ_HIGH_TH << BIT_SHIFT_NPQ_HIGH_TH)
  16871. #define BIT_CLEAR_NPQ_HIGH_TH(x) ((x) & (~BITS_NPQ_HIGH_TH))
  16872. #define BIT_GET_NPQ_HIGH_TH(x) \
  16873. (((x) >> BIT_SHIFT_NPQ_HIGH_TH) & BIT_MASK_NPQ_HIGH_TH)
  16874. #define BIT_SET_NPQ_HIGH_TH(x, v) \
  16875. (BIT_CLEAR_NPQ_HIGH_TH(x) | BIT_NPQ_HIGH_TH(v))
  16876. #define BIT_SHIFT_NPQ_LOW_TH 16
  16877. #define BIT_MASK_NPQ_LOW_TH 0xff
  16878. #define BIT_NPQ_LOW_TH(x) (((x) & BIT_MASK_NPQ_LOW_TH) << BIT_SHIFT_NPQ_LOW_TH)
  16879. #define BITS_NPQ_LOW_TH (BIT_MASK_NPQ_LOW_TH << BIT_SHIFT_NPQ_LOW_TH)
  16880. #define BIT_CLEAR_NPQ_LOW_TH(x) ((x) & (~BITS_NPQ_LOW_TH))
  16881. #define BIT_GET_NPQ_LOW_TH(x) \
  16882. (((x) >> BIT_SHIFT_NPQ_LOW_TH) & BIT_MASK_NPQ_LOW_TH)
  16883. #define BIT_SET_NPQ_LOW_TH(x, v) (BIT_CLEAR_NPQ_LOW_TH(x) | BIT_NPQ_LOW_TH(v))
  16884. #endif
  16885. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16886. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16887. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16888. /* 2 REG_TQPNT1 (Offset 0x0218) */
  16889. #define BIT_SHIFT_HPQ_HIGH_TH_V1 16
  16890. #define BIT_MASK_HPQ_HIGH_TH_V1 0xfff
  16891. #define BIT_HPQ_HIGH_TH_V1(x) \
  16892. (((x) & BIT_MASK_HPQ_HIGH_TH_V1) << BIT_SHIFT_HPQ_HIGH_TH_V1)
  16893. #define BITS_HPQ_HIGH_TH_V1 \
  16894. (BIT_MASK_HPQ_HIGH_TH_V1 << BIT_SHIFT_HPQ_HIGH_TH_V1)
  16895. #define BIT_CLEAR_HPQ_HIGH_TH_V1(x) ((x) & (~BITS_HPQ_HIGH_TH_V1))
  16896. #define BIT_GET_HPQ_HIGH_TH_V1(x) \
  16897. (((x) >> BIT_SHIFT_HPQ_HIGH_TH_V1) & BIT_MASK_HPQ_HIGH_TH_V1)
  16898. #define BIT_SET_HPQ_HIGH_TH_V1(x, v) \
  16899. (BIT_CLEAR_HPQ_HIGH_TH_V1(x) | BIT_HPQ_HIGH_TH_V1(v))
  16900. #endif
  16901. #if (HALMAC_8814B_SUPPORT)
  16902. /* 2 REG_DMA_RQPN_INFO_PUB (Offset 0x0218) */
  16903. #define BIT_SHIFT_PUB_AVAL_PG 16
  16904. #define BIT_MASK_PUB_AVAL_PG 0xfff
  16905. #define BIT_PUB_AVAL_PG(x) \
  16906. (((x) & BIT_MASK_PUB_AVAL_PG) << BIT_SHIFT_PUB_AVAL_PG)
  16907. #define BITS_PUB_AVAL_PG (BIT_MASK_PUB_AVAL_PG << BIT_SHIFT_PUB_AVAL_PG)
  16908. #define BIT_CLEAR_PUB_AVAL_PG(x) ((x) & (~BITS_PUB_AVAL_PG))
  16909. #define BIT_GET_PUB_AVAL_PG(x) \
  16910. (((x) >> BIT_SHIFT_PUB_AVAL_PG) & BIT_MASK_PUB_AVAL_PG)
  16911. #define BIT_SET_PUB_AVAL_PG(x, v) \
  16912. (BIT_CLEAR_PUB_AVAL_PG(x) | BIT_PUB_AVAL_PG(v))
  16913. #endif
  16914. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16915. /* 2 REG_TQPNT1 (Offset 0x0218) */
  16916. #define BIT_SHIFT_HPQ_HIGH_TH 8
  16917. #define BIT_MASK_HPQ_HIGH_TH 0xff
  16918. #define BIT_HPQ_HIGH_TH(x) \
  16919. (((x) & BIT_MASK_HPQ_HIGH_TH) << BIT_SHIFT_HPQ_HIGH_TH)
  16920. #define BITS_HPQ_HIGH_TH (BIT_MASK_HPQ_HIGH_TH << BIT_SHIFT_HPQ_HIGH_TH)
  16921. #define BIT_CLEAR_HPQ_HIGH_TH(x) ((x) & (~BITS_HPQ_HIGH_TH))
  16922. #define BIT_GET_HPQ_HIGH_TH(x) \
  16923. (((x) >> BIT_SHIFT_HPQ_HIGH_TH) & BIT_MASK_HPQ_HIGH_TH)
  16924. #define BIT_SET_HPQ_HIGH_TH(x, v) \
  16925. (BIT_CLEAR_HPQ_HIGH_TH(x) | BIT_HPQ_HIGH_TH(v))
  16926. #define BIT_SHIFT_HPQ_LOW_TH 0
  16927. #define BIT_MASK_HPQ_LOW_TH 0xff
  16928. #define BIT_HPQ_LOW_TH(x) (((x) & BIT_MASK_HPQ_LOW_TH) << BIT_SHIFT_HPQ_LOW_TH)
  16929. #define BITS_HPQ_LOW_TH (BIT_MASK_HPQ_LOW_TH << BIT_SHIFT_HPQ_LOW_TH)
  16930. #define BIT_CLEAR_HPQ_LOW_TH(x) ((x) & (~BITS_HPQ_LOW_TH))
  16931. #define BIT_GET_HPQ_LOW_TH(x) \
  16932. (((x) >> BIT_SHIFT_HPQ_LOW_TH) & BIT_MASK_HPQ_LOW_TH)
  16933. #define BIT_SET_HPQ_LOW_TH(x, v) (BIT_CLEAR_HPQ_LOW_TH(x) | BIT_HPQ_LOW_TH(v))
  16934. #endif
  16935. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16936. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16937. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16938. /* 2 REG_TQPNT1 (Offset 0x0218) */
  16939. #define BIT_SHIFT_HPQ_LOW_TH_V1 0
  16940. #define BIT_MASK_HPQ_LOW_TH_V1 0xfff
  16941. #define BIT_HPQ_LOW_TH_V1(x) \
  16942. (((x) & BIT_MASK_HPQ_LOW_TH_V1) << BIT_SHIFT_HPQ_LOW_TH_V1)
  16943. #define BITS_HPQ_LOW_TH_V1 (BIT_MASK_HPQ_LOW_TH_V1 << BIT_SHIFT_HPQ_LOW_TH_V1)
  16944. #define BIT_CLEAR_HPQ_LOW_TH_V1(x) ((x) & (~BITS_HPQ_LOW_TH_V1))
  16945. #define BIT_GET_HPQ_LOW_TH_V1(x) \
  16946. (((x) >> BIT_SHIFT_HPQ_LOW_TH_V1) & BIT_MASK_HPQ_LOW_TH_V1)
  16947. #define BIT_SET_HPQ_LOW_TH_V1(x, v) \
  16948. (BIT_CLEAR_HPQ_LOW_TH_V1(x) | BIT_HPQ_LOW_TH_V1(v))
  16949. #endif
  16950. #if (HALMAC_8814B_SUPPORT)
  16951. /* 2 REG_DMA_RQPN_INFO_PUB (Offset 0x0218) */
  16952. #define BIT_SHIFT_PUB_RSVD_PG 0
  16953. #define BIT_MASK_PUB_RSVD_PG 0xfff
  16954. #define BIT_PUB_RSVD_PG(x) \
  16955. (((x) & BIT_MASK_PUB_RSVD_PG) << BIT_SHIFT_PUB_RSVD_PG)
  16956. #define BITS_PUB_RSVD_PG (BIT_MASK_PUB_RSVD_PG << BIT_SHIFT_PUB_RSVD_PG)
  16957. #define BIT_CLEAR_PUB_RSVD_PG(x) ((x) & (~BITS_PUB_RSVD_PG))
  16958. #define BIT_GET_PUB_RSVD_PG(x) \
  16959. (((x) >> BIT_SHIFT_PUB_RSVD_PG) & BIT_MASK_PUB_RSVD_PG)
  16960. #define BIT_SET_PUB_RSVD_PG(x, v) \
  16961. (BIT_CLEAR_PUB_RSVD_PG(x) | BIT_PUB_RSVD_PG(v))
  16962. #endif
  16963. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  16964. /* 2 REG_TQPNT2 (Offset 0x021C) */
  16965. #define BIT_NPQ_INT_EN BIT(31)
  16966. #endif
  16967. #if (HALMAC_8814B_SUPPORT)
  16968. /* 2 REG_RQPN_CTRL_2_V1 (Offset 0x021C) */
  16969. #define BIT_LD_RQPN_V1 BIT(31)
  16970. #endif
  16971. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  16972. /* 2 REG_TQPNT2 (Offset 0x021C) */
  16973. #define BIT_SHIFT_EXQ_HIGH_TH 24
  16974. #define BIT_MASK_EXQ_HIGH_TH 0xff
  16975. #define BIT_EXQ_HIGH_TH(x) \
  16976. (((x) & BIT_MASK_EXQ_HIGH_TH) << BIT_SHIFT_EXQ_HIGH_TH)
  16977. #define BITS_EXQ_HIGH_TH (BIT_MASK_EXQ_HIGH_TH << BIT_SHIFT_EXQ_HIGH_TH)
  16978. #define BIT_CLEAR_EXQ_HIGH_TH(x) ((x) & (~BITS_EXQ_HIGH_TH))
  16979. #define BIT_GET_EXQ_HIGH_TH(x) \
  16980. (((x) >> BIT_SHIFT_EXQ_HIGH_TH) & BIT_MASK_EXQ_HIGH_TH)
  16981. #define BIT_SET_EXQ_HIGH_TH(x, v) \
  16982. (BIT_CLEAR_EXQ_HIGH_TH(x) | BIT_EXQ_HIGH_TH(v))
  16983. #define BIT_SHIFT_EXQ_LOW_TH 16
  16984. #define BIT_MASK_EXQ_LOW_TH 0xff
  16985. #define BIT_EXQ_LOW_TH(x) (((x) & BIT_MASK_EXQ_LOW_TH) << BIT_SHIFT_EXQ_LOW_TH)
  16986. #define BITS_EXQ_LOW_TH (BIT_MASK_EXQ_LOW_TH << BIT_SHIFT_EXQ_LOW_TH)
  16987. #define BIT_CLEAR_EXQ_LOW_TH(x) ((x) & (~BITS_EXQ_LOW_TH))
  16988. #define BIT_GET_EXQ_LOW_TH(x) \
  16989. (((x) >> BIT_SHIFT_EXQ_LOW_TH) & BIT_MASK_EXQ_LOW_TH)
  16990. #define BIT_SET_EXQ_LOW_TH(x, v) (BIT_CLEAR_EXQ_LOW_TH(x) | BIT_EXQ_LOW_TH(v))
  16991. #endif
  16992. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  16993. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  16994. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  16995. /* 2 REG_TQPNT2 (Offset 0x021C) */
  16996. #define BIT_SHIFT_NPQ_HIGH_TH_V1 16
  16997. #define BIT_MASK_NPQ_HIGH_TH_V1 0xfff
  16998. #define BIT_NPQ_HIGH_TH_V1(x) \
  16999. (((x) & BIT_MASK_NPQ_HIGH_TH_V1) << BIT_SHIFT_NPQ_HIGH_TH_V1)
  17000. #define BITS_NPQ_HIGH_TH_V1 \
  17001. (BIT_MASK_NPQ_HIGH_TH_V1 << BIT_SHIFT_NPQ_HIGH_TH_V1)
  17002. #define BIT_CLEAR_NPQ_HIGH_TH_V1(x) ((x) & (~BITS_NPQ_HIGH_TH_V1))
  17003. #define BIT_GET_NPQ_HIGH_TH_V1(x) \
  17004. (((x) >> BIT_SHIFT_NPQ_HIGH_TH_V1) & BIT_MASK_NPQ_HIGH_TH_V1)
  17005. #define BIT_SET_NPQ_HIGH_TH_V1(x, v) \
  17006. (BIT_CLEAR_NPQ_HIGH_TH_V1(x) | BIT_NPQ_HIGH_TH_V1(v))
  17007. #endif
  17008. #if (HALMAC_8814B_SUPPORT)
  17009. /* 2 REG_RQPN_CTRL_2_V1 (Offset 0x021C) */
  17010. #define BIT_CH16_PUBLIC_DIS BIT(16)
  17011. #define BIT_CH15_PUBLIC_DIS BIT(15)
  17012. #define BIT_CH14_PUBLIC_DIS BIT(14)
  17013. #define BIT_CH13_PUBLIC_DIS BIT(13)
  17014. #define BIT_CH12_PUBLIC_DIS BIT(12)
  17015. #define BIT_CH11_PUBLIC_DIS BIT(11)
  17016. #define BIT_CH10_PUBLIC_DIS BIT(10)
  17017. #define BIT_CH9_PUBLIC_DIS BIT(9)
  17018. #endif
  17019. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17020. /* 2 REG_TQPNT2 (Offset 0x021C) */
  17021. #define BIT_SHIFT_LPQ_HIGH_TH 8
  17022. #define BIT_MASK_LPQ_HIGH_TH 0xff
  17023. #define BIT_LPQ_HIGH_TH(x) \
  17024. (((x) & BIT_MASK_LPQ_HIGH_TH) << BIT_SHIFT_LPQ_HIGH_TH)
  17025. #define BITS_LPQ_HIGH_TH (BIT_MASK_LPQ_HIGH_TH << BIT_SHIFT_LPQ_HIGH_TH)
  17026. #define BIT_CLEAR_LPQ_HIGH_TH(x) ((x) & (~BITS_LPQ_HIGH_TH))
  17027. #define BIT_GET_LPQ_HIGH_TH(x) \
  17028. (((x) >> BIT_SHIFT_LPQ_HIGH_TH) & BIT_MASK_LPQ_HIGH_TH)
  17029. #define BIT_SET_LPQ_HIGH_TH(x, v) \
  17030. (BIT_CLEAR_LPQ_HIGH_TH(x) | BIT_LPQ_HIGH_TH(v))
  17031. #endif
  17032. #if (HALMAC_8814B_SUPPORT)
  17033. /* 2 REG_RQPN_CTRL_2_V1 (Offset 0x021C) */
  17034. #define BIT_CH8_PUBLIC_DIS BIT(8)
  17035. #define BIT_CH7_PUBLIC_DIS BIT(7)
  17036. #define BIT_CH6_PUBLIC_DIS BIT(6)
  17037. #define BIT_CH5_PUBLIC_DIS BIT(5)
  17038. #define BIT_CH4_PUBLIC_DIS BIT(4)
  17039. #define BIT_CH3_PUBLIC_DIS BIT(3)
  17040. #define BIT_CH2_PUBLIC_DIS BIT(2)
  17041. #define BIT_CH1_PUBLIC_DIS BIT(1)
  17042. #endif
  17043. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17044. /* 2 REG_TQPNT2 (Offset 0x021C) */
  17045. #define BIT_SHIFT_LPQ_LOW_TH 0
  17046. #define BIT_MASK_LPQ_LOW_TH 0xff
  17047. #define BIT_LPQ_LOW_TH(x) (((x) & BIT_MASK_LPQ_LOW_TH) << BIT_SHIFT_LPQ_LOW_TH)
  17048. #define BITS_LPQ_LOW_TH (BIT_MASK_LPQ_LOW_TH << BIT_SHIFT_LPQ_LOW_TH)
  17049. #define BIT_CLEAR_LPQ_LOW_TH(x) ((x) & (~BITS_LPQ_LOW_TH))
  17050. #define BIT_GET_LPQ_LOW_TH(x) \
  17051. (((x) >> BIT_SHIFT_LPQ_LOW_TH) & BIT_MASK_LPQ_LOW_TH)
  17052. #define BIT_SET_LPQ_LOW_TH(x, v) (BIT_CLEAR_LPQ_LOW_TH(x) | BIT_LPQ_LOW_TH(v))
  17053. #endif
  17054. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17055. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17056. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17057. /* 2 REG_TQPNT2 (Offset 0x021C) */
  17058. #define BIT_SHIFT_NPQ_LOW_TH_V1 0
  17059. #define BIT_MASK_NPQ_LOW_TH_V1 0xfff
  17060. #define BIT_NPQ_LOW_TH_V1(x) \
  17061. (((x) & BIT_MASK_NPQ_LOW_TH_V1) << BIT_SHIFT_NPQ_LOW_TH_V1)
  17062. #define BITS_NPQ_LOW_TH_V1 (BIT_MASK_NPQ_LOW_TH_V1 << BIT_SHIFT_NPQ_LOW_TH_V1)
  17063. #define BIT_CLEAR_NPQ_LOW_TH_V1(x) ((x) & (~BITS_NPQ_LOW_TH_V1))
  17064. #define BIT_GET_NPQ_LOW_TH_V1(x) \
  17065. (((x) >> BIT_SHIFT_NPQ_LOW_TH_V1) & BIT_MASK_NPQ_LOW_TH_V1)
  17066. #define BIT_SET_NPQ_LOW_TH_V1(x, v) \
  17067. (BIT_CLEAR_NPQ_LOW_TH_V1(x) | BIT_NPQ_LOW_TH_V1(v))
  17068. #endif
  17069. #if (HALMAC_8814B_SUPPORT)
  17070. /* 2 REG_RQPN_CTRL_2_V1 (Offset 0x021C) */
  17071. #define BIT_CH0_PUBLIC_DIS BIT(0)
  17072. #endif
  17073. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  17074. /* 2 REG_TQPNT3 (Offset 0x0220) */
  17075. #define BIT_LPQ_INT_EN BIT(31)
  17076. #endif
  17077. #if (HALMAC_8814B_SUPPORT)
  17078. /* 2 REG_BCN_CTRL_2 (Offset 0x0220) */
  17079. #define BIT_BCN0_EXT_VALID BIT(31)
  17080. #endif
  17081. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17082. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17083. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17084. /* 2 REG_TQPNT3 (Offset 0x0220) */
  17085. #define BIT_SHIFT_LPQ_HIGH_TH_V1 16
  17086. #define BIT_MASK_LPQ_HIGH_TH_V1 0xfff
  17087. #define BIT_LPQ_HIGH_TH_V1(x) \
  17088. (((x) & BIT_MASK_LPQ_HIGH_TH_V1) << BIT_SHIFT_LPQ_HIGH_TH_V1)
  17089. #define BITS_LPQ_HIGH_TH_V1 \
  17090. (BIT_MASK_LPQ_HIGH_TH_V1 << BIT_SHIFT_LPQ_HIGH_TH_V1)
  17091. #define BIT_CLEAR_LPQ_HIGH_TH_V1(x) ((x) & (~BITS_LPQ_HIGH_TH_V1))
  17092. #define BIT_GET_LPQ_HIGH_TH_V1(x) \
  17093. (((x) >> BIT_SHIFT_LPQ_HIGH_TH_V1) & BIT_MASK_LPQ_HIGH_TH_V1)
  17094. #define BIT_SET_LPQ_HIGH_TH_V1(x, v) \
  17095. (BIT_CLEAR_LPQ_HIGH_TH_V1(x) | BIT_LPQ_HIGH_TH_V1(v))
  17096. #endif
  17097. #if (HALMAC_8814B_SUPPORT)
  17098. /* 2 REG_BCN_CTRL_2 (Offset 0x0220) */
  17099. #define BIT_SHIFT_BCN0_EXT_HEAD 16
  17100. #define BIT_MASK_BCN0_EXT_HEAD 0xfff
  17101. #define BIT_BCN0_EXT_HEAD(x) \
  17102. (((x) & BIT_MASK_BCN0_EXT_HEAD) << BIT_SHIFT_BCN0_EXT_HEAD)
  17103. #define BITS_BCN0_EXT_HEAD (BIT_MASK_BCN0_EXT_HEAD << BIT_SHIFT_BCN0_EXT_HEAD)
  17104. #define BIT_CLEAR_BCN0_EXT_HEAD(x) ((x) & (~BITS_BCN0_EXT_HEAD))
  17105. #define BIT_GET_BCN0_EXT_HEAD(x) \
  17106. (((x) >> BIT_SHIFT_BCN0_EXT_HEAD) & BIT_MASK_BCN0_EXT_HEAD)
  17107. #define BIT_SET_BCN0_EXT_HEAD(x, v) \
  17108. (BIT_CLEAR_BCN0_EXT_HEAD(x) | BIT_BCN0_EXT_HEAD(v))
  17109. #define BIT_SHIFT_TXPKTNUM_CH4_7 16
  17110. #define BIT_MASK_TXPKTNUM_CH4_7 0xfff
  17111. #define BIT_TXPKTNUM_CH4_7(x) \
  17112. (((x) & BIT_MASK_TXPKTNUM_CH4_7) << BIT_SHIFT_TXPKTNUM_CH4_7)
  17113. #define BITS_TXPKTNUM_CH4_7 \
  17114. (BIT_MASK_TXPKTNUM_CH4_7 << BIT_SHIFT_TXPKTNUM_CH4_7)
  17115. #define BIT_CLEAR_TXPKTNUM_CH4_7(x) ((x) & (~BITS_TXPKTNUM_CH4_7))
  17116. #define BIT_GET_TXPKTNUM_CH4_7(x) \
  17117. (((x) >> BIT_SHIFT_TXPKTNUM_CH4_7) & BIT_MASK_TXPKTNUM_CH4_7)
  17118. #define BIT_SET_TXPKTNUM_CH4_7(x, v) \
  17119. (BIT_CLEAR_TXPKTNUM_CH4_7(x) | BIT_TXPKTNUM_CH4_7(v))
  17120. #define BIT_SHIFT_TXPKTNUM_CH12 16
  17121. #define BIT_MASK_TXPKTNUM_CH12 0xfff
  17122. #define BIT_TXPKTNUM_CH12(x) \
  17123. (((x) & BIT_MASK_TXPKTNUM_CH12) << BIT_SHIFT_TXPKTNUM_CH12)
  17124. #define BITS_TXPKTNUM_CH12 (BIT_MASK_TXPKTNUM_CH12 << BIT_SHIFT_TXPKTNUM_CH12)
  17125. #define BIT_CLEAR_TXPKTNUM_CH12(x) ((x) & (~BITS_TXPKTNUM_CH12))
  17126. #define BIT_GET_TXPKTNUM_CH12(x) \
  17127. (((x) >> BIT_SHIFT_TXPKTNUM_CH12) & BIT_MASK_TXPKTNUM_CH12)
  17128. #define BIT_SET_TXPKTNUM_CH12(x, v) \
  17129. (BIT_CLEAR_TXPKTNUM_CH12(x) | BIT_TXPKTNUM_CH12(v))
  17130. #define BIT_SHIFT_TXPKTNUM_CH14_15 16
  17131. #define BIT_MASK_TXPKTNUM_CH14_15 0xfff
  17132. #define BIT_TXPKTNUM_CH14_15(x) \
  17133. (((x) & BIT_MASK_TXPKTNUM_CH14_15) << BIT_SHIFT_TXPKTNUM_CH14_15)
  17134. #define BITS_TXPKTNUM_CH14_15 \
  17135. (BIT_MASK_TXPKTNUM_CH14_15 << BIT_SHIFT_TXPKTNUM_CH14_15)
  17136. #define BIT_CLEAR_TXPKTNUM_CH14_15(x) ((x) & (~BITS_TXPKTNUM_CH14_15))
  17137. #define BIT_GET_TXPKTNUM_CH14_15(x) \
  17138. (((x) >> BIT_SHIFT_TXPKTNUM_CH14_15) & BIT_MASK_TXPKTNUM_CH14_15)
  17139. #define BIT_SET_TXPKTNUM_CH14_15(x, v) \
  17140. (BIT_CLEAR_TXPKTNUM_CH14_15(x) | BIT_TXPKTNUM_CH14_15(v))
  17141. #define BIT_BCN4_VALID BIT(15)
  17142. #endif
  17143. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17144. /* 2 REG_TDE_DEBUG (Offset 0x0220) */
  17145. #define BIT_SHIFT_TDE_DEBUG 0
  17146. #define BIT_MASK_TDE_DEBUG 0xffffffffL
  17147. #define BIT_TDE_DEBUG(x) (((x) & BIT_MASK_TDE_DEBUG) << BIT_SHIFT_TDE_DEBUG)
  17148. #define BITS_TDE_DEBUG (BIT_MASK_TDE_DEBUG << BIT_SHIFT_TDE_DEBUG)
  17149. #define BIT_CLEAR_TDE_DEBUG(x) ((x) & (~BITS_TDE_DEBUG))
  17150. #define BIT_GET_TDE_DEBUG(x) (((x) >> BIT_SHIFT_TDE_DEBUG) & BIT_MASK_TDE_DEBUG)
  17151. #define BIT_SET_TDE_DEBUG(x, v) (BIT_CLEAR_TDE_DEBUG(x) | BIT_TDE_DEBUG(v))
  17152. #endif
  17153. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17154. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17155. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17156. /* 2 REG_TQPNT3 (Offset 0x0220) */
  17157. #define BIT_SHIFT_LPQ_LOW_TH_V1 0
  17158. #define BIT_MASK_LPQ_LOW_TH_V1 0xfff
  17159. #define BIT_LPQ_LOW_TH_V1(x) \
  17160. (((x) & BIT_MASK_LPQ_LOW_TH_V1) << BIT_SHIFT_LPQ_LOW_TH_V1)
  17161. #define BITS_LPQ_LOW_TH_V1 (BIT_MASK_LPQ_LOW_TH_V1 << BIT_SHIFT_LPQ_LOW_TH_V1)
  17162. #define BIT_CLEAR_LPQ_LOW_TH_V1(x) ((x) & (~BITS_LPQ_LOW_TH_V1))
  17163. #define BIT_GET_LPQ_LOW_TH_V1(x) \
  17164. (((x) >> BIT_SHIFT_LPQ_LOW_TH_V1) & BIT_MASK_LPQ_LOW_TH_V1)
  17165. #define BIT_SET_LPQ_LOW_TH_V1(x, v) \
  17166. (BIT_CLEAR_LPQ_LOW_TH_V1(x) | BIT_LPQ_LOW_TH_V1(v))
  17167. #endif
  17168. #if (HALMAC_8814B_SUPPORT)
  17169. /* 2 REG_BCN_CTRL_2 (Offset 0x0220) */
  17170. #define BIT_SHIFT_BCN4_HEAD 0
  17171. #define BIT_MASK_BCN4_HEAD 0xfff
  17172. #define BIT_BCN4_HEAD(x) (((x) & BIT_MASK_BCN4_HEAD) << BIT_SHIFT_BCN4_HEAD)
  17173. #define BITS_BCN4_HEAD (BIT_MASK_BCN4_HEAD << BIT_SHIFT_BCN4_HEAD)
  17174. #define BIT_CLEAR_BCN4_HEAD(x) ((x) & (~BITS_BCN4_HEAD))
  17175. #define BIT_GET_BCN4_HEAD(x) (((x) >> BIT_SHIFT_BCN4_HEAD) & BIT_MASK_BCN4_HEAD)
  17176. #define BIT_SET_BCN4_HEAD(x, v) (BIT_CLEAR_BCN4_HEAD(x) | BIT_BCN4_HEAD(v))
  17177. #define BIT_SHIFT_TXPKTNUM_CH0_3 0
  17178. #define BIT_MASK_TXPKTNUM_CH0_3 0xfff
  17179. #define BIT_TXPKTNUM_CH0_3(x) \
  17180. (((x) & BIT_MASK_TXPKTNUM_CH0_3) << BIT_SHIFT_TXPKTNUM_CH0_3)
  17181. #define BITS_TXPKTNUM_CH0_3 \
  17182. (BIT_MASK_TXPKTNUM_CH0_3 << BIT_SHIFT_TXPKTNUM_CH0_3)
  17183. #define BIT_CLEAR_TXPKTNUM_CH0_3(x) ((x) & (~BITS_TXPKTNUM_CH0_3))
  17184. #define BIT_GET_TXPKTNUM_CH0_3(x) \
  17185. (((x) >> BIT_SHIFT_TXPKTNUM_CH0_3) & BIT_MASK_TXPKTNUM_CH0_3)
  17186. #define BIT_SET_TXPKTNUM_CH0_3(x, v) \
  17187. (BIT_CLEAR_TXPKTNUM_CH0_3(x) | BIT_TXPKTNUM_CH0_3(v))
  17188. #define BIT_SHIFT_TXPKTNUM_CH8_11 0
  17189. #define BIT_MASK_TXPKTNUM_CH8_11 0xfff
  17190. #define BIT_TXPKTNUM_CH8_11(x) \
  17191. (((x) & BIT_MASK_TXPKTNUM_CH8_11) << BIT_SHIFT_TXPKTNUM_CH8_11)
  17192. #define BITS_TXPKTNUM_CH8_11 \
  17193. (BIT_MASK_TXPKTNUM_CH8_11 << BIT_SHIFT_TXPKTNUM_CH8_11)
  17194. #define BIT_CLEAR_TXPKTNUM_CH8_11(x) ((x) & (~BITS_TXPKTNUM_CH8_11))
  17195. #define BIT_GET_TXPKTNUM_CH8_11(x) \
  17196. (((x) >> BIT_SHIFT_TXPKTNUM_CH8_11) & BIT_MASK_TXPKTNUM_CH8_11)
  17197. #define BIT_SET_TXPKTNUM_CH8_11(x, v) \
  17198. (BIT_CLEAR_TXPKTNUM_CH8_11(x) | BIT_TXPKTNUM_CH8_11(v))
  17199. #define BIT_SHIFT_TXPKTNUM_CH13 0
  17200. #define BIT_MASK_TXPKTNUM_CH13 0xfff
  17201. #define BIT_TXPKTNUM_CH13(x) \
  17202. (((x) & BIT_MASK_TXPKTNUM_CH13) << BIT_SHIFT_TXPKTNUM_CH13)
  17203. #define BITS_TXPKTNUM_CH13 (BIT_MASK_TXPKTNUM_CH13 << BIT_SHIFT_TXPKTNUM_CH13)
  17204. #define BIT_CLEAR_TXPKTNUM_CH13(x) ((x) & (~BITS_TXPKTNUM_CH13))
  17205. #define BIT_GET_TXPKTNUM_CH13(x) \
  17206. (((x) >> BIT_SHIFT_TXPKTNUM_CH13) & BIT_MASK_TXPKTNUM_CH13)
  17207. #define BIT_SET_TXPKTNUM_CH13(x, v) \
  17208. (BIT_CLEAR_TXPKTNUM_CH13(x) | BIT_TXPKTNUM_CH13(v))
  17209. #define BIT_SHIFT_TXPKTNUM_CH16 0
  17210. #define BIT_MASK_TXPKTNUM_CH16 0xfff
  17211. #define BIT_TXPKTNUM_CH16(x) \
  17212. (((x) & BIT_MASK_TXPKTNUM_CH16) << BIT_SHIFT_TXPKTNUM_CH16)
  17213. #define BITS_TXPKTNUM_CH16 (BIT_MASK_TXPKTNUM_CH16 << BIT_SHIFT_TXPKTNUM_CH16)
  17214. #define BIT_CLEAR_TXPKTNUM_CH16(x) ((x) & (~BITS_TXPKTNUM_CH16))
  17215. #define BIT_GET_TXPKTNUM_CH16(x) \
  17216. (((x) >> BIT_SHIFT_TXPKTNUM_CH16) & BIT_MASK_TXPKTNUM_CH16)
  17217. #define BIT_SET_TXPKTNUM_CH16(x, v) \
  17218. (BIT_CLEAR_TXPKTNUM_CH16(x) | BIT_TXPKTNUM_CH16(v))
  17219. #endif
  17220. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  17221. /* 2 REG_TQPNT4 (Offset 0x0224) */
  17222. #define BIT_EXQ_INT_EN BIT(31)
  17223. #endif
  17224. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17225. /* 2 REG_AUTO_LLT (Offset 0x0224) */
  17226. #define BIT_SHIFT_TXPKTNUM_V1 24
  17227. #define BIT_MASK_TXPKTNUM_V1 0xff
  17228. #define BIT_TXPKTNUM_V1(x) \
  17229. (((x) & BIT_MASK_TXPKTNUM_V1) << BIT_SHIFT_TXPKTNUM_V1)
  17230. #define BITS_TXPKTNUM_V1 (BIT_MASK_TXPKTNUM_V1 << BIT_SHIFT_TXPKTNUM_V1)
  17231. #define BIT_CLEAR_TXPKTNUM_V1(x) ((x) & (~BITS_TXPKTNUM_V1))
  17232. #define BIT_GET_TXPKTNUM_V1(x) \
  17233. (((x) >> BIT_SHIFT_TXPKTNUM_V1) & BIT_MASK_TXPKTNUM_V1)
  17234. #define BIT_SET_TXPKTNUM_V1(x, v) \
  17235. (BIT_CLEAR_TXPKTNUM_V1(x) | BIT_TXPKTNUM_V1(v))
  17236. #define BIT_TDE_DBG_SEL BIT(23)
  17237. #endif
  17238. #if (HALMAC_8192F_SUPPORT)
  17239. /* 2 REG_AUTO_LLT (Offset 0x0224) */
  17240. #define BIT_MASK_QSEL_DIFF BIT(22)
  17241. #endif
  17242. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17243. /* 2 REG_AUTO_LLT (Offset 0x0224) */
  17244. #define BIT_AUTO_INIT_LLT BIT(16)
  17245. #endif
  17246. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17247. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17248. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17249. /* 2 REG_TQPNT4 (Offset 0x0224) */
  17250. #define BIT_SHIFT_EXQ_HIGH_TH_V1 16
  17251. #define BIT_MASK_EXQ_HIGH_TH_V1 0xfff
  17252. #define BIT_EXQ_HIGH_TH_V1(x) \
  17253. (((x) & BIT_MASK_EXQ_HIGH_TH_V1) << BIT_SHIFT_EXQ_HIGH_TH_V1)
  17254. #define BITS_EXQ_HIGH_TH_V1 \
  17255. (BIT_MASK_EXQ_HIGH_TH_V1 << BIT_SHIFT_EXQ_HIGH_TH_V1)
  17256. #define BIT_CLEAR_EXQ_HIGH_TH_V1(x) ((x) & (~BITS_EXQ_HIGH_TH_V1))
  17257. #define BIT_GET_EXQ_HIGH_TH_V1(x) \
  17258. (((x) >> BIT_SHIFT_EXQ_HIGH_TH_V1) & BIT_MASK_EXQ_HIGH_TH_V1)
  17259. #define BIT_SET_EXQ_HIGH_TH_V1(x, v) \
  17260. (BIT_CLEAR_EXQ_HIGH_TH_V1(x) | BIT_EXQ_HIGH_TH_V1(v))
  17261. #endif
  17262. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17263. /* 2 REG_AUTO_LLT (Offset 0x0224) */
  17264. #define BIT_SHIFT_TX_OQT_HE_FREE_SPACE 8
  17265. #define BIT_MASK_TX_OQT_HE_FREE_SPACE 0xff
  17266. #define BIT_TX_OQT_HE_FREE_SPACE(x) \
  17267. (((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE) \
  17268. << BIT_SHIFT_TX_OQT_HE_FREE_SPACE)
  17269. #define BITS_TX_OQT_HE_FREE_SPACE \
  17270. (BIT_MASK_TX_OQT_HE_FREE_SPACE << BIT_SHIFT_TX_OQT_HE_FREE_SPACE)
  17271. #define BIT_CLEAR_TX_OQT_HE_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_HE_FREE_SPACE))
  17272. #define BIT_GET_TX_OQT_HE_FREE_SPACE(x) \
  17273. (((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE) & \
  17274. BIT_MASK_TX_OQT_HE_FREE_SPACE)
  17275. #define BIT_SET_TX_OQT_HE_FREE_SPACE(x, v) \
  17276. (BIT_CLEAR_TX_OQT_HE_FREE_SPACE(x) | BIT_TX_OQT_HE_FREE_SPACE(v))
  17277. #define BIT_SHIFT_TX_OQT_NL_FREE_SPACE 0
  17278. #define BIT_MASK_TX_OQT_NL_FREE_SPACE 0xff
  17279. #define BIT_TX_OQT_NL_FREE_SPACE(x) \
  17280. (((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE) \
  17281. << BIT_SHIFT_TX_OQT_NL_FREE_SPACE)
  17282. #define BITS_TX_OQT_NL_FREE_SPACE \
  17283. (BIT_MASK_TX_OQT_NL_FREE_SPACE << BIT_SHIFT_TX_OQT_NL_FREE_SPACE)
  17284. #define BIT_CLEAR_TX_OQT_NL_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_NL_FREE_SPACE))
  17285. #define BIT_GET_TX_OQT_NL_FREE_SPACE(x) \
  17286. (((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE) & \
  17287. BIT_MASK_TX_OQT_NL_FREE_SPACE)
  17288. #define BIT_SET_TX_OQT_NL_FREE_SPACE(x, v) \
  17289. (BIT_CLEAR_TX_OQT_NL_FREE_SPACE(x) | BIT_TX_OQT_NL_FREE_SPACE(v))
  17290. #endif
  17291. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17292. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17293. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17294. /* 2 REG_TQPNT4 (Offset 0x0224) */
  17295. #define BIT_SHIFT_EXQ_LOW_TH_V1 0
  17296. #define BIT_MASK_EXQ_LOW_TH_V1 0xfff
  17297. #define BIT_EXQ_LOW_TH_V1(x) \
  17298. (((x) & BIT_MASK_EXQ_LOW_TH_V1) << BIT_SHIFT_EXQ_LOW_TH_V1)
  17299. #define BITS_EXQ_LOW_TH_V1 (BIT_MASK_EXQ_LOW_TH_V1 << BIT_SHIFT_EXQ_LOW_TH_V1)
  17300. #define BIT_CLEAR_EXQ_LOW_TH_V1(x) ((x) & (~BITS_EXQ_LOW_TH_V1))
  17301. #define BIT_GET_EXQ_LOW_TH_V1(x) \
  17302. (((x) >> BIT_SHIFT_EXQ_LOW_TH_V1) & BIT_MASK_EXQ_LOW_TH_V1)
  17303. #define BIT_SET_EXQ_LOW_TH_V1(x, v) \
  17304. (BIT_CLEAR_EXQ_LOW_TH_V1(x) | BIT_EXQ_LOW_TH_V1(v))
  17305. #endif
  17306. #if (HALMAC_8192F_SUPPORT)
  17307. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17308. #define BIT_SHIFT_BCN_HEAD_2 24
  17309. #define BIT_MASK_BCN_HEAD_2 0xff
  17310. #define BIT_BCN_HEAD_2(x) (((x) & BIT_MASK_BCN_HEAD_2) << BIT_SHIFT_BCN_HEAD_2)
  17311. #define BITS_BCN_HEAD_2 (BIT_MASK_BCN_HEAD_2 << BIT_SHIFT_BCN_HEAD_2)
  17312. #define BIT_CLEAR_BCN_HEAD_2(x) ((x) & (~BITS_BCN_HEAD_2))
  17313. #define BIT_GET_BCN_HEAD_2(x) \
  17314. (((x) >> BIT_SHIFT_BCN_HEAD_2) & BIT_MASK_BCN_HEAD_2)
  17315. #define BIT_SET_BCN_HEAD_2(x, v) (BIT_CLEAR_BCN_HEAD_2(x) | BIT_BCN_HEAD_2(v))
  17316. #endif
  17317. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  17318. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17319. #define BIT_SW_BCN_SEL BIT(20)
  17320. #endif
  17321. #if (HALMAC_8192F_SUPPORT)
  17322. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17323. #define BIT_SHIFT_SW_BCN_SEL_V1 20
  17324. #define BIT_MASK_SW_BCN_SEL_V1 0x3
  17325. #define BIT_SW_BCN_SEL_V1(x) \
  17326. (((x) & BIT_MASK_SW_BCN_SEL_V1) << BIT_SHIFT_SW_BCN_SEL_V1)
  17327. #define BITS_SW_BCN_SEL_V1 (BIT_MASK_SW_BCN_SEL_V1 << BIT_SHIFT_SW_BCN_SEL_V1)
  17328. #define BIT_CLEAR_SW_BCN_SEL_V1(x) ((x) & (~BITS_SW_BCN_SEL_V1))
  17329. #define BIT_GET_SW_BCN_SEL_V1(x) \
  17330. (((x) >> BIT_SHIFT_SW_BCN_SEL_V1) & BIT_MASK_SW_BCN_SEL_V1)
  17331. #define BIT_SET_SW_BCN_SEL_V1(x, v) \
  17332. (BIT_CLEAR_SW_BCN_SEL_V1(x) | BIT_SW_BCN_SEL_V1(v))
  17333. #define BIT_BCN_VALID_2 BIT(18)
  17334. #endif
  17335. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17336. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17337. #define BIT_SW_BCN_SEL_EN BIT(17)
  17338. #define BIT_BCN_VALID_1 BIT(16)
  17339. #endif
  17340. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  17341. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  17342. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17343. #define BIT_SHIFT_TXPKTNUM_H 16
  17344. #define BIT_MASK_TXPKTNUM_H 0xffff
  17345. #define BIT_TXPKTNUM_H(x) (((x) & BIT_MASK_TXPKTNUM_H) << BIT_SHIFT_TXPKTNUM_H)
  17346. #define BITS_TXPKTNUM_H (BIT_MASK_TXPKTNUM_H << BIT_SHIFT_TXPKTNUM_H)
  17347. #define BIT_CLEAR_TXPKTNUM_H(x) ((x) & (~BITS_TXPKTNUM_H))
  17348. #define BIT_GET_TXPKTNUM_H(x) \
  17349. (((x) >> BIT_SHIFT_TXPKTNUM_H) & BIT_MASK_TXPKTNUM_H)
  17350. #define BIT_SET_TXPKTNUM_H(x, v) (BIT_CLEAR_TXPKTNUM_H(x) | BIT_TXPKTNUM_H(v))
  17351. #endif
  17352. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  17353. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17354. #define BIT_SHIFT_TXPKTNUM_H_V2 16
  17355. #define BIT_MASK_TXPKTNUM_H_V2 0xfff
  17356. #define BIT_TXPKTNUM_H_V2(x) \
  17357. (((x) & BIT_MASK_TXPKTNUM_H_V2) << BIT_SHIFT_TXPKTNUM_H_V2)
  17358. #define BITS_TXPKTNUM_H_V2 (BIT_MASK_TXPKTNUM_H_V2 << BIT_SHIFT_TXPKTNUM_H_V2)
  17359. #define BIT_CLEAR_TXPKTNUM_H_V2(x) ((x) & (~BITS_TXPKTNUM_H_V2))
  17360. #define BIT_GET_TXPKTNUM_H_V2(x) \
  17361. (((x) >> BIT_SHIFT_TXPKTNUM_H_V2) & BIT_MASK_TXPKTNUM_H_V2)
  17362. #define BIT_SET_TXPKTNUM_H_V2(x, v) \
  17363. (BIT_CLEAR_TXPKTNUM_H_V2(x) | BIT_TXPKTNUM_H_V2(v))
  17364. #endif
  17365. #if (HALMAC_8192F_SUPPORT)
  17366. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17367. #define BIT_ADJUSTABLE_SIZE_EN BIT(15)
  17368. #endif
  17369. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17370. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17371. #define BIT_SHIFT_BCN_HEAD_1 8
  17372. #define BIT_MASK_BCN_HEAD_1 0xff
  17373. #define BIT_BCN_HEAD_1(x) (((x) & BIT_MASK_BCN_HEAD_1) << BIT_SHIFT_BCN_HEAD_1)
  17374. #define BITS_BCN_HEAD_1 (BIT_MASK_BCN_HEAD_1 << BIT_SHIFT_BCN_HEAD_1)
  17375. #define BIT_CLEAR_BCN_HEAD_1(x) ((x) & (~BITS_BCN_HEAD_1))
  17376. #define BIT_GET_BCN_HEAD_1(x) \
  17377. (((x) >> BIT_SHIFT_BCN_HEAD_1) & BIT_MASK_BCN_HEAD_1)
  17378. #define BIT_SET_BCN_HEAD_1(x, v) (BIT_CLEAR_BCN_HEAD_1(x) | BIT_BCN_HEAD_1(v))
  17379. #endif
  17380. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  17381. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17382. #define BIT_RST_PGSUB_CNT BIT(1)
  17383. #endif
  17384. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  17385. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17386. #define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO 0
  17387. #define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO 0xff
  17388. #define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO(x) \
  17389. (((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO) \
  17390. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO)
  17391. #define BITS_MAX_TX_PKT_FOR_USB_AND_SDIO \
  17392. (BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO \
  17393. << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO)
  17394. #define BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO(x) \
  17395. ((x) & (~BITS_MAX_TX_PKT_FOR_USB_AND_SDIO))
  17396. #define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO(x) \
  17397. (((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO) & \
  17398. BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO)
  17399. #define BIT_SET_MAX_TX_PKT_FOR_USB_AND_SDIO(x, v) \
  17400. (BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO(x) | \
  17401. BIT_MAX_TX_PKT_FOR_USB_AND_SDIO(v))
  17402. #endif
  17403. #if (HALMAC_8192F_SUPPORT)
  17404. /* 2 REG_DWBCN1_CTRL (Offset 0x0228) */
  17405. #define BIT_SHIFT_ALIGNMENT_SIZE 0
  17406. #define BIT_MASK_ALIGNMENT_SIZE 0xfff
  17407. #define BIT_ALIGNMENT_SIZE(x) \
  17408. (((x) & BIT_MASK_ALIGNMENT_SIZE) << BIT_SHIFT_ALIGNMENT_SIZE)
  17409. #define BITS_ALIGNMENT_SIZE \
  17410. (BIT_MASK_ALIGNMENT_SIZE << BIT_SHIFT_ALIGNMENT_SIZE)
  17411. #define BIT_CLEAR_ALIGNMENT_SIZE(x) ((x) & (~BITS_ALIGNMENT_SIZE))
  17412. #define BIT_GET_ALIGNMENT_SIZE(x) \
  17413. (((x) >> BIT_SHIFT_ALIGNMENT_SIZE) & BIT_MASK_ALIGNMENT_SIZE)
  17414. #define BIT_SET_ALIGNMENT_SIZE(x, v) \
  17415. (BIT_CLEAR_ALIGNMENT_SIZE(x) | BIT_ALIGNMENT_SIZE(v))
  17416. #endif
  17417. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  17418. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17419. #define BIT_SHIFT_TXPKTNUM_H_V1 0
  17420. #define BIT_MASK_TXPKTNUM_H_V1 0xffff
  17421. #define BIT_TXPKTNUM_H_V1(x) \
  17422. (((x) & BIT_MASK_TXPKTNUM_H_V1) << BIT_SHIFT_TXPKTNUM_H_V1)
  17423. #define BITS_TXPKTNUM_H_V1 (BIT_MASK_TXPKTNUM_H_V1 << BIT_SHIFT_TXPKTNUM_H_V1)
  17424. #define BIT_CLEAR_TXPKTNUM_H_V1(x) ((x) & (~BITS_TXPKTNUM_H_V1))
  17425. #define BIT_GET_TXPKTNUM_H_V1(x) \
  17426. (((x) >> BIT_SHIFT_TXPKTNUM_H_V1) & BIT_MASK_TXPKTNUM_H_V1)
  17427. #define BIT_SET_TXPKTNUM_H_V1(x, v) \
  17428. (BIT_CLEAR_TXPKTNUM_H_V1(x) | BIT_TXPKTNUM_H_V1(v))
  17429. #endif
  17430. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  17431. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17432. #define BIT_SHIFT_TXPKTNUM_V3 0
  17433. #define BIT_MASK_TXPKTNUM_V3 0xfff
  17434. #define BIT_TXPKTNUM_V3(x) \
  17435. (((x) & BIT_MASK_TXPKTNUM_V3) << BIT_SHIFT_TXPKTNUM_V3)
  17436. #define BITS_TXPKTNUM_V3 (BIT_MASK_TXPKTNUM_V3 << BIT_SHIFT_TXPKTNUM_V3)
  17437. #define BIT_CLEAR_TXPKTNUM_V3(x) ((x) & (~BITS_TXPKTNUM_V3))
  17438. #define BIT_GET_TXPKTNUM_V3(x) \
  17439. (((x) >> BIT_SHIFT_TXPKTNUM_V3) & BIT_MASK_TXPKTNUM_V3)
  17440. #define BIT_SET_TXPKTNUM_V3(x, v) \
  17441. (BIT_CLEAR_TXPKTNUM_V3(x) | BIT_TXPKTNUM_V3(v))
  17442. #define BIT_PGSUB_CNT_EN BIT(0)
  17443. #endif
  17444. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17445. HALMAC_8822B_SUPPORT)
  17446. /* 2 REG_RQPN_CTRL_1 (Offset 0x0228) */
  17447. #define BIT_SHIFT_TXPKTNUM_V2 0
  17448. #define BIT_MASK_TXPKTNUM_V2 0xffff
  17449. #define BIT_TXPKTNUM_V2(x) \
  17450. (((x) & BIT_MASK_TXPKTNUM_V2) << BIT_SHIFT_TXPKTNUM_V2)
  17451. #define BITS_TXPKTNUM_V2 (BIT_MASK_TXPKTNUM_V2 << BIT_SHIFT_TXPKTNUM_V2)
  17452. #define BIT_CLEAR_TXPKTNUM_V2(x) ((x) & (~BITS_TXPKTNUM_V2))
  17453. #define BIT_GET_TXPKTNUM_V2(x) \
  17454. (((x) >> BIT_SHIFT_TXPKTNUM_V2) & BIT_MASK_TXPKTNUM_V2)
  17455. #define BIT_SET_TXPKTNUM_V2(x, v) \
  17456. (BIT_CLEAR_TXPKTNUM_V2(x) | BIT_TXPKTNUM_V2(v))
  17457. #endif
  17458. #if (HALMAC_8198F_SUPPORT)
  17459. /* 2 REG_RQPN_CTRL_2 (Offset 0x022C) */
  17460. #define BIT_EX2Q_PUBLIC_DIS_V1 BIT(21)
  17461. #define BIT_EX1Q_PUBLIC_DIS_V1 BIT(20)
  17462. #endif
  17463. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17464. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17465. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17466. /* 2 REG_RQPN_CTRL_2 (Offset 0x022C) */
  17467. #define BIT_EXQ_PUBLIC_DIS_V1 BIT(19)
  17468. #define BIT_NPQ_PUBLIC_DIS_V1 BIT(18)
  17469. #define BIT_LPQ_PUBLIC_DIS_V1 BIT(17)
  17470. #define BIT_HPQ_PUBLIC_DIS_V1 BIT(16)
  17471. #endif
  17472. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  17473. /* 2 REG_RQPN_CTRL_2 (Offset 0x022C) */
  17474. #define BIT_SDIO_TXAGG_ALIGN_ADJUST_EN BIT(15)
  17475. #define BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE 0
  17476. #define BIT_MASK_SDIO_TXAGG_ALIGN_SIZE 0xfff
  17477. #define BIT_SDIO_TXAGG_ALIGN_SIZE(x) \
  17478. (((x) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE) \
  17479. << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE)
  17480. #define BITS_SDIO_TXAGG_ALIGN_SIZE \
  17481. (BIT_MASK_SDIO_TXAGG_ALIGN_SIZE << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE)
  17482. #define BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE(x) ((x) & (~BITS_SDIO_TXAGG_ALIGN_SIZE))
  17483. #define BIT_GET_SDIO_TXAGG_ALIGN_SIZE(x) \
  17484. (((x) >> BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE) & \
  17485. BIT_MASK_SDIO_TXAGG_ALIGN_SIZE)
  17486. #define BIT_SET_SDIO_TXAGG_ALIGN_SIZE(x, v) \
  17487. (BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE(x) | BIT_SDIO_TXAGG_ALIGN_SIZE(v))
  17488. #endif
  17489. #if (HALMAC_8192F_SUPPORT)
  17490. /* 2 REG_RQPN_EXQ1_EXQ2 (Offset 0x0230) */
  17491. #define BIT_SHIFT_EXQ2_AVAL_PG 24
  17492. #define BIT_MASK_EXQ2_AVAL_PG 0xff
  17493. #define BIT_EXQ2_AVAL_PG(x) \
  17494. (((x) & BIT_MASK_EXQ2_AVAL_PG) << BIT_SHIFT_EXQ2_AVAL_PG)
  17495. #define BITS_EXQ2_AVAL_PG (BIT_MASK_EXQ2_AVAL_PG << BIT_SHIFT_EXQ2_AVAL_PG)
  17496. #define BIT_CLEAR_EXQ2_AVAL_PG(x) ((x) & (~BITS_EXQ2_AVAL_PG))
  17497. #define BIT_GET_EXQ2_AVAL_PG(x) \
  17498. (((x) >> BIT_SHIFT_EXQ2_AVAL_PG) & BIT_MASK_EXQ2_AVAL_PG)
  17499. #define BIT_SET_EXQ2_AVAL_PG(x, v) \
  17500. (BIT_CLEAR_EXQ2_AVAL_PG(x) | BIT_EXQ2_AVAL_PG(v))
  17501. #define BIT_SHIFT_EXQ2 16
  17502. #define BIT_MASK_EXQ2 0xff
  17503. #define BIT_EXQ2(x) (((x) & BIT_MASK_EXQ2) << BIT_SHIFT_EXQ2)
  17504. #define BITS_EXQ2 (BIT_MASK_EXQ2 << BIT_SHIFT_EXQ2)
  17505. #define BIT_CLEAR_EXQ2(x) ((x) & (~BITS_EXQ2))
  17506. #define BIT_GET_EXQ2(x) (((x) >> BIT_SHIFT_EXQ2) & BIT_MASK_EXQ2)
  17507. #define BIT_SET_EXQ2(x, v) (BIT_CLEAR_EXQ2(x) | BIT_EXQ2(v))
  17508. #endif
  17509. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17510. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17511. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17512. /* 2 REG_FIFOPAGE_INFO_1 (Offset 0x0230) */
  17513. #define BIT_SHIFT_HPQ_AVAL_PG_V1 16
  17514. #define BIT_MASK_HPQ_AVAL_PG_V1 0xfff
  17515. #define BIT_HPQ_AVAL_PG_V1(x) \
  17516. (((x) & BIT_MASK_HPQ_AVAL_PG_V1) << BIT_SHIFT_HPQ_AVAL_PG_V1)
  17517. #define BITS_HPQ_AVAL_PG_V1 \
  17518. (BIT_MASK_HPQ_AVAL_PG_V1 << BIT_SHIFT_HPQ_AVAL_PG_V1)
  17519. #define BIT_CLEAR_HPQ_AVAL_PG_V1(x) ((x) & (~BITS_HPQ_AVAL_PG_V1))
  17520. #define BIT_GET_HPQ_AVAL_PG_V1(x) \
  17521. (((x) >> BIT_SHIFT_HPQ_AVAL_PG_V1) & BIT_MASK_HPQ_AVAL_PG_V1)
  17522. #define BIT_SET_HPQ_AVAL_PG_V1(x, v) \
  17523. (BIT_CLEAR_HPQ_AVAL_PG_V1(x) | BIT_HPQ_AVAL_PG_V1(v))
  17524. #endif
  17525. #if (HALMAC_8192F_SUPPORT)
  17526. /* 2 REG_RQPN_EXQ1_EXQ2 (Offset 0x0230) */
  17527. #define BIT_SHIFT_EXQ1_AVAL_PG 8
  17528. #define BIT_MASK_EXQ1_AVAL_PG 0xff
  17529. #define BIT_EXQ1_AVAL_PG(x) \
  17530. (((x) & BIT_MASK_EXQ1_AVAL_PG) << BIT_SHIFT_EXQ1_AVAL_PG)
  17531. #define BITS_EXQ1_AVAL_PG (BIT_MASK_EXQ1_AVAL_PG << BIT_SHIFT_EXQ1_AVAL_PG)
  17532. #define BIT_CLEAR_EXQ1_AVAL_PG(x) ((x) & (~BITS_EXQ1_AVAL_PG))
  17533. #define BIT_GET_EXQ1_AVAL_PG(x) \
  17534. (((x) >> BIT_SHIFT_EXQ1_AVAL_PG) & BIT_MASK_EXQ1_AVAL_PG)
  17535. #define BIT_SET_EXQ1_AVAL_PG(x, v) \
  17536. (BIT_CLEAR_EXQ1_AVAL_PG(x) | BIT_EXQ1_AVAL_PG(v))
  17537. #define BIT_SHIFT_EXQ1 0
  17538. #define BIT_MASK_EXQ1 0xff
  17539. #define BIT_EXQ1(x) (((x) & BIT_MASK_EXQ1) << BIT_SHIFT_EXQ1)
  17540. #define BITS_EXQ1 (BIT_MASK_EXQ1 << BIT_SHIFT_EXQ1)
  17541. #define BIT_CLEAR_EXQ1(x) ((x) & (~BITS_EXQ1))
  17542. #define BIT_GET_EXQ1(x) (((x) >> BIT_SHIFT_EXQ1) & BIT_MASK_EXQ1)
  17543. #define BIT_SET_EXQ1(x, v) (BIT_CLEAR_EXQ1(x) | BIT_EXQ1(v))
  17544. #endif
  17545. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17546. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17547. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17548. /* 2 REG_FIFOPAGE_INFO_1 (Offset 0x0230) */
  17549. #define BIT_SHIFT_HPQ_V1 0
  17550. #define BIT_MASK_HPQ_V1 0xfff
  17551. #define BIT_HPQ_V1(x) (((x) & BIT_MASK_HPQ_V1) << BIT_SHIFT_HPQ_V1)
  17552. #define BITS_HPQ_V1 (BIT_MASK_HPQ_V1 << BIT_SHIFT_HPQ_V1)
  17553. #define BIT_CLEAR_HPQ_V1(x) ((x) & (~BITS_HPQ_V1))
  17554. #define BIT_GET_HPQ_V1(x) (((x) >> BIT_SHIFT_HPQ_V1) & BIT_MASK_HPQ_V1)
  17555. #define BIT_SET_HPQ_V1(x, v) (BIT_CLEAR_HPQ_V1(x) | BIT_HPQ_V1(v))
  17556. #endif
  17557. #if (HALMAC_8192F_SUPPORT)
  17558. /* 2 REG_TQPNT3_V1 (Offset 0x0234) */
  17559. #define BIT_SHIFT_EXQ2_HIGH_TH 24
  17560. #define BIT_MASK_EXQ2_HIGH_TH 0xff
  17561. #define BIT_EXQ2_HIGH_TH(x) \
  17562. (((x) & BIT_MASK_EXQ2_HIGH_TH) << BIT_SHIFT_EXQ2_HIGH_TH)
  17563. #define BITS_EXQ2_HIGH_TH (BIT_MASK_EXQ2_HIGH_TH << BIT_SHIFT_EXQ2_HIGH_TH)
  17564. #define BIT_CLEAR_EXQ2_HIGH_TH(x) ((x) & (~BITS_EXQ2_HIGH_TH))
  17565. #define BIT_GET_EXQ2_HIGH_TH(x) \
  17566. (((x) >> BIT_SHIFT_EXQ2_HIGH_TH) & BIT_MASK_EXQ2_HIGH_TH)
  17567. #define BIT_SET_EXQ2_HIGH_TH(x, v) \
  17568. (BIT_CLEAR_EXQ2_HIGH_TH(x) | BIT_EXQ2_HIGH_TH(v))
  17569. #define BIT_SHIFT_EXQ2_LOW_TH 16
  17570. #define BIT_MASK_EXQ2_LOW_TH 0xff
  17571. #define BIT_EXQ2_LOW_TH(x) \
  17572. (((x) & BIT_MASK_EXQ2_LOW_TH) << BIT_SHIFT_EXQ2_LOW_TH)
  17573. #define BITS_EXQ2_LOW_TH (BIT_MASK_EXQ2_LOW_TH << BIT_SHIFT_EXQ2_LOW_TH)
  17574. #define BIT_CLEAR_EXQ2_LOW_TH(x) ((x) & (~BITS_EXQ2_LOW_TH))
  17575. #define BIT_GET_EXQ2_LOW_TH(x) \
  17576. (((x) >> BIT_SHIFT_EXQ2_LOW_TH) & BIT_MASK_EXQ2_LOW_TH)
  17577. #define BIT_SET_EXQ2_LOW_TH(x, v) \
  17578. (BIT_CLEAR_EXQ2_LOW_TH(x) | BIT_EXQ2_LOW_TH(v))
  17579. #endif
  17580. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17581. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17582. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17583. /* 2 REG_FIFOPAGE_INFO_2 (Offset 0x0234) */
  17584. #define BIT_SHIFT_LPQ_AVAL_PG_V1 16
  17585. #define BIT_MASK_LPQ_AVAL_PG_V1 0xfff
  17586. #define BIT_LPQ_AVAL_PG_V1(x) \
  17587. (((x) & BIT_MASK_LPQ_AVAL_PG_V1) << BIT_SHIFT_LPQ_AVAL_PG_V1)
  17588. #define BITS_LPQ_AVAL_PG_V1 \
  17589. (BIT_MASK_LPQ_AVAL_PG_V1 << BIT_SHIFT_LPQ_AVAL_PG_V1)
  17590. #define BIT_CLEAR_LPQ_AVAL_PG_V1(x) ((x) & (~BITS_LPQ_AVAL_PG_V1))
  17591. #define BIT_GET_LPQ_AVAL_PG_V1(x) \
  17592. (((x) >> BIT_SHIFT_LPQ_AVAL_PG_V1) & BIT_MASK_LPQ_AVAL_PG_V1)
  17593. #define BIT_SET_LPQ_AVAL_PG_V1(x, v) \
  17594. (BIT_CLEAR_LPQ_AVAL_PG_V1(x) | BIT_LPQ_AVAL_PG_V1(v))
  17595. #endif
  17596. #if (HALMAC_8192F_SUPPORT)
  17597. /* 2 REG_TQPNT3_V1 (Offset 0x0234) */
  17598. #define BIT_SHIFT_EXQ1_HIGH_TH 8
  17599. #define BIT_MASK_EXQ1_HIGH_TH 0xff
  17600. #define BIT_EXQ1_HIGH_TH(x) \
  17601. (((x) & BIT_MASK_EXQ1_HIGH_TH) << BIT_SHIFT_EXQ1_HIGH_TH)
  17602. #define BITS_EXQ1_HIGH_TH (BIT_MASK_EXQ1_HIGH_TH << BIT_SHIFT_EXQ1_HIGH_TH)
  17603. #define BIT_CLEAR_EXQ1_HIGH_TH(x) ((x) & (~BITS_EXQ1_HIGH_TH))
  17604. #define BIT_GET_EXQ1_HIGH_TH(x) \
  17605. (((x) >> BIT_SHIFT_EXQ1_HIGH_TH) & BIT_MASK_EXQ1_HIGH_TH)
  17606. #define BIT_SET_EXQ1_HIGH_TH(x, v) \
  17607. (BIT_CLEAR_EXQ1_HIGH_TH(x) | BIT_EXQ1_HIGH_TH(v))
  17608. #define BIT_SHIFT_EXQ1_LOW_TH 0
  17609. #define BIT_MASK_EXQ1_LOW_TH 0xff
  17610. #define BIT_EXQ1_LOW_TH(x) \
  17611. (((x) & BIT_MASK_EXQ1_LOW_TH) << BIT_SHIFT_EXQ1_LOW_TH)
  17612. #define BITS_EXQ1_LOW_TH (BIT_MASK_EXQ1_LOW_TH << BIT_SHIFT_EXQ1_LOW_TH)
  17613. #define BIT_CLEAR_EXQ1_LOW_TH(x) ((x) & (~BITS_EXQ1_LOW_TH))
  17614. #define BIT_GET_EXQ1_LOW_TH(x) \
  17615. (((x) >> BIT_SHIFT_EXQ1_LOW_TH) & BIT_MASK_EXQ1_LOW_TH)
  17616. #define BIT_SET_EXQ1_LOW_TH(x, v) \
  17617. (BIT_CLEAR_EXQ1_LOW_TH(x) | BIT_EXQ1_LOW_TH(v))
  17618. #endif
  17619. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17620. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17621. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17622. /* 2 REG_FIFOPAGE_INFO_2 (Offset 0x0234) */
  17623. #define BIT_SHIFT_LPQ_V1 0
  17624. #define BIT_MASK_LPQ_V1 0xfff
  17625. #define BIT_LPQ_V1(x) (((x) & BIT_MASK_LPQ_V1) << BIT_SHIFT_LPQ_V1)
  17626. #define BITS_LPQ_V1 (BIT_MASK_LPQ_V1 << BIT_SHIFT_LPQ_V1)
  17627. #define BIT_CLEAR_LPQ_V1(x) ((x) & (~BITS_LPQ_V1))
  17628. #define BIT_GET_LPQ_V1(x) (((x) >> BIT_SHIFT_LPQ_V1) & BIT_MASK_LPQ_V1)
  17629. #define BIT_SET_LPQ_V1(x, v) (BIT_CLEAR_LPQ_V1(x) | BIT_LPQ_V1(v))
  17630. #endif
  17631. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17632. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17633. /* 2 REG_FIFOPAGE_INFO_3 (Offset 0x0238) */
  17634. #define BIT_SHIFT_NPQ_AVAL_PG_V1 16
  17635. #define BIT_MASK_NPQ_AVAL_PG_V1 0xfff
  17636. #define BIT_NPQ_AVAL_PG_V1(x) \
  17637. (((x) & BIT_MASK_NPQ_AVAL_PG_V1) << BIT_SHIFT_NPQ_AVAL_PG_V1)
  17638. #define BITS_NPQ_AVAL_PG_V1 \
  17639. (BIT_MASK_NPQ_AVAL_PG_V1 << BIT_SHIFT_NPQ_AVAL_PG_V1)
  17640. #define BIT_CLEAR_NPQ_AVAL_PG_V1(x) ((x) & (~BITS_NPQ_AVAL_PG_V1))
  17641. #define BIT_GET_NPQ_AVAL_PG_V1(x) \
  17642. (((x) >> BIT_SHIFT_NPQ_AVAL_PG_V1) & BIT_MASK_NPQ_AVAL_PG_V1)
  17643. #define BIT_SET_NPQ_AVAL_PG_V1(x, v) \
  17644. (BIT_CLEAR_NPQ_AVAL_PG_V1(x) | BIT_NPQ_AVAL_PG_V1(v))
  17645. #endif
  17646. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17647. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17648. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17649. /* 2 REG_FIFOPAGE_INFO_3 (Offset 0x0238) */
  17650. #define BIT_SHIFT_NPQ_V1 0
  17651. #define BIT_MASK_NPQ_V1 0xfff
  17652. #define BIT_NPQ_V1(x) (((x) & BIT_MASK_NPQ_V1) << BIT_SHIFT_NPQ_V1)
  17653. #define BITS_NPQ_V1 (BIT_MASK_NPQ_V1 << BIT_SHIFT_NPQ_V1)
  17654. #define BIT_CLEAR_NPQ_V1(x) ((x) & (~BITS_NPQ_V1))
  17655. #define BIT_GET_NPQ_V1(x) (((x) >> BIT_SHIFT_NPQ_V1) & BIT_MASK_NPQ_V1)
  17656. #define BIT_SET_NPQ_V1(x, v) (BIT_CLEAR_NPQ_V1(x) | BIT_NPQ_V1(v))
  17657. /* 2 REG_FIFOPAGE_INFO_4 (Offset 0x023C) */
  17658. #define BIT_SHIFT_EXQ_AVAL_PG_V1 16
  17659. #define BIT_MASK_EXQ_AVAL_PG_V1 0xfff
  17660. #define BIT_EXQ_AVAL_PG_V1(x) \
  17661. (((x) & BIT_MASK_EXQ_AVAL_PG_V1) << BIT_SHIFT_EXQ_AVAL_PG_V1)
  17662. #define BITS_EXQ_AVAL_PG_V1 \
  17663. (BIT_MASK_EXQ_AVAL_PG_V1 << BIT_SHIFT_EXQ_AVAL_PG_V1)
  17664. #define BIT_CLEAR_EXQ_AVAL_PG_V1(x) ((x) & (~BITS_EXQ_AVAL_PG_V1))
  17665. #define BIT_GET_EXQ_AVAL_PG_V1(x) \
  17666. (((x) >> BIT_SHIFT_EXQ_AVAL_PG_V1) & BIT_MASK_EXQ_AVAL_PG_V1)
  17667. #define BIT_SET_EXQ_AVAL_PG_V1(x, v) \
  17668. (BIT_CLEAR_EXQ_AVAL_PG_V1(x) | BIT_EXQ_AVAL_PG_V1(v))
  17669. #define BIT_SHIFT_EXQ_V1 0
  17670. #define BIT_MASK_EXQ_V1 0xfff
  17671. #define BIT_EXQ_V1(x) (((x) & BIT_MASK_EXQ_V1) << BIT_SHIFT_EXQ_V1)
  17672. #define BITS_EXQ_V1 (BIT_MASK_EXQ_V1 << BIT_SHIFT_EXQ_V1)
  17673. #define BIT_CLEAR_EXQ_V1(x) ((x) & (~BITS_EXQ_V1))
  17674. #define BIT_GET_EXQ_V1(x) (((x) >> BIT_SHIFT_EXQ_V1) & BIT_MASK_EXQ_V1)
  17675. #define BIT_SET_EXQ_V1(x, v) (BIT_CLEAR_EXQ_V1(x) | BIT_EXQ_V1(v))
  17676. /* 2 REG_FIFOPAGE_INFO_5 (Offset 0x0240) */
  17677. #define BIT_SHIFT_PUBQ_AVAL_PG_V1 16
  17678. #define BIT_MASK_PUBQ_AVAL_PG_V1 0xfff
  17679. #define BIT_PUBQ_AVAL_PG_V1(x) \
  17680. (((x) & BIT_MASK_PUBQ_AVAL_PG_V1) << BIT_SHIFT_PUBQ_AVAL_PG_V1)
  17681. #define BITS_PUBQ_AVAL_PG_V1 \
  17682. (BIT_MASK_PUBQ_AVAL_PG_V1 << BIT_SHIFT_PUBQ_AVAL_PG_V1)
  17683. #define BIT_CLEAR_PUBQ_AVAL_PG_V1(x) ((x) & (~BITS_PUBQ_AVAL_PG_V1))
  17684. #define BIT_GET_PUBQ_AVAL_PG_V1(x) \
  17685. (((x) >> BIT_SHIFT_PUBQ_AVAL_PG_V1) & BIT_MASK_PUBQ_AVAL_PG_V1)
  17686. #define BIT_SET_PUBQ_AVAL_PG_V1(x, v) \
  17687. (BIT_CLEAR_PUBQ_AVAL_PG_V1(x) | BIT_PUBQ_AVAL_PG_V1(v))
  17688. #endif
  17689. #if (HALMAC_8814B_SUPPORT)
  17690. /* 2 REG_TX_AGG_ALIGN (Offset 0x0240) */
  17691. #define BIT_SHIFT_HW_FLOW_CTL_EN 16
  17692. #define BIT_MASK_HW_FLOW_CTL_EN 0xffff
  17693. #define BIT_HW_FLOW_CTL_EN(x) \
  17694. (((x) & BIT_MASK_HW_FLOW_CTL_EN) << BIT_SHIFT_HW_FLOW_CTL_EN)
  17695. #define BITS_HW_FLOW_CTL_EN \
  17696. (BIT_MASK_HW_FLOW_CTL_EN << BIT_SHIFT_HW_FLOW_CTL_EN)
  17697. #define BIT_CLEAR_HW_FLOW_CTL_EN(x) ((x) & (~BITS_HW_FLOW_CTL_EN))
  17698. #define BIT_GET_HW_FLOW_CTL_EN(x) \
  17699. (((x) >> BIT_SHIFT_HW_FLOW_CTL_EN) & BIT_MASK_HW_FLOW_CTL_EN)
  17700. #define BIT_SET_HW_FLOW_CTL_EN(x, v) \
  17701. (BIT_CLEAR_HW_FLOW_CTL_EN(x) | BIT_HW_FLOW_CTL_EN(v))
  17702. #define BIT_SDIO_TXAGG_ALIGN_ADJUST_EN_V1 BIT(15)
  17703. #endif
  17704. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17705. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  17706. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17707. /* 2 REG_FIFOPAGE_INFO_5 (Offset 0x0240) */
  17708. #define BIT_SHIFT_PUBQ_V1 0
  17709. #define BIT_MASK_PUBQ_V1 0xfff
  17710. #define BIT_PUBQ_V1(x) (((x) & BIT_MASK_PUBQ_V1) << BIT_SHIFT_PUBQ_V1)
  17711. #define BITS_PUBQ_V1 (BIT_MASK_PUBQ_V1 << BIT_SHIFT_PUBQ_V1)
  17712. #define BIT_CLEAR_PUBQ_V1(x) ((x) & (~BITS_PUBQ_V1))
  17713. #define BIT_GET_PUBQ_V1(x) (((x) >> BIT_SHIFT_PUBQ_V1) & BIT_MASK_PUBQ_V1)
  17714. #define BIT_SET_PUBQ_V1(x, v) (BIT_CLEAR_PUBQ_V1(x) | BIT_PUBQ_V1(v))
  17715. #endif
  17716. #if (HALMAC_8814B_SUPPORT)
  17717. /* 2 REG_TX_AGG_ALIGN (Offset 0x0240) */
  17718. #define BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1 0
  17719. #define BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1 0xfff
  17720. #define BIT_SDIO_TXAGG_ALIGN_SIZE_V1(x) \
  17721. (((x) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1) \
  17722. << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1)
  17723. #define BITS_SDIO_TXAGG_ALIGN_SIZE_V1 \
  17724. (BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1 \
  17725. << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1)
  17726. #define BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE_V1(x) \
  17727. ((x) & (~BITS_SDIO_TXAGG_ALIGN_SIZE_V1))
  17728. #define BIT_GET_SDIO_TXAGG_ALIGN_SIZE_V1(x) \
  17729. (((x) >> BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1) & \
  17730. BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1)
  17731. #define BIT_SET_SDIO_TXAGG_ALIGN_SIZE_V1(x, v) \
  17732. (BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE_V1(x) | \
  17733. BIT_SDIO_TXAGG_ALIGN_SIZE_V1(v))
  17734. #endif
  17735. #if (HALMAC_8192F_SUPPORT)
  17736. /* 2 REG_H2C_HEAD (Offset 0x0244) */
  17737. #define BIT_SHIFT_H2C_HEAD_V2 0
  17738. #define BIT_MASK_H2C_HEAD_V2 0xffff
  17739. #define BIT_H2C_HEAD_V2(x) \
  17740. (((x) & BIT_MASK_H2C_HEAD_V2) << BIT_SHIFT_H2C_HEAD_V2)
  17741. #define BITS_H2C_HEAD_V2 (BIT_MASK_H2C_HEAD_V2 << BIT_SHIFT_H2C_HEAD_V2)
  17742. #define BIT_CLEAR_H2C_HEAD_V2(x) ((x) & (~BITS_H2C_HEAD_V2))
  17743. #define BIT_GET_H2C_HEAD_V2(x) \
  17744. (((x) >> BIT_SHIFT_H2C_HEAD_V2) & BIT_MASK_H2C_HEAD_V2)
  17745. #define BIT_SET_H2C_HEAD_V2(x, v) \
  17746. (BIT_CLEAR_H2C_HEAD_V2(x) | BIT_H2C_HEAD_V2(v))
  17747. #endif
  17748. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17749. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  17750. HALMAC_8822C_SUPPORT)
  17751. /* 2 REG_H2C_HEAD (Offset 0x0244) */
  17752. #define BIT_SHIFT_H2C_HEAD 0
  17753. #define BIT_MASK_H2C_HEAD 0x3ffff
  17754. #define BIT_H2C_HEAD(x) (((x) & BIT_MASK_H2C_HEAD) << BIT_SHIFT_H2C_HEAD)
  17755. #define BITS_H2C_HEAD (BIT_MASK_H2C_HEAD << BIT_SHIFT_H2C_HEAD)
  17756. #define BIT_CLEAR_H2C_HEAD(x) ((x) & (~BITS_H2C_HEAD))
  17757. #define BIT_GET_H2C_HEAD(x) (((x) >> BIT_SHIFT_H2C_HEAD) & BIT_MASK_H2C_HEAD)
  17758. #define BIT_SET_H2C_HEAD(x, v) (BIT_CLEAR_H2C_HEAD(x) | BIT_H2C_HEAD(v))
  17759. #endif
  17760. #if (HALMAC_8814B_SUPPORT)
  17761. /* 2 REG_H2C_HEAD (Offset 0x0244) */
  17762. #define BIT_SHIFT_H2C_HEAD_V1 0
  17763. #define BIT_MASK_H2C_HEAD_V1 0x7ffff
  17764. #define BIT_H2C_HEAD_V1(x) \
  17765. (((x) & BIT_MASK_H2C_HEAD_V1) << BIT_SHIFT_H2C_HEAD_V1)
  17766. #define BITS_H2C_HEAD_V1 (BIT_MASK_H2C_HEAD_V1 << BIT_SHIFT_H2C_HEAD_V1)
  17767. #define BIT_CLEAR_H2C_HEAD_V1(x) ((x) & (~BITS_H2C_HEAD_V1))
  17768. #define BIT_GET_H2C_HEAD_V1(x) \
  17769. (((x) >> BIT_SHIFT_H2C_HEAD_V1) & BIT_MASK_H2C_HEAD_V1)
  17770. #define BIT_SET_H2C_HEAD_V1(x, v) \
  17771. (BIT_CLEAR_H2C_HEAD_V1(x) | BIT_H2C_HEAD_V1(v))
  17772. #endif
  17773. #if (HALMAC_8192F_SUPPORT)
  17774. /* 2 REG_H2C_TAIL (Offset 0x0248) */
  17775. #define BIT_SHIFT_H2C_TAIL_V2 0
  17776. #define BIT_MASK_H2C_TAIL_V2 0xffff
  17777. #define BIT_H2C_TAIL_V2(x) \
  17778. (((x) & BIT_MASK_H2C_TAIL_V2) << BIT_SHIFT_H2C_TAIL_V2)
  17779. #define BITS_H2C_TAIL_V2 (BIT_MASK_H2C_TAIL_V2 << BIT_SHIFT_H2C_TAIL_V2)
  17780. #define BIT_CLEAR_H2C_TAIL_V2(x) ((x) & (~BITS_H2C_TAIL_V2))
  17781. #define BIT_GET_H2C_TAIL_V2(x) \
  17782. (((x) >> BIT_SHIFT_H2C_TAIL_V2) & BIT_MASK_H2C_TAIL_V2)
  17783. #define BIT_SET_H2C_TAIL_V2(x, v) \
  17784. (BIT_CLEAR_H2C_TAIL_V2(x) | BIT_H2C_TAIL_V2(v))
  17785. #endif
  17786. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17787. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  17788. HALMAC_8822C_SUPPORT)
  17789. /* 2 REG_H2C_TAIL (Offset 0x0248) */
  17790. #define BIT_SHIFT_H2C_TAIL 0
  17791. #define BIT_MASK_H2C_TAIL 0x3ffff
  17792. #define BIT_H2C_TAIL(x) (((x) & BIT_MASK_H2C_TAIL) << BIT_SHIFT_H2C_TAIL)
  17793. #define BITS_H2C_TAIL (BIT_MASK_H2C_TAIL << BIT_SHIFT_H2C_TAIL)
  17794. #define BIT_CLEAR_H2C_TAIL(x) ((x) & (~BITS_H2C_TAIL))
  17795. #define BIT_GET_H2C_TAIL(x) (((x) >> BIT_SHIFT_H2C_TAIL) & BIT_MASK_H2C_TAIL)
  17796. #define BIT_SET_H2C_TAIL(x, v) (BIT_CLEAR_H2C_TAIL(x) | BIT_H2C_TAIL(v))
  17797. #endif
  17798. #if (HALMAC_8814B_SUPPORT)
  17799. /* 2 REG_H2C_TAIL (Offset 0x0248) */
  17800. #define BIT_SHIFT_H2C_TAIL_V1 0
  17801. #define BIT_MASK_H2C_TAIL_V1 0x7ffff
  17802. #define BIT_H2C_TAIL_V1(x) \
  17803. (((x) & BIT_MASK_H2C_TAIL_V1) << BIT_SHIFT_H2C_TAIL_V1)
  17804. #define BITS_H2C_TAIL_V1 (BIT_MASK_H2C_TAIL_V1 << BIT_SHIFT_H2C_TAIL_V1)
  17805. #define BIT_CLEAR_H2C_TAIL_V1(x) ((x) & (~BITS_H2C_TAIL_V1))
  17806. #define BIT_GET_H2C_TAIL_V1(x) \
  17807. (((x) >> BIT_SHIFT_H2C_TAIL_V1) & BIT_MASK_H2C_TAIL_V1)
  17808. #define BIT_SET_H2C_TAIL_V1(x, v) \
  17809. (BIT_CLEAR_H2C_TAIL_V1(x) | BIT_H2C_TAIL_V1(v))
  17810. #endif
  17811. #if (HALMAC_8192F_SUPPORT)
  17812. /* 2 REG_H2C_READ_ADDR (Offset 0x024C) */
  17813. #define BIT_SHIFT_H2C_READ_ADDR_V2 0
  17814. #define BIT_MASK_H2C_READ_ADDR_V2 0xffff
  17815. #define BIT_H2C_READ_ADDR_V2(x) \
  17816. (((x) & BIT_MASK_H2C_READ_ADDR_V2) << BIT_SHIFT_H2C_READ_ADDR_V2)
  17817. #define BITS_H2C_READ_ADDR_V2 \
  17818. (BIT_MASK_H2C_READ_ADDR_V2 << BIT_SHIFT_H2C_READ_ADDR_V2)
  17819. #define BIT_CLEAR_H2C_READ_ADDR_V2(x) ((x) & (~BITS_H2C_READ_ADDR_V2))
  17820. #define BIT_GET_H2C_READ_ADDR_V2(x) \
  17821. (((x) >> BIT_SHIFT_H2C_READ_ADDR_V2) & BIT_MASK_H2C_READ_ADDR_V2)
  17822. #define BIT_SET_H2C_READ_ADDR_V2(x, v) \
  17823. (BIT_CLEAR_H2C_READ_ADDR_V2(x) | BIT_H2C_READ_ADDR_V2(v))
  17824. #endif
  17825. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17826. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  17827. HALMAC_8822C_SUPPORT)
  17828. /* 2 REG_H2C_READ_ADDR (Offset 0x024C) */
  17829. #define BIT_SHIFT_H2C_READ_ADDR 0
  17830. #define BIT_MASK_H2C_READ_ADDR 0x3ffff
  17831. #define BIT_H2C_READ_ADDR(x) \
  17832. (((x) & BIT_MASK_H2C_READ_ADDR) << BIT_SHIFT_H2C_READ_ADDR)
  17833. #define BITS_H2C_READ_ADDR (BIT_MASK_H2C_READ_ADDR << BIT_SHIFT_H2C_READ_ADDR)
  17834. #define BIT_CLEAR_H2C_READ_ADDR(x) ((x) & (~BITS_H2C_READ_ADDR))
  17835. #define BIT_GET_H2C_READ_ADDR(x) \
  17836. (((x) >> BIT_SHIFT_H2C_READ_ADDR) & BIT_MASK_H2C_READ_ADDR)
  17837. #define BIT_SET_H2C_READ_ADDR(x, v) \
  17838. (BIT_CLEAR_H2C_READ_ADDR(x) | BIT_H2C_READ_ADDR(v))
  17839. #endif
  17840. #if (HALMAC_8814B_SUPPORT)
  17841. /* 2 REG_H2C_READ_ADDR (Offset 0x024C) */
  17842. #define BIT_SHIFT_H2C_READ_ADDR_V1 0
  17843. #define BIT_MASK_H2C_READ_ADDR_V1 0x7ffff
  17844. #define BIT_H2C_READ_ADDR_V1(x) \
  17845. (((x) & BIT_MASK_H2C_READ_ADDR_V1) << BIT_SHIFT_H2C_READ_ADDR_V1)
  17846. #define BITS_H2C_READ_ADDR_V1 \
  17847. (BIT_MASK_H2C_READ_ADDR_V1 << BIT_SHIFT_H2C_READ_ADDR_V1)
  17848. #define BIT_CLEAR_H2C_READ_ADDR_V1(x) ((x) & (~BITS_H2C_READ_ADDR_V1))
  17849. #define BIT_GET_H2C_READ_ADDR_V1(x) \
  17850. (((x) >> BIT_SHIFT_H2C_READ_ADDR_V1) & BIT_MASK_H2C_READ_ADDR_V1)
  17851. #define BIT_SET_H2C_READ_ADDR_V1(x, v) \
  17852. (BIT_CLEAR_H2C_READ_ADDR_V1(x) | BIT_H2C_READ_ADDR_V1(v))
  17853. #endif
  17854. #if (HALMAC_8192F_SUPPORT)
  17855. /* 2 REG_H2C_WR_ADDR (Offset 0x0250) */
  17856. #define BIT_SHIFT_H2C_WR_ADDR_V2 0
  17857. #define BIT_MASK_H2C_WR_ADDR_V2 0xffff
  17858. #define BIT_H2C_WR_ADDR_V2(x) \
  17859. (((x) & BIT_MASK_H2C_WR_ADDR_V2) << BIT_SHIFT_H2C_WR_ADDR_V2)
  17860. #define BITS_H2C_WR_ADDR_V2 \
  17861. (BIT_MASK_H2C_WR_ADDR_V2 << BIT_SHIFT_H2C_WR_ADDR_V2)
  17862. #define BIT_CLEAR_H2C_WR_ADDR_V2(x) ((x) & (~BITS_H2C_WR_ADDR_V2))
  17863. #define BIT_GET_H2C_WR_ADDR_V2(x) \
  17864. (((x) >> BIT_SHIFT_H2C_WR_ADDR_V2) & BIT_MASK_H2C_WR_ADDR_V2)
  17865. #define BIT_SET_H2C_WR_ADDR_V2(x, v) \
  17866. (BIT_CLEAR_H2C_WR_ADDR_V2(x) | BIT_H2C_WR_ADDR_V2(v))
  17867. #endif
  17868. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  17869. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  17870. HALMAC_8822C_SUPPORT)
  17871. /* 2 REG_H2C_WR_ADDR (Offset 0x0250) */
  17872. #define BIT_SHIFT_H2C_WR_ADDR 0
  17873. #define BIT_MASK_H2C_WR_ADDR 0x3ffff
  17874. #define BIT_H2C_WR_ADDR(x) \
  17875. (((x) & BIT_MASK_H2C_WR_ADDR) << BIT_SHIFT_H2C_WR_ADDR)
  17876. #define BITS_H2C_WR_ADDR (BIT_MASK_H2C_WR_ADDR << BIT_SHIFT_H2C_WR_ADDR)
  17877. #define BIT_CLEAR_H2C_WR_ADDR(x) ((x) & (~BITS_H2C_WR_ADDR))
  17878. #define BIT_GET_H2C_WR_ADDR(x) \
  17879. (((x) >> BIT_SHIFT_H2C_WR_ADDR) & BIT_MASK_H2C_WR_ADDR)
  17880. #define BIT_SET_H2C_WR_ADDR(x, v) \
  17881. (BIT_CLEAR_H2C_WR_ADDR(x) | BIT_H2C_WR_ADDR(v))
  17882. #endif
  17883. #if (HALMAC_8814B_SUPPORT)
  17884. /* 2 REG_H2C_WR_ADDR (Offset 0x0250) */
  17885. #define BIT_SHIFT_H2C_WR_ADDR_V1 0
  17886. #define BIT_MASK_H2C_WR_ADDR_V1 0x7ffff
  17887. #define BIT_H2C_WR_ADDR_V1(x) \
  17888. (((x) & BIT_MASK_H2C_WR_ADDR_V1) << BIT_SHIFT_H2C_WR_ADDR_V1)
  17889. #define BITS_H2C_WR_ADDR_V1 \
  17890. (BIT_MASK_H2C_WR_ADDR_V1 << BIT_SHIFT_H2C_WR_ADDR_V1)
  17891. #define BIT_CLEAR_H2C_WR_ADDR_V1(x) ((x) & (~BITS_H2C_WR_ADDR_V1))
  17892. #define BIT_GET_H2C_WR_ADDR_V1(x) \
  17893. (((x) >> BIT_SHIFT_H2C_WR_ADDR_V1) & BIT_MASK_H2C_WR_ADDR_V1)
  17894. #define BIT_SET_H2C_WR_ADDR_V1(x, v) \
  17895. (BIT_CLEAR_H2C_WR_ADDR_V1(x) | BIT_H2C_WR_ADDR_V1(v))
  17896. #endif
  17897. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  17898. HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  17899. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17900. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17901. #define BIT_SHIFT_MDIO_PHY_ADDR 24
  17902. #define BIT_MASK_MDIO_PHY_ADDR 0x1f
  17903. #define BIT_MDIO_PHY_ADDR(x) \
  17904. (((x) & BIT_MASK_MDIO_PHY_ADDR) << BIT_SHIFT_MDIO_PHY_ADDR)
  17905. #define BITS_MDIO_PHY_ADDR (BIT_MASK_MDIO_PHY_ADDR << BIT_SHIFT_MDIO_PHY_ADDR)
  17906. #define BIT_CLEAR_MDIO_PHY_ADDR(x) ((x) & (~BITS_MDIO_PHY_ADDR))
  17907. #define BIT_GET_MDIO_PHY_ADDR(x) \
  17908. (((x) >> BIT_SHIFT_MDIO_PHY_ADDR) & BIT_MASK_MDIO_PHY_ADDR)
  17909. #define BIT_SET_MDIO_PHY_ADDR(x, v) \
  17910. (BIT_CLEAR_MDIO_PHY_ADDR(x) | BIT_MDIO_PHY_ADDR(v))
  17911. #endif
  17912. #if (HALMAC_8197F_SUPPORT)
  17913. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17914. #define BIT_SHIFT_VI_PUB_LIMIT 16
  17915. #define BIT_MASK_VI_PUB_LIMIT 0xfff
  17916. #define BIT_VI_PUB_LIMIT(x) \
  17917. (((x) & BIT_MASK_VI_PUB_LIMIT) << BIT_SHIFT_VI_PUB_LIMIT)
  17918. #define BITS_VI_PUB_LIMIT (BIT_MASK_VI_PUB_LIMIT << BIT_SHIFT_VI_PUB_LIMIT)
  17919. #define BIT_CLEAR_VI_PUB_LIMIT(x) ((x) & (~BITS_VI_PUB_LIMIT))
  17920. #define BIT_GET_VI_PUB_LIMIT(x) \
  17921. (((x) >> BIT_SHIFT_VI_PUB_LIMIT) & BIT_MASK_VI_PUB_LIMIT)
  17922. #define BIT_SET_VI_PUB_LIMIT(x, v) \
  17923. (BIT_CLEAR_VI_PUB_LIMIT(x) | BIT_VI_PUB_LIMIT(v))
  17924. #define BIT_SHIFT_BK_PUB_LIMIT 16
  17925. #define BIT_MASK_BK_PUB_LIMIT 0xfff
  17926. #define BIT_BK_PUB_LIMIT(x) \
  17927. (((x) & BIT_MASK_BK_PUB_LIMIT) << BIT_SHIFT_BK_PUB_LIMIT)
  17928. #define BITS_BK_PUB_LIMIT (BIT_MASK_BK_PUB_LIMIT << BIT_SHIFT_BK_PUB_LIMIT)
  17929. #define BIT_CLEAR_BK_PUB_LIMIT(x) ((x) & (~BITS_BK_PUB_LIMIT))
  17930. #define BIT_GET_BK_PUB_LIMIT(x) \
  17931. (((x) >> BIT_SHIFT_BK_PUB_LIMIT) & BIT_MASK_BK_PUB_LIMIT)
  17932. #define BIT_SET_BK_PUB_LIMIT(x, v) \
  17933. (BIT_CLEAR_BK_PUB_LIMIT(x) | BIT_BK_PUB_LIMIT(v))
  17934. #endif
  17935. #if (HALMAC_8198F_SUPPORT)
  17936. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17937. #define BIT_EX2Q_EN_PUBLIC_LIMIT BIT(13)
  17938. #define BIT_EX1Q_EN_PUBLIC_LIMIT BIT(12)
  17939. #endif
  17940. #if (HALMAC_8197F_SUPPORT)
  17941. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17942. #define BIT_EXQ_EN_PUBLIC_LIMIT BIT(11)
  17943. #endif
  17944. #if (HALMAC_8198F_SUPPORT)
  17945. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17946. #define BIT_EQ_EN_PUBLIC_LIMIT BIT(11)
  17947. #endif
  17948. #if (HALMAC_8197F_SUPPORT)
  17949. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17950. #define BIT_NPQ_EN_PUBLIC_LIMIT BIT(10)
  17951. #endif
  17952. #if (HALMAC_8198F_SUPPORT)
  17953. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17954. #define BIT_NQ_EN_PUBLIC_LIMIT BIT(10)
  17955. #endif
  17956. #if (HALMAC_8197F_SUPPORT)
  17957. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17958. #define BIT_LPQ_EN_PUBLIC_LIMIT BIT(9)
  17959. #endif
  17960. #if (HALMAC_8198F_SUPPORT)
  17961. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17962. #define BIT_LQ_EN_PUBLIC_LIMIT BIT(9)
  17963. #endif
  17964. #if (HALMAC_8197F_SUPPORT)
  17965. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17966. #define BIT_HPQ_EN_PUBLIC_LIMIT BIT(8)
  17967. #endif
  17968. #if (HALMAC_8198F_SUPPORT)
  17969. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17970. #define BIT_HQ_EN_PUBLIC_LIMIT BIT(8)
  17971. #endif
  17972. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  17973. HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  17974. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  17975. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17976. #define BIT_H2C_SPACE_VLD BIT(3)
  17977. #define BIT_H2C_WR_ADDR_RST BIT(2)
  17978. #define BIT_SHIFT_H2C_LEN_SEL 0
  17979. #define BIT_MASK_H2C_LEN_SEL 0x3
  17980. #define BIT_H2C_LEN_SEL(x) \
  17981. (((x) & BIT_MASK_H2C_LEN_SEL) << BIT_SHIFT_H2C_LEN_SEL)
  17982. #define BITS_H2C_LEN_SEL (BIT_MASK_H2C_LEN_SEL << BIT_SHIFT_H2C_LEN_SEL)
  17983. #define BIT_CLEAR_H2C_LEN_SEL(x) ((x) & (~BITS_H2C_LEN_SEL))
  17984. #define BIT_GET_H2C_LEN_SEL(x) \
  17985. (((x) >> BIT_SHIFT_H2C_LEN_SEL) & BIT_MASK_H2C_LEN_SEL)
  17986. #define BIT_SET_H2C_LEN_SEL(x, v) \
  17987. (BIT_CLEAR_H2C_LEN_SEL(x) | BIT_H2C_LEN_SEL(v))
  17988. #endif
  17989. #if (HALMAC_8197F_SUPPORT)
  17990. /* 2 REG_H2C_INFO (Offset 0x0254) */
  17991. #define BIT_SHIFT_VO_PUB_LIMIT 0
  17992. #define BIT_MASK_VO_PUB_LIMIT 0xfff
  17993. #define BIT_VO_PUB_LIMIT(x) \
  17994. (((x) & BIT_MASK_VO_PUB_LIMIT) << BIT_SHIFT_VO_PUB_LIMIT)
  17995. #define BITS_VO_PUB_LIMIT (BIT_MASK_VO_PUB_LIMIT << BIT_SHIFT_VO_PUB_LIMIT)
  17996. #define BIT_CLEAR_VO_PUB_LIMIT(x) ((x) & (~BITS_VO_PUB_LIMIT))
  17997. #define BIT_GET_VO_PUB_LIMIT(x) \
  17998. (((x) >> BIT_SHIFT_VO_PUB_LIMIT) & BIT_MASK_VO_PUB_LIMIT)
  17999. #define BIT_SET_VO_PUB_LIMIT(x, v) \
  18000. (BIT_CLEAR_VO_PUB_LIMIT(x) | BIT_VO_PUB_LIMIT(v))
  18001. #define BIT_SHIFT_BE_PUB_LIMIT 0
  18002. #define BIT_MASK_BE_PUB_LIMIT 0xfff
  18003. #define BIT_BE_PUB_LIMIT(x) \
  18004. (((x) & BIT_MASK_BE_PUB_LIMIT) << BIT_SHIFT_BE_PUB_LIMIT)
  18005. #define BITS_BE_PUB_LIMIT (BIT_MASK_BE_PUB_LIMIT << BIT_SHIFT_BE_PUB_LIMIT)
  18006. #define BIT_CLEAR_BE_PUB_LIMIT(x) ((x) & (~BITS_BE_PUB_LIMIT))
  18007. #define BIT_GET_BE_PUB_LIMIT(x) \
  18008. (((x) >> BIT_SHIFT_BE_PUB_LIMIT) & BIT_MASK_BE_PUB_LIMIT)
  18009. #define BIT_SET_BE_PUB_LIMIT(x, v) \
  18010. (BIT_CLEAR_BE_PUB_LIMIT(x) | BIT_BE_PUB_LIMIT(v))
  18011. #endif
  18012. #if (HALMAC_8814B_SUPPORT)
  18013. /* 2 REG_DMA_OQT_0 (Offset 0x0260) */
  18014. #define BIT_SHIFT_TX_OQT_12_FREE_SPACE 24
  18015. #define BIT_MASK_TX_OQT_12_FREE_SPACE 0xff
  18016. #define BIT_TX_OQT_12_FREE_SPACE(x) \
  18017. (((x) & BIT_MASK_TX_OQT_12_FREE_SPACE) \
  18018. << BIT_SHIFT_TX_OQT_12_FREE_SPACE)
  18019. #define BITS_TX_OQT_12_FREE_SPACE \
  18020. (BIT_MASK_TX_OQT_12_FREE_SPACE << BIT_SHIFT_TX_OQT_12_FREE_SPACE)
  18021. #define BIT_CLEAR_TX_OQT_12_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_12_FREE_SPACE))
  18022. #define BIT_GET_TX_OQT_12_FREE_SPACE(x) \
  18023. (((x) >> BIT_SHIFT_TX_OQT_12_FREE_SPACE) & \
  18024. BIT_MASK_TX_OQT_12_FREE_SPACE)
  18025. #define BIT_SET_TX_OQT_12_FREE_SPACE(x, v) \
  18026. (BIT_CLEAR_TX_OQT_12_FREE_SPACE(x) | BIT_TX_OQT_12_FREE_SPACE(v))
  18027. #endif
  18028. #if (HALMAC_8198F_SUPPORT)
  18029. /* 2 REG_TQPNT5 (Offset 0x0260) */
  18030. #define BIT_SHIFT_EX1Q_HIGH_TH_V1 16
  18031. #define BIT_MASK_EX1Q_HIGH_TH_V1 0xfff
  18032. #define BIT_EX1Q_HIGH_TH_V1(x) \
  18033. (((x) & BIT_MASK_EX1Q_HIGH_TH_V1) << BIT_SHIFT_EX1Q_HIGH_TH_V1)
  18034. #define BITS_EX1Q_HIGH_TH_V1 \
  18035. (BIT_MASK_EX1Q_HIGH_TH_V1 << BIT_SHIFT_EX1Q_HIGH_TH_V1)
  18036. #define BIT_CLEAR_EX1Q_HIGH_TH_V1(x) ((x) & (~BITS_EX1Q_HIGH_TH_V1))
  18037. #define BIT_GET_EX1Q_HIGH_TH_V1(x) \
  18038. (((x) >> BIT_SHIFT_EX1Q_HIGH_TH_V1) & BIT_MASK_EX1Q_HIGH_TH_V1)
  18039. #define BIT_SET_EX1Q_HIGH_TH_V1(x, v) \
  18040. (BIT_CLEAR_EX1Q_HIGH_TH_V1(x) | BIT_EX1Q_HIGH_TH_V1(v))
  18041. #endif
  18042. #if (HALMAC_8814B_SUPPORT)
  18043. /* 2 REG_DMA_OQT_0 (Offset 0x0260) */
  18044. #define BIT_SHIFT_TX_OQT_8_11_FREE_SPACE 16
  18045. #define BIT_MASK_TX_OQT_8_11_FREE_SPACE 0xff
  18046. #define BIT_TX_OQT_8_11_FREE_SPACE(x) \
  18047. (((x) & BIT_MASK_TX_OQT_8_11_FREE_SPACE) \
  18048. << BIT_SHIFT_TX_OQT_8_11_FREE_SPACE)
  18049. #define BITS_TX_OQT_8_11_FREE_SPACE \
  18050. (BIT_MASK_TX_OQT_8_11_FREE_SPACE << BIT_SHIFT_TX_OQT_8_11_FREE_SPACE)
  18051. #define BIT_CLEAR_TX_OQT_8_11_FREE_SPACE(x) \
  18052. ((x) & (~BITS_TX_OQT_8_11_FREE_SPACE))
  18053. #define BIT_GET_TX_OQT_8_11_FREE_SPACE(x) \
  18054. (((x) >> BIT_SHIFT_TX_OQT_8_11_FREE_SPACE) & \
  18055. BIT_MASK_TX_OQT_8_11_FREE_SPACE)
  18056. #define BIT_SET_TX_OQT_8_11_FREE_SPACE(x, v) \
  18057. (BIT_CLEAR_TX_OQT_8_11_FREE_SPACE(x) | BIT_TX_OQT_8_11_FREE_SPACE(v))
  18058. #define BIT_SHIFT_TX_OQT_16_FREE_SPACE 16
  18059. #define BIT_MASK_TX_OQT_16_FREE_SPACE 0xff
  18060. #define BIT_TX_OQT_16_FREE_SPACE(x) \
  18061. (((x) & BIT_MASK_TX_OQT_16_FREE_SPACE) \
  18062. << BIT_SHIFT_TX_OQT_16_FREE_SPACE)
  18063. #define BITS_TX_OQT_16_FREE_SPACE \
  18064. (BIT_MASK_TX_OQT_16_FREE_SPACE << BIT_SHIFT_TX_OQT_16_FREE_SPACE)
  18065. #define BIT_CLEAR_TX_OQT_16_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_16_FREE_SPACE))
  18066. #define BIT_GET_TX_OQT_16_FREE_SPACE(x) \
  18067. (((x) >> BIT_SHIFT_TX_OQT_16_FREE_SPACE) & \
  18068. BIT_MASK_TX_OQT_16_FREE_SPACE)
  18069. #define BIT_SET_TX_OQT_16_FREE_SPACE(x, v) \
  18070. (BIT_CLEAR_TX_OQT_16_FREE_SPACE(x) | BIT_TX_OQT_16_FREE_SPACE(v))
  18071. #define BIT_SHIFT_TX_OQT_4_7_FREE_SPACE 8
  18072. #define BIT_MASK_TX_OQT_4_7_FREE_SPACE 0xff
  18073. #define BIT_TX_OQT_4_7_FREE_SPACE(x) \
  18074. (((x) & BIT_MASK_TX_OQT_4_7_FREE_SPACE) \
  18075. << BIT_SHIFT_TX_OQT_4_7_FREE_SPACE)
  18076. #define BITS_TX_OQT_4_7_FREE_SPACE \
  18077. (BIT_MASK_TX_OQT_4_7_FREE_SPACE << BIT_SHIFT_TX_OQT_4_7_FREE_SPACE)
  18078. #define BIT_CLEAR_TX_OQT_4_7_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_4_7_FREE_SPACE))
  18079. #define BIT_GET_TX_OQT_4_7_FREE_SPACE(x) \
  18080. (((x) >> BIT_SHIFT_TX_OQT_4_7_FREE_SPACE) & \
  18081. BIT_MASK_TX_OQT_4_7_FREE_SPACE)
  18082. #define BIT_SET_TX_OQT_4_7_FREE_SPACE(x, v) \
  18083. (BIT_CLEAR_TX_OQT_4_7_FREE_SPACE(x) | BIT_TX_OQT_4_7_FREE_SPACE(v))
  18084. #define BIT_SHIFT_TX_OQT_14_15_FREE_SPACE 8
  18085. #define BIT_MASK_TX_OQT_14_15_FREE_SPACE 0xff
  18086. #define BIT_TX_OQT_14_15_FREE_SPACE(x) \
  18087. (((x) & BIT_MASK_TX_OQT_14_15_FREE_SPACE) \
  18088. << BIT_SHIFT_TX_OQT_14_15_FREE_SPACE)
  18089. #define BITS_TX_OQT_14_15_FREE_SPACE \
  18090. (BIT_MASK_TX_OQT_14_15_FREE_SPACE << BIT_SHIFT_TX_OQT_14_15_FREE_SPACE)
  18091. #define BIT_CLEAR_TX_OQT_14_15_FREE_SPACE(x) \
  18092. ((x) & (~BITS_TX_OQT_14_15_FREE_SPACE))
  18093. #define BIT_GET_TX_OQT_14_15_FREE_SPACE(x) \
  18094. (((x) >> BIT_SHIFT_TX_OQT_14_15_FREE_SPACE) & \
  18095. BIT_MASK_TX_OQT_14_15_FREE_SPACE)
  18096. #define BIT_SET_TX_OQT_14_15_FREE_SPACE(x, v) \
  18097. (BIT_CLEAR_TX_OQT_14_15_FREE_SPACE(x) | BIT_TX_OQT_14_15_FREE_SPACE(v))
  18098. #endif
  18099. #if (HALMAC_8198F_SUPPORT)
  18100. /* 2 REG_TQPNT5 (Offset 0x0260) */
  18101. #define BIT_SHIFT_EX1Q_LOW_TH_V1 0
  18102. #define BIT_MASK_EX1Q_LOW_TH_V1 0xfff
  18103. #define BIT_EX1Q_LOW_TH_V1(x) \
  18104. (((x) & BIT_MASK_EX1Q_LOW_TH_V1) << BIT_SHIFT_EX1Q_LOW_TH_V1)
  18105. #define BITS_EX1Q_LOW_TH_V1 \
  18106. (BIT_MASK_EX1Q_LOW_TH_V1 << BIT_SHIFT_EX1Q_LOW_TH_V1)
  18107. #define BIT_CLEAR_EX1Q_LOW_TH_V1(x) ((x) & (~BITS_EX1Q_LOW_TH_V1))
  18108. #define BIT_GET_EX1Q_LOW_TH_V1(x) \
  18109. (((x) >> BIT_SHIFT_EX1Q_LOW_TH_V1) & BIT_MASK_EX1Q_LOW_TH_V1)
  18110. #define BIT_SET_EX1Q_LOW_TH_V1(x, v) \
  18111. (BIT_CLEAR_EX1Q_LOW_TH_V1(x) | BIT_EX1Q_LOW_TH_V1(v))
  18112. #endif
  18113. #if (HALMAC_8814B_SUPPORT)
  18114. /* 2 REG_DMA_OQT_0 (Offset 0x0260) */
  18115. #define BIT_SHIFT_TX_OQT_0_3_FREE_SPACE 0
  18116. #define BIT_MASK_TX_OQT_0_3_FREE_SPACE 0xff
  18117. #define BIT_TX_OQT_0_3_FREE_SPACE(x) \
  18118. (((x) & BIT_MASK_TX_OQT_0_3_FREE_SPACE) \
  18119. << BIT_SHIFT_TX_OQT_0_3_FREE_SPACE)
  18120. #define BITS_TX_OQT_0_3_FREE_SPACE \
  18121. (BIT_MASK_TX_OQT_0_3_FREE_SPACE << BIT_SHIFT_TX_OQT_0_3_FREE_SPACE)
  18122. #define BIT_CLEAR_TX_OQT_0_3_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_0_3_FREE_SPACE))
  18123. #define BIT_GET_TX_OQT_0_3_FREE_SPACE(x) \
  18124. (((x) >> BIT_SHIFT_TX_OQT_0_3_FREE_SPACE) & \
  18125. BIT_MASK_TX_OQT_0_3_FREE_SPACE)
  18126. #define BIT_SET_TX_OQT_0_3_FREE_SPACE(x, v) \
  18127. (BIT_CLEAR_TX_OQT_0_3_FREE_SPACE(x) | BIT_TX_OQT_0_3_FREE_SPACE(v))
  18128. #define BIT_SHIFT_TX_OQT_13_FREE_SPACE 0
  18129. #define BIT_MASK_TX_OQT_13_FREE_SPACE 0xff
  18130. #define BIT_TX_OQT_13_FREE_SPACE(x) \
  18131. (((x) & BIT_MASK_TX_OQT_13_FREE_SPACE) \
  18132. << BIT_SHIFT_TX_OQT_13_FREE_SPACE)
  18133. #define BITS_TX_OQT_13_FREE_SPACE \
  18134. (BIT_MASK_TX_OQT_13_FREE_SPACE << BIT_SHIFT_TX_OQT_13_FREE_SPACE)
  18135. #define BIT_CLEAR_TX_OQT_13_FREE_SPACE(x) ((x) & (~BITS_TX_OQT_13_FREE_SPACE))
  18136. #define BIT_GET_TX_OQT_13_FREE_SPACE(x) \
  18137. (((x) >> BIT_SHIFT_TX_OQT_13_FREE_SPACE) & \
  18138. BIT_MASK_TX_OQT_13_FREE_SPACE)
  18139. #define BIT_SET_TX_OQT_13_FREE_SPACE(x, v) \
  18140. (BIT_CLEAR_TX_OQT_13_FREE_SPACE(x) | BIT_TX_OQT_13_FREE_SPACE(v))
  18141. #endif
  18142. #if (HALMAC_8198F_SUPPORT)
  18143. /* 2 REG_TQPNT6 (Offset 0x0264) */
  18144. #define BIT_SHIFT_EX2Q_HIGH_TH_V1 16
  18145. #define BIT_MASK_EX2Q_HIGH_TH_V1 0xfff
  18146. #define BIT_EX2Q_HIGH_TH_V1(x) \
  18147. (((x) & BIT_MASK_EX2Q_HIGH_TH_V1) << BIT_SHIFT_EX2Q_HIGH_TH_V1)
  18148. #define BITS_EX2Q_HIGH_TH_V1 \
  18149. (BIT_MASK_EX2Q_HIGH_TH_V1 << BIT_SHIFT_EX2Q_HIGH_TH_V1)
  18150. #define BIT_CLEAR_EX2Q_HIGH_TH_V1(x) ((x) & (~BITS_EX2Q_HIGH_TH_V1))
  18151. #define BIT_GET_EX2Q_HIGH_TH_V1(x) \
  18152. (((x) >> BIT_SHIFT_EX2Q_HIGH_TH_V1) & BIT_MASK_EX2Q_HIGH_TH_V1)
  18153. #define BIT_SET_EX2Q_HIGH_TH_V1(x, v) \
  18154. (BIT_CLEAR_EX2Q_HIGH_TH_V1(x) | BIT_EX2Q_HIGH_TH_V1(v))
  18155. #define BIT_SHIFT_EX2Q_LOW_TH_V1 0
  18156. #define BIT_MASK_EX2Q_LOW_TH_V1 0xfff
  18157. #define BIT_EX2Q_LOW_TH_V1(x) \
  18158. (((x) & BIT_MASK_EX2Q_LOW_TH_V1) << BIT_SHIFT_EX2Q_LOW_TH_V1)
  18159. #define BITS_EX2Q_LOW_TH_V1 \
  18160. (BIT_MASK_EX2Q_LOW_TH_V1 << BIT_SHIFT_EX2Q_LOW_TH_V1)
  18161. #define BIT_CLEAR_EX2Q_LOW_TH_V1(x) ((x) & (~BITS_EX2Q_LOW_TH_V1))
  18162. #define BIT_GET_EX2Q_LOW_TH_V1(x) \
  18163. (((x) >> BIT_SHIFT_EX2Q_LOW_TH_V1) & BIT_MASK_EX2Q_LOW_TH_V1)
  18164. #define BIT_SET_EX2Q_LOW_TH_V1(x, v) \
  18165. (BIT_CLEAR_EX2Q_LOW_TH_V1(x) | BIT_EX2Q_LOW_TH_V1(v))
  18166. /* 2 REG_FIFOPAGE_INFO_6 (Offset 0x0268) */
  18167. #define BIT_SHIFT_EX1Q_AVAL_PG_V1 16
  18168. #define BIT_MASK_EX1Q_AVAL_PG_V1 0xfff
  18169. #define BIT_EX1Q_AVAL_PG_V1(x) \
  18170. (((x) & BIT_MASK_EX1Q_AVAL_PG_V1) << BIT_SHIFT_EX1Q_AVAL_PG_V1)
  18171. #define BITS_EX1Q_AVAL_PG_V1 \
  18172. (BIT_MASK_EX1Q_AVAL_PG_V1 << BIT_SHIFT_EX1Q_AVAL_PG_V1)
  18173. #define BIT_CLEAR_EX1Q_AVAL_PG_V1(x) ((x) & (~BITS_EX1Q_AVAL_PG_V1))
  18174. #define BIT_GET_EX1Q_AVAL_PG_V1(x) \
  18175. (((x) >> BIT_SHIFT_EX1Q_AVAL_PG_V1) & BIT_MASK_EX1Q_AVAL_PG_V1)
  18176. #define BIT_SET_EX1Q_AVAL_PG_V1(x, v) \
  18177. (BIT_CLEAR_EX1Q_AVAL_PG_V1(x) | BIT_EX1Q_AVAL_PG_V1(v))
  18178. #define BIT_SHIFT_EX1Q_V1 0
  18179. #define BIT_MASK_EX1Q_V1 0xfff
  18180. #define BIT_EX1Q_V1(x) (((x) & BIT_MASK_EX1Q_V1) << BIT_SHIFT_EX1Q_V1)
  18181. #define BITS_EX1Q_V1 (BIT_MASK_EX1Q_V1 << BIT_SHIFT_EX1Q_V1)
  18182. #define BIT_CLEAR_EX1Q_V1(x) ((x) & (~BITS_EX1Q_V1))
  18183. #define BIT_GET_EX1Q_V1(x) (((x) >> BIT_SHIFT_EX1Q_V1) & BIT_MASK_EX1Q_V1)
  18184. #define BIT_SET_EX1Q_V1(x, v) (BIT_CLEAR_EX1Q_V1(x) | BIT_EX1Q_V1(v))
  18185. /* 2 REG_FIFOPAGE_INFO_7 (Offset 0x026C) */
  18186. #define BIT_SHIFT_EX2Q_AVAL_PG_V1 16
  18187. #define BIT_MASK_EX2Q_AVAL_PG_V1 0xfff
  18188. #define BIT_EX2Q_AVAL_PG_V1(x) \
  18189. (((x) & BIT_MASK_EX2Q_AVAL_PG_V1) << BIT_SHIFT_EX2Q_AVAL_PG_V1)
  18190. #define BITS_EX2Q_AVAL_PG_V1 \
  18191. (BIT_MASK_EX2Q_AVAL_PG_V1 << BIT_SHIFT_EX2Q_AVAL_PG_V1)
  18192. #define BIT_CLEAR_EX2Q_AVAL_PG_V1(x) ((x) & (~BITS_EX2Q_AVAL_PG_V1))
  18193. #define BIT_GET_EX2Q_AVAL_PG_V1(x) \
  18194. (((x) >> BIT_SHIFT_EX2Q_AVAL_PG_V1) & BIT_MASK_EX2Q_AVAL_PG_V1)
  18195. #define BIT_SET_EX2Q_AVAL_PG_V1(x, v) \
  18196. (BIT_CLEAR_EX2Q_AVAL_PG_V1(x) | BIT_EX2Q_AVAL_PG_V1(v))
  18197. #define BIT_SHIFT_EX2Q_V1 0
  18198. #define BIT_MASK_EX2Q_V1 0xfff
  18199. #define BIT_EX2Q_V1(x) (((x) & BIT_MASK_EX2Q_V1) << BIT_SHIFT_EX2Q_V1)
  18200. #define BITS_EX2Q_V1 (BIT_MASK_EX2Q_V1 << BIT_SHIFT_EX2Q_V1)
  18201. #define BIT_CLEAR_EX2Q_V1(x) ((x) & (~BITS_EX2Q_V1))
  18202. #define BIT_GET_EX2Q_V1(x) (((x) >> BIT_SHIFT_EX2Q_V1) & BIT_MASK_EX2Q_V1)
  18203. #define BIT_SET_EX2Q_V1(x, v) (BIT_CLEAR_EX2Q_V1(x) | BIT_EX2Q_V1(v))
  18204. #endif
  18205. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  18206. /* 2 REG_PGSUB_H (Offset 0x0270) */
  18207. #define BIT_SHIFT_HPQ_PGSUB_CNT 0
  18208. #define BIT_MASK_HPQ_PGSUB_CNT 0xffffffffL
  18209. #define BIT_HPQ_PGSUB_CNT(x) \
  18210. (((x) & BIT_MASK_HPQ_PGSUB_CNT) << BIT_SHIFT_HPQ_PGSUB_CNT)
  18211. #define BITS_HPQ_PGSUB_CNT (BIT_MASK_HPQ_PGSUB_CNT << BIT_SHIFT_HPQ_PGSUB_CNT)
  18212. #define BIT_CLEAR_HPQ_PGSUB_CNT(x) ((x) & (~BITS_HPQ_PGSUB_CNT))
  18213. #define BIT_GET_HPQ_PGSUB_CNT(x) \
  18214. (((x) >> BIT_SHIFT_HPQ_PGSUB_CNT) & BIT_MASK_HPQ_PGSUB_CNT)
  18215. #define BIT_SET_HPQ_PGSUB_CNT(x, v) \
  18216. (BIT_CLEAR_HPQ_PGSUB_CNT(x) | BIT_HPQ_PGSUB_CNT(v))
  18217. /* 2 REG_PGSUB_N (Offset 0x0274) */
  18218. #define BIT_SHIFT_NPQ_PGSUB_CNT 0
  18219. #define BIT_MASK_NPQ_PGSUB_CNT 0xffffffffL
  18220. #define BIT_NPQ_PGSUB_CNT(x) \
  18221. (((x) & BIT_MASK_NPQ_PGSUB_CNT) << BIT_SHIFT_NPQ_PGSUB_CNT)
  18222. #define BITS_NPQ_PGSUB_CNT (BIT_MASK_NPQ_PGSUB_CNT << BIT_SHIFT_NPQ_PGSUB_CNT)
  18223. #define BIT_CLEAR_NPQ_PGSUB_CNT(x) ((x) & (~BITS_NPQ_PGSUB_CNT))
  18224. #define BIT_GET_NPQ_PGSUB_CNT(x) \
  18225. (((x) >> BIT_SHIFT_NPQ_PGSUB_CNT) & BIT_MASK_NPQ_PGSUB_CNT)
  18226. #define BIT_SET_NPQ_PGSUB_CNT(x, v) \
  18227. (BIT_CLEAR_NPQ_PGSUB_CNT(x) | BIT_NPQ_PGSUB_CNT(v))
  18228. /* 2 REG_PGSUB_L (Offset 0x0278) */
  18229. #define BIT_SHIFT_LPQ_PGSUB_CNT 0
  18230. #define BIT_MASK_LPQ_PGSUB_CNT 0xffffffffL
  18231. #define BIT_LPQ_PGSUB_CNT(x) \
  18232. (((x) & BIT_MASK_LPQ_PGSUB_CNT) << BIT_SHIFT_LPQ_PGSUB_CNT)
  18233. #define BITS_LPQ_PGSUB_CNT (BIT_MASK_LPQ_PGSUB_CNT << BIT_SHIFT_LPQ_PGSUB_CNT)
  18234. #define BIT_CLEAR_LPQ_PGSUB_CNT(x) ((x) & (~BITS_LPQ_PGSUB_CNT))
  18235. #define BIT_GET_LPQ_PGSUB_CNT(x) \
  18236. (((x) >> BIT_SHIFT_LPQ_PGSUB_CNT) & BIT_MASK_LPQ_PGSUB_CNT)
  18237. #define BIT_SET_LPQ_PGSUB_CNT(x, v) \
  18238. (BIT_CLEAR_LPQ_PGSUB_CNT(x) | BIT_LPQ_PGSUB_CNT(v))
  18239. /* 2 REG_PGSUB_E (Offset 0x027C) */
  18240. #define BIT_SHIFT_EPQ_PGSUB_CNT 0
  18241. #define BIT_MASK_EPQ_PGSUB_CNT 0xffffffffL
  18242. #define BIT_EPQ_PGSUB_CNT(x) \
  18243. (((x) & BIT_MASK_EPQ_PGSUB_CNT) << BIT_SHIFT_EPQ_PGSUB_CNT)
  18244. #define BITS_EPQ_PGSUB_CNT (BIT_MASK_EPQ_PGSUB_CNT << BIT_SHIFT_EPQ_PGSUB_CNT)
  18245. #define BIT_CLEAR_EPQ_PGSUB_CNT(x) ((x) & (~BITS_EPQ_PGSUB_CNT))
  18246. #define BIT_GET_EPQ_PGSUB_CNT(x) \
  18247. (((x) >> BIT_SHIFT_EPQ_PGSUB_CNT) & BIT_MASK_EPQ_PGSUB_CNT)
  18248. #define BIT_SET_EPQ_PGSUB_CNT(x, v) \
  18249. (BIT_CLEAR_EPQ_PGSUB_CNT(x) | BIT_EPQ_PGSUB_CNT(v))
  18250. #define BIT_SHIFT_FWFF_PKT_STR_ADDR_V2 0
  18251. #define BIT_MASK_FWFF_PKT_STR_ADDR_V2 0x3fff
  18252. #define BIT_FWFF_PKT_STR_ADDR_V2(x) \
  18253. (((x) & BIT_MASK_FWFF_PKT_STR_ADDR_V2) \
  18254. << BIT_SHIFT_FWFF_PKT_STR_ADDR_V2)
  18255. #define BITS_FWFF_PKT_STR_ADDR_V2 \
  18256. (BIT_MASK_FWFF_PKT_STR_ADDR_V2 << BIT_SHIFT_FWFF_PKT_STR_ADDR_V2)
  18257. #define BIT_CLEAR_FWFF_PKT_STR_ADDR_V2(x) ((x) & (~BITS_FWFF_PKT_STR_ADDR_V2))
  18258. #define BIT_GET_FWFF_PKT_STR_ADDR_V2(x) \
  18259. (((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR_V2) & \
  18260. BIT_MASK_FWFF_PKT_STR_ADDR_V2)
  18261. #define BIT_SET_FWFF_PKT_STR_ADDR_V2(x, v) \
  18262. (BIT_CLEAR_FWFF_PKT_STR_ADDR_V2(x) | BIT_FWFF_PKT_STR_ADDR_V2(v))
  18263. #endif
  18264. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  18265. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18266. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18267. #define BIT_USB_RXDMA_AGG_EN BIT(31)
  18268. #endif
  18269. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  18270. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18271. #define BIT_RXDMA_AGG_OLD_MOD_V1 BIT(31)
  18272. #endif
  18273. #if (HALMAC_8197F_SUPPORT)
  18274. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18275. #define BIT_DMA_STORE_MODE BIT(31)
  18276. #endif
  18277. #if (HALMAC_8814B_SUPPORT)
  18278. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18279. #define BIT_DMA_STORE BIT(31)
  18280. #endif
  18281. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18282. HALMAC_8822C_SUPPORT)
  18283. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18284. #define BIT_EN_FW_ADD BIT(30)
  18285. #endif
  18286. #if (HALMAC_8192F_SUPPORT)
  18287. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18288. #define BIT_RXAGG_TH_MODE BIT(29)
  18289. #endif
  18290. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18291. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  18292. HALMAC_8822C_SUPPORT)
  18293. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18294. #define BIT_EN_PRE_CALC BIT(29)
  18295. #define BIT_RXAGG_SW_EN BIT(28)
  18296. #endif
  18297. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18298. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18299. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18300. #define BIT_RXAGG_SW_TRIG BIT(27)
  18301. #endif
  18302. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  18303. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18304. #define BIT_SHIFT_RXDMA_AGG_OLD_MOD 24
  18305. #define BIT_MASK_RXDMA_AGG_OLD_MOD 0xff
  18306. #define BIT_RXDMA_AGG_OLD_MOD(x) \
  18307. (((x) & BIT_MASK_RXDMA_AGG_OLD_MOD) << BIT_SHIFT_RXDMA_AGG_OLD_MOD)
  18308. #define BITS_RXDMA_AGG_OLD_MOD \
  18309. (BIT_MASK_RXDMA_AGG_OLD_MOD << BIT_SHIFT_RXDMA_AGG_OLD_MOD)
  18310. #define BIT_CLEAR_RXDMA_AGG_OLD_MOD(x) ((x) & (~BITS_RXDMA_AGG_OLD_MOD))
  18311. #define BIT_GET_RXDMA_AGG_OLD_MOD(x) \
  18312. (((x) >> BIT_SHIFT_RXDMA_AGG_OLD_MOD) & BIT_MASK_RXDMA_AGG_OLD_MOD)
  18313. #define BIT_SET_RXDMA_AGG_OLD_MOD(x, v) \
  18314. (BIT_CLEAR_RXDMA_AGG_OLD_MOD(x) | BIT_RXDMA_AGG_OLD_MOD(v))
  18315. #endif
  18316. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18317. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  18318. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  18319. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18320. #define BIT_SHIFT_PKT_NUM_WOL 16
  18321. #define BIT_MASK_PKT_NUM_WOL 0xff
  18322. #define BIT_PKT_NUM_WOL(x) \
  18323. (((x) & BIT_MASK_PKT_NUM_WOL) << BIT_SHIFT_PKT_NUM_WOL)
  18324. #define BITS_PKT_NUM_WOL (BIT_MASK_PKT_NUM_WOL << BIT_SHIFT_PKT_NUM_WOL)
  18325. #define BIT_CLEAR_PKT_NUM_WOL(x) ((x) & (~BITS_PKT_NUM_WOL))
  18326. #define BIT_GET_PKT_NUM_WOL(x) \
  18327. (((x) >> BIT_SHIFT_PKT_NUM_WOL) & BIT_MASK_PKT_NUM_WOL)
  18328. #define BIT_SET_PKT_NUM_WOL(x, v) \
  18329. (BIT_CLEAR_PKT_NUM_WOL(x) | BIT_PKT_NUM_WOL(v))
  18330. #endif
  18331. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18332. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  18333. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  18334. HALMAC_8881A_SUPPORT)
  18335. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18336. #define BIT_SHIFT_DMA_AGG_TO_V1 8
  18337. #define BIT_MASK_DMA_AGG_TO_V1 0xff
  18338. #define BIT_DMA_AGG_TO_V1(x) \
  18339. (((x) & BIT_MASK_DMA_AGG_TO_V1) << BIT_SHIFT_DMA_AGG_TO_V1)
  18340. #define BITS_DMA_AGG_TO_V1 (BIT_MASK_DMA_AGG_TO_V1 << BIT_SHIFT_DMA_AGG_TO_V1)
  18341. #define BIT_CLEAR_DMA_AGG_TO_V1(x) ((x) & (~BITS_DMA_AGG_TO_V1))
  18342. #define BIT_GET_DMA_AGG_TO_V1(x) \
  18343. (((x) >> BIT_SHIFT_DMA_AGG_TO_V1) & BIT_MASK_DMA_AGG_TO_V1)
  18344. #define BIT_SET_DMA_AGG_TO_V1(x, v) \
  18345. (BIT_CLEAR_DMA_AGG_TO_V1(x) | BIT_DMA_AGG_TO_V1(v))
  18346. #endif
  18347. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  18348. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18349. #define BIT_SHIFT_DMA_AGG_TO 8
  18350. #define BIT_MASK_DMA_AGG_TO 0xf
  18351. #define BIT_DMA_AGG_TO(x) (((x) & BIT_MASK_DMA_AGG_TO) << BIT_SHIFT_DMA_AGG_TO)
  18352. #define BITS_DMA_AGG_TO (BIT_MASK_DMA_AGG_TO << BIT_SHIFT_DMA_AGG_TO)
  18353. #define BIT_CLEAR_DMA_AGG_TO(x) ((x) & (~BITS_DMA_AGG_TO))
  18354. #define BIT_GET_DMA_AGG_TO(x) \
  18355. (((x) >> BIT_SHIFT_DMA_AGG_TO) & BIT_MASK_DMA_AGG_TO)
  18356. #define BIT_SET_DMA_AGG_TO(x, v) (BIT_CLEAR_DMA_AGG_TO(x) | BIT_DMA_AGG_TO(v))
  18357. #endif
  18358. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8881A_SUPPORT)
  18359. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18360. #define BIT_SHIFT_RXDMA_AGG_PG_TH_V1 0
  18361. #define BIT_MASK_RXDMA_AGG_PG_TH_V1 0xf
  18362. #define BIT_RXDMA_AGG_PG_TH_V1(x) \
  18363. (((x) & BIT_MASK_RXDMA_AGG_PG_TH_V1) << BIT_SHIFT_RXDMA_AGG_PG_TH_V1)
  18364. #define BITS_RXDMA_AGG_PG_TH_V1 \
  18365. (BIT_MASK_RXDMA_AGG_PG_TH_V1 << BIT_SHIFT_RXDMA_AGG_PG_TH_V1)
  18366. #define BIT_CLEAR_RXDMA_AGG_PG_TH_V1(x) ((x) & (~BITS_RXDMA_AGG_PG_TH_V1))
  18367. #define BIT_GET_RXDMA_AGG_PG_TH_V1(x) \
  18368. (((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V1) & BIT_MASK_RXDMA_AGG_PG_TH_V1)
  18369. #define BIT_SET_RXDMA_AGG_PG_TH_V1(x, v) \
  18370. (BIT_CLEAR_RXDMA_AGG_PG_TH_V1(x) | BIT_RXDMA_AGG_PG_TH_V1(v))
  18371. #endif
  18372. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  18373. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18374. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18375. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18376. #define BIT_SHIFT_RXDMA_AGG_PG_TH 0
  18377. #define BIT_MASK_RXDMA_AGG_PG_TH 0xff
  18378. #define BIT_RXDMA_AGG_PG_TH(x) \
  18379. (((x) & BIT_MASK_RXDMA_AGG_PG_TH) << BIT_SHIFT_RXDMA_AGG_PG_TH)
  18380. #define BITS_RXDMA_AGG_PG_TH \
  18381. (BIT_MASK_RXDMA_AGG_PG_TH << BIT_SHIFT_RXDMA_AGG_PG_TH)
  18382. #define BIT_CLEAR_RXDMA_AGG_PG_TH(x) ((x) & (~BITS_RXDMA_AGG_PG_TH))
  18383. #define BIT_GET_RXDMA_AGG_PG_TH(x) \
  18384. (((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH) & BIT_MASK_RXDMA_AGG_PG_TH)
  18385. #define BIT_SET_RXDMA_AGG_PG_TH(x, v) \
  18386. (BIT_CLEAR_RXDMA_AGG_PG_TH(x) | BIT_RXDMA_AGG_PG_TH(v))
  18387. #endif
  18388. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  18389. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18390. #define BIT_SHIFT_QINFO_INDEX 0
  18391. #define BIT_MASK_QINFO_INDEX 0x1f
  18392. #define BIT_QINFO_INDEX(x) \
  18393. (((x) & BIT_MASK_QINFO_INDEX) << BIT_SHIFT_QINFO_INDEX)
  18394. #define BITS_QINFO_INDEX (BIT_MASK_QINFO_INDEX << BIT_SHIFT_QINFO_INDEX)
  18395. #define BIT_CLEAR_QINFO_INDEX(x) ((x) & (~BITS_QINFO_INDEX))
  18396. #define BIT_GET_QINFO_INDEX(x) \
  18397. (((x) >> BIT_SHIFT_QINFO_INDEX) & BIT_MASK_QINFO_INDEX)
  18398. #define BIT_SET_QINFO_INDEX(x, v) \
  18399. (BIT_CLEAR_QINFO_INDEX(x) | BIT_QINFO_INDEX(v))
  18400. #endif
  18401. #if (HALMAC_8814AMP_SUPPORT)
  18402. /* 2 REG_RXDMA_AGG_PG_TH (Offset 0x0280) */
  18403. #define BIT_SHIFT_RXDMA_AGG_PG_TH_V2 0
  18404. #define BIT_MASK_RXDMA_AGG_PG_TH_V2 0xff
  18405. #define BIT_RXDMA_AGG_PG_TH_V2(x) \
  18406. (((x) & BIT_MASK_RXDMA_AGG_PG_TH_V2) << BIT_SHIFT_RXDMA_AGG_PG_TH_V2)
  18407. #define BITS_RXDMA_AGG_PG_TH_V2 \
  18408. (BIT_MASK_RXDMA_AGG_PG_TH_V2 << BIT_SHIFT_RXDMA_AGG_PG_TH_V2)
  18409. #define BIT_CLEAR_RXDMA_AGG_PG_TH_V2(x) ((x) & (~BITS_RXDMA_AGG_PG_TH_V2))
  18410. #define BIT_GET_RXDMA_AGG_PG_TH_V2(x) \
  18411. (((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V2) & BIT_MASK_RXDMA_AGG_PG_TH_V2)
  18412. #define BIT_SET_RXDMA_AGG_PG_TH_V2(x, v) \
  18413. (BIT_CLEAR_RXDMA_AGG_PG_TH_V2(x) | BIT_RXDMA_AGG_PG_TH_V2(v))
  18414. #endif
  18415. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18416. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  18417. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  18418. /* 2 REG_RXPKT_NUM (Offset 0x0284) */
  18419. #define BIT_SHIFT_RXPKT_NUM 24
  18420. #define BIT_MASK_RXPKT_NUM 0xff
  18421. #define BIT_RXPKT_NUM(x) (((x) & BIT_MASK_RXPKT_NUM) << BIT_SHIFT_RXPKT_NUM)
  18422. #define BITS_RXPKT_NUM (BIT_MASK_RXPKT_NUM << BIT_SHIFT_RXPKT_NUM)
  18423. #define BIT_CLEAR_RXPKT_NUM(x) ((x) & (~BITS_RXPKT_NUM))
  18424. #define BIT_GET_RXPKT_NUM(x) (((x) >> BIT_SHIFT_RXPKT_NUM) & BIT_MASK_RXPKT_NUM)
  18425. #define BIT_SET_RXPKT_NUM(x, v) (BIT_CLEAR_RXPKT_NUM(x) | BIT_RXPKT_NUM(v))
  18426. #endif
  18427. #if (HALMAC_8192F_SUPPORT)
  18428. /* 2 REG_RXPKT_NUM (Offset 0x0284) */
  18429. #define BIT_STOP_RXDMA BIT(20)
  18430. #endif
  18431. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18432. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18433. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18434. /* 2 REG_RXPKT_NUM (Offset 0x0284) */
  18435. #define BIT_SHIFT_FW_UPD_RDPTR19_TO_16 20
  18436. #define BIT_MASK_FW_UPD_RDPTR19_TO_16 0xf
  18437. #define BIT_FW_UPD_RDPTR19_TO_16(x) \
  18438. (((x) & BIT_MASK_FW_UPD_RDPTR19_TO_16) \
  18439. << BIT_SHIFT_FW_UPD_RDPTR19_TO_16)
  18440. #define BITS_FW_UPD_RDPTR19_TO_16 \
  18441. (BIT_MASK_FW_UPD_RDPTR19_TO_16 << BIT_SHIFT_FW_UPD_RDPTR19_TO_16)
  18442. #define BIT_CLEAR_FW_UPD_RDPTR19_TO_16(x) ((x) & (~BITS_FW_UPD_RDPTR19_TO_16))
  18443. #define BIT_GET_FW_UPD_RDPTR19_TO_16(x) \
  18444. (((x) >> BIT_SHIFT_FW_UPD_RDPTR19_TO_16) & \
  18445. BIT_MASK_FW_UPD_RDPTR19_TO_16)
  18446. #define BIT_SET_FW_UPD_RDPTR19_TO_16(x, v) \
  18447. (BIT_CLEAR_FW_UPD_RDPTR19_TO_16(x) | BIT_FW_UPD_RDPTR19_TO_16(v))
  18448. #endif
  18449. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18450. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18451. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18452. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18453. /* 2 REG_RXPKT_NUM (Offset 0x0284) */
  18454. #define BIT_RXDMA_REQ BIT(19)
  18455. #define BIT_RW_RELEASE_EN BIT(18)
  18456. #define BIT_RXDMA_IDLE BIT(17)
  18457. #define BIT_RXPKT_RELEASE_POLL BIT(16)
  18458. #define BIT_SHIFT_FW_UPD_RDPTR 0
  18459. #define BIT_MASK_FW_UPD_RDPTR 0xffff
  18460. #define BIT_FW_UPD_RDPTR(x) \
  18461. (((x) & BIT_MASK_FW_UPD_RDPTR) << BIT_SHIFT_FW_UPD_RDPTR)
  18462. #define BITS_FW_UPD_RDPTR (BIT_MASK_FW_UPD_RDPTR << BIT_SHIFT_FW_UPD_RDPTR)
  18463. #define BIT_CLEAR_FW_UPD_RDPTR(x) ((x) & (~BITS_FW_UPD_RDPTR))
  18464. #define BIT_GET_FW_UPD_RDPTR(x) \
  18465. (((x) >> BIT_SHIFT_FW_UPD_RDPTR) & BIT_MASK_FW_UPD_RDPTR)
  18466. #define BIT_SET_FW_UPD_RDPTR(x, v) \
  18467. (BIT_CLEAR_FW_UPD_RDPTR(x) | BIT_FW_UPD_RDPTR(v))
  18468. #endif
  18469. #if (HALMAC_8197F_SUPPORT)
  18470. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18471. #define BIT_FC2H_PKT_OVERFLOW BIT(8)
  18472. #endif
  18473. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18474. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18475. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18476. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18477. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18478. #define BIT_C2H_PKT_OVF BIT(7)
  18479. #endif
  18480. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  18481. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18482. #define BIT_AGG_CFG_ISSUE BIT(6)
  18483. #endif
  18484. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  18485. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  18486. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  18487. HALMAC_8822C_SUPPORT)
  18488. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18489. #define BIT_AGG_CONFGI_ISSUE BIT(6)
  18490. #endif
  18491. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18492. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18493. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18494. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18495. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18496. #define BIT_FW_POLL_ISSUE BIT(5)
  18497. #define BIT_RX_DATA_UDN BIT(4)
  18498. #define BIT_RX_SFF_UDN BIT(3)
  18499. #define BIT_RX_SFF_OVF BIT(2)
  18500. #endif
  18501. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  18502. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18503. #define BIT_USB_REQ_LEN_OVF BIT(1)
  18504. #endif
  18505. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18506. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18507. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18508. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18509. /* 2 REG_RXDMA_STATUS (Offset 0x0288) */
  18510. #define BIT_RXPKT_OVF BIT(0)
  18511. /* 2 REG_RXDMA_DPR (Offset 0x028C) */
  18512. #define BIT_SHIFT_RDE_DEBUG 0
  18513. #define BIT_MASK_RDE_DEBUG 0xffffffffL
  18514. #define BIT_RDE_DEBUG(x) (((x) & BIT_MASK_RDE_DEBUG) << BIT_SHIFT_RDE_DEBUG)
  18515. #define BITS_RDE_DEBUG (BIT_MASK_RDE_DEBUG << BIT_SHIFT_RDE_DEBUG)
  18516. #define BIT_CLEAR_RDE_DEBUG(x) ((x) & (~BITS_RDE_DEBUG))
  18517. #define BIT_GET_RDE_DEBUG(x) (((x) >> BIT_SHIFT_RDE_DEBUG) & BIT_MASK_RDE_DEBUG)
  18518. #define BIT_SET_RDE_DEBUG(x, v) (BIT_CLEAR_RDE_DEBUG(x) | BIT_RDE_DEBUG(v))
  18519. #endif
  18520. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18521. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18522. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18523. #define BIT_SHIFT_PKTNUM_TH_V2 24
  18524. #define BIT_MASK_PKTNUM_TH_V2 0x1f
  18525. #define BIT_PKTNUM_TH_V2(x) \
  18526. (((x) & BIT_MASK_PKTNUM_TH_V2) << BIT_SHIFT_PKTNUM_TH_V2)
  18527. #define BITS_PKTNUM_TH_V2 (BIT_MASK_PKTNUM_TH_V2 << BIT_SHIFT_PKTNUM_TH_V2)
  18528. #define BIT_CLEAR_PKTNUM_TH_V2(x) ((x) & (~BITS_PKTNUM_TH_V2))
  18529. #define BIT_GET_PKTNUM_TH_V2(x) \
  18530. (((x) >> BIT_SHIFT_PKTNUM_TH_V2) & BIT_MASK_PKTNUM_TH_V2)
  18531. #define BIT_SET_PKTNUM_TH_V2(x, v) \
  18532. (BIT_CLEAR_PKTNUM_TH_V2(x) | BIT_PKTNUM_TH_V2(v))
  18533. #define BIT_TXBA_BREAK_USBAGG BIT(23)
  18534. #define BIT_SHIFT_PKTLEN_PARA 16
  18535. #define BIT_MASK_PKTLEN_PARA 0x7
  18536. #define BIT_PKTLEN_PARA(x) \
  18537. (((x) & BIT_MASK_PKTLEN_PARA) << BIT_SHIFT_PKTLEN_PARA)
  18538. #define BITS_PKTLEN_PARA (BIT_MASK_PKTLEN_PARA << BIT_SHIFT_PKTLEN_PARA)
  18539. #define BIT_CLEAR_PKTLEN_PARA(x) ((x) & (~BITS_PKTLEN_PARA))
  18540. #define BIT_GET_PKTLEN_PARA(x) \
  18541. (((x) >> BIT_SHIFT_PKTLEN_PARA) & BIT_MASK_PKTLEN_PARA)
  18542. #define BIT_SET_PKTLEN_PARA(x, v) \
  18543. (BIT_CLEAR_PKTLEN_PARA(x) | BIT_PKTLEN_PARA(v))
  18544. #endif
  18545. #if (HALMAC_8198F_SUPPORT)
  18546. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18547. #define BIT_EN_SDIO_FAIL BIT(9)
  18548. #endif
  18549. #if (HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  18550. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18551. #define BIT_GRAYCODE_SYNC_WITH_BIN BIT(8)
  18552. #endif
  18553. #if (HALMAC_8198F_SUPPORT)
  18554. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18555. #define BIT_RXDMA_DBD_SEL BIT(7)
  18556. #endif
  18557. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  18558. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18559. #define BIT_RX_DBG_SEL BIT(7)
  18560. #endif
  18561. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18562. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18563. HALMAC_8822C_SUPPORT)
  18564. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18565. #define BIT_EN_SPD BIT(6)
  18566. #endif
  18567. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18568. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18569. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18570. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18571. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18572. #define BIT_SHIFT_BURST_SIZE 4
  18573. #define BIT_MASK_BURST_SIZE 0x3
  18574. #define BIT_BURST_SIZE(x) (((x) & BIT_MASK_BURST_SIZE) << BIT_SHIFT_BURST_SIZE)
  18575. #define BITS_BURST_SIZE (BIT_MASK_BURST_SIZE << BIT_SHIFT_BURST_SIZE)
  18576. #define BIT_CLEAR_BURST_SIZE(x) ((x) & (~BITS_BURST_SIZE))
  18577. #define BIT_GET_BURST_SIZE(x) \
  18578. (((x) >> BIT_SHIFT_BURST_SIZE) & BIT_MASK_BURST_SIZE)
  18579. #define BIT_SET_BURST_SIZE(x, v) (BIT_CLEAR_BURST_SIZE(x) | BIT_BURST_SIZE(v))
  18580. #define BIT_SHIFT_BURST_CNT 2
  18581. #define BIT_MASK_BURST_CNT 0x3
  18582. #define BIT_BURST_CNT(x) (((x) & BIT_MASK_BURST_CNT) << BIT_SHIFT_BURST_CNT)
  18583. #define BITS_BURST_CNT (BIT_MASK_BURST_CNT << BIT_SHIFT_BURST_CNT)
  18584. #define BIT_CLEAR_BURST_CNT(x) ((x) & (~BITS_BURST_CNT))
  18585. #define BIT_GET_BURST_CNT(x) (((x) >> BIT_SHIFT_BURST_CNT) & BIT_MASK_BURST_CNT)
  18586. #define BIT_SET_BURST_CNT(x, v) (BIT_CLEAR_BURST_CNT(x) | BIT_BURST_CNT(v))
  18587. #endif
  18588. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  18589. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18590. #define BIT_DAM_MODE BIT(1)
  18591. #endif
  18592. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  18593. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  18594. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  18595. HALMAC_8822C_SUPPORT)
  18596. /* 2 REG_RXDMA_MODE (Offset 0x0290) */
  18597. #define BIT_DMA_MODE BIT(1)
  18598. #endif
  18599. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18600. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18601. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18602. /* 2 REG_C2H_PKT (Offset 0x0294) */
  18603. #define BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19 24
  18604. #define BIT_MASK_R_C2H_STR_ADDR_16_TO_19 0xf
  18605. #define BIT_R_C2H_STR_ADDR_16_TO_19(x) \
  18606. (((x) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19) \
  18607. << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19)
  18608. #define BITS_R_C2H_STR_ADDR_16_TO_19 \
  18609. (BIT_MASK_R_C2H_STR_ADDR_16_TO_19 << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19)
  18610. #define BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19(x) \
  18611. ((x) & (~BITS_R_C2H_STR_ADDR_16_TO_19))
  18612. #define BIT_GET_R_C2H_STR_ADDR_16_TO_19(x) \
  18613. (((x) >> BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19) & \
  18614. BIT_MASK_R_C2H_STR_ADDR_16_TO_19)
  18615. #define BIT_SET_R_C2H_STR_ADDR_16_TO_19(x, v) \
  18616. (BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19(x) | BIT_R_C2H_STR_ADDR_16_TO_19(v))
  18617. #endif
  18618. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  18619. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18620. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  18621. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  18622. /* 2 REG_C2H_PKT (Offset 0x0294) */
  18623. #define BIT_R_C2H_PKT_REQ BIT(16)
  18624. #define BIT_SHIFT_R_C2H_STR_ADDR 0
  18625. #define BIT_MASK_R_C2H_STR_ADDR 0xffff
  18626. #define BIT_R_C2H_STR_ADDR(x) \
  18627. (((x) & BIT_MASK_R_C2H_STR_ADDR) << BIT_SHIFT_R_C2H_STR_ADDR)
  18628. #define BITS_R_C2H_STR_ADDR \
  18629. (BIT_MASK_R_C2H_STR_ADDR << BIT_SHIFT_R_C2H_STR_ADDR)
  18630. #define BIT_CLEAR_R_C2H_STR_ADDR(x) ((x) & (~BITS_R_C2H_STR_ADDR))
  18631. #define BIT_GET_R_C2H_STR_ADDR(x) \
  18632. (((x) >> BIT_SHIFT_R_C2H_STR_ADDR) & BIT_MASK_R_C2H_STR_ADDR)
  18633. #define BIT_SET_R_C2H_STR_ADDR(x, v) \
  18634. (BIT_CLEAR_R_C2H_STR_ADDR(x) | BIT_R_C2H_STR_ADDR(v))
  18635. #endif
  18636. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18637. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18638. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18639. /* 2 REG_FWFF_C2H (Offset 0x0298) */
  18640. #define BIT_SHIFT_C2H_DMA_ADDR 0
  18641. #define BIT_MASK_C2H_DMA_ADDR 0x3ffff
  18642. #define BIT_C2H_DMA_ADDR(x) \
  18643. (((x) & BIT_MASK_C2H_DMA_ADDR) << BIT_SHIFT_C2H_DMA_ADDR)
  18644. #define BITS_C2H_DMA_ADDR (BIT_MASK_C2H_DMA_ADDR << BIT_SHIFT_C2H_DMA_ADDR)
  18645. #define BIT_CLEAR_C2H_DMA_ADDR(x) ((x) & (~BITS_C2H_DMA_ADDR))
  18646. #define BIT_GET_C2H_DMA_ADDR(x) \
  18647. (((x) >> BIT_SHIFT_C2H_DMA_ADDR) & BIT_MASK_C2H_DMA_ADDR)
  18648. #define BIT_SET_C2H_DMA_ADDR(x, v) \
  18649. (BIT_CLEAR_C2H_DMA_ADDR(x) | BIT_C2H_DMA_ADDR(v))
  18650. /* 2 REG_FWFF_CTRL (Offset 0x029C) */
  18651. #define BIT_FWFF_DMAPKT_REQ BIT(31)
  18652. #endif
  18653. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18654. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  18655. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18656. /* 2 REG_FWFF_CTRL (Offset 0x029C) */
  18657. #define BIT_SHIFT_FWFF_DMA_PKT_NUM 16
  18658. #define BIT_MASK_FWFF_DMA_PKT_NUM 0xff
  18659. #define BIT_FWFF_DMA_PKT_NUM(x) \
  18660. (((x) & BIT_MASK_FWFF_DMA_PKT_NUM) << BIT_SHIFT_FWFF_DMA_PKT_NUM)
  18661. #define BITS_FWFF_DMA_PKT_NUM \
  18662. (BIT_MASK_FWFF_DMA_PKT_NUM << BIT_SHIFT_FWFF_DMA_PKT_NUM)
  18663. #define BIT_CLEAR_FWFF_DMA_PKT_NUM(x) ((x) & (~BITS_FWFF_DMA_PKT_NUM))
  18664. #define BIT_GET_FWFF_DMA_PKT_NUM(x) \
  18665. (((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM) & BIT_MASK_FWFF_DMA_PKT_NUM)
  18666. #define BIT_SET_FWFF_DMA_PKT_NUM(x, v) \
  18667. (BIT_CLEAR_FWFF_DMA_PKT_NUM(x) | BIT_FWFF_DMA_PKT_NUM(v))
  18668. #endif
  18669. #if (HALMAC_8814B_SUPPORT)
  18670. /* 2 REG_FWFF_CTRL (Offset 0x029C) */
  18671. #define BIT_SHIFT_FWFF_DMA_PKT_NUM_V1 16
  18672. #define BIT_MASK_FWFF_DMA_PKT_NUM_V1 0x7fff
  18673. #define BIT_FWFF_DMA_PKT_NUM_V1(x) \
  18674. (((x) & BIT_MASK_FWFF_DMA_PKT_NUM_V1) << BIT_SHIFT_FWFF_DMA_PKT_NUM_V1)
  18675. #define BITS_FWFF_DMA_PKT_NUM_V1 \
  18676. (BIT_MASK_FWFF_DMA_PKT_NUM_V1 << BIT_SHIFT_FWFF_DMA_PKT_NUM_V1)
  18677. #define BIT_CLEAR_FWFF_DMA_PKT_NUM_V1(x) ((x) & (~BITS_FWFF_DMA_PKT_NUM_V1))
  18678. #define BIT_GET_FWFF_DMA_PKT_NUM_V1(x) \
  18679. (((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM_V1) & BIT_MASK_FWFF_DMA_PKT_NUM_V1)
  18680. #define BIT_SET_FWFF_DMA_PKT_NUM_V1(x, v) \
  18681. (BIT_CLEAR_FWFF_DMA_PKT_NUM_V1(x) | BIT_FWFF_DMA_PKT_NUM_V1(v))
  18682. #endif
  18683. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18684. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18685. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18686. /* 2 REG_FWFF_CTRL (Offset 0x029C) */
  18687. #define BIT_SHIFT_FWFF_STR_ADDR 0
  18688. #define BIT_MASK_FWFF_STR_ADDR 0xffff
  18689. #define BIT_FWFF_STR_ADDR(x) \
  18690. (((x) & BIT_MASK_FWFF_STR_ADDR) << BIT_SHIFT_FWFF_STR_ADDR)
  18691. #define BITS_FWFF_STR_ADDR (BIT_MASK_FWFF_STR_ADDR << BIT_SHIFT_FWFF_STR_ADDR)
  18692. #define BIT_CLEAR_FWFF_STR_ADDR(x) ((x) & (~BITS_FWFF_STR_ADDR))
  18693. #define BIT_GET_FWFF_STR_ADDR(x) \
  18694. (((x) >> BIT_SHIFT_FWFF_STR_ADDR) & BIT_MASK_FWFF_STR_ADDR)
  18695. #define BIT_SET_FWFF_STR_ADDR(x, v) \
  18696. (BIT_CLEAR_FWFF_STR_ADDR(x) | BIT_FWFF_STR_ADDR(v))
  18697. #endif
  18698. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18699. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  18700. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18701. /* 2 REG_FWFF_PKT_INFO (Offset 0x02A0) */
  18702. #define BIT_SHIFT_FWFF_PKT_QUEUED 16
  18703. #define BIT_MASK_FWFF_PKT_QUEUED 0xff
  18704. #define BIT_FWFF_PKT_QUEUED(x) \
  18705. (((x) & BIT_MASK_FWFF_PKT_QUEUED) << BIT_SHIFT_FWFF_PKT_QUEUED)
  18706. #define BITS_FWFF_PKT_QUEUED \
  18707. (BIT_MASK_FWFF_PKT_QUEUED << BIT_SHIFT_FWFF_PKT_QUEUED)
  18708. #define BIT_CLEAR_FWFF_PKT_QUEUED(x) ((x) & (~BITS_FWFF_PKT_QUEUED))
  18709. #define BIT_GET_FWFF_PKT_QUEUED(x) \
  18710. (((x) >> BIT_SHIFT_FWFF_PKT_QUEUED) & BIT_MASK_FWFF_PKT_QUEUED)
  18711. #define BIT_SET_FWFF_PKT_QUEUED(x, v) \
  18712. (BIT_CLEAR_FWFF_PKT_QUEUED(x) | BIT_FWFF_PKT_QUEUED(v))
  18713. #endif
  18714. #if (HALMAC_8814B_SUPPORT)
  18715. /* 2 REG_FWFF_PKT_INFO (Offset 0x02A0) */
  18716. #define BIT_SHIFT_FWFF_PKT_READ_ADDR 16
  18717. #define BIT_MASK_FWFF_PKT_READ_ADDR 0xffff
  18718. #define BIT_FWFF_PKT_READ_ADDR(x) \
  18719. (((x) & BIT_MASK_FWFF_PKT_READ_ADDR) << BIT_SHIFT_FWFF_PKT_READ_ADDR)
  18720. #define BITS_FWFF_PKT_READ_ADDR \
  18721. (BIT_MASK_FWFF_PKT_READ_ADDR << BIT_SHIFT_FWFF_PKT_READ_ADDR)
  18722. #define BIT_CLEAR_FWFF_PKT_READ_ADDR(x) ((x) & (~BITS_FWFF_PKT_READ_ADDR))
  18723. #define BIT_GET_FWFF_PKT_READ_ADDR(x) \
  18724. (((x) >> BIT_SHIFT_FWFF_PKT_READ_ADDR) & BIT_MASK_FWFF_PKT_READ_ADDR)
  18725. #define BIT_SET_FWFF_PKT_READ_ADDR(x, v) \
  18726. (BIT_CLEAR_FWFF_PKT_READ_ADDR(x) | BIT_FWFF_PKT_READ_ADDR(v))
  18727. #endif
  18728. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  18729. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  18730. /* 2 REG_FWFF_PKT_INFO (Offset 0x02A0) */
  18731. #define BIT_SHIFT_FWFF_PKT_STR_ADDR 0
  18732. #define BIT_MASK_FWFF_PKT_STR_ADDR 0xffff
  18733. #define BIT_FWFF_PKT_STR_ADDR(x) \
  18734. (((x) & BIT_MASK_FWFF_PKT_STR_ADDR) << BIT_SHIFT_FWFF_PKT_STR_ADDR)
  18735. #define BITS_FWFF_PKT_STR_ADDR \
  18736. (BIT_MASK_FWFF_PKT_STR_ADDR << BIT_SHIFT_FWFF_PKT_STR_ADDR)
  18737. #define BIT_CLEAR_FWFF_PKT_STR_ADDR(x) ((x) & (~BITS_FWFF_PKT_STR_ADDR))
  18738. #define BIT_GET_FWFF_PKT_STR_ADDR(x) \
  18739. (((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR) & BIT_MASK_FWFF_PKT_STR_ADDR)
  18740. #define BIT_SET_FWFF_PKT_STR_ADDR(x, v) \
  18741. (BIT_CLEAR_FWFF_PKT_STR_ADDR(x) | BIT_FWFF_PKT_STR_ADDR(v))
  18742. #endif
  18743. #if (HALMAC_8814AMP_SUPPORT)
  18744. /* 2 REG_FWFF_PKT_INFO (Offset 0x02A0) */
  18745. #define BIT_SHIFT_FWFF_PKT_STR_ADDR_V1 0
  18746. #define BIT_MASK_FWFF_PKT_STR_ADDR_V1 0x7ff
  18747. #define BIT_FWFF_PKT_STR_ADDR_V1(x) \
  18748. (((x) & BIT_MASK_FWFF_PKT_STR_ADDR_V1) \
  18749. << BIT_SHIFT_FWFF_PKT_STR_ADDR_V1)
  18750. #define BITS_FWFF_PKT_STR_ADDR_V1 \
  18751. (BIT_MASK_FWFF_PKT_STR_ADDR_V1 << BIT_SHIFT_FWFF_PKT_STR_ADDR_V1)
  18752. #define BIT_CLEAR_FWFF_PKT_STR_ADDR_V1(x) ((x) & (~BITS_FWFF_PKT_STR_ADDR_V1))
  18753. #define BIT_GET_FWFF_PKT_STR_ADDR_V1(x) \
  18754. (((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR_V1) & \
  18755. BIT_MASK_FWFF_PKT_STR_ADDR_V1)
  18756. #define BIT_SET_FWFF_PKT_STR_ADDR_V1(x, v) \
  18757. (BIT_CLEAR_FWFF_PKT_STR_ADDR_V1(x) | BIT_FWFF_PKT_STR_ADDR_V1(v))
  18758. #endif
  18759. #if (HALMAC_8814B_SUPPORT)
  18760. /* 2 REG_FWFF_PKT_INFO (Offset 0x02A0) */
  18761. #define BIT_SHIFT_FWFF_PKT_WRITE_ADDR 0
  18762. #define BIT_MASK_FWFF_PKT_WRITE_ADDR 0xffff
  18763. #define BIT_FWFF_PKT_WRITE_ADDR(x) \
  18764. (((x) & BIT_MASK_FWFF_PKT_WRITE_ADDR) << BIT_SHIFT_FWFF_PKT_WRITE_ADDR)
  18765. #define BITS_FWFF_PKT_WRITE_ADDR \
  18766. (BIT_MASK_FWFF_PKT_WRITE_ADDR << BIT_SHIFT_FWFF_PKT_WRITE_ADDR)
  18767. #define BIT_CLEAR_FWFF_PKT_WRITE_ADDR(x) ((x) & (~BITS_FWFF_PKT_WRITE_ADDR))
  18768. #define BIT_GET_FWFF_PKT_WRITE_ADDR(x) \
  18769. (((x) >> BIT_SHIFT_FWFF_PKT_WRITE_ADDR) & BIT_MASK_FWFF_PKT_WRITE_ADDR)
  18770. #define BIT_SET_FWFF_PKT_WRITE_ADDR(x, v) \
  18771. (BIT_CLEAR_FWFF_PKT_WRITE_ADDR(x) | BIT_FWFF_PKT_WRITE_ADDR(v))
  18772. #endif
  18773. #if (HALMAC_8197F_SUPPORT)
  18774. /* 2 REG_FC2H_INFO (Offset 0x02A4) */
  18775. #define BIT_FC2H_PKT_REQ BIT(16)
  18776. #endif
  18777. #if (HALMAC_8198F_SUPPORT)
  18778. /* 2 REG_FC2H_INFO (Offset 0x02A4) */
  18779. #define BIT_FC2H_DMAPKT_REQ BIT(16)
  18780. #endif
  18781. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  18782. /* 2 REG_FC2H_INFO (Offset 0x02A4) */
  18783. #define BIT_SHIFT_FC2H_STR_ADDR 0
  18784. #define BIT_MASK_FC2H_STR_ADDR 0xffff
  18785. #define BIT_FC2H_STR_ADDR(x) \
  18786. (((x) & BIT_MASK_FC2H_STR_ADDR) << BIT_SHIFT_FC2H_STR_ADDR)
  18787. #define BITS_FC2H_STR_ADDR (BIT_MASK_FC2H_STR_ADDR << BIT_SHIFT_FC2H_STR_ADDR)
  18788. #define BIT_CLEAR_FC2H_STR_ADDR(x) ((x) & (~BITS_FC2H_STR_ADDR))
  18789. #define BIT_GET_FC2H_STR_ADDR(x) \
  18790. (((x) >> BIT_SHIFT_FC2H_STR_ADDR) & BIT_MASK_FC2H_STR_ADDR)
  18791. #define BIT_SET_FC2H_STR_ADDR(x, v) \
  18792. (BIT_CLEAR_FC2H_STR_ADDR(x) | BIT_FC2H_STR_ADDR(v))
  18793. #endif
  18794. #if (HALMAC_8814B_SUPPORT)
  18795. /* 2 REG_FWFF_PKT_INFO2 (Offset 0x02A4) */
  18796. #define BIT_SHIFT_FWFF_PKT_QUEUED_V1 0
  18797. #define BIT_MASK_FWFF_PKT_QUEUED_V1 0xffff
  18798. #define BIT_FWFF_PKT_QUEUED_V1(x) \
  18799. (((x) & BIT_MASK_FWFF_PKT_QUEUED_V1) << BIT_SHIFT_FWFF_PKT_QUEUED_V1)
  18800. #define BITS_FWFF_PKT_QUEUED_V1 \
  18801. (BIT_MASK_FWFF_PKT_QUEUED_V1 << BIT_SHIFT_FWFF_PKT_QUEUED_V1)
  18802. #define BIT_CLEAR_FWFF_PKT_QUEUED_V1(x) ((x) & (~BITS_FWFF_PKT_QUEUED_V1))
  18803. #define BIT_GET_FWFF_PKT_QUEUED_V1(x) \
  18804. (((x) >> BIT_SHIFT_FWFF_PKT_QUEUED_V1) & BIT_MASK_FWFF_PKT_QUEUED_V1)
  18805. #define BIT_SET_FWFF_PKT_QUEUED_V1(x, v) \
  18806. (BIT_CLEAR_FWFF_PKT_QUEUED_V1(x) | BIT_FWFF_PKT_QUEUED_V1(v))
  18807. #define BIT_SHIFT_FW_UPD_RXDES_RD_PTR 0
  18808. #define BIT_MASK_FW_UPD_RXDES_RD_PTR 0x3ffff
  18809. #define BIT_FW_UPD_RXDES_RD_PTR(x) \
  18810. (((x) & BIT_MASK_FW_UPD_RXDES_RD_PTR) << BIT_SHIFT_FW_UPD_RXDES_RD_PTR)
  18811. #define BITS_FW_UPD_RXDES_RD_PTR \
  18812. (BIT_MASK_FW_UPD_RXDES_RD_PTR << BIT_SHIFT_FW_UPD_RXDES_RD_PTR)
  18813. #define BIT_CLEAR_FW_UPD_RXDES_RD_PTR(x) ((x) & (~BITS_FW_UPD_RXDES_RD_PTR))
  18814. #define BIT_GET_FW_UPD_RXDES_RD_PTR(x) \
  18815. (((x) >> BIT_SHIFT_FW_UPD_RXDES_RD_PTR) & BIT_MASK_FW_UPD_RXDES_RD_PTR)
  18816. #define BIT_SET_FW_UPD_RXDES_RD_PTR(x, v) \
  18817. (BIT_CLEAR_FW_UPD_RXDES_RD_PTR(x) | BIT_FW_UPD_RXDES_RD_PTR(v))
  18818. #endif
  18819. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  18820. /* 2 REG_RXPKTNUM (Offset 0x02B0) */
  18821. #define BIT_SHIFT_PKT_NUM_WOL_V1 16
  18822. #define BIT_MASK_PKT_NUM_WOL_V1 0xffff
  18823. #define BIT_PKT_NUM_WOL_V1(x) \
  18824. (((x) & BIT_MASK_PKT_NUM_WOL_V1) << BIT_SHIFT_PKT_NUM_WOL_V1)
  18825. #define BITS_PKT_NUM_WOL_V1 \
  18826. (BIT_MASK_PKT_NUM_WOL_V1 << BIT_SHIFT_PKT_NUM_WOL_V1)
  18827. #define BIT_CLEAR_PKT_NUM_WOL_V1(x) ((x) & (~BITS_PKT_NUM_WOL_V1))
  18828. #define BIT_GET_PKT_NUM_WOL_V1(x) \
  18829. (((x) >> BIT_SHIFT_PKT_NUM_WOL_V1) & BIT_MASK_PKT_NUM_WOL_V1)
  18830. #define BIT_SET_PKT_NUM_WOL_V1(x, v) \
  18831. (BIT_CLEAR_PKT_NUM_WOL_V1(x) | BIT_PKT_NUM_WOL_V1(v))
  18832. #define BIT_SHIFT_RXPKT_NUM_V1 0
  18833. #define BIT_MASK_RXPKT_NUM_V1 0xffff
  18834. #define BIT_RXPKT_NUM_V1(x) \
  18835. (((x) & BIT_MASK_RXPKT_NUM_V1) << BIT_SHIFT_RXPKT_NUM_V1)
  18836. #define BITS_RXPKT_NUM_V1 (BIT_MASK_RXPKT_NUM_V1 << BIT_SHIFT_RXPKT_NUM_V1)
  18837. #define BIT_CLEAR_RXPKT_NUM_V1(x) ((x) & (~BITS_RXPKT_NUM_V1))
  18838. #define BIT_GET_RXPKT_NUM_V1(x) \
  18839. (((x) >> BIT_SHIFT_RXPKT_NUM_V1) & BIT_MASK_RXPKT_NUM_V1)
  18840. #define BIT_SET_RXPKT_NUM_V1(x, v) \
  18841. (BIT_CLEAR_RXPKT_NUM_V1(x) | BIT_RXPKT_NUM_V1(v))
  18842. #define BIT_SHIFT_RXPKT_NUM_TH 0
  18843. #define BIT_MASK_RXPKT_NUM_TH 0xff
  18844. #define BIT_RXPKT_NUM_TH(x) \
  18845. (((x) & BIT_MASK_RXPKT_NUM_TH) << BIT_SHIFT_RXPKT_NUM_TH)
  18846. #define BITS_RXPKT_NUM_TH (BIT_MASK_RXPKT_NUM_TH << BIT_SHIFT_RXPKT_NUM_TH)
  18847. #define BIT_CLEAR_RXPKT_NUM_TH(x) ((x) & (~BITS_RXPKT_NUM_TH))
  18848. #define BIT_GET_RXPKT_NUM_TH(x) \
  18849. (((x) >> BIT_SHIFT_RXPKT_NUM_TH) & BIT_MASK_RXPKT_NUM_TH)
  18850. #define BIT_SET_RXPKT_NUM_TH(x, v) \
  18851. (BIT_CLEAR_RXPKT_NUM_TH(x) | BIT_RXPKT_NUM_TH(v))
  18852. #endif
  18853. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  18854. /* 2 REG_FW_MSG1 (Offset 0x02E0) */
  18855. #define BIT_SHIFT_FW_MSG_REG1 0
  18856. #define BIT_MASK_FW_MSG_REG1 0xffffffffL
  18857. #define BIT_FW_MSG_REG1(x) \
  18858. (((x) & BIT_MASK_FW_MSG_REG1) << BIT_SHIFT_FW_MSG_REG1)
  18859. #define BITS_FW_MSG_REG1 (BIT_MASK_FW_MSG_REG1 << BIT_SHIFT_FW_MSG_REG1)
  18860. #define BIT_CLEAR_FW_MSG_REG1(x) ((x) & (~BITS_FW_MSG_REG1))
  18861. #define BIT_GET_FW_MSG_REG1(x) \
  18862. (((x) >> BIT_SHIFT_FW_MSG_REG1) & BIT_MASK_FW_MSG_REG1)
  18863. #define BIT_SET_FW_MSG_REG1(x, v) \
  18864. (BIT_CLEAR_FW_MSG_REG1(x) | BIT_FW_MSG_REG1(v))
  18865. /* 2 REG_FW_MSG2 (Offset 0x02E4) */
  18866. #define BIT_SHIFT_FW_MSG_REG2 0
  18867. #define BIT_MASK_FW_MSG_REG2 0xffffffffL
  18868. #define BIT_FW_MSG_REG2(x) \
  18869. (((x) & BIT_MASK_FW_MSG_REG2) << BIT_SHIFT_FW_MSG_REG2)
  18870. #define BITS_FW_MSG_REG2 (BIT_MASK_FW_MSG_REG2 << BIT_SHIFT_FW_MSG_REG2)
  18871. #define BIT_CLEAR_FW_MSG_REG2(x) ((x) & (~BITS_FW_MSG_REG2))
  18872. #define BIT_GET_FW_MSG_REG2(x) \
  18873. (((x) >> BIT_SHIFT_FW_MSG_REG2) & BIT_MASK_FW_MSG_REG2)
  18874. #define BIT_SET_FW_MSG_REG2(x, v) \
  18875. (BIT_CLEAR_FW_MSG_REG2(x) | BIT_FW_MSG_REG2(v))
  18876. /* 2 REG_FW_MSG3 (Offset 0x02E8) */
  18877. #define BIT_SHIFT_FW_MSG_REG3 0
  18878. #define BIT_MASK_FW_MSG_REG3 0xffffffffL
  18879. #define BIT_FW_MSG_REG3(x) \
  18880. (((x) & BIT_MASK_FW_MSG_REG3) << BIT_SHIFT_FW_MSG_REG3)
  18881. #define BITS_FW_MSG_REG3 (BIT_MASK_FW_MSG_REG3 << BIT_SHIFT_FW_MSG_REG3)
  18882. #define BIT_CLEAR_FW_MSG_REG3(x) ((x) & (~BITS_FW_MSG_REG3))
  18883. #define BIT_GET_FW_MSG_REG3(x) \
  18884. (((x) >> BIT_SHIFT_FW_MSG_REG3) & BIT_MASK_FW_MSG_REG3)
  18885. #define BIT_SET_FW_MSG_REG3(x, v) \
  18886. (BIT_CLEAR_FW_MSG_REG3(x) | BIT_FW_MSG_REG3(v))
  18887. /* 2 REG_FW_MSG4 (Offset 0x02EC) */
  18888. #define BIT_SHIFT_FW_MSG_REG4 0
  18889. #define BIT_MASK_FW_MSG_REG4 0xffffffffL
  18890. #define BIT_FW_MSG_REG4(x) \
  18891. (((x) & BIT_MASK_FW_MSG_REG4) << BIT_SHIFT_FW_MSG_REG4)
  18892. #define BITS_FW_MSG_REG4 (BIT_MASK_FW_MSG_REG4 << BIT_SHIFT_FW_MSG_REG4)
  18893. #define BIT_CLEAR_FW_MSG_REG4(x) ((x) & (~BITS_FW_MSG_REG4))
  18894. #define BIT_GET_FW_MSG_REG4(x) \
  18895. (((x) >> BIT_SHIFT_FW_MSG_REG4) & BIT_MASK_FW_MSG_REG4)
  18896. #define BIT_SET_FW_MSG_REG4(x, v) \
  18897. (BIT_CLEAR_FW_MSG_REG4(x) | BIT_FW_MSG_REG4(v))
  18898. #endif
  18899. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18900. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18901. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18902. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  18903. #define BIT_PCIEIO_PERSTB_SEL BIT(31)
  18904. #endif
  18905. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  18906. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  18907. #define BIT_HCIIO_PERSTB_SEL BIT(31)
  18908. #endif
  18909. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18910. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18911. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18912. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  18913. #define BIT_SHIFT_PCIE_MAX_RXDMA 28
  18914. #define BIT_MASK_PCIE_MAX_RXDMA 0x7
  18915. #define BIT_PCIE_MAX_RXDMA(x) \
  18916. (((x) & BIT_MASK_PCIE_MAX_RXDMA) << BIT_SHIFT_PCIE_MAX_RXDMA)
  18917. #define BITS_PCIE_MAX_RXDMA \
  18918. (BIT_MASK_PCIE_MAX_RXDMA << BIT_SHIFT_PCIE_MAX_RXDMA)
  18919. #define BIT_CLEAR_PCIE_MAX_RXDMA(x) ((x) & (~BITS_PCIE_MAX_RXDMA))
  18920. #define BIT_GET_PCIE_MAX_RXDMA(x) \
  18921. (((x) >> BIT_SHIFT_PCIE_MAX_RXDMA) & BIT_MASK_PCIE_MAX_RXDMA)
  18922. #define BIT_SET_PCIE_MAX_RXDMA(x, v) \
  18923. (BIT_CLEAR_PCIE_MAX_RXDMA(x) | BIT_PCIE_MAX_RXDMA(v))
  18924. #endif
  18925. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  18926. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  18927. #define BIT_SHIFT_HCI_MAX_RXDMA 28
  18928. #define BIT_MASK_HCI_MAX_RXDMA 0x7
  18929. #define BIT_HCI_MAX_RXDMA(x) \
  18930. (((x) & BIT_MASK_HCI_MAX_RXDMA) << BIT_SHIFT_HCI_MAX_RXDMA)
  18931. #define BITS_HCI_MAX_RXDMA (BIT_MASK_HCI_MAX_RXDMA << BIT_SHIFT_HCI_MAX_RXDMA)
  18932. #define BIT_CLEAR_HCI_MAX_RXDMA(x) ((x) & (~BITS_HCI_MAX_RXDMA))
  18933. #define BIT_GET_HCI_MAX_RXDMA(x) \
  18934. (((x) >> BIT_SHIFT_HCI_MAX_RXDMA) & BIT_MASK_HCI_MAX_RXDMA)
  18935. #define BIT_SET_HCI_MAX_RXDMA(x, v) \
  18936. (BIT_CLEAR_HCI_MAX_RXDMA(x) | BIT_HCI_MAX_RXDMA(v))
  18937. #endif
  18938. #if (HALMAC_8881A_SUPPORT)
  18939. /* 2 REG_LX_CTRL1 (Offset 0x0300) */
  18940. #define BIT_RX_LIT_EDN_SEL BIT(27)
  18941. #define BIT_TX_LIT_EDN_SEL BIT(26)
  18942. #define BIT_WT_LIT_EDN BIT(25)
  18943. #endif
  18944. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18945. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18946. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18947. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  18948. #define BIT_SHIFT_PCIE_MAX_TXDMA 24
  18949. #define BIT_MASK_PCIE_MAX_TXDMA 0x7
  18950. #define BIT_PCIE_MAX_TXDMA(x) \
  18951. (((x) & BIT_MASK_PCIE_MAX_TXDMA) << BIT_SHIFT_PCIE_MAX_TXDMA)
  18952. #define BITS_PCIE_MAX_TXDMA \
  18953. (BIT_MASK_PCIE_MAX_TXDMA << BIT_SHIFT_PCIE_MAX_TXDMA)
  18954. #define BIT_CLEAR_PCIE_MAX_TXDMA(x) ((x) & (~BITS_PCIE_MAX_TXDMA))
  18955. #define BIT_GET_PCIE_MAX_TXDMA(x) \
  18956. (((x) >> BIT_SHIFT_PCIE_MAX_TXDMA) & BIT_MASK_PCIE_MAX_TXDMA)
  18957. #define BIT_SET_PCIE_MAX_TXDMA(x, v) \
  18958. (BIT_CLEAR_PCIE_MAX_TXDMA(x) | BIT_PCIE_MAX_TXDMA(v))
  18959. #endif
  18960. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  18961. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  18962. #define BIT_SHIFT_HCI_MAX_TXDMA 24
  18963. #define BIT_MASK_HCI_MAX_TXDMA 0x7
  18964. #define BIT_HCI_MAX_TXDMA(x) \
  18965. (((x) & BIT_MASK_HCI_MAX_TXDMA) << BIT_SHIFT_HCI_MAX_TXDMA)
  18966. #define BITS_HCI_MAX_TXDMA (BIT_MASK_HCI_MAX_TXDMA << BIT_SHIFT_HCI_MAX_TXDMA)
  18967. #define BIT_CLEAR_HCI_MAX_TXDMA(x) ((x) & (~BITS_HCI_MAX_TXDMA))
  18968. #define BIT_GET_HCI_MAX_TXDMA(x) \
  18969. (((x) >> BIT_SHIFT_HCI_MAX_TXDMA) & BIT_MASK_HCI_MAX_TXDMA)
  18970. #define BIT_SET_HCI_MAX_TXDMA(x, v) \
  18971. (BIT_CLEAR_HCI_MAX_TXDMA(x) | BIT_HCI_MAX_TXDMA(v))
  18972. #endif
  18973. #if (HALMAC_8881A_SUPPORT)
  18974. /* 2 REG_LX_CTRL1 (Offset 0x0300) */
  18975. #define BIT_RD_LITT_EDN BIT(24)
  18976. #endif
  18977. #if (HALMAC_8814B_SUPPORT)
  18978. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  18979. #define BIT_PWR_SCALE_START_PS BIT(23)
  18980. #endif
  18981. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  18982. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  18983. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  18984. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  18985. #define BIT_PCIE_RST_TRXDMA_INTF BIT(20)
  18986. #endif
  18987. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  18988. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  18989. #define BIT_HCI_RST_TRXDMA_INTF BIT(20)
  18990. #endif
  18991. #if (HALMAC_8881A_SUPPORT)
  18992. /* 2 REG_LX_CTRL1 (Offset 0x0300) */
  18993. #define BIT_SHIFT_MAX_RXDMA 20
  18994. #define BIT_MASK_MAX_RXDMA 0x7
  18995. #define BIT_MAX_RXDMA(x) (((x) & BIT_MASK_MAX_RXDMA) << BIT_SHIFT_MAX_RXDMA)
  18996. #define BITS_MAX_RXDMA (BIT_MASK_MAX_RXDMA << BIT_SHIFT_MAX_RXDMA)
  18997. #define BIT_CLEAR_MAX_RXDMA(x) ((x) & (~BITS_MAX_RXDMA))
  18998. #define BIT_GET_MAX_RXDMA(x) (((x) >> BIT_SHIFT_MAX_RXDMA) & BIT_MASK_MAX_RXDMA)
  18999. #define BIT_SET_MAX_RXDMA(x, v) (BIT_CLEAR_MAX_RXDMA(x) | BIT_MAX_RXDMA(v))
  19000. #endif
  19001. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  19002. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  19003. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  19004. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  19005. #define BIT_PCIE_EN_SWENT_L23 BIT(17)
  19006. #endif
  19007. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  19008. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  19009. #define BIT_HCI_EN_SWENT_L23 BIT(17)
  19010. #endif
  19011. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  19012. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  19013. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  19014. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  19015. #define BIT_PCIE_EN_HWEXT_L1 BIT(16)
  19016. #endif
  19017. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  19018. /* 2 REG_HCI_CTRL (Offset 0x0300) */
  19019. #define BIT_HCI_EN_HWEXT_L1 BIT(16)
  19020. #endif
  19021. #if (HALMAC_8881A_SUPPORT)
  19022. /* 2 REG_LX_CTRL1 (Offset 0x0300) */
  19023. #define BIT_SHIFT_MAX_TXDMA 16
  19024. #define BIT_MASK_MAX_TXDMA 0x7
  19025. #define BIT_MAX_TXDMA(x) (((x) & BIT_MASK_MAX_TXDMA) << BIT_SHIFT_MAX_TXDMA)
  19026. #define BITS_MAX_TXDMA (BIT_MASK_MAX_TXDMA << BIT_SHIFT_MAX_TXDMA)
  19027. #define BIT_CLEAR_MAX_TXDMA(x) ((x) & (~BITS_MAX_TXDMA))
  19028. #define BIT_GET_MAX_TXDMA(x) (((x) >> BIT_SHIFT_MAX_TXDMA) & BIT_MASK_MAX_TXDMA)
  19029. #define BIT_SET_MAX_TXDMA(x, v) (BIT_CLEAR_MAX_TXDMA(x) | BIT_MAX_TXDMA(v))
  19030. #endif
  19031. #if (HALMAC_8814B_SUPPORT)
  19032. /* 2 REG_PCIE_CTRL (Offset 0x0300) */
  19033. #define BIT_STOP_P0_MPRT_BCNQ4 BIT(6)
  19034. #define BIT_STOP_P0_MPRT_BCNQ3 BIT(4)
  19035. #define BIT_STOP_P0_MPRT_BCNQ2 BIT(2)
  19036. #define BIT_STOP_P0_MPRT_BCNQ1 BIT(0)
  19037. #endif
  19038. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19039. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  19040. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19041. HALMAC_8881A_SUPPORT)
  19042. /* 2 REG_INT_MIG (Offset 0x0304) */
  19043. #define BIT_SHIFT_TXTTIMER_MATCH_NUM 28
  19044. #define BIT_MASK_TXTTIMER_MATCH_NUM 0xf
  19045. #define BIT_TXTTIMER_MATCH_NUM(x) \
  19046. (((x) & BIT_MASK_TXTTIMER_MATCH_NUM) << BIT_SHIFT_TXTTIMER_MATCH_NUM)
  19047. #define BITS_TXTTIMER_MATCH_NUM \
  19048. (BIT_MASK_TXTTIMER_MATCH_NUM << BIT_SHIFT_TXTTIMER_MATCH_NUM)
  19049. #define BIT_CLEAR_TXTTIMER_MATCH_NUM(x) ((x) & (~BITS_TXTTIMER_MATCH_NUM))
  19050. #define BIT_GET_TXTTIMER_MATCH_NUM(x) \
  19051. (((x) >> BIT_SHIFT_TXTTIMER_MATCH_NUM) & BIT_MASK_TXTTIMER_MATCH_NUM)
  19052. #define BIT_SET_TXTTIMER_MATCH_NUM(x, v) \
  19053. (BIT_CLEAR_TXTTIMER_MATCH_NUM(x) | BIT_TXTTIMER_MATCH_NUM(v))
  19054. #endif
  19055. #if (HALMAC_8814B_SUPPORT)
  19056. /* 2 REG_ACH_CTRL (Offset 0x0304) */
  19057. #define BIT_STOP_P0HIQ19 BIT(27)
  19058. #define BIT_STOP_P0HIQ18 BIT(26)
  19059. #define BIT_STOP_P0HIQ17 BIT(25)
  19060. #endif
  19061. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19062. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  19063. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19064. HALMAC_8881A_SUPPORT)
  19065. /* 2 REG_INT_MIG (Offset 0x0304) */
  19066. #define BIT_SHIFT_TXPKT_NUM_MATCH 24
  19067. #define BIT_MASK_TXPKT_NUM_MATCH 0xf
  19068. #define BIT_TXPKT_NUM_MATCH(x) \
  19069. (((x) & BIT_MASK_TXPKT_NUM_MATCH) << BIT_SHIFT_TXPKT_NUM_MATCH)
  19070. #define BITS_TXPKT_NUM_MATCH \
  19071. (BIT_MASK_TXPKT_NUM_MATCH << BIT_SHIFT_TXPKT_NUM_MATCH)
  19072. #define BIT_CLEAR_TXPKT_NUM_MATCH(x) ((x) & (~BITS_TXPKT_NUM_MATCH))
  19073. #define BIT_GET_TXPKT_NUM_MATCH(x) \
  19074. (((x) >> BIT_SHIFT_TXPKT_NUM_MATCH) & BIT_MASK_TXPKT_NUM_MATCH)
  19075. #define BIT_SET_TXPKT_NUM_MATCH(x, v) \
  19076. (BIT_CLEAR_TXPKT_NUM_MATCH(x) | BIT_TXPKT_NUM_MATCH(v))
  19077. #endif
  19078. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  19079. /* 2 REG_INT_MIG (Offset 0x0304) */
  19080. #define BIT_SHIFT_TRXCOUNTER_MATCH 24
  19081. #define BIT_MASK_TRXCOUNTER_MATCH 0xff
  19082. #define BIT_TRXCOUNTER_MATCH(x) \
  19083. (((x) & BIT_MASK_TRXCOUNTER_MATCH) << BIT_SHIFT_TRXCOUNTER_MATCH)
  19084. #define BITS_TRXCOUNTER_MATCH \
  19085. (BIT_MASK_TRXCOUNTER_MATCH << BIT_SHIFT_TRXCOUNTER_MATCH)
  19086. #define BIT_CLEAR_TRXCOUNTER_MATCH(x) ((x) & (~BITS_TRXCOUNTER_MATCH))
  19087. #define BIT_GET_TRXCOUNTER_MATCH(x) \
  19088. (((x) >> BIT_SHIFT_TRXCOUNTER_MATCH) & BIT_MASK_TRXCOUNTER_MATCH)
  19089. #define BIT_SET_TRXCOUNTER_MATCH(x, v) \
  19090. (BIT_CLEAR_TRXCOUNTER_MATCH(x) | BIT_TRXCOUNTER_MATCH(v))
  19091. #endif
  19092. #if (HALMAC_8814B_SUPPORT)
  19093. /* 2 REG_ACH_CTRL (Offset 0x0304) */
  19094. #define BIT_STOP_P0HIQ16 BIT(24)
  19095. #define BIT_RX_CLOSE_EN_V1 BIT(21)
  19096. #endif
  19097. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19098. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  19099. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19100. HALMAC_8881A_SUPPORT)
  19101. /* 2 REG_INT_MIG (Offset 0x0304) */
  19102. #define BIT_SHIFT_RXTTIMER_MATCH_NUM 20
  19103. #define BIT_MASK_RXTTIMER_MATCH_NUM 0xf
  19104. #define BIT_RXTTIMER_MATCH_NUM(x) \
  19105. (((x) & BIT_MASK_RXTTIMER_MATCH_NUM) << BIT_SHIFT_RXTTIMER_MATCH_NUM)
  19106. #define BITS_RXTTIMER_MATCH_NUM \
  19107. (BIT_MASK_RXTTIMER_MATCH_NUM << BIT_SHIFT_RXTTIMER_MATCH_NUM)
  19108. #define BIT_CLEAR_RXTTIMER_MATCH_NUM(x) ((x) & (~BITS_RXTTIMER_MATCH_NUM))
  19109. #define BIT_GET_RXTTIMER_MATCH_NUM(x) \
  19110. (((x) >> BIT_SHIFT_RXTTIMER_MATCH_NUM) & BIT_MASK_RXTTIMER_MATCH_NUM)
  19111. #define BIT_SET_RXTTIMER_MATCH_NUM(x, v) \
  19112. (BIT_CLEAR_RXTTIMER_MATCH_NUM(x) | BIT_RXTTIMER_MATCH_NUM(v))
  19113. #endif
  19114. #if (HALMAC_8814B_SUPPORT)
  19115. /* 2 REG_ACH_CTRL (Offset 0x0304) */
  19116. #define BIT_STOP_FWCMDQ BIT(20)
  19117. #define BIT_STOP_P0BCNQ BIT(18)
  19118. #endif
  19119. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19120. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  19121. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19122. HALMAC_8881A_SUPPORT)
  19123. /* 2 REG_INT_MIG (Offset 0x0304) */
  19124. #define BIT_SHIFT_RXPKT_NUM_MATCH 16
  19125. #define BIT_MASK_RXPKT_NUM_MATCH 0xf
  19126. #define BIT_RXPKT_NUM_MATCH(x) \
  19127. (((x) & BIT_MASK_RXPKT_NUM_MATCH) << BIT_SHIFT_RXPKT_NUM_MATCH)
  19128. #define BITS_RXPKT_NUM_MATCH \
  19129. (BIT_MASK_RXPKT_NUM_MATCH << BIT_SHIFT_RXPKT_NUM_MATCH)
  19130. #define BIT_CLEAR_RXPKT_NUM_MATCH(x) ((x) & (~BITS_RXPKT_NUM_MATCH))
  19131. #define BIT_GET_RXPKT_NUM_MATCH(x) \
  19132. (((x) >> BIT_SHIFT_RXPKT_NUM_MATCH) & BIT_MASK_RXPKT_NUM_MATCH)
  19133. #define BIT_SET_RXPKT_NUM_MATCH(x, v) \
  19134. (BIT_CLEAR_RXPKT_NUM_MATCH(x) | BIT_RXPKT_NUM_MATCH(v))
  19135. #endif
  19136. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  19137. /* 2 REG_INT_MIG (Offset 0x0304) */
  19138. #define BIT_SHIFT_TRXTIMER_MATCH 16
  19139. #define BIT_MASK_TRXTIMER_MATCH 0xff
  19140. #define BIT_TRXTIMER_MATCH(x) \
  19141. (((x) & BIT_MASK_TRXTIMER_MATCH) << BIT_SHIFT_TRXTIMER_MATCH)
  19142. #define BITS_TRXTIMER_MATCH \
  19143. (BIT_MASK_TRXTIMER_MATCH << BIT_SHIFT_TRXTIMER_MATCH)
  19144. #define BIT_CLEAR_TRXTIMER_MATCH(x) ((x) & (~BITS_TRXTIMER_MATCH))
  19145. #define BIT_GET_TRXTIMER_MATCH(x) \
  19146. (((x) >> BIT_SHIFT_TRXTIMER_MATCH) & BIT_MASK_TRXTIMER_MATCH)
  19147. #define BIT_SET_TRXTIMER_MATCH(x, v) \
  19148. (BIT_CLEAR_TRXTIMER_MATCH(x) | BIT_TRXTIMER_MATCH(v))
  19149. #endif
  19150. #if (HALMAC_8814B_SUPPORT)
  19151. /* 2 REG_ACH_CTRL (Offset 0x0304) */
  19152. #define BIT_STOP_P0MGQ BIT(16)
  19153. #define BIT_STOP_ACH13 BIT(15)
  19154. #define BIT_STOP_ACH12 BIT(14)
  19155. #define BIT_STOP_ACH11 BIT(13)
  19156. #define BIT_STOP_ACH10 BIT(12)
  19157. #define BIT_STOP_ACH9 BIT(11)
  19158. #define BIT_STOP_ACH8 BIT(10)
  19159. #define BIT_STOP_ACH7 BIT(9)
  19160. #define BIT_STOP_ACH6 BIT(8)
  19161. #define BIT_STOP_ACH5 BIT(7)
  19162. #define BIT_STOP_ACH4 BIT(6)
  19163. #define BIT_STOP_ACH3 BIT(5)
  19164. #define BIT_STOP_ACH2 BIT(4)
  19165. #define BIT_STOP_ACH1 BIT(3)
  19166. #define BIT_STOP_ACH0 BIT(2)
  19167. #endif
  19168. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19169. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  19170. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19171. HALMAC_8881A_SUPPORT)
  19172. /* 2 REG_INT_MIG (Offset 0x0304) */
  19173. #define BIT_SHIFT_MIGRATE_TIMER 0
  19174. #define BIT_MASK_MIGRATE_TIMER 0xffff
  19175. #define BIT_MIGRATE_TIMER(x) \
  19176. (((x) & BIT_MASK_MIGRATE_TIMER) << BIT_SHIFT_MIGRATE_TIMER)
  19177. #define BITS_MIGRATE_TIMER (BIT_MASK_MIGRATE_TIMER << BIT_SHIFT_MIGRATE_TIMER)
  19178. #define BIT_CLEAR_MIGRATE_TIMER(x) ((x) & (~BITS_MIGRATE_TIMER))
  19179. #define BIT_GET_MIGRATE_TIMER(x) \
  19180. (((x) >> BIT_SHIFT_MIGRATE_TIMER) & BIT_MASK_MIGRATE_TIMER)
  19181. #define BIT_SET_MIGRATE_TIMER(x, v) \
  19182. (BIT_CLEAR_MIGRATE_TIMER(x) | BIT_MIGRATE_TIMER(v))
  19183. #endif
  19184. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  19185. /* 2 REG_INT_MIG (Offset 0x0304) */
  19186. #define BIT_SHIFT_TRXTIMER_UNIT 0
  19187. #define BIT_MASK_TRXTIMER_UNIT 0x3
  19188. #define BIT_TRXTIMER_UNIT(x) \
  19189. (((x) & BIT_MASK_TRXTIMER_UNIT) << BIT_SHIFT_TRXTIMER_UNIT)
  19190. #define BITS_TRXTIMER_UNIT (BIT_MASK_TRXTIMER_UNIT << BIT_SHIFT_TRXTIMER_UNIT)
  19191. #define BIT_CLEAR_TRXTIMER_UNIT(x) ((x) & (~BITS_TRXTIMER_UNIT))
  19192. #define BIT_GET_TRXTIMER_UNIT(x) \
  19193. (((x) >> BIT_SHIFT_TRXTIMER_UNIT) & BIT_MASK_TRXTIMER_UNIT)
  19194. #define BIT_SET_TRXTIMER_UNIT(x, v) \
  19195. (BIT_CLEAR_TRXTIMER_UNIT(x) | BIT_TRXTIMER_UNIT(v))
  19196. #endif
  19197. #if (HALMAC_8814B_SUPPORT)
  19198. /* 2 REG_ACH_CTRL (Offset 0x0304) */
  19199. #define BIT_STOP_P0RX BIT(0)
  19200. /* 2 REG_HIQ_CTRL (Offset 0x0308) */
  19201. #define BIT_STOP_P0HIQ15 BIT(15)
  19202. #define BIT_STOP_P0HIQ14 BIT(14)
  19203. #define BIT_STOP_P0HIQ13 BIT(13)
  19204. #define BIT_STOP_P0HIQ12 BIT(12)
  19205. #define BIT_STOP_P0HIQ11 BIT(11)
  19206. #define BIT_STOP_P0HIQ10 BIT(10)
  19207. #define BIT_STOP_P0HIQ9 BIT(9)
  19208. #define BIT_STOP_P0HIQ8 BIT(8)
  19209. #define BIT_STOP_P0HIQ7 BIT(7)
  19210. #define BIT_STOP_P0HIQ6 BIT(6)
  19211. #define BIT_STOP_P0HIQ5 BIT(5)
  19212. #define BIT_STOP_P0HIQ4 BIT(4)
  19213. #define BIT_STOP_P0HIQ3 BIT(3)
  19214. #define BIT_STOP_P0HIQ2 BIT(2)
  19215. #define BIT_STOP_P0HIQ1 BIT(1)
  19216. #endif
  19217. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19218. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19219. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19220. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19221. /* 2 REG_BCNQ_TXBD_DESA (Offset 0x0308) */
  19222. #define BIT_SHIFT_BCNQ_TXBD_DESA 0
  19223. #define BIT_MASK_BCNQ_TXBD_DESA 0xffffffffffffffffL
  19224. #define BIT_BCNQ_TXBD_DESA(x) \
  19225. (((x) & BIT_MASK_BCNQ_TXBD_DESA) << BIT_SHIFT_BCNQ_TXBD_DESA)
  19226. #define BITS_BCNQ_TXBD_DESA \
  19227. (BIT_MASK_BCNQ_TXBD_DESA << BIT_SHIFT_BCNQ_TXBD_DESA)
  19228. #define BIT_CLEAR_BCNQ_TXBD_DESA(x) ((x) & (~BITS_BCNQ_TXBD_DESA))
  19229. #define BIT_GET_BCNQ_TXBD_DESA(x) \
  19230. (((x) >> BIT_SHIFT_BCNQ_TXBD_DESA) & BIT_MASK_BCNQ_TXBD_DESA)
  19231. #define BIT_SET_BCNQ_TXBD_DESA(x, v) \
  19232. (BIT_CLEAR_BCNQ_TXBD_DESA(x) | BIT_BCNQ_TXBD_DESA(v))
  19233. #endif
  19234. #if (HALMAC_8814B_SUPPORT)
  19235. /* 2 REG_HIQ_CTRL (Offset 0x0308) */
  19236. #define BIT_STOP_P0HIQ0 BIT(0)
  19237. #endif
  19238. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19239. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19240. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19241. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19242. /* 2 REG_MGQ_TXBD_DESA (Offset 0x0310) */
  19243. #define BIT_SHIFT_MGQ_TXBD_DESA 0
  19244. #define BIT_MASK_MGQ_TXBD_DESA 0xffffffffffffffffL
  19245. #define BIT_MGQ_TXBD_DESA(x) \
  19246. (((x) & BIT_MASK_MGQ_TXBD_DESA) << BIT_SHIFT_MGQ_TXBD_DESA)
  19247. #define BITS_MGQ_TXBD_DESA (BIT_MASK_MGQ_TXBD_DESA << BIT_SHIFT_MGQ_TXBD_DESA)
  19248. #define BIT_CLEAR_MGQ_TXBD_DESA(x) ((x) & (~BITS_MGQ_TXBD_DESA))
  19249. #define BIT_GET_MGQ_TXBD_DESA(x) \
  19250. (((x) >> BIT_SHIFT_MGQ_TXBD_DESA) & BIT_MASK_MGQ_TXBD_DESA)
  19251. #define BIT_SET_MGQ_TXBD_DESA(x, v) \
  19252. (BIT_CLEAR_MGQ_TXBD_DESA(x) | BIT_MGQ_TXBD_DESA(v))
  19253. /* 2 REG_VOQ_TXBD_DESA (Offset 0x0318) */
  19254. #define BIT_SHIFT_VOQ_TXBD_DESA 0
  19255. #define BIT_MASK_VOQ_TXBD_DESA 0xffffffffffffffffL
  19256. #define BIT_VOQ_TXBD_DESA(x) \
  19257. (((x) & BIT_MASK_VOQ_TXBD_DESA) << BIT_SHIFT_VOQ_TXBD_DESA)
  19258. #define BITS_VOQ_TXBD_DESA (BIT_MASK_VOQ_TXBD_DESA << BIT_SHIFT_VOQ_TXBD_DESA)
  19259. #define BIT_CLEAR_VOQ_TXBD_DESA(x) ((x) & (~BITS_VOQ_TXBD_DESA))
  19260. #define BIT_GET_VOQ_TXBD_DESA(x) \
  19261. (((x) >> BIT_SHIFT_VOQ_TXBD_DESA) & BIT_MASK_VOQ_TXBD_DESA)
  19262. #define BIT_SET_VOQ_TXBD_DESA(x, v) \
  19263. (BIT_CLEAR_VOQ_TXBD_DESA(x) | BIT_VOQ_TXBD_DESA(v))
  19264. #endif
  19265. #if (HALMAC_8814B_SUPPORT)
  19266. /* 2 REG_ACH0_TXBD_DESA_L (Offset 0x0318) */
  19267. #define BIT_SHIFT_ACH0_TXBD_DESA_L 0
  19268. #define BIT_MASK_ACH0_TXBD_DESA_L 0xffffffffL
  19269. #define BIT_ACH0_TXBD_DESA_L(x) \
  19270. (((x) & BIT_MASK_ACH0_TXBD_DESA_L) << BIT_SHIFT_ACH0_TXBD_DESA_L)
  19271. #define BITS_ACH0_TXBD_DESA_L \
  19272. (BIT_MASK_ACH0_TXBD_DESA_L << BIT_SHIFT_ACH0_TXBD_DESA_L)
  19273. #define BIT_CLEAR_ACH0_TXBD_DESA_L(x) ((x) & (~BITS_ACH0_TXBD_DESA_L))
  19274. #define BIT_GET_ACH0_TXBD_DESA_L(x) \
  19275. (((x) >> BIT_SHIFT_ACH0_TXBD_DESA_L) & BIT_MASK_ACH0_TXBD_DESA_L)
  19276. #define BIT_SET_ACH0_TXBD_DESA_L(x, v) \
  19277. (BIT_CLEAR_ACH0_TXBD_DESA_L(x) | BIT_ACH0_TXBD_DESA_L(v))
  19278. /* 2 REG_ACH0_TXBD_DESA_H (Offset 0x031C) */
  19279. #define BIT_SHIFT_ACH0_TXBD_DESA_H 0
  19280. #define BIT_MASK_ACH0_TXBD_DESA_H 0xffffffffL
  19281. #define BIT_ACH0_TXBD_DESA_H(x) \
  19282. (((x) & BIT_MASK_ACH0_TXBD_DESA_H) << BIT_SHIFT_ACH0_TXBD_DESA_H)
  19283. #define BITS_ACH0_TXBD_DESA_H \
  19284. (BIT_MASK_ACH0_TXBD_DESA_H << BIT_SHIFT_ACH0_TXBD_DESA_H)
  19285. #define BIT_CLEAR_ACH0_TXBD_DESA_H(x) ((x) & (~BITS_ACH0_TXBD_DESA_H))
  19286. #define BIT_GET_ACH0_TXBD_DESA_H(x) \
  19287. (((x) >> BIT_SHIFT_ACH0_TXBD_DESA_H) & BIT_MASK_ACH0_TXBD_DESA_H)
  19288. #define BIT_SET_ACH0_TXBD_DESA_H(x, v) \
  19289. (BIT_CLEAR_ACH0_TXBD_DESA_H(x) | BIT_ACH0_TXBD_DESA_H(v))
  19290. #endif
  19291. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19292. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19293. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19294. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19295. /* 2 REG_VIQ_TXBD_DESA (Offset 0x0320) */
  19296. #define BIT_SHIFT_VIQ_TXBD_DESA 0
  19297. #define BIT_MASK_VIQ_TXBD_DESA 0xffffffffffffffffL
  19298. #define BIT_VIQ_TXBD_DESA(x) \
  19299. (((x) & BIT_MASK_VIQ_TXBD_DESA) << BIT_SHIFT_VIQ_TXBD_DESA)
  19300. #define BITS_VIQ_TXBD_DESA (BIT_MASK_VIQ_TXBD_DESA << BIT_SHIFT_VIQ_TXBD_DESA)
  19301. #define BIT_CLEAR_VIQ_TXBD_DESA(x) ((x) & (~BITS_VIQ_TXBD_DESA))
  19302. #define BIT_GET_VIQ_TXBD_DESA(x) \
  19303. (((x) >> BIT_SHIFT_VIQ_TXBD_DESA) & BIT_MASK_VIQ_TXBD_DESA)
  19304. #define BIT_SET_VIQ_TXBD_DESA(x, v) \
  19305. (BIT_CLEAR_VIQ_TXBD_DESA(x) | BIT_VIQ_TXBD_DESA(v))
  19306. #endif
  19307. #if (HALMAC_8814B_SUPPORT)
  19308. /* 2 REG_ACH1_TXBD_DESA_L (Offset 0x0320) */
  19309. #define BIT_SHIFT_ACH1_TXBD_DESA_L 0
  19310. #define BIT_MASK_ACH1_TXBD_DESA_L 0xffffffffL
  19311. #define BIT_ACH1_TXBD_DESA_L(x) \
  19312. (((x) & BIT_MASK_ACH1_TXBD_DESA_L) << BIT_SHIFT_ACH1_TXBD_DESA_L)
  19313. #define BITS_ACH1_TXBD_DESA_L \
  19314. (BIT_MASK_ACH1_TXBD_DESA_L << BIT_SHIFT_ACH1_TXBD_DESA_L)
  19315. #define BIT_CLEAR_ACH1_TXBD_DESA_L(x) ((x) & (~BITS_ACH1_TXBD_DESA_L))
  19316. #define BIT_GET_ACH1_TXBD_DESA_L(x) \
  19317. (((x) >> BIT_SHIFT_ACH1_TXBD_DESA_L) & BIT_MASK_ACH1_TXBD_DESA_L)
  19318. #define BIT_SET_ACH1_TXBD_DESA_L(x, v) \
  19319. (BIT_CLEAR_ACH1_TXBD_DESA_L(x) | BIT_ACH1_TXBD_DESA_L(v))
  19320. /* 2 REG_ACH1_TXBD_DESA_H (Offset 0x0324) */
  19321. #define BIT_SHIFT_ACH1_TXBD_DESA_H 0
  19322. #define BIT_MASK_ACH1_TXBD_DESA_H 0xffffffffL
  19323. #define BIT_ACH1_TXBD_DESA_H(x) \
  19324. (((x) & BIT_MASK_ACH1_TXBD_DESA_H) << BIT_SHIFT_ACH1_TXBD_DESA_H)
  19325. #define BITS_ACH1_TXBD_DESA_H \
  19326. (BIT_MASK_ACH1_TXBD_DESA_H << BIT_SHIFT_ACH1_TXBD_DESA_H)
  19327. #define BIT_CLEAR_ACH1_TXBD_DESA_H(x) ((x) & (~BITS_ACH1_TXBD_DESA_H))
  19328. #define BIT_GET_ACH1_TXBD_DESA_H(x) \
  19329. (((x) >> BIT_SHIFT_ACH1_TXBD_DESA_H) & BIT_MASK_ACH1_TXBD_DESA_H)
  19330. #define BIT_SET_ACH1_TXBD_DESA_H(x, v) \
  19331. (BIT_CLEAR_ACH1_TXBD_DESA_H(x) | BIT_ACH1_TXBD_DESA_H(v))
  19332. #endif
  19333. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19334. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19335. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19336. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19337. /* 2 REG_BEQ_TXBD_DESA (Offset 0x0328) */
  19338. #define BIT_SHIFT_BEQ_TXBD_DESA 0
  19339. #define BIT_MASK_BEQ_TXBD_DESA 0xffffffffffffffffL
  19340. #define BIT_BEQ_TXBD_DESA(x) \
  19341. (((x) & BIT_MASK_BEQ_TXBD_DESA) << BIT_SHIFT_BEQ_TXBD_DESA)
  19342. #define BITS_BEQ_TXBD_DESA (BIT_MASK_BEQ_TXBD_DESA << BIT_SHIFT_BEQ_TXBD_DESA)
  19343. #define BIT_CLEAR_BEQ_TXBD_DESA(x) ((x) & (~BITS_BEQ_TXBD_DESA))
  19344. #define BIT_GET_BEQ_TXBD_DESA(x) \
  19345. (((x) >> BIT_SHIFT_BEQ_TXBD_DESA) & BIT_MASK_BEQ_TXBD_DESA)
  19346. #define BIT_SET_BEQ_TXBD_DESA(x, v) \
  19347. (BIT_CLEAR_BEQ_TXBD_DESA(x) | BIT_BEQ_TXBD_DESA(v))
  19348. #endif
  19349. #if (HALMAC_8814B_SUPPORT)
  19350. /* 2 REG_ACH2_TXBD_DESA_L (Offset 0x0328) */
  19351. #define BIT_SHIFT_ACH2_TXBD_DESA_L 0
  19352. #define BIT_MASK_ACH2_TXBD_DESA_L 0xffffffffL
  19353. #define BIT_ACH2_TXBD_DESA_L(x) \
  19354. (((x) & BIT_MASK_ACH2_TXBD_DESA_L) << BIT_SHIFT_ACH2_TXBD_DESA_L)
  19355. #define BITS_ACH2_TXBD_DESA_L \
  19356. (BIT_MASK_ACH2_TXBD_DESA_L << BIT_SHIFT_ACH2_TXBD_DESA_L)
  19357. #define BIT_CLEAR_ACH2_TXBD_DESA_L(x) ((x) & (~BITS_ACH2_TXBD_DESA_L))
  19358. #define BIT_GET_ACH2_TXBD_DESA_L(x) \
  19359. (((x) >> BIT_SHIFT_ACH2_TXBD_DESA_L) & BIT_MASK_ACH2_TXBD_DESA_L)
  19360. #define BIT_SET_ACH2_TXBD_DESA_L(x, v) \
  19361. (BIT_CLEAR_ACH2_TXBD_DESA_L(x) | BIT_ACH2_TXBD_DESA_L(v))
  19362. /* 2 REG_ACH2_TXBD_DESA_H (Offset 0x032C) */
  19363. #define BIT_SHIFT_ACH2_TXBD_DESA_H 0
  19364. #define BIT_MASK_ACH2_TXBD_DESA_H 0xffffffffL
  19365. #define BIT_ACH2_TXBD_DESA_H(x) \
  19366. (((x) & BIT_MASK_ACH2_TXBD_DESA_H) << BIT_SHIFT_ACH2_TXBD_DESA_H)
  19367. #define BITS_ACH2_TXBD_DESA_H \
  19368. (BIT_MASK_ACH2_TXBD_DESA_H << BIT_SHIFT_ACH2_TXBD_DESA_H)
  19369. #define BIT_CLEAR_ACH2_TXBD_DESA_H(x) ((x) & (~BITS_ACH2_TXBD_DESA_H))
  19370. #define BIT_GET_ACH2_TXBD_DESA_H(x) \
  19371. (((x) >> BIT_SHIFT_ACH2_TXBD_DESA_H) & BIT_MASK_ACH2_TXBD_DESA_H)
  19372. #define BIT_SET_ACH2_TXBD_DESA_H(x, v) \
  19373. (BIT_CLEAR_ACH2_TXBD_DESA_H(x) | BIT_ACH2_TXBD_DESA_H(v))
  19374. #endif
  19375. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19376. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19377. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19378. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19379. /* 2 REG_BKQ_TXBD_DESA (Offset 0x0330) */
  19380. #define BIT_SHIFT_BKQ_TXBD_DESA 0
  19381. #define BIT_MASK_BKQ_TXBD_DESA 0xffffffffffffffffL
  19382. #define BIT_BKQ_TXBD_DESA(x) \
  19383. (((x) & BIT_MASK_BKQ_TXBD_DESA) << BIT_SHIFT_BKQ_TXBD_DESA)
  19384. #define BITS_BKQ_TXBD_DESA (BIT_MASK_BKQ_TXBD_DESA << BIT_SHIFT_BKQ_TXBD_DESA)
  19385. #define BIT_CLEAR_BKQ_TXBD_DESA(x) ((x) & (~BITS_BKQ_TXBD_DESA))
  19386. #define BIT_GET_BKQ_TXBD_DESA(x) \
  19387. (((x) >> BIT_SHIFT_BKQ_TXBD_DESA) & BIT_MASK_BKQ_TXBD_DESA)
  19388. #define BIT_SET_BKQ_TXBD_DESA(x, v) \
  19389. (BIT_CLEAR_BKQ_TXBD_DESA(x) | BIT_BKQ_TXBD_DESA(v))
  19390. #endif
  19391. #if (HALMAC_8814B_SUPPORT)
  19392. /* 2 REG_ACH3_TXBD_DESA_L (Offset 0x0330) */
  19393. #define BIT_SHIFT_ACH3_TXBD_DESA_L 0
  19394. #define BIT_MASK_ACH3_TXBD_DESA_L 0xffffffffL
  19395. #define BIT_ACH3_TXBD_DESA_L(x) \
  19396. (((x) & BIT_MASK_ACH3_TXBD_DESA_L) << BIT_SHIFT_ACH3_TXBD_DESA_L)
  19397. #define BITS_ACH3_TXBD_DESA_L \
  19398. (BIT_MASK_ACH3_TXBD_DESA_L << BIT_SHIFT_ACH3_TXBD_DESA_L)
  19399. #define BIT_CLEAR_ACH3_TXBD_DESA_L(x) ((x) & (~BITS_ACH3_TXBD_DESA_L))
  19400. #define BIT_GET_ACH3_TXBD_DESA_L(x) \
  19401. (((x) >> BIT_SHIFT_ACH3_TXBD_DESA_L) & BIT_MASK_ACH3_TXBD_DESA_L)
  19402. #define BIT_SET_ACH3_TXBD_DESA_L(x, v) \
  19403. (BIT_CLEAR_ACH3_TXBD_DESA_L(x) | BIT_ACH3_TXBD_DESA_L(v))
  19404. /* 2 REG_ACH3_TXBD_DESA_H (Offset 0x0334) */
  19405. #define BIT_SHIFT_ACH3_TXBD_DESA_H 0
  19406. #define BIT_MASK_ACH3_TXBD_DESA_H 0xffffffffL
  19407. #define BIT_ACH3_TXBD_DESA_H(x) \
  19408. (((x) & BIT_MASK_ACH3_TXBD_DESA_H) << BIT_SHIFT_ACH3_TXBD_DESA_H)
  19409. #define BITS_ACH3_TXBD_DESA_H \
  19410. (BIT_MASK_ACH3_TXBD_DESA_H << BIT_SHIFT_ACH3_TXBD_DESA_H)
  19411. #define BIT_CLEAR_ACH3_TXBD_DESA_H(x) ((x) & (~BITS_ACH3_TXBD_DESA_H))
  19412. #define BIT_GET_ACH3_TXBD_DESA_H(x) \
  19413. (((x) >> BIT_SHIFT_ACH3_TXBD_DESA_H) & BIT_MASK_ACH3_TXBD_DESA_H)
  19414. #define BIT_SET_ACH3_TXBD_DESA_H(x, v) \
  19415. (BIT_CLEAR_ACH3_TXBD_DESA_H(x) | BIT_ACH3_TXBD_DESA_H(v))
  19416. #endif
  19417. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19418. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19419. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19420. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19421. /* 2 REG_RXQ_RXBD_DESA (Offset 0x0338) */
  19422. #define BIT_SHIFT_RXQ_RXBD_DESA 0
  19423. #define BIT_MASK_RXQ_RXBD_DESA 0xffffffffffffffffL
  19424. #define BIT_RXQ_RXBD_DESA(x) \
  19425. (((x) & BIT_MASK_RXQ_RXBD_DESA) << BIT_SHIFT_RXQ_RXBD_DESA)
  19426. #define BITS_RXQ_RXBD_DESA (BIT_MASK_RXQ_RXBD_DESA << BIT_SHIFT_RXQ_RXBD_DESA)
  19427. #define BIT_CLEAR_RXQ_RXBD_DESA(x) ((x) & (~BITS_RXQ_RXBD_DESA))
  19428. #define BIT_GET_RXQ_RXBD_DESA(x) \
  19429. (((x) >> BIT_SHIFT_RXQ_RXBD_DESA) & BIT_MASK_RXQ_RXBD_DESA)
  19430. #define BIT_SET_RXQ_RXBD_DESA(x, v) \
  19431. (BIT_CLEAR_RXQ_RXBD_DESA(x) | BIT_RXQ_RXBD_DESA(v))
  19432. #endif
  19433. #if (HALMAC_8814B_SUPPORT)
  19434. /* 2 REG_P0RXQ_RXBD_DESA_L (Offset 0x0338) */
  19435. #define BIT_SHIFT_P0RXQ_RXBD_DESA_L 0
  19436. #define BIT_MASK_P0RXQ_RXBD_DESA_L 0xffffffffL
  19437. #define BIT_P0RXQ_RXBD_DESA_L(x) \
  19438. (((x) & BIT_MASK_P0RXQ_RXBD_DESA_L) << BIT_SHIFT_P0RXQ_RXBD_DESA_L)
  19439. #define BITS_P0RXQ_RXBD_DESA_L \
  19440. (BIT_MASK_P0RXQ_RXBD_DESA_L << BIT_SHIFT_P0RXQ_RXBD_DESA_L)
  19441. #define BIT_CLEAR_P0RXQ_RXBD_DESA_L(x) ((x) & (~BITS_P0RXQ_RXBD_DESA_L))
  19442. #define BIT_GET_P0RXQ_RXBD_DESA_L(x) \
  19443. (((x) >> BIT_SHIFT_P0RXQ_RXBD_DESA_L) & BIT_MASK_P0RXQ_RXBD_DESA_L)
  19444. #define BIT_SET_P0RXQ_RXBD_DESA_L(x, v) \
  19445. (BIT_CLEAR_P0RXQ_RXBD_DESA_L(x) | BIT_P0RXQ_RXBD_DESA_L(v))
  19446. /* 2 REG_P0RXQ_RXBD_DESA_H (Offset 0x033C) */
  19447. #define BIT_SHIFT_P0RXQ_RXBD_DESA_H 0
  19448. #define BIT_MASK_P0RXQ_RXBD_DESA_H 0xffffffffL
  19449. #define BIT_P0RXQ_RXBD_DESA_H(x) \
  19450. (((x) & BIT_MASK_P0RXQ_RXBD_DESA_H) << BIT_SHIFT_P0RXQ_RXBD_DESA_H)
  19451. #define BITS_P0RXQ_RXBD_DESA_H \
  19452. (BIT_MASK_P0RXQ_RXBD_DESA_H << BIT_SHIFT_P0RXQ_RXBD_DESA_H)
  19453. #define BIT_CLEAR_P0RXQ_RXBD_DESA_H(x) ((x) & (~BITS_P0RXQ_RXBD_DESA_H))
  19454. #define BIT_GET_P0RXQ_RXBD_DESA_H(x) \
  19455. (((x) >> BIT_SHIFT_P0RXQ_RXBD_DESA_H) & BIT_MASK_P0RXQ_RXBD_DESA_H)
  19456. #define BIT_SET_P0RXQ_RXBD_DESA_H(x, v) \
  19457. (BIT_CLEAR_P0RXQ_RXBD_DESA_H(x) | BIT_P0RXQ_RXBD_DESA_H(v))
  19458. #endif
  19459. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19460. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19461. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19462. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19463. /* 2 REG_HI0Q_TXBD_DESA (Offset 0x0340) */
  19464. #define BIT_SHIFT_HI0Q_TXBD_DESA 0
  19465. #define BIT_MASK_HI0Q_TXBD_DESA 0xffffffffffffffffL
  19466. #define BIT_HI0Q_TXBD_DESA(x) \
  19467. (((x) & BIT_MASK_HI0Q_TXBD_DESA) << BIT_SHIFT_HI0Q_TXBD_DESA)
  19468. #define BITS_HI0Q_TXBD_DESA \
  19469. (BIT_MASK_HI0Q_TXBD_DESA << BIT_SHIFT_HI0Q_TXBD_DESA)
  19470. #define BIT_CLEAR_HI0Q_TXBD_DESA(x) ((x) & (~BITS_HI0Q_TXBD_DESA))
  19471. #define BIT_GET_HI0Q_TXBD_DESA(x) \
  19472. (((x) >> BIT_SHIFT_HI0Q_TXBD_DESA) & BIT_MASK_HI0Q_TXBD_DESA)
  19473. #define BIT_SET_HI0Q_TXBD_DESA(x, v) \
  19474. (BIT_CLEAR_HI0Q_TXBD_DESA(x) | BIT_HI0Q_TXBD_DESA(v))
  19475. #endif
  19476. #if (HALMAC_8814B_SUPPORT)
  19477. /* 2 REG_P0BCNQ_TXBD_DESA_L (Offset 0x0340) */
  19478. #define BIT_SHIFT_P0BCNQ_TXBD_DESA_L 0
  19479. #define BIT_MASK_P0BCNQ_TXBD_DESA_L 0xffffffffL
  19480. #define BIT_P0BCNQ_TXBD_DESA_L(x) \
  19481. (((x) & BIT_MASK_P0BCNQ_TXBD_DESA_L) << BIT_SHIFT_P0BCNQ_TXBD_DESA_L)
  19482. #define BITS_P0BCNQ_TXBD_DESA_L \
  19483. (BIT_MASK_P0BCNQ_TXBD_DESA_L << BIT_SHIFT_P0BCNQ_TXBD_DESA_L)
  19484. #define BIT_CLEAR_P0BCNQ_TXBD_DESA_L(x) ((x) & (~BITS_P0BCNQ_TXBD_DESA_L))
  19485. #define BIT_GET_P0BCNQ_TXBD_DESA_L(x) \
  19486. (((x) >> BIT_SHIFT_P0BCNQ_TXBD_DESA_L) & BIT_MASK_P0BCNQ_TXBD_DESA_L)
  19487. #define BIT_SET_P0BCNQ_TXBD_DESA_L(x, v) \
  19488. (BIT_CLEAR_P0BCNQ_TXBD_DESA_L(x) | BIT_P0BCNQ_TXBD_DESA_L(v))
  19489. /* 2 REG_P0BCNQ_TXBD_DESA_H (Offset 0x0344) */
  19490. #define BIT_SHIFT_P0BCNQ_TXBD_DESA_H 0
  19491. #define BIT_MASK_P0BCNQ_TXBD_DESA_H 0xffffffffL
  19492. #define BIT_P0BCNQ_TXBD_DESA_H(x) \
  19493. (((x) & BIT_MASK_P0BCNQ_TXBD_DESA_H) << BIT_SHIFT_P0BCNQ_TXBD_DESA_H)
  19494. #define BITS_P0BCNQ_TXBD_DESA_H \
  19495. (BIT_MASK_P0BCNQ_TXBD_DESA_H << BIT_SHIFT_P0BCNQ_TXBD_DESA_H)
  19496. #define BIT_CLEAR_P0BCNQ_TXBD_DESA_H(x) ((x) & (~BITS_P0BCNQ_TXBD_DESA_H))
  19497. #define BIT_GET_P0BCNQ_TXBD_DESA_H(x) \
  19498. (((x) >> BIT_SHIFT_P0BCNQ_TXBD_DESA_H) & BIT_MASK_P0BCNQ_TXBD_DESA_H)
  19499. #define BIT_SET_P0BCNQ_TXBD_DESA_H(x, v) \
  19500. (BIT_CLEAR_P0BCNQ_TXBD_DESA_H(x) | BIT_P0BCNQ_TXBD_DESA_H(v))
  19501. #endif
  19502. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19503. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19504. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19505. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19506. /* 2 REG_HI1Q_TXBD_DESA (Offset 0x0348) */
  19507. #define BIT_SHIFT_HI1Q_TXBD_DESA 0
  19508. #define BIT_MASK_HI1Q_TXBD_DESA 0xffffffffffffffffL
  19509. #define BIT_HI1Q_TXBD_DESA(x) \
  19510. (((x) & BIT_MASK_HI1Q_TXBD_DESA) << BIT_SHIFT_HI1Q_TXBD_DESA)
  19511. #define BITS_HI1Q_TXBD_DESA \
  19512. (BIT_MASK_HI1Q_TXBD_DESA << BIT_SHIFT_HI1Q_TXBD_DESA)
  19513. #define BIT_CLEAR_HI1Q_TXBD_DESA(x) ((x) & (~BITS_HI1Q_TXBD_DESA))
  19514. #define BIT_GET_HI1Q_TXBD_DESA(x) \
  19515. (((x) >> BIT_SHIFT_HI1Q_TXBD_DESA) & BIT_MASK_HI1Q_TXBD_DESA)
  19516. #define BIT_SET_HI1Q_TXBD_DESA(x, v) \
  19517. (BIT_CLEAR_HI1Q_TXBD_DESA(x) | BIT_HI1Q_TXBD_DESA(v))
  19518. #endif
  19519. #if (HALMAC_8814B_SUPPORT)
  19520. /* 2 REG_FWCMDQ_TXBD_DESA_L (Offset 0x0348) */
  19521. #define BIT_SHIFT_FWCMDQ_TXBD_DESA_L 0
  19522. #define BIT_MASK_FWCMDQ_TXBD_DESA_L 0xffffffffL
  19523. #define BIT_FWCMDQ_TXBD_DESA_L(x) \
  19524. (((x) & BIT_MASK_FWCMDQ_TXBD_DESA_L) << BIT_SHIFT_FWCMDQ_TXBD_DESA_L)
  19525. #define BITS_FWCMDQ_TXBD_DESA_L \
  19526. (BIT_MASK_FWCMDQ_TXBD_DESA_L << BIT_SHIFT_FWCMDQ_TXBD_DESA_L)
  19527. #define BIT_CLEAR_FWCMDQ_TXBD_DESA_L(x) ((x) & (~BITS_FWCMDQ_TXBD_DESA_L))
  19528. #define BIT_GET_FWCMDQ_TXBD_DESA_L(x) \
  19529. (((x) >> BIT_SHIFT_FWCMDQ_TXBD_DESA_L) & BIT_MASK_FWCMDQ_TXBD_DESA_L)
  19530. #define BIT_SET_FWCMDQ_TXBD_DESA_L(x, v) \
  19531. (BIT_CLEAR_FWCMDQ_TXBD_DESA_L(x) | BIT_FWCMDQ_TXBD_DESA_L(v))
  19532. /* 2 REG_FWCMDQ_TXBD_DESA_H (Offset 0x034C) */
  19533. #define BIT_SHIFT_FWCMDQ_TXBD_DESA_H 0
  19534. #define BIT_MASK_FWCMDQ_TXBD_DESA_H 0xffffffffL
  19535. #define BIT_FWCMDQ_TXBD_DESA_H(x) \
  19536. (((x) & BIT_MASK_FWCMDQ_TXBD_DESA_H) << BIT_SHIFT_FWCMDQ_TXBD_DESA_H)
  19537. #define BITS_FWCMDQ_TXBD_DESA_H \
  19538. (BIT_MASK_FWCMDQ_TXBD_DESA_H << BIT_SHIFT_FWCMDQ_TXBD_DESA_H)
  19539. #define BIT_CLEAR_FWCMDQ_TXBD_DESA_H(x) ((x) & (~BITS_FWCMDQ_TXBD_DESA_H))
  19540. #define BIT_GET_FWCMDQ_TXBD_DESA_H(x) \
  19541. (((x) >> BIT_SHIFT_FWCMDQ_TXBD_DESA_H) & BIT_MASK_FWCMDQ_TXBD_DESA_H)
  19542. #define BIT_SET_FWCMDQ_TXBD_DESA_H(x, v) \
  19543. (BIT_CLEAR_FWCMDQ_TXBD_DESA_H(x) | BIT_FWCMDQ_TXBD_DESA_H(v))
  19544. #endif
  19545. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19546. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19547. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19548. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19549. /* 2 REG_HI2Q_TXBD_DESA (Offset 0x0350) */
  19550. #define BIT_SHIFT_HI2Q_TXBD_DESA 0
  19551. #define BIT_MASK_HI2Q_TXBD_DESA 0xffffffffffffffffL
  19552. #define BIT_HI2Q_TXBD_DESA(x) \
  19553. (((x) & BIT_MASK_HI2Q_TXBD_DESA) << BIT_SHIFT_HI2Q_TXBD_DESA)
  19554. #define BITS_HI2Q_TXBD_DESA \
  19555. (BIT_MASK_HI2Q_TXBD_DESA << BIT_SHIFT_HI2Q_TXBD_DESA)
  19556. #define BIT_CLEAR_HI2Q_TXBD_DESA(x) ((x) & (~BITS_HI2Q_TXBD_DESA))
  19557. #define BIT_GET_HI2Q_TXBD_DESA(x) \
  19558. (((x) >> BIT_SHIFT_HI2Q_TXBD_DESA) & BIT_MASK_HI2Q_TXBD_DESA)
  19559. #define BIT_SET_HI2Q_TXBD_DESA(x, v) \
  19560. (BIT_CLEAR_HI2Q_TXBD_DESA(x) | BIT_HI2Q_TXBD_DESA(v))
  19561. #endif
  19562. #if (HALMAC_8814B_SUPPORT)
  19563. /* 2 REG_PCIE_HRPWM1_HCPWM1_DCPU (Offset 0x0354) */
  19564. #define BIT_SHIFT_PCIE_HCPWM1_DCPU 16
  19565. #define BIT_MASK_PCIE_HCPWM1_DCPU 0xff
  19566. #define BIT_PCIE_HCPWM1_DCPU(x) \
  19567. (((x) & BIT_MASK_PCIE_HCPWM1_DCPU) << BIT_SHIFT_PCIE_HCPWM1_DCPU)
  19568. #define BITS_PCIE_HCPWM1_DCPU \
  19569. (BIT_MASK_PCIE_HCPWM1_DCPU << BIT_SHIFT_PCIE_HCPWM1_DCPU)
  19570. #define BIT_CLEAR_PCIE_HCPWM1_DCPU(x) ((x) & (~BITS_PCIE_HCPWM1_DCPU))
  19571. #define BIT_GET_PCIE_HCPWM1_DCPU(x) \
  19572. (((x) >> BIT_SHIFT_PCIE_HCPWM1_DCPU) & BIT_MASK_PCIE_HCPWM1_DCPU)
  19573. #define BIT_SET_PCIE_HCPWM1_DCPU(x, v) \
  19574. (BIT_CLEAR_PCIE_HCPWM1_DCPU(x) | BIT_PCIE_HCPWM1_DCPU(v))
  19575. #define BIT_SHIFT_PCIE_HRPWM1_DCPU 8
  19576. #define BIT_MASK_PCIE_HRPWM1_DCPU 0xff
  19577. #define BIT_PCIE_HRPWM1_DCPU(x) \
  19578. (((x) & BIT_MASK_PCIE_HRPWM1_DCPU) << BIT_SHIFT_PCIE_HRPWM1_DCPU)
  19579. #define BITS_PCIE_HRPWM1_DCPU \
  19580. (BIT_MASK_PCIE_HRPWM1_DCPU << BIT_SHIFT_PCIE_HRPWM1_DCPU)
  19581. #define BIT_CLEAR_PCIE_HRPWM1_DCPU(x) ((x) & (~BITS_PCIE_HRPWM1_DCPU))
  19582. #define BIT_GET_PCIE_HRPWM1_DCPU(x) \
  19583. (((x) >> BIT_SHIFT_PCIE_HRPWM1_DCPU) & BIT_MASK_PCIE_HRPWM1_DCPU)
  19584. #define BIT_SET_PCIE_HRPWM1_DCPU(x, v) \
  19585. (BIT_CLEAR_PCIE_HRPWM1_DCPU(x) | BIT_PCIE_HRPWM1_DCPU(v))
  19586. #endif
  19587. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19588. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19589. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19590. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19591. /* 2 REG_HI3Q_TXBD_DESA (Offset 0x0358) */
  19592. #define BIT_SHIFT_HI3Q_TXBD_DESA 0
  19593. #define BIT_MASK_HI3Q_TXBD_DESA 0xffffffffffffffffL
  19594. #define BIT_HI3Q_TXBD_DESA(x) \
  19595. (((x) & BIT_MASK_HI3Q_TXBD_DESA) << BIT_SHIFT_HI3Q_TXBD_DESA)
  19596. #define BITS_HI3Q_TXBD_DESA \
  19597. (BIT_MASK_HI3Q_TXBD_DESA << BIT_SHIFT_HI3Q_TXBD_DESA)
  19598. #define BIT_CLEAR_HI3Q_TXBD_DESA(x) ((x) & (~BITS_HI3Q_TXBD_DESA))
  19599. #define BIT_GET_HI3Q_TXBD_DESA(x) \
  19600. (((x) >> BIT_SHIFT_HI3Q_TXBD_DESA) & BIT_MASK_HI3Q_TXBD_DESA)
  19601. #define BIT_SET_HI3Q_TXBD_DESA(x, v) \
  19602. (BIT_CLEAR_HI3Q_TXBD_DESA(x) | BIT_HI3Q_TXBD_DESA(v))
  19603. #endif
  19604. #if (HALMAC_8814B_SUPPORT)
  19605. /* 2 REG_P0_MPRT_BCNQ_TXBD_DESA_L (Offset 0x0358) */
  19606. #define BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L 0
  19607. #define BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L 0xffffffffL
  19608. #define BIT_P0_MPRT_BCNQ_TXBD_DESA_L(x) \
  19609. (((x) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L) \
  19610. << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L)
  19611. #define BITS_P0_MPRT_BCNQ_TXBD_DESA_L \
  19612. (BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L \
  19613. << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L)
  19614. #define BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_L(x) \
  19615. ((x) & (~BITS_P0_MPRT_BCNQ_TXBD_DESA_L))
  19616. #define BIT_GET_P0_MPRT_BCNQ_TXBD_DESA_L(x) \
  19617. (((x) >> BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L) & \
  19618. BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L)
  19619. #define BIT_SET_P0_MPRT_BCNQ_TXBD_DESA_L(x, v) \
  19620. (BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_L(x) | \
  19621. BIT_P0_MPRT_BCNQ_TXBD_DESA_L(v))
  19622. /* 2 REG_P0_MPRT_BCNQ_TXBD_DESA_H (Offset 0x035C) */
  19623. #define BIT_CLR_P0HI15Q_HW_IDX BIT(29)
  19624. #define BIT_CLR_P0HI14Q_HW_IDX BIT(28)
  19625. #define BIT_CLR_P0HI13Q_HW_IDX BIT(27)
  19626. #define BIT_CLR_P0HI12Q_HW_IDX BIT(26)
  19627. #define BIT_CLR_P0HI11Q_HW_IDX BIT(25)
  19628. #define BIT_CLR_P0HI10Q_HW_IDX BIT(24)
  19629. #define BIT_CLR_P0HI9Q_HW_IDX BIT(23)
  19630. #define BIT_CLR_P0HI8Q_HW_IDX BIT(22)
  19631. #define BIT_CLR_ACH7_HW_IDX BIT(21)
  19632. #define BIT_CLR_ACH13_HW_IDX BIT(21)
  19633. #define BIT_CLR_ACH6_HW_IDX BIT(20)
  19634. #define BIT_CLR_ACH12_HW_IDX BIT(20)
  19635. #define BIT_CLR_ACH5_HW_IDX BIT(19)
  19636. #define BIT_CLR_ACH11_HW_IDX BIT(19)
  19637. #define BIT_CLR_ACH4_HW_IDX BIT(18)
  19638. #define BIT_CLR_ACH10_HW_IDX BIT(18)
  19639. #define BIT_CLR_ACH9_HW_IDX BIT(17)
  19640. #define BIT_CLR_ACH8_HW_IDX BIT(16)
  19641. #define BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE 13
  19642. #define BIT_MASK_P0_MPRT_BCNQ_DESC_MODE 0x3
  19643. #define BIT_P0_MPRT_BCNQ_DESC_MODE(x) \
  19644. (((x) & BIT_MASK_P0_MPRT_BCNQ_DESC_MODE) \
  19645. << BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE)
  19646. #define BITS_P0_MPRT_BCNQ_DESC_MODE \
  19647. (BIT_MASK_P0_MPRT_BCNQ_DESC_MODE << BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE)
  19648. #define BIT_CLEAR_P0_MPRT_BCNQ_DESC_MODE(x) \
  19649. ((x) & (~BITS_P0_MPRT_BCNQ_DESC_MODE))
  19650. #define BIT_GET_P0_MPRT_BCNQ_DESC_MODE(x) \
  19651. (((x) >> BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE) & \
  19652. BIT_MASK_P0_MPRT_BCNQ_DESC_MODE)
  19653. #define BIT_SET_P0_MPRT_BCNQ_DESC_MODE(x, v) \
  19654. (BIT_CLEAR_P0_MPRT_BCNQ_DESC_MODE(x) | BIT_P0_MPRT_BCNQ_DESC_MODE(v))
  19655. #define BIT_CLR_P0HI15Q_HOST_IDX BIT(13)
  19656. #define BIT_CLR_P0HI14Q_HOST_IDX BIT(12)
  19657. #define BIT_PCIE_P0MPRT_BCNQ4_FLAG BIT(11)
  19658. #define BIT_CLR_P0HI13Q_HOST_IDX BIT(11)
  19659. #define BIT_PCIE_P0MPRT_BCNQ3_FLAG BIT(10)
  19660. #define BIT_CLR_P0HI12Q_HOST_IDX BIT(10)
  19661. #define BIT_PCIE_P0MPRT_BCNQ2_FLAG BIT(9)
  19662. #define BIT_CLR_P0HI11Q_HOST_IDX BIT(9)
  19663. #define BIT_PCIE_P0MPRT_BCNQ1_FLAG BIT(8)
  19664. #define BIT_CLR_P0HI10Q_HOST_IDX BIT(8)
  19665. #define BIT_CLR_P0HI9Q_HOST_IDX BIT(7)
  19666. #define BIT_CLR_P0HI8Q_HOST_IDX BIT(6)
  19667. #define BIT_CLR_ACH7_HOST_IDX BIT(5)
  19668. #define BIT_CLR_ACH13_HOST_IDX BIT(5)
  19669. #define BIT_CLR_ACH6_HOST_IDX BIT(4)
  19670. #define BIT_CLR_ACH12_HOST_IDX BIT(4)
  19671. #define BIT_CLR_ACH5_HOST_IDX BIT(3)
  19672. #define BIT_CLR_ACH11_HOST_IDX BIT(3)
  19673. #define BIT_CLR_ACH4_HOST_IDX BIT(2)
  19674. #define BIT_CLR_ACH10_HOST_IDX BIT(2)
  19675. #define BIT_EPHY_CAL_DONE BIT(1)
  19676. #define BIT_CLR_ACH9_HOST_IDX BIT(1)
  19677. #define BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H 0
  19678. #define BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H 0xffffffffL
  19679. #define BIT_P0_MPRT_BCNQ_TXBD_DESA_H(x) \
  19680. (((x) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H) \
  19681. << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H)
  19682. #define BITS_P0_MPRT_BCNQ_TXBD_DESA_H \
  19683. (BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H \
  19684. << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H)
  19685. #define BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_H(x) \
  19686. ((x) & (~BITS_P0_MPRT_BCNQ_TXBD_DESA_H))
  19687. #define BIT_GET_P0_MPRT_BCNQ_TXBD_DESA_H(x) \
  19688. (((x) >> BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H) & \
  19689. BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H)
  19690. #define BIT_SET_P0_MPRT_BCNQ_TXBD_DESA_H(x, v) \
  19691. (BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_H(x) | \
  19692. BIT_P0_MPRT_BCNQ_TXBD_DESA_H(v))
  19693. #define BIT_RESET_APHY BIT(0)
  19694. #define BIT_CLR_ACH8_HOST_IDX BIT(0)
  19695. #endif
  19696. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19697. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19698. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19699. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19700. /* 2 REG_HI4Q_TXBD_DESA (Offset 0x0360) */
  19701. #define BIT_SHIFT_HI4Q_TXBD_DESA 0
  19702. #define BIT_MASK_HI4Q_TXBD_DESA 0xffffffffffffffffL
  19703. #define BIT_HI4Q_TXBD_DESA(x) \
  19704. (((x) & BIT_MASK_HI4Q_TXBD_DESA) << BIT_SHIFT_HI4Q_TXBD_DESA)
  19705. #define BITS_HI4Q_TXBD_DESA \
  19706. (BIT_MASK_HI4Q_TXBD_DESA << BIT_SHIFT_HI4Q_TXBD_DESA)
  19707. #define BIT_CLEAR_HI4Q_TXBD_DESA(x) ((x) & (~BITS_HI4Q_TXBD_DESA))
  19708. #define BIT_GET_HI4Q_TXBD_DESA(x) \
  19709. (((x) >> BIT_SHIFT_HI4Q_TXBD_DESA) & BIT_MASK_HI4Q_TXBD_DESA)
  19710. #define BIT_SET_HI4Q_TXBD_DESA(x, v) \
  19711. (BIT_CLEAR_HI4Q_TXBD_DESA(x) | BIT_HI4Q_TXBD_DESA(v))
  19712. /* 2 REG_HI5Q_TXBD_DESA (Offset 0x0368) */
  19713. #define BIT_SHIFT_HI5Q_TXBD_DESA 0
  19714. #define BIT_MASK_HI5Q_TXBD_DESA 0xffffffffffffffffL
  19715. #define BIT_HI5Q_TXBD_DESA(x) \
  19716. (((x) & BIT_MASK_HI5Q_TXBD_DESA) << BIT_SHIFT_HI5Q_TXBD_DESA)
  19717. #define BITS_HI5Q_TXBD_DESA \
  19718. (BIT_MASK_HI5Q_TXBD_DESA << BIT_SHIFT_HI5Q_TXBD_DESA)
  19719. #define BIT_CLEAR_HI5Q_TXBD_DESA(x) ((x) & (~BITS_HI5Q_TXBD_DESA))
  19720. #define BIT_GET_HI5Q_TXBD_DESA(x) \
  19721. (((x) >> BIT_SHIFT_HI5Q_TXBD_DESA) & BIT_MASK_HI5Q_TXBD_DESA)
  19722. #define BIT_SET_HI5Q_TXBD_DESA(x, v) \
  19723. (BIT_CLEAR_HI5Q_TXBD_DESA(x) | BIT_HI5Q_TXBD_DESA(v))
  19724. /* 2 REG_HI6Q_TXBD_DESA (Offset 0x0370) */
  19725. #define BIT_SHIFT_HI6Q_TXBD_DESA 0
  19726. #define BIT_MASK_HI6Q_TXBD_DESA 0xffffffffffffffffL
  19727. #define BIT_HI6Q_TXBD_DESA(x) \
  19728. (((x) & BIT_MASK_HI6Q_TXBD_DESA) << BIT_SHIFT_HI6Q_TXBD_DESA)
  19729. #define BITS_HI6Q_TXBD_DESA \
  19730. (BIT_MASK_HI6Q_TXBD_DESA << BIT_SHIFT_HI6Q_TXBD_DESA)
  19731. #define BIT_CLEAR_HI6Q_TXBD_DESA(x) ((x) & (~BITS_HI6Q_TXBD_DESA))
  19732. #define BIT_GET_HI6Q_TXBD_DESA(x) \
  19733. (((x) >> BIT_SHIFT_HI6Q_TXBD_DESA) & BIT_MASK_HI6Q_TXBD_DESA)
  19734. #define BIT_SET_HI6Q_TXBD_DESA(x, v) \
  19735. (BIT_CLEAR_HI6Q_TXBD_DESA(x) | BIT_HI6Q_TXBD_DESA(v))
  19736. #endif
  19737. #if (HALMAC_8814B_SUPPORT)
  19738. /* 2 REG_P0MGQ_RXQ_TXRXBD_NUM (Offset 0x0378) */
  19739. #define BIT_SYS_32_64_V1 BIT(31)
  19740. #define BIT_SHIFT_P0BCNQ_DESC_MODE 29
  19741. #define BIT_MASK_P0BCNQ_DESC_MODE 0x3
  19742. #define BIT_P0BCNQ_DESC_MODE(x) \
  19743. (((x) & BIT_MASK_P0BCNQ_DESC_MODE) << BIT_SHIFT_P0BCNQ_DESC_MODE)
  19744. #define BITS_P0BCNQ_DESC_MODE \
  19745. (BIT_MASK_P0BCNQ_DESC_MODE << BIT_SHIFT_P0BCNQ_DESC_MODE)
  19746. #define BIT_CLEAR_P0BCNQ_DESC_MODE(x) ((x) & (~BITS_P0BCNQ_DESC_MODE))
  19747. #define BIT_GET_P0BCNQ_DESC_MODE(x) \
  19748. (((x) >> BIT_SHIFT_P0BCNQ_DESC_MODE) & BIT_MASK_P0BCNQ_DESC_MODE)
  19749. #define BIT_SET_P0BCNQ_DESC_MODE(x, v) \
  19750. (BIT_CLEAR_P0BCNQ_DESC_MODE(x) | BIT_P0BCNQ_DESC_MODE(v))
  19751. #define BIT_PCIE_P0BCNQ_FLAG BIT(28)
  19752. #define BIT_SHIFT_P0RXQ_DESC_NUM 16
  19753. #define BIT_MASK_P0RXQ_DESC_NUM 0xfff
  19754. #define BIT_P0RXQ_DESC_NUM(x) \
  19755. (((x) & BIT_MASK_P0RXQ_DESC_NUM) << BIT_SHIFT_P0RXQ_DESC_NUM)
  19756. #define BITS_P0RXQ_DESC_NUM \
  19757. (BIT_MASK_P0RXQ_DESC_NUM << BIT_SHIFT_P0RXQ_DESC_NUM)
  19758. #define BIT_CLEAR_P0RXQ_DESC_NUM(x) ((x) & (~BITS_P0RXQ_DESC_NUM))
  19759. #define BIT_GET_P0RXQ_DESC_NUM(x) \
  19760. (((x) >> BIT_SHIFT_P0RXQ_DESC_NUM) & BIT_MASK_P0RXQ_DESC_NUM)
  19761. #define BIT_SET_P0RXQ_DESC_NUM(x, v) \
  19762. (BIT_CLEAR_P0RXQ_DESC_NUM(x) | BIT_P0RXQ_DESC_NUM(v))
  19763. #define BIT_PCIE_P0MGQ_FLAG BIT(14)
  19764. #define BIT_SHIFT_P0MGQ_DESC_MODE 12
  19765. #define BIT_MASK_P0MGQ_DESC_MODE 0x3
  19766. #define BIT_P0MGQ_DESC_MODE(x) \
  19767. (((x) & BIT_MASK_P0MGQ_DESC_MODE) << BIT_SHIFT_P0MGQ_DESC_MODE)
  19768. #define BITS_P0MGQ_DESC_MODE \
  19769. (BIT_MASK_P0MGQ_DESC_MODE << BIT_SHIFT_P0MGQ_DESC_MODE)
  19770. #define BIT_CLEAR_P0MGQ_DESC_MODE(x) ((x) & (~BITS_P0MGQ_DESC_MODE))
  19771. #define BIT_GET_P0MGQ_DESC_MODE(x) \
  19772. (((x) >> BIT_SHIFT_P0MGQ_DESC_MODE) & BIT_MASK_P0MGQ_DESC_MODE)
  19773. #define BIT_SET_P0MGQ_DESC_MODE(x, v) \
  19774. (BIT_CLEAR_P0MGQ_DESC_MODE(x) | BIT_P0MGQ_DESC_MODE(v))
  19775. #endif
  19776. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19777. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19778. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19779. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19780. /* 2 REG_HI7Q_TXBD_DESA (Offset 0x0378) */
  19781. #define BIT_SHIFT_HI7Q_TXBD_DESA 0
  19782. #define BIT_MASK_HI7Q_TXBD_DESA 0xffffffffffffffffL
  19783. #define BIT_HI7Q_TXBD_DESA(x) \
  19784. (((x) & BIT_MASK_HI7Q_TXBD_DESA) << BIT_SHIFT_HI7Q_TXBD_DESA)
  19785. #define BITS_HI7Q_TXBD_DESA \
  19786. (BIT_MASK_HI7Q_TXBD_DESA << BIT_SHIFT_HI7Q_TXBD_DESA)
  19787. #define BIT_CLEAR_HI7Q_TXBD_DESA(x) ((x) & (~BITS_HI7Q_TXBD_DESA))
  19788. #define BIT_GET_HI7Q_TXBD_DESA(x) \
  19789. (((x) >> BIT_SHIFT_HI7Q_TXBD_DESA) & BIT_MASK_HI7Q_TXBD_DESA)
  19790. #define BIT_SET_HI7Q_TXBD_DESA(x, v) \
  19791. (BIT_CLEAR_HI7Q_TXBD_DESA(x) | BIT_HI7Q_TXBD_DESA(v))
  19792. #endif
  19793. #if (HALMAC_8814B_SUPPORT)
  19794. /* 2 REG_P0MGQ_RXQ_TXRXBD_NUM (Offset 0x0378) */
  19795. #define BIT_SHIFT_P0MGQ_DESC_NUM 0
  19796. #define BIT_MASK_P0MGQ_DESC_NUM 0xfff
  19797. #define BIT_P0MGQ_DESC_NUM(x) \
  19798. (((x) & BIT_MASK_P0MGQ_DESC_NUM) << BIT_SHIFT_P0MGQ_DESC_NUM)
  19799. #define BITS_P0MGQ_DESC_NUM \
  19800. (BIT_MASK_P0MGQ_DESC_NUM << BIT_SHIFT_P0MGQ_DESC_NUM)
  19801. #define BIT_CLEAR_P0MGQ_DESC_NUM(x) ((x) & (~BITS_P0MGQ_DESC_NUM))
  19802. #define BIT_GET_P0MGQ_DESC_NUM(x) \
  19803. (((x) >> BIT_SHIFT_P0MGQ_DESC_NUM) & BIT_MASK_P0MGQ_DESC_NUM)
  19804. #define BIT_SET_P0MGQ_DESC_NUM(x, v) \
  19805. (BIT_CLEAR_P0MGQ_DESC_NUM(x) | BIT_P0MGQ_DESC_NUM(v))
  19806. /* 2 REG_CHNL_DMA_CFG (Offset 0x037C) */
  19807. #define BIT_TXHCI_EN BIT(26)
  19808. #define BIT_TXHCI_IDLE BIT(25)
  19809. #define BIT_DMA_PRI_EN BIT(24)
  19810. #define BIT_PCIE_FWCMDQ_FLAG BIT(14)
  19811. #define BIT_SHIFT_FWCMDQ_DESC_MODE 12
  19812. #define BIT_MASK_FWCMDQ_DESC_MODE 0x3
  19813. #define BIT_FWCMDQ_DESC_MODE(x) \
  19814. (((x) & BIT_MASK_FWCMDQ_DESC_MODE) << BIT_SHIFT_FWCMDQ_DESC_MODE)
  19815. #define BITS_FWCMDQ_DESC_MODE \
  19816. (BIT_MASK_FWCMDQ_DESC_MODE << BIT_SHIFT_FWCMDQ_DESC_MODE)
  19817. #define BIT_CLEAR_FWCMDQ_DESC_MODE(x) ((x) & (~BITS_FWCMDQ_DESC_MODE))
  19818. #define BIT_GET_FWCMDQ_DESC_MODE(x) \
  19819. (((x) >> BIT_SHIFT_FWCMDQ_DESC_MODE) & BIT_MASK_FWCMDQ_DESC_MODE)
  19820. #define BIT_SET_FWCMDQ_DESC_MODE(x, v) \
  19821. (BIT_CLEAR_FWCMDQ_DESC_MODE(x) | BIT_FWCMDQ_DESC_MODE(v))
  19822. #define BIT_SHIFT_FWCMDQ_DESC_NUM 0
  19823. #define BIT_MASK_FWCMDQ_DESC_NUM 0xfff
  19824. #define BIT_FWCMDQ_DESC_NUM(x) \
  19825. (((x) & BIT_MASK_FWCMDQ_DESC_NUM) << BIT_SHIFT_FWCMDQ_DESC_NUM)
  19826. #define BITS_FWCMDQ_DESC_NUM \
  19827. (BIT_MASK_FWCMDQ_DESC_NUM << BIT_SHIFT_FWCMDQ_DESC_NUM)
  19828. #define BIT_CLEAR_FWCMDQ_DESC_NUM(x) ((x) & (~BITS_FWCMDQ_DESC_NUM))
  19829. #define BIT_GET_FWCMDQ_DESC_NUM(x) \
  19830. (((x) >> BIT_SHIFT_FWCMDQ_DESC_NUM) & BIT_MASK_FWCMDQ_DESC_NUM)
  19831. #define BIT_SET_FWCMDQ_DESC_NUM(x, v) \
  19832. (BIT_CLEAR_FWCMDQ_DESC_NUM(x) | BIT_FWCMDQ_DESC_NUM(v))
  19833. #endif
  19834. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  19835. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  19836. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19837. /* 2 REG_MGQ_TXBD_NUM (Offset 0x0380) */
  19838. #define BIT_PCIE_MGQ_FLAG BIT(14)
  19839. #endif
  19840. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  19841. /* 2 REG_MGQ_TXBD_NUM (Offset 0x0380) */
  19842. #define BIT_HCI_MGQ_FLAG BIT(14)
  19843. #endif
  19844. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19845. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19846. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19847. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19848. /* 2 REG_MGQ_TXBD_NUM (Offset 0x0380) */
  19849. #define BIT_SHIFT_MGQ_DESC_MODE 12
  19850. #define BIT_MASK_MGQ_DESC_MODE 0x3
  19851. #define BIT_MGQ_DESC_MODE(x) \
  19852. (((x) & BIT_MASK_MGQ_DESC_MODE) << BIT_SHIFT_MGQ_DESC_MODE)
  19853. #define BITS_MGQ_DESC_MODE (BIT_MASK_MGQ_DESC_MODE << BIT_SHIFT_MGQ_DESC_MODE)
  19854. #define BIT_CLEAR_MGQ_DESC_MODE(x) ((x) & (~BITS_MGQ_DESC_MODE))
  19855. #define BIT_GET_MGQ_DESC_MODE(x) \
  19856. (((x) >> BIT_SHIFT_MGQ_DESC_MODE) & BIT_MASK_MGQ_DESC_MODE)
  19857. #define BIT_SET_MGQ_DESC_MODE(x, v) \
  19858. (BIT_CLEAR_MGQ_DESC_MODE(x) | BIT_MGQ_DESC_MODE(v))
  19859. #define BIT_SHIFT_MGQ_DESC_NUM 0
  19860. #define BIT_MASK_MGQ_DESC_NUM 0xfff
  19861. #define BIT_MGQ_DESC_NUM(x) \
  19862. (((x) & BIT_MASK_MGQ_DESC_NUM) << BIT_SHIFT_MGQ_DESC_NUM)
  19863. #define BITS_MGQ_DESC_NUM (BIT_MASK_MGQ_DESC_NUM << BIT_SHIFT_MGQ_DESC_NUM)
  19864. #define BIT_CLEAR_MGQ_DESC_NUM(x) ((x) & (~BITS_MGQ_DESC_NUM))
  19865. #define BIT_GET_MGQ_DESC_NUM(x) \
  19866. (((x) >> BIT_SHIFT_MGQ_DESC_NUM) & BIT_MASK_MGQ_DESC_NUM)
  19867. #define BIT_SET_MGQ_DESC_NUM(x, v) \
  19868. (BIT_CLEAR_MGQ_DESC_NUM(x) | BIT_MGQ_DESC_NUM(v))
  19869. /* 2 REG_RX_RXBD_NUM (Offset 0x0382) */
  19870. #define BIT_SYS_32_64 BIT(15)
  19871. #define BIT_SHIFT_BCNQ_DESC_MODE 13
  19872. #define BIT_MASK_BCNQ_DESC_MODE 0x3
  19873. #define BIT_BCNQ_DESC_MODE(x) \
  19874. (((x) & BIT_MASK_BCNQ_DESC_MODE) << BIT_SHIFT_BCNQ_DESC_MODE)
  19875. #define BITS_BCNQ_DESC_MODE \
  19876. (BIT_MASK_BCNQ_DESC_MODE << BIT_SHIFT_BCNQ_DESC_MODE)
  19877. #define BIT_CLEAR_BCNQ_DESC_MODE(x) ((x) & (~BITS_BCNQ_DESC_MODE))
  19878. #define BIT_GET_BCNQ_DESC_MODE(x) \
  19879. (((x) >> BIT_SHIFT_BCNQ_DESC_MODE) & BIT_MASK_BCNQ_DESC_MODE)
  19880. #define BIT_SET_BCNQ_DESC_MODE(x, v) \
  19881. (BIT_CLEAR_BCNQ_DESC_MODE(x) | BIT_BCNQ_DESC_MODE(v))
  19882. #endif
  19883. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  19884. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  19885. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19886. /* 2 REG_RX_RXBD_NUM (Offset 0x0382) */
  19887. #define BIT_PCIE_BCNQ_FLAG BIT(12)
  19888. #endif
  19889. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  19890. /* 2 REG_RX_RXBD_NUM (Offset 0x0382) */
  19891. #define BIT_HCI_BCNQ_FLAG BIT(12)
  19892. #endif
  19893. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19894. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19895. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19896. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19897. /* 2 REG_RX_RXBD_NUM (Offset 0x0382) */
  19898. #define BIT_SHIFT_RXQ_DESC_NUM 0
  19899. #define BIT_MASK_RXQ_DESC_NUM 0xfff
  19900. #define BIT_RXQ_DESC_NUM(x) \
  19901. (((x) & BIT_MASK_RXQ_DESC_NUM) << BIT_SHIFT_RXQ_DESC_NUM)
  19902. #define BITS_RXQ_DESC_NUM (BIT_MASK_RXQ_DESC_NUM << BIT_SHIFT_RXQ_DESC_NUM)
  19903. #define BIT_CLEAR_RXQ_DESC_NUM(x) ((x) & (~BITS_RXQ_DESC_NUM))
  19904. #define BIT_GET_RXQ_DESC_NUM(x) \
  19905. (((x) >> BIT_SHIFT_RXQ_DESC_NUM) & BIT_MASK_RXQ_DESC_NUM)
  19906. #define BIT_SET_RXQ_DESC_NUM(x, v) \
  19907. (BIT_CLEAR_RXQ_DESC_NUM(x) | BIT_RXQ_DESC_NUM(v))
  19908. #endif
  19909. #if (HALMAC_8814B_SUPPORT)
  19910. /* 2 REG_ACH0_ACH1_TXBD_NUM (Offset 0x0384) */
  19911. #define BIT_PCIE_ACH1_FLAG_V1 BIT(30)
  19912. #define BIT_SHIFT_ACH1_DESC_MODE_V1 28
  19913. #define BIT_MASK_ACH1_DESC_MODE_V1 0x3
  19914. #define BIT_ACH1_DESC_MODE_V1(x) \
  19915. (((x) & BIT_MASK_ACH1_DESC_MODE_V1) << BIT_SHIFT_ACH1_DESC_MODE_V1)
  19916. #define BITS_ACH1_DESC_MODE_V1 \
  19917. (BIT_MASK_ACH1_DESC_MODE_V1 << BIT_SHIFT_ACH1_DESC_MODE_V1)
  19918. #define BIT_CLEAR_ACH1_DESC_MODE_V1(x) ((x) & (~BITS_ACH1_DESC_MODE_V1))
  19919. #define BIT_GET_ACH1_DESC_MODE_V1(x) \
  19920. (((x) >> BIT_SHIFT_ACH1_DESC_MODE_V1) & BIT_MASK_ACH1_DESC_MODE_V1)
  19921. #define BIT_SET_ACH1_DESC_MODE_V1(x, v) \
  19922. (BIT_CLEAR_ACH1_DESC_MODE_V1(x) | BIT_ACH1_DESC_MODE_V1(v))
  19923. #define BIT_SHIFT_ACH1_DESC_NUM_V1 16
  19924. #define BIT_MASK_ACH1_DESC_NUM_V1 0xfff
  19925. #define BIT_ACH1_DESC_NUM_V1(x) \
  19926. (((x) & BIT_MASK_ACH1_DESC_NUM_V1) << BIT_SHIFT_ACH1_DESC_NUM_V1)
  19927. #define BITS_ACH1_DESC_NUM_V1 \
  19928. (BIT_MASK_ACH1_DESC_NUM_V1 << BIT_SHIFT_ACH1_DESC_NUM_V1)
  19929. #define BIT_CLEAR_ACH1_DESC_NUM_V1(x) ((x) & (~BITS_ACH1_DESC_NUM_V1))
  19930. #define BIT_GET_ACH1_DESC_NUM_V1(x) \
  19931. (((x) >> BIT_SHIFT_ACH1_DESC_NUM_V1) & BIT_MASK_ACH1_DESC_NUM_V1)
  19932. #define BIT_SET_ACH1_DESC_NUM_V1(x, v) \
  19933. (BIT_CLEAR_ACH1_DESC_NUM_V1(x) | BIT_ACH1_DESC_NUM_V1(v))
  19934. #endif
  19935. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  19936. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  19937. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19938. /* 2 REG_VOQ_TXBD_NUM (Offset 0x0384) */
  19939. #define BIT_PCIE_VOQ_FLAG BIT(14)
  19940. #endif
  19941. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  19942. /* 2 REG_VOQ_TXBD_NUM (Offset 0x0384) */
  19943. #define BIT_HCI_VOQ_FLAG BIT(14)
  19944. #endif
  19945. #if (HALMAC_8814B_SUPPORT)
  19946. /* 2 REG_ACH0_ACH1_TXBD_NUM (Offset 0x0384) */
  19947. #define BIT_PCIE_ACH0_FLAG BIT(14)
  19948. #endif
  19949. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19950. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19951. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19952. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19953. /* 2 REG_VOQ_TXBD_NUM (Offset 0x0384) */
  19954. #define BIT_SHIFT_VOQ_DESC_MODE 12
  19955. #define BIT_MASK_VOQ_DESC_MODE 0x3
  19956. #define BIT_VOQ_DESC_MODE(x) \
  19957. (((x) & BIT_MASK_VOQ_DESC_MODE) << BIT_SHIFT_VOQ_DESC_MODE)
  19958. #define BITS_VOQ_DESC_MODE (BIT_MASK_VOQ_DESC_MODE << BIT_SHIFT_VOQ_DESC_MODE)
  19959. #define BIT_CLEAR_VOQ_DESC_MODE(x) ((x) & (~BITS_VOQ_DESC_MODE))
  19960. #define BIT_GET_VOQ_DESC_MODE(x) \
  19961. (((x) >> BIT_SHIFT_VOQ_DESC_MODE) & BIT_MASK_VOQ_DESC_MODE)
  19962. #define BIT_SET_VOQ_DESC_MODE(x, v) \
  19963. (BIT_CLEAR_VOQ_DESC_MODE(x) | BIT_VOQ_DESC_MODE(v))
  19964. #endif
  19965. #if (HALMAC_8814B_SUPPORT)
  19966. /* 2 REG_ACH0_ACH1_TXBD_NUM (Offset 0x0384) */
  19967. #define BIT_SHIFT_ACH0_DESC_MODE 12
  19968. #define BIT_MASK_ACH0_DESC_MODE 0x3
  19969. #define BIT_ACH0_DESC_MODE(x) \
  19970. (((x) & BIT_MASK_ACH0_DESC_MODE) << BIT_SHIFT_ACH0_DESC_MODE)
  19971. #define BITS_ACH0_DESC_MODE \
  19972. (BIT_MASK_ACH0_DESC_MODE << BIT_SHIFT_ACH0_DESC_MODE)
  19973. #define BIT_CLEAR_ACH0_DESC_MODE(x) ((x) & (~BITS_ACH0_DESC_MODE))
  19974. #define BIT_GET_ACH0_DESC_MODE(x) \
  19975. (((x) >> BIT_SHIFT_ACH0_DESC_MODE) & BIT_MASK_ACH0_DESC_MODE)
  19976. #define BIT_SET_ACH0_DESC_MODE(x, v) \
  19977. (BIT_CLEAR_ACH0_DESC_MODE(x) | BIT_ACH0_DESC_MODE(v))
  19978. #endif
  19979. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  19980. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  19981. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  19982. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  19983. /* 2 REG_VOQ_TXBD_NUM (Offset 0x0384) */
  19984. #define BIT_SHIFT_VOQ_DESC_NUM 0
  19985. #define BIT_MASK_VOQ_DESC_NUM 0xfff
  19986. #define BIT_VOQ_DESC_NUM(x) \
  19987. (((x) & BIT_MASK_VOQ_DESC_NUM) << BIT_SHIFT_VOQ_DESC_NUM)
  19988. #define BITS_VOQ_DESC_NUM (BIT_MASK_VOQ_DESC_NUM << BIT_SHIFT_VOQ_DESC_NUM)
  19989. #define BIT_CLEAR_VOQ_DESC_NUM(x) ((x) & (~BITS_VOQ_DESC_NUM))
  19990. #define BIT_GET_VOQ_DESC_NUM(x) \
  19991. (((x) >> BIT_SHIFT_VOQ_DESC_NUM) & BIT_MASK_VOQ_DESC_NUM)
  19992. #define BIT_SET_VOQ_DESC_NUM(x, v) \
  19993. (BIT_CLEAR_VOQ_DESC_NUM(x) | BIT_VOQ_DESC_NUM(v))
  19994. #endif
  19995. #if (HALMAC_8814B_SUPPORT)
  19996. /* 2 REG_ACH0_ACH1_TXBD_NUM (Offset 0x0384) */
  19997. #define BIT_SHIFT_ACH0_DESC_NUM 0
  19998. #define BIT_MASK_ACH0_DESC_NUM 0xfff
  19999. #define BIT_ACH0_DESC_NUM(x) \
  20000. (((x) & BIT_MASK_ACH0_DESC_NUM) << BIT_SHIFT_ACH0_DESC_NUM)
  20001. #define BITS_ACH0_DESC_NUM (BIT_MASK_ACH0_DESC_NUM << BIT_SHIFT_ACH0_DESC_NUM)
  20002. #define BIT_CLEAR_ACH0_DESC_NUM(x) ((x) & (~BITS_ACH0_DESC_NUM))
  20003. #define BIT_GET_ACH0_DESC_NUM(x) \
  20004. (((x) >> BIT_SHIFT_ACH0_DESC_NUM) & BIT_MASK_ACH0_DESC_NUM)
  20005. #define BIT_SET_ACH0_DESC_NUM(x, v) \
  20006. (BIT_CLEAR_ACH0_DESC_NUM(x) | BIT_ACH0_DESC_NUM(v))
  20007. #endif
  20008. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  20009. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  20010. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20011. /* 2 REG_VIQ_TXBD_NUM (Offset 0x0386) */
  20012. #define BIT_PCIE_VIQ_FLAG BIT(14)
  20013. #endif
  20014. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  20015. /* 2 REG_VIQ_TXBD_NUM (Offset 0x0386) */
  20016. #define BIT_HCI_VIQ_FLAG BIT(14)
  20017. #endif
  20018. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20019. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20020. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20021. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20022. /* 2 REG_VIQ_TXBD_NUM (Offset 0x0386) */
  20023. #define BIT_SHIFT_VIQ_DESC_MODE 12
  20024. #define BIT_MASK_VIQ_DESC_MODE 0x3
  20025. #define BIT_VIQ_DESC_MODE(x) \
  20026. (((x) & BIT_MASK_VIQ_DESC_MODE) << BIT_SHIFT_VIQ_DESC_MODE)
  20027. #define BITS_VIQ_DESC_MODE (BIT_MASK_VIQ_DESC_MODE << BIT_SHIFT_VIQ_DESC_MODE)
  20028. #define BIT_CLEAR_VIQ_DESC_MODE(x) ((x) & (~BITS_VIQ_DESC_MODE))
  20029. #define BIT_GET_VIQ_DESC_MODE(x) \
  20030. (((x) >> BIT_SHIFT_VIQ_DESC_MODE) & BIT_MASK_VIQ_DESC_MODE)
  20031. #define BIT_SET_VIQ_DESC_MODE(x, v) \
  20032. (BIT_CLEAR_VIQ_DESC_MODE(x) | BIT_VIQ_DESC_MODE(v))
  20033. #define BIT_SHIFT_VIQ_DESC_NUM 0
  20034. #define BIT_MASK_VIQ_DESC_NUM 0xfff
  20035. #define BIT_VIQ_DESC_NUM(x) \
  20036. (((x) & BIT_MASK_VIQ_DESC_NUM) << BIT_SHIFT_VIQ_DESC_NUM)
  20037. #define BITS_VIQ_DESC_NUM (BIT_MASK_VIQ_DESC_NUM << BIT_SHIFT_VIQ_DESC_NUM)
  20038. #define BIT_CLEAR_VIQ_DESC_NUM(x) ((x) & (~BITS_VIQ_DESC_NUM))
  20039. #define BIT_GET_VIQ_DESC_NUM(x) \
  20040. (((x) >> BIT_SHIFT_VIQ_DESC_NUM) & BIT_MASK_VIQ_DESC_NUM)
  20041. #define BIT_SET_VIQ_DESC_NUM(x, v) \
  20042. (BIT_CLEAR_VIQ_DESC_NUM(x) | BIT_VIQ_DESC_NUM(v))
  20043. #endif
  20044. #if (HALMAC_8814B_SUPPORT)
  20045. /* 2 REG_ACH2_ACH3_TXBD_NUM (Offset 0x0388) */
  20046. #define BIT_PCIE_ACH3_FLAG_V1 BIT(30)
  20047. #define BIT_SHIFT_ACH3_DESC_MODE_V1 28
  20048. #define BIT_MASK_ACH3_DESC_MODE_V1 0x3
  20049. #define BIT_ACH3_DESC_MODE_V1(x) \
  20050. (((x) & BIT_MASK_ACH3_DESC_MODE_V1) << BIT_SHIFT_ACH3_DESC_MODE_V1)
  20051. #define BITS_ACH3_DESC_MODE_V1 \
  20052. (BIT_MASK_ACH3_DESC_MODE_V1 << BIT_SHIFT_ACH3_DESC_MODE_V1)
  20053. #define BIT_CLEAR_ACH3_DESC_MODE_V1(x) ((x) & (~BITS_ACH3_DESC_MODE_V1))
  20054. #define BIT_GET_ACH3_DESC_MODE_V1(x) \
  20055. (((x) >> BIT_SHIFT_ACH3_DESC_MODE_V1) & BIT_MASK_ACH3_DESC_MODE_V1)
  20056. #define BIT_SET_ACH3_DESC_MODE_V1(x, v) \
  20057. (BIT_CLEAR_ACH3_DESC_MODE_V1(x) | BIT_ACH3_DESC_MODE_V1(v))
  20058. #define BIT_SHIFT_ACH3_DESC_NUM_V1 16
  20059. #define BIT_MASK_ACH3_DESC_NUM_V1 0xfff
  20060. #define BIT_ACH3_DESC_NUM_V1(x) \
  20061. (((x) & BIT_MASK_ACH3_DESC_NUM_V1) << BIT_SHIFT_ACH3_DESC_NUM_V1)
  20062. #define BITS_ACH3_DESC_NUM_V1 \
  20063. (BIT_MASK_ACH3_DESC_NUM_V1 << BIT_SHIFT_ACH3_DESC_NUM_V1)
  20064. #define BIT_CLEAR_ACH3_DESC_NUM_V1(x) ((x) & (~BITS_ACH3_DESC_NUM_V1))
  20065. #define BIT_GET_ACH3_DESC_NUM_V1(x) \
  20066. (((x) >> BIT_SHIFT_ACH3_DESC_NUM_V1) & BIT_MASK_ACH3_DESC_NUM_V1)
  20067. #define BIT_SET_ACH3_DESC_NUM_V1(x, v) \
  20068. (BIT_CLEAR_ACH3_DESC_NUM_V1(x) | BIT_ACH3_DESC_NUM_V1(v))
  20069. #endif
  20070. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  20071. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  20072. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20073. /* 2 REG_BEQ_TXBD_NUM (Offset 0x0388) */
  20074. #define BIT_PCIE_BEQ_FLAG BIT(14)
  20075. #endif
  20076. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  20077. /* 2 REG_BEQ_TXBD_NUM (Offset 0x0388) */
  20078. #define BIT_HCI_BEQ_FLAG BIT(14)
  20079. #endif
  20080. #if (HALMAC_8814B_SUPPORT)
  20081. /* 2 REG_ACH2_ACH3_TXBD_NUM (Offset 0x0388) */
  20082. #define BIT_PCIE_ACH2_FLAG BIT(14)
  20083. #endif
  20084. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20085. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20086. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20087. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20088. /* 2 REG_BEQ_TXBD_NUM (Offset 0x0388) */
  20089. #define BIT_SHIFT_BEQ_DESC_MODE 12
  20090. #define BIT_MASK_BEQ_DESC_MODE 0x3
  20091. #define BIT_BEQ_DESC_MODE(x) \
  20092. (((x) & BIT_MASK_BEQ_DESC_MODE) << BIT_SHIFT_BEQ_DESC_MODE)
  20093. #define BITS_BEQ_DESC_MODE (BIT_MASK_BEQ_DESC_MODE << BIT_SHIFT_BEQ_DESC_MODE)
  20094. #define BIT_CLEAR_BEQ_DESC_MODE(x) ((x) & (~BITS_BEQ_DESC_MODE))
  20095. #define BIT_GET_BEQ_DESC_MODE(x) \
  20096. (((x) >> BIT_SHIFT_BEQ_DESC_MODE) & BIT_MASK_BEQ_DESC_MODE)
  20097. #define BIT_SET_BEQ_DESC_MODE(x, v) \
  20098. (BIT_CLEAR_BEQ_DESC_MODE(x) | BIT_BEQ_DESC_MODE(v))
  20099. #endif
  20100. #if (HALMAC_8814B_SUPPORT)
  20101. /* 2 REG_ACH2_ACH3_TXBD_NUM (Offset 0x0388) */
  20102. #define BIT_SHIFT_ACH2_DESC_MODE 12
  20103. #define BIT_MASK_ACH2_DESC_MODE 0x3
  20104. #define BIT_ACH2_DESC_MODE(x) \
  20105. (((x) & BIT_MASK_ACH2_DESC_MODE) << BIT_SHIFT_ACH2_DESC_MODE)
  20106. #define BITS_ACH2_DESC_MODE \
  20107. (BIT_MASK_ACH2_DESC_MODE << BIT_SHIFT_ACH2_DESC_MODE)
  20108. #define BIT_CLEAR_ACH2_DESC_MODE(x) ((x) & (~BITS_ACH2_DESC_MODE))
  20109. #define BIT_GET_ACH2_DESC_MODE(x) \
  20110. (((x) >> BIT_SHIFT_ACH2_DESC_MODE) & BIT_MASK_ACH2_DESC_MODE)
  20111. #define BIT_SET_ACH2_DESC_MODE(x, v) \
  20112. (BIT_CLEAR_ACH2_DESC_MODE(x) | BIT_ACH2_DESC_MODE(v))
  20113. #endif
  20114. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20115. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20116. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20117. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20118. /* 2 REG_BEQ_TXBD_NUM (Offset 0x0388) */
  20119. #define BIT_SHIFT_BEQ_DESC_NUM 0
  20120. #define BIT_MASK_BEQ_DESC_NUM 0xfff
  20121. #define BIT_BEQ_DESC_NUM(x) \
  20122. (((x) & BIT_MASK_BEQ_DESC_NUM) << BIT_SHIFT_BEQ_DESC_NUM)
  20123. #define BITS_BEQ_DESC_NUM (BIT_MASK_BEQ_DESC_NUM << BIT_SHIFT_BEQ_DESC_NUM)
  20124. #define BIT_CLEAR_BEQ_DESC_NUM(x) ((x) & (~BITS_BEQ_DESC_NUM))
  20125. #define BIT_GET_BEQ_DESC_NUM(x) \
  20126. (((x) >> BIT_SHIFT_BEQ_DESC_NUM) & BIT_MASK_BEQ_DESC_NUM)
  20127. #define BIT_SET_BEQ_DESC_NUM(x, v) \
  20128. (BIT_CLEAR_BEQ_DESC_NUM(x) | BIT_BEQ_DESC_NUM(v))
  20129. #endif
  20130. #if (HALMAC_8814B_SUPPORT)
  20131. /* 2 REG_ACH2_ACH3_TXBD_NUM (Offset 0x0388) */
  20132. #define BIT_SHIFT_ACH2_DESC_NUM 0
  20133. #define BIT_MASK_ACH2_DESC_NUM 0xfff
  20134. #define BIT_ACH2_DESC_NUM(x) \
  20135. (((x) & BIT_MASK_ACH2_DESC_NUM) << BIT_SHIFT_ACH2_DESC_NUM)
  20136. #define BITS_ACH2_DESC_NUM (BIT_MASK_ACH2_DESC_NUM << BIT_SHIFT_ACH2_DESC_NUM)
  20137. #define BIT_CLEAR_ACH2_DESC_NUM(x) ((x) & (~BITS_ACH2_DESC_NUM))
  20138. #define BIT_GET_ACH2_DESC_NUM(x) \
  20139. (((x) >> BIT_SHIFT_ACH2_DESC_NUM) & BIT_MASK_ACH2_DESC_NUM)
  20140. #define BIT_SET_ACH2_DESC_NUM(x, v) \
  20141. (BIT_CLEAR_ACH2_DESC_NUM(x) | BIT_ACH2_DESC_NUM(v))
  20142. #endif
  20143. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  20144. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  20145. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20146. /* 2 REG_BKQ_TXBD_NUM (Offset 0x038A) */
  20147. #define BIT_PCIE_BKQ_FLAG BIT(14)
  20148. #endif
  20149. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  20150. /* 2 REG_BKQ_TXBD_NUM (Offset 0x038A) */
  20151. #define BIT_HCI_BKQ_FLAG BIT(14)
  20152. #endif
  20153. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20154. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20155. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20156. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20157. /* 2 REG_BKQ_TXBD_NUM (Offset 0x038A) */
  20158. #define BIT_SHIFT_BKQ_DESC_MODE 12
  20159. #define BIT_MASK_BKQ_DESC_MODE 0x3
  20160. #define BIT_BKQ_DESC_MODE(x) \
  20161. (((x) & BIT_MASK_BKQ_DESC_MODE) << BIT_SHIFT_BKQ_DESC_MODE)
  20162. #define BITS_BKQ_DESC_MODE (BIT_MASK_BKQ_DESC_MODE << BIT_SHIFT_BKQ_DESC_MODE)
  20163. #define BIT_CLEAR_BKQ_DESC_MODE(x) ((x) & (~BITS_BKQ_DESC_MODE))
  20164. #define BIT_GET_BKQ_DESC_MODE(x) \
  20165. (((x) >> BIT_SHIFT_BKQ_DESC_MODE) & BIT_MASK_BKQ_DESC_MODE)
  20166. #define BIT_SET_BKQ_DESC_MODE(x, v) \
  20167. (BIT_CLEAR_BKQ_DESC_MODE(x) | BIT_BKQ_DESC_MODE(v))
  20168. #define BIT_SHIFT_BKQ_DESC_NUM 0
  20169. #define BIT_MASK_BKQ_DESC_NUM 0xfff
  20170. #define BIT_BKQ_DESC_NUM(x) \
  20171. (((x) & BIT_MASK_BKQ_DESC_NUM) << BIT_SHIFT_BKQ_DESC_NUM)
  20172. #define BITS_BKQ_DESC_NUM (BIT_MASK_BKQ_DESC_NUM << BIT_SHIFT_BKQ_DESC_NUM)
  20173. #define BIT_CLEAR_BKQ_DESC_NUM(x) ((x) & (~BITS_BKQ_DESC_NUM))
  20174. #define BIT_GET_BKQ_DESC_NUM(x) \
  20175. (((x) >> BIT_SHIFT_BKQ_DESC_NUM) & BIT_MASK_BKQ_DESC_NUM)
  20176. #define BIT_SET_BKQ_DESC_NUM(x, v) \
  20177. (BIT_CLEAR_BKQ_DESC_NUM(x) | BIT_BKQ_DESC_NUM(v))
  20178. #endif
  20179. #if (HALMAC_8814B_SUPPORT)
  20180. /* 2 REG_P0HI0Q_HI1Q_TXBD_NUM (Offset 0x038C) */
  20181. #define BIT_P0HI1Q_FLAG BIT(30)
  20182. #define BIT_SHIFT_P0HI1Q_DESC_MODE 28
  20183. #define BIT_MASK_P0HI1Q_DESC_MODE 0x3
  20184. #define BIT_P0HI1Q_DESC_MODE(x) \
  20185. (((x) & BIT_MASK_P0HI1Q_DESC_MODE) << BIT_SHIFT_P0HI1Q_DESC_MODE)
  20186. #define BITS_P0HI1Q_DESC_MODE \
  20187. (BIT_MASK_P0HI1Q_DESC_MODE << BIT_SHIFT_P0HI1Q_DESC_MODE)
  20188. #define BIT_CLEAR_P0HI1Q_DESC_MODE(x) ((x) & (~BITS_P0HI1Q_DESC_MODE))
  20189. #define BIT_GET_P0HI1Q_DESC_MODE(x) \
  20190. (((x) >> BIT_SHIFT_P0HI1Q_DESC_MODE) & BIT_MASK_P0HI1Q_DESC_MODE)
  20191. #define BIT_SET_P0HI1Q_DESC_MODE(x, v) \
  20192. (BIT_CLEAR_P0HI1Q_DESC_MODE(x) | BIT_P0HI1Q_DESC_MODE(v))
  20193. #define BIT_SHIFT_P0HI1Q_DESC_NUM 16
  20194. #define BIT_MASK_P0HI1Q_DESC_NUM 0xfff
  20195. #define BIT_P0HI1Q_DESC_NUM(x) \
  20196. (((x) & BIT_MASK_P0HI1Q_DESC_NUM) << BIT_SHIFT_P0HI1Q_DESC_NUM)
  20197. #define BITS_P0HI1Q_DESC_NUM \
  20198. (BIT_MASK_P0HI1Q_DESC_NUM << BIT_SHIFT_P0HI1Q_DESC_NUM)
  20199. #define BIT_CLEAR_P0HI1Q_DESC_NUM(x) ((x) & (~BITS_P0HI1Q_DESC_NUM))
  20200. #define BIT_GET_P0HI1Q_DESC_NUM(x) \
  20201. (((x) >> BIT_SHIFT_P0HI1Q_DESC_NUM) & BIT_MASK_P0HI1Q_DESC_NUM)
  20202. #define BIT_SET_P0HI1Q_DESC_NUM(x, v) \
  20203. (BIT_CLEAR_P0HI1Q_DESC_NUM(x) | BIT_P0HI1Q_DESC_NUM(v))
  20204. #endif
  20205. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20206. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20207. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20208. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20209. /* 2 REG_HI0Q_TXBD_NUM (Offset 0x038C) */
  20210. #define BIT_HI0Q_FLAG BIT(14)
  20211. #endif
  20212. #if (HALMAC_8814B_SUPPORT)
  20213. /* 2 REG_P0HI0Q_HI1Q_TXBD_NUM (Offset 0x038C) */
  20214. #define BIT_P0HI0Q_FLAG BIT(14)
  20215. #endif
  20216. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20217. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20218. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20219. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20220. /* 2 REG_HI0Q_TXBD_NUM (Offset 0x038C) */
  20221. #define BIT_SHIFT_HI0Q_DESC_MODE 12
  20222. #define BIT_MASK_HI0Q_DESC_MODE 0x3
  20223. #define BIT_HI0Q_DESC_MODE(x) \
  20224. (((x) & BIT_MASK_HI0Q_DESC_MODE) << BIT_SHIFT_HI0Q_DESC_MODE)
  20225. #define BITS_HI0Q_DESC_MODE \
  20226. (BIT_MASK_HI0Q_DESC_MODE << BIT_SHIFT_HI0Q_DESC_MODE)
  20227. #define BIT_CLEAR_HI0Q_DESC_MODE(x) ((x) & (~BITS_HI0Q_DESC_MODE))
  20228. #define BIT_GET_HI0Q_DESC_MODE(x) \
  20229. (((x) >> BIT_SHIFT_HI0Q_DESC_MODE) & BIT_MASK_HI0Q_DESC_MODE)
  20230. #define BIT_SET_HI0Q_DESC_MODE(x, v) \
  20231. (BIT_CLEAR_HI0Q_DESC_MODE(x) | BIT_HI0Q_DESC_MODE(v))
  20232. #endif
  20233. #if (HALMAC_8814B_SUPPORT)
  20234. /* 2 REG_P0HI0Q_HI1Q_TXBD_NUM (Offset 0x038C) */
  20235. #define BIT_SHIFT_P0HI0Q_DESC_MODE 12
  20236. #define BIT_MASK_P0HI0Q_DESC_MODE 0x3
  20237. #define BIT_P0HI0Q_DESC_MODE(x) \
  20238. (((x) & BIT_MASK_P0HI0Q_DESC_MODE) << BIT_SHIFT_P0HI0Q_DESC_MODE)
  20239. #define BITS_P0HI0Q_DESC_MODE \
  20240. (BIT_MASK_P0HI0Q_DESC_MODE << BIT_SHIFT_P0HI0Q_DESC_MODE)
  20241. #define BIT_CLEAR_P0HI0Q_DESC_MODE(x) ((x) & (~BITS_P0HI0Q_DESC_MODE))
  20242. #define BIT_GET_P0HI0Q_DESC_MODE(x) \
  20243. (((x) >> BIT_SHIFT_P0HI0Q_DESC_MODE) & BIT_MASK_P0HI0Q_DESC_MODE)
  20244. #define BIT_SET_P0HI0Q_DESC_MODE(x, v) \
  20245. (BIT_CLEAR_P0HI0Q_DESC_MODE(x) | BIT_P0HI0Q_DESC_MODE(v))
  20246. #endif
  20247. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20248. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20249. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20250. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20251. /* 2 REG_HI0Q_TXBD_NUM (Offset 0x038C) */
  20252. #define BIT_SHIFT_HI0Q_DESC_NUM 0
  20253. #define BIT_MASK_HI0Q_DESC_NUM 0xfff
  20254. #define BIT_HI0Q_DESC_NUM(x) \
  20255. (((x) & BIT_MASK_HI0Q_DESC_NUM) << BIT_SHIFT_HI0Q_DESC_NUM)
  20256. #define BITS_HI0Q_DESC_NUM (BIT_MASK_HI0Q_DESC_NUM << BIT_SHIFT_HI0Q_DESC_NUM)
  20257. #define BIT_CLEAR_HI0Q_DESC_NUM(x) ((x) & (~BITS_HI0Q_DESC_NUM))
  20258. #define BIT_GET_HI0Q_DESC_NUM(x) \
  20259. (((x) >> BIT_SHIFT_HI0Q_DESC_NUM) & BIT_MASK_HI0Q_DESC_NUM)
  20260. #define BIT_SET_HI0Q_DESC_NUM(x, v) \
  20261. (BIT_CLEAR_HI0Q_DESC_NUM(x) | BIT_HI0Q_DESC_NUM(v))
  20262. #endif
  20263. #if (HALMAC_8814B_SUPPORT)
  20264. /* 2 REG_P0HI0Q_HI1Q_TXBD_NUM (Offset 0x038C) */
  20265. #define BIT_SHIFT_P0HI0Q_DESC_NUM 0
  20266. #define BIT_MASK_P0HI0Q_DESC_NUM 0xfff
  20267. #define BIT_P0HI0Q_DESC_NUM(x) \
  20268. (((x) & BIT_MASK_P0HI0Q_DESC_NUM) << BIT_SHIFT_P0HI0Q_DESC_NUM)
  20269. #define BITS_P0HI0Q_DESC_NUM \
  20270. (BIT_MASK_P0HI0Q_DESC_NUM << BIT_SHIFT_P0HI0Q_DESC_NUM)
  20271. #define BIT_CLEAR_P0HI0Q_DESC_NUM(x) ((x) & (~BITS_P0HI0Q_DESC_NUM))
  20272. #define BIT_GET_P0HI0Q_DESC_NUM(x) \
  20273. (((x) >> BIT_SHIFT_P0HI0Q_DESC_NUM) & BIT_MASK_P0HI0Q_DESC_NUM)
  20274. #define BIT_SET_P0HI0Q_DESC_NUM(x, v) \
  20275. (BIT_CLEAR_P0HI0Q_DESC_NUM(x) | BIT_P0HI0Q_DESC_NUM(v))
  20276. #endif
  20277. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20278. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20279. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20280. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20281. /* 2 REG_HI1Q_TXBD_NUM (Offset 0x038E) */
  20282. #define BIT_HI1Q_FLAG BIT(14)
  20283. #define BIT_SHIFT_HI1Q_DESC_MODE 12
  20284. #define BIT_MASK_HI1Q_DESC_MODE 0x3
  20285. #define BIT_HI1Q_DESC_MODE(x) \
  20286. (((x) & BIT_MASK_HI1Q_DESC_MODE) << BIT_SHIFT_HI1Q_DESC_MODE)
  20287. #define BITS_HI1Q_DESC_MODE \
  20288. (BIT_MASK_HI1Q_DESC_MODE << BIT_SHIFT_HI1Q_DESC_MODE)
  20289. #define BIT_CLEAR_HI1Q_DESC_MODE(x) ((x) & (~BITS_HI1Q_DESC_MODE))
  20290. #define BIT_GET_HI1Q_DESC_MODE(x) \
  20291. (((x) >> BIT_SHIFT_HI1Q_DESC_MODE) & BIT_MASK_HI1Q_DESC_MODE)
  20292. #define BIT_SET_HI1Q_DESC_MODE(x, v) \
  20293. (BIT_CLEAR_HI1Q_DESC_MODE(x) | BIT_HI1Q_DESC_MODE(v))
  20294. #define BIT_SHIFT_HI1Q_DESC_NUM 0
  20295. #define BIT_MASK_HI1Q_DESC_NUM 0xfff
  20296. #define BIT_HI1Q_DESC_NUM(x) \
  20297. (((x) & BIT_MASK_HI1Q_DESC_NUM) << BIT_SHIFT_HI1Q_DESC_NUM)
  20298. #define BITS_HI1Q_DESC_NUM (BIT_MASK_HI1Q_DESC_NUM << BIT_SHIFT_HI1Q_DESC_NUM)
  20299. #define BIT_CLEAR_HI1Q_DESC_NUM(x) ((x) & (~BITS_HI1Q_DESC_NUM))
  20300. #define BIT_GET_HI1Q_DESC_NUM(x) \
  20301. (((x) >> BIT_SHIFT_HI1Q_DESC_NUM) & BIT_MASK_HI1Q_DESC_NUM)
  20302. #define BIT_SET_HI1Q_DESC_NUM(x, v) \
  20303. (BIT_CLEAR_HI1Q_DESC_NUM(x) | BIT_HI1Q_DESC_NUM(v))
  20304. #endif
  20305. #if (HALMAC_8814B_SUPPORT)
  20306. /* 2 REG_P0HI2Q_HI3Q_TXBD_NUM (Offset 0x0390) */
  20307. #define BIT_P0HI3Q_FLAG BIT(30)
  20308. #define BIT_SHIFT_P0HI3Q_DESC_MODE 28
  20309. #define BIT_MASK_P0HI3Q_DESC_MODE 0x3
  20310. #define BIT_P0HI3Q_DESC_MODE(x) \
  20311. (((x) & BIT_MASK_P0HI3Q_DESC_MODE) << BIT_SHIFT_P0HI3Q_DESC_MODE)
  20312. #define BITS_P0HI3Q_DESC_MODE \
  20313. (BIT_MASK_P0HI3Q_DESC_MODE << BIT_SHIFT_P0HI3Q_DESC_MODE)
  20314. #define BIT_CLEAR_P0HI3Q_DESC_MODE(x) ((x) & (~BITS_P0HI3Q_DESC_MODE))
  20315. #define BIT_GET_P0HI3Q_DESC_MODE(x) \
  20316. (((x) >> BIT_SHIFT_P0HI3Q_DESC_MODE) & BIT_MASK_P0HI3Q_DESC_MODE)
  20317. #define BIT_SET_P0HI3Q_DESC_MODE(x, v) \
  20318. (BIT_CLEAR_P0HI3Q_DESC_MODE(x) | BIT_P0HI3Q_DESC_MODE(v))
  20319. #define BIT_SHIFT_P0HI3Q_DESC_NUM 16
  20320. #define BIT_MASK_P0HI3Q_DESC_NUM 0xfff
  20321. #define BIT_P0HI3Q_DESC_NUM(x) \
  20322. (((x) & BIT_MASK_P0HI3Q_DESC_NUM) << BIT_SHIFT_P0HI3Q_DESC_NUM)
  20323. #define BITS_P0HI3Q_DESC_NUM \
  20324. (BIT_MASK_P0HI3Q_DESC_NUM << BIT_SHIFT_P0HI3Q_DESC_NUM)
  20325. #define BIT_CLEAR_P0HI3Q_DESC_NUM(x) ((x) & (~BITS_P0HI3Q_DESC_NUM))
  20326. #define BIT_GET_P0HI3Q_DESC_NUM(x) \
  20327. (((x) >> BIT_SHIFT_P0HI3Q_DESC_NUM) & BIT_MASK_P0HI3Q_DESC_NUM)
  20328. #define BIT_SET_P0HI3Q_DESC_NUM(x, v) \
  20329. (BIT_CLEAR_P0HI3Q_DESC_NUM(x) | BIT_P0HI3Q_DESC_NUM(v))
  20330. #endif
  20331. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20332. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20333. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20334. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20335. /* 2 REG_HI2Q_TXBD_NUM (Offset 0x0390) */
  20336. #define BIT_HI2Q_FLAG BIT(14)
  20337. #endif
  20338. #if (HALMAC_8814B_SUPPORT)
  20339. /* 2 REG_P0HI2Q_HI3Q_TXBD_NUM (Offset 0x0390) */
  20340. #define BIT_P0HI2Q_FLAG BIT(14)
  20341. #endif
  20342. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20343. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20344. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20345. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20346. /* 2 REG_HI2Q_TXBD_NUM (Offset 0x0390) */
  20347. #define BIT_SHIFT_HI2Q_DESC_MODE 12
  20348. #define BIT_MASK_HI2Q_DESC_MODE 0x3
  20349. #define BIT_HI2Q_DESC_MODE(x) \
  20350. (((x) & BIT_MASK_HI2Q_DESC_MODE) << BIT_SHIFT_HI2Q_DESC_MODE)
  20351. #define BITS_HI2Q_DESC_MODE \
  20352. (BIT_MASK_HI2Q_DESC_MODE << BIT_SHIFT_HI2Q_DESC_MODE)
  20353. #define BIT_CLEAR_HI2Q_DESC_MODE(x) ((x) & (~BITS_HI2Q_DESC_MODE))
  20354. #define BIT_GET_HI2Q_DESC_MODE(x) \
  20355. (((x) >> BIT_SHIFT_HI2Q_DESC_MODE) & BIT_MASK_HI2Q_DESC_MODE)
  20356. #define BIT_SET_HI2Q_DESC_MODE(x, v) \
  20357. (BIT_CLEAR_HI2Q_DESC_MODE(x) | BIT_HI2Q_DESC_MODE(v))
  20358. #endif
  20359. #if (HALMAC_8814B_SUPPORT)
  20360. /* 2 REG_P0HI2Q_HI3Q_TXBD_NUM (Offset 0x0390) */
  20361. #define BIT_SHIFT_P0HI2Q_DESC_MODE 12
  20362. #define BIT_MASK_P0HI2Q_DESC_MODE 0x3
  20363. #define BIT_P0HI2Q_DESC_MODE(x) \
  20364. (((x) & BIT_MASK_P0HI2Q_DESC_MODE) << BIT_SHIFT_P0HI2Q_DESC_MODE)
  20365. #define BITS_P0HI2Q_DESC_MODE \
  20366. (BIT_MASK_P0HI2Q_DESC_MODE << BIT_SHIFT_P0HI2Q_DESC_MODE)
  20367. #define BIT_CLEAR_P0HI2Q_DESC_MODE(x) ((x) & (~BITS_P0HI2Q_DESC_MODE))
  20368. #define BIT_GET_P0HI2Q_DESC_MODE(x) \
  20369. (((x) >> BIT_SHIFT_P0HI2Q_DESC_MODE) & BIT_MASK_P0HI2Q_DESC_MODE)
  20370. #define BIT_SET_P0HI2Q_DESC_MODE(x, v) \
  20371. (BIT_CLEAR_P0HI2Q_DESC_MODE(x) | BIT_P0HI2Q_DESC_MODE(v))
  20372. #endif
  20373. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20374. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20375. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20376. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20377. /* 2 REG_HI2Q_TXBD_NUM (Offset 0x0390) */
  20378. #define BIT_SHIFT_HI2Q_DESC_NUM 0
  20379. #define BIT_MASK_HI2Q_DESC_NUM 0xfff
  20380. #define BIT_HI2Q_DESC_NUM(x) \
  20381. (((x) & BIT_MASK_HI2Q_DESC_NUM) << BIT_SHIFT_HI2Q_DESC_NUM)
  20382. #define BITS_HI2Q_DESC_NUM (BIT_MASK_HI2Q_DESC_NUM << BIT_SHIFT_HI2Q_DESC_NUM)
  20383. #define BIT_CLEAR_HI2Q_DESC_NUM(x) ((x) & (~BITS_HI2Q_DESC_NUM))
  20384. #define BIT_GET_HI2Q_DESC_NUM(x) \
  20385. (((x) >> BIT_SHIFT_HI2Q_DESC_NUM) & BIT_MASK_HI2Q_DESC_NUM)
  20386. #define BIT_SET_HI2Q_DESC_NUM(x, v) \
  20387. (BIT_CLEAR_HI2Q_DESC_NUM(x) | BIT_HI2Q_DESC_NUM(v))
  20388. #endif
  20389. #if (HALMAC_8814B_SUPPORT)
  20390. /* 2 REG_P0HI2Q_HI3Q_TXBD_NUM (Offset 0x0390) */
  20391. #define BIT_SHIFT_P0HI2Q_DESC_NUM 0
  20392. #define BIT_MASK_P0HI2Q_DESC_NUM 0xfff
  20393. #define BIT_P0HI2Q_DESC_NUM(x) \
  20394. (((x) & BIT_MASK_P0HI2Q_DESC_NUM) << BIT_SHIFT_P0HI2Q_DESC_NUM)
  20395. #define BITS_P0HI2Q_DESC_NUM \
  20396. (BIT_MASK_P0HI2Q_DESC_NUM << BIT_SHIFT_P0HI2Q_DESC_NUM)
  20397. #define BIT_CLEAR_P0HI2Q_DESC_NUM(x) ((x) & (~BITS_P0HI2Q_DESC_NUM))
  20398. #define BIT_GET_P0HI2Q_DESC_NUM(x) \
  20399. (((x) >> BIT_SHIFT_P0HI2Q_DESC_NUM) & BIT_MASK_P0HI2Q_DESC_NUM)
  20400. #define BIT_SET_P0HI2Q_DESC_NUM(x, v) \
  20401. (BIT_CLEAR_P0HI2Q_DESC_NUM(x) | BIT_P0HI2Q_DESC_NUM(v))
  20402. #endif
  20403. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20404. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20405. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20406. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20407. /* 2 REG_HI3Q_TXBD_NUM (Offset 0x0392) */
  20408. #define BIT_HI3Q_FLAG BIT(14)
  20409. #define BIT_SHIFT_HI3Q_DESC_MODE 12
  20410. #define BIT_MASK_HI3Q_DESC_MODE 0x3
  20411. #define BIT_HI3Q_DESC_MODE(x) \
  20412. (((x) & BIT_MASK_HI3Q_DESC_MODE) << BIT_SHIFT_HI3Q_DESC_MODE)
  20413. #define BITS_HI3Q_DESC_MODE \
  20414. (BIT_MASK_HI3Q_DESC_MODE << BIT_SHIFT_HI3Q_DESC_MODE)
  20415. #define BIT_CLEAR_HI3Q_DESC_MODE(x) ((x) & (~BITS_HI3Q_DESC_MODE))
  20416. #define BIT_GET_HI3Q_DESC_MODE(x) \
  20417. (((x) >> BIT_SHIFT_HI3Q_DESC_MODE) & BIT_MASK_HI3Q_DESC_MODE)
  20418. #define BIT_SET_HI3Q_DESC_MODE(x, v) \
  20419. (BIT_CLEAR_HI3Q_DESC_MODE(x) | BIT_HI3Q_DESC_MODE(v))
  20420. #define BIT_SHIFT_HI3Q_DESC_NUM 0
  20421. #define BIT_MASK_HI3Q_DESC_NUM 0xfff
  20422. #define BIT_HI3Q_DESC_NUM(x) \
  20423. (((x) & BIT_MASK_HI3Q_DESC_NUM) << BIT_SHIFT_HI3Q_DESC_NUM)
  20424. #define BITS_HI3Q_DESC_NUM (BIT_MASK_HI3Q_DESC_NUM << BIT_SHIFT_HI3Q_DESC_NUM)
  20425. #define BIT_CLEAR_HI3Q_DESC_NUM(x) ((x) & (~BITS_HI3Q_DESC_NUM))
  20426. #define BIT_GET_HI3Q_DESC_NUM(x) \
  20427. (((x) >> BIT_SHIFT_HI3Q_DESC_NUM) & BIT_MASK_HI3Q_DESC_NUM)
  20428. #define BIT_SET_HI3Q_DESC_NUM(x, v) \
  20429. (BIT_CLEAR_HI3Q_DESC_NUM(x) | BIT_HI3Q_DESC_NUM(v))
  20430. #endif
  20431. #if (HALMAC_8814B_SUPPORT)
  20432. /* 2 REG_P0HI4Q_HI5Q_TXBD_NUM (Offset 0x0394) */
  20433. #define BIT_P0HI5Q_FLAG BIT(30)
  20434. #define BIT_SHIFT_P0HI5Q_DESC_MODE 28
  20435. #define BIT_MASK_P0HI5Q_DESC_MODE 0x3
  20436. #define BIT_P0HI5Q_DESC_MODE(x) \
  20437. (((x) & BIT_MASK_P0HI5Q_DESC_MODE) << BIT_SHIFT_P0HI5Q_DESC_MODE)
  20438. #define BITS_P0HI5Q_DESC_MODE \
  20439. (BIT_MASK_P0HI5Q_DESC_MODE << BIT_SHIFT_P0HI5Q_DESC_MODE)
  20440. #define BIT_CLEAR_P0HI5Q_DESC_MODE(x) ((x) & (~BITS_P0HI5Q_DESC_MODE))
  20441. #define BIT_GET_P0HI5Q_DESC_MODE(x) \
  20442. (((x) >> BIT_SHIFT_P0HI5Q_DESC_MODE) & BIT_MASK_P0HI5Q_DESC_MODE)
  20443. #define BIT_SET_P0HI5Q_DESC_MODE(x, v) \
  20444. (BIT_CLEAR_P0HI5Q_DESC_MODE(x) | BIT_P0HI5Q_DESC_MODE(v))
  20445. #define BIT_SHIFT_P0HI5Q_DESC_NUM 16
  20446. #define BIT_MASK_P0HI5Q_DESC_NUM 0xfff
  20447. #define BIT_P0HI5Q_DESC_NUM(x) \
  20448. (((x) & BIT_MASK_P0HI5Q_DESC_NUM) << BIT_SHIFT_P0HI5Q_DESC_NUM)
  20449. #define BITS_P0HI5Q_DESC_NUM \
  20450. (BIT_MASK_P0HI5Q_DESC_NUM << BIT_SHIFT_P0HI5Q_DESC_NUM)
  20451. #define BIT_CLEAR_P0HI5Q_DESC_NUM(x) ((x) & (~BITS_P0HI5Q_DESC_NUM))
  20452. #define BIT_GET_P0HI5Q_DESC_NUM(x) \
  20453. (((x) >> BIT_SHIFT_P0HI5Q_DESC_NUM) & BIT_MASK_P0HI5Q_DESC_NUM)
  20454. #define BIT_SET_P0HI5Q_DESC_NUM(x, v) \
  20455. (BIT_CLEAR_P0HI5Q_DESC_NUM(x) | BIT_P0HI5Q_DESC_NUM(v))
  20456. #endif
  20457. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20458. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20459. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20460. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20461. /* 2 REG_HI4Q_TXBD_NUM (Offset 0x0394) */
  20462. #define BIT_HI4Q_FLAG BIT(14)
  20463. #endif
  20464. #if (HALMAC_8814B_SUPPORT)
  20465. /* 2 REG_P0HI4Q_HI5Q_TXBD_NUM (Offset 0x0394) */
  20466. #define BIT_P0HI4Q_FLAG BIT(14)
  20467. #endif
  20468. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20469. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20470. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20471. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20472. /* 2 REG_HI4Q_TXBD_NUM (Offset 0x0394) */
  20473. #define BIT_SHIFT_HI4Q_DESC_MODE 12
  20474. #define BIT_MASK_HI4Q_DESC_MODE 0x3
  20475. #define BIT_HI4Q_DESC_MODE(x) \
  20476. (((x) & BIT_MASK_HI4Q_DESC_MODE) << BIT_SHIFT_HI4Q_DESC_MODE)
  20477. #define BITS_HI4Q_DESC_MODE \
  20478. (BIT_MASK_HI4Q_DESC_MODE << BIT_SHIFT_HI4Q_DESC_MODE)
  20479. #define BIT_CLEAR_HI4Q_DESC_MODE(x) ((x) & (~BITS_HI4Q_DESC_MODE))
  20480. #define BIT_GET_HI4Q_DESC_MODE(x) \
  20481. (((x) >> BIT_SHIFT_HI4Q_DESC_MODE) & BIT_MASK_HI4Q_DESC_MODE)
  20482. #define BIT_SET_HI4Q_DESC_MODE(x, v) \
  20483. (BIT_CLEAR_HI4Q_DESC_MODE(x) | BIT_HI4Q_DESC_MODE(v))
  20484. #endif
  20485. #if (HALMAC_8814B_SUPPORT)
  20486. /* 2 REG_P0HI4Q_HI5Q_TXBD_NUM (Offset 0x0394) */
  20487. #define BIT_SHIFT_P0HI4Q_DESC_MODE 12
  20488. #define BIT_MASK_P0HI4Q_DESC_MODE 0x3
  20489. #define BIT_P0HI4Q_DESC_MODE(x) \
  20490. (((x) & BIT_MASK_P0HI4Q_DESC_MODE) << BIT_SHIFT_P0HI4Q_DESC_MODE)
  20491. #define BITS_P0HI4Q_DESC_MODE \
  20492. (BIT_MASK_P0HI4Q_DESC_MODE << BIT_SHIFT_P0HI4Q_DESC_MODE)
  20493. #define BIT_CLEAR_P0HI4Q_DESC_MODE(x) ((x) & (~BITS_P0HI4Q_DESC_MODE))
  20494. #define BIT_GET_P0HI4Q_DESC_MODE(x) \
  20495. (((x) >> BIT_SHIFT_P0HI4Q_DESC_MODE) & BIT_MASK_P0HI4Q_DESC_MODE)
  20496. #define BIT_SET_P0HI4Q_DESC_MODE(x, v) \
  20497. (BIT_CLEAR_P0HI4Q_DESC_MODE(x) | BIT_P0HI4Q_DESC_MODE(v))
  20498. #endif
  20499. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20500. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20501. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20502. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20503. /* 2 REG_HI4Q_TXBD_NUM (Offset 0x0394) */
  20504. #define BIT_SHIFT_HI4Q_DESC_NUM 0
  20505. #define BIT_MASK_HI4Q_DESC_NUM 0xfff
  20506. #define BIT_HI4Q_DESC_NUM(x) \
  20507. (((x) & BIT_MASK_HI4Q_DESC_NUM) << BIT_SHIFT_HI4Q_DESC_NUM)
  20508. #define BITS_HI4Q_DESC_NUM (BIT_MASK_HI4Q_DESC_NUM << BIT_SHIFT_HI4Q_DESC_NUM)
  20509. #define BIT_CLEAR_HI4Q_DESC_NUM(x) ((x) & (~BITS_HI4Q_DESC_NUM))
  20510. #define BIT_GET_HI4Q_DESC_NUM(x) \
  20511. (((x) >> BIT_SHIFT_HI4Q_DESC_NUM) & BIT_MASK_HI4Q_DESC_NUM)
  20512. #define BIT_SET_HI4Q_DESC_NUM(x, v) \
  20513. (BIT_CLEAR_HI4Q_DESC_NUM(x) | BIT_HI4Q_DESC_NUM(v))
  20514. #endif
  20515. #if (HALMAC_8814B_SUPPORT)
  20516. /* 2 REG_P0HI4Q_HI5Q_TXBD_NUM (Offset 0x0394) */
  20517. #define BIT_SHIFT_P0HI4Q_DESC_NUM 0
  20518. #define BIT_MASK_P0HI4Q_DESC_NUM 0xfff
  20519. #define BIT_P0HI4Q_DESC_NUM(x) \
  20520. (((x) & BIT_MASK_P0HI4Q_DESC_NUM) << BIT_SHIFT_P0HI4Q_DESC_NUM)
  20521. #define BITS_P0HI4Q_DESC_NUM \
  20522. (BIT_MASK_P0HI4Q_DESC_NUM << BIT_SHIFT_P0HI4Q_DESC_NUM)
  20523. #define BIT_CLEAR_P0HI4Q_DESC_NUM(x) ((x) & (~BITS_P0HI4Q_DESC_NUM))
  20524. #define BIT_GET_P0HI4Q_DESC_NUM(x) \
  20525. (((x) >> BIT_SHIFT_P0HI4Q_DESC_NUM) & BIT_MASK_P0HI4Q_DESC_NUM)
  20526. #define BIT_SET_P0HI4Q_DESC_NUM(x, v) \
  20527. (BIT_CLEAR_P0HI4Q_DESC_NUM(x) | BIT_P0HI4Q_DESC_NUM(v))
  20528. #endif
  20529. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20530. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20531. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20532. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20533. /* 2 REG_HI5Q_TXBD_NUM (Offset 0x0396) */
  20534. #define BIT_HI5Q_FLAG BIT(14)
  20535. #define BIT_SHIFT_HI5Q_DESC_MODE 12
  20536. #define BIT_MASK_HI5Q_DESC_MODE 0x3
  20537. #define BIT_HI5Q_DESC_MODE(x) \
  20538. (((x) & BIT_MASK_HI5Q_DESC_MODE) << BIT_SHIFT_HI5Q_DESC_MODE)
  20539. #define BITS_HI5Q_DESC_MODE \
  20540. (BIT_MASK_HI5Q_DESC_MODE << BIT_SHIFT_HI5Q_DESC_MODE)
  20541. #define BIT_CLEAR_HI5Q_DESC_MODE(x) ((x) & (~BITS_HI5Q_DESC_MODE))
  20542. #define BIT_GET_HI5Q_DESC_MODE(x) \
  20543. (((x) >> BIT_SHIFT_HI5Q_DESC_MODE) & BIT_MASK_HI5Q_DESC_MODE)
  20544. #define BIT_SET_HI5Q_DESC_MODE(x, v) \
  20545. (BIT_CLEAR_HI5Q_DESC_MODE(x) | BIT_HI5Q_DESC_MODE(v))
  20546. #define BIT_SHIFT_HI5Q_DESC_NUM 0
  20547. #define BIT_MASK_HI5Q_DESC_NUM 0xfff
  20548. #define BIT_HI5Q_DESC_NUM(x) \
  20549. (((x) & BIT_MASK_HI5Q_DESC_NUM) << BIT_SHIFT_HI5Q_DESC_NUM)
  20550. #define BITS_HI5Q_DESC_NUM (BIT_MASK_HI5Q_DESC_NUM << BIT_SHIFT_HI5Q_DESC_NUM)
  20551. #define BIT_CLEAR_HI5Q_DESC_NUM(x) ((x) & (~BITS_HI5Q_DESC_NUM))
  20552. #define BIT_GET_HI5Q_DESC_NUM(x) \
  20553. (((x) >> BIT_SHIFT_HI5Q_DESC_NUM) & BIT_MASK_HI5Q_DESC_NUM)
  20554. #define BIT_SET_HI5Q_DESC_NUM(x, v) \
  20555. (BIT_CLEAR_HI5Q_DESC_NUM(x) | BIT_HI5Q_DESC_NUM(v))
  20556. #endif
  20557. #if (HALMAC_8814B_SUPPORT)
  20558. /* 2 REG_P0HI6Q_HI7Q_TXBD_NUM (Offset 0x0398) */
  20559. #define BIT_P0HI7Q_FLAG BIT(30)
  20560. #define BIT_CLR_FWCMDQ_HW_IDX BIT(30)
  20561. #define BIT_CLR_P0HI7Q_HW_IDX BIT(29)
  20562. #define BIT_SHIFT_P0HI7Q_DESC_MODE 28
  20563. #define BIT_MASK_P0HI7Q_DESC_MODE 0x3
  20564. #define BIT_P0HI7Q_DESC_MODE(x) \
  20565. (((x) & BIT_MASK_P0HI7Q_DESC_MODE) << BIT_SHIFT_P0HI7Q_DESC_MODE)
  20566. #define BITS_P0HI7Q_DESC_MODE \
  20567. (BIT_MASK_P0HI7Q_DESC_MODE << BIT_SHIFT_P0HI7Q_DESC_MODE)
  20568. #define BIT_CLEAR_P0HI7Q_DESC_MODE(x) ((x) & (~BITS_P0HI7Q_DESC_MODE))
  20569. #define BIT_GET_P0HI7Q_DESC_MODE(x) \
  20570. (((x) >> BIT_SHIFT_P0HI7Q_DESC_MODE) & BIT_MASK_P0HI7Q_DESC_MODE)
  20571. #define BIT_SET_P0HI7Q_DESC_MODE(x, v) \
  20572. (BIT_CLEAR_P0HI7Q_DESC_MODE(x) | BIT_P0HI7Q_DESC_MODE(v))
  20573. #define BIT_CLR_P0HI6Q_HW_IDX BIT(28)
  20574. #define BIT_CLR_P0HI5Q_HW_IDX BIT(27)
  20575. #define BIT_CLR_P0HI4Q_HW_IDX BIT(26)
  20576. #define BIT_CLR_P0HI3Q_HW_IDX BIT(25)
  20577. #define BIT_CLR_P0HI2Q_HW_IDX BIT(24)
  20578. #define BIT_CLR_P0HI1Q_HW_IDX BIT(23)
  20579. #define BIT_CLR_P0HI0Q_HW_IDX BIT(22)
  20580. #define BIT_CLR_ACH3_HW_IDX BIT(21)
  20581. #define BIT_CLR_ACH2_HW_IDX BIT(20)
  20582. #define BIT_CLR_ACH1_HW_IDX BIT(19)
  20583. #define BIT_CLR_ACH0_HW_IDX BIT(18)
  20584. #define BIT_CLR_P0MGQ_HW_IDX BIT(17)
  20585. #define BIT_SHIFT_P0HI7Q_DESC_NUM 16
  20586. #define BIT_MASK_P0HI7Q_DESC_NUM 0xfff
  20587. #define BIT_P0HI7Q_DESC_NUM(x) \
  20588. (((x) & BIT_MASK_P0HI7Q_DESC_NUM) << BIT_SHIFT_P0HI7Q_DESC_NUM)
  20589. #define BITS_P0HI7Q_DESC_NUM \
  20590. (BIT_MASK_P0HI7Q_DESC_NUM << BIT_SHIFT_P0HI7Q_DESC_NUM)
  20591. #define BIT_CLEAR_P0HI7Q_DESC_NUM(x) ((x) & (~BITS_P0HI7Q_DESC_NUM))
  20592. #define BIT_GET_P0HI7Q_DESC_NUM(x) \
  20593. (((x) >> BIT_SHIFT_P0HI7Q_DESC_NUM) & BIT_MASK_P0HI7Q_DESC_NUM)
  20594. #define BIT_SET_P0HI7Q_DESC_NUM(x, v) \
  20595. (BIT_CLEAR_P0HI7Q_DESC_NUM(x) | BIT_P0HI7Q_DESC_NUM(v))
  20596. #define BIT_CLR_P0RXQ_HW_IDX BIT(16)
  20597. #endif
  20598. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20599. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20600. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20601. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20602. /* 2 REG_HI6Q_TXBD_NUM (Offset 0x0398) */
  20603. #define BIT_HI6Q_FLAG BIT(14)
  20604. #endif
  20605. #if (HALMAC_8814B_SUPPORT)
  20606. /* 2 REG_P0HI6Q_HI7Q_TXBD_NUM (Offset 0x0398) */
  20607. #define BIT_P0HI6Q_FLAG BIT(14)
  20608. #define BIT_CLR_PFWCMDQ_HOST_IDX BIT(14)
  20609. #define BIT_CLR_P0HI7Q_HOST_IDX BIT(13)
  20610. #endif
  20611. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20612. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20613. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20614. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20615. /* 2 REG_HI6Q_TXBD_NUM (Offset 0x0398) */
  20616. #define BIT_SHIFT_HI6Q_DESC_MODE 12
  20617. #define BIT_MASK_HI6Q_DESC_MODE 0x3
  20618. #define BIT_HI6Q_DESC_MODE(x) \
  20619. (((x) & BIT_MASK_HI6Q_DESC_MODE) << BIT_SHIFT_HI6Q_DESC_MODE)
  20620. #define BITS_HI6Q_DESC_MODE \
  20621. (BIT_MASK_HI6Q_DESC_MODE << BIT_SHIFT_HI6Q_DESC_MODE)
  20622. #define BIT_CLEAR_HI6Q_DESC_MODE(x) ((x) & (~BITS_HI6Q_DESC_MODE))
  20623. #define BIT_GET_HI6Q_DESC_MODE(x) \
  20624. (((x) >> BIT_SHIFT_HI6Q_DESC_MODE) & BIT_MASK_HI6Q_DESC_MODE)
  20625. #define BIT_SET_HI6Q_DESC_MODE(x, v) \
  20626. (BIT_CLEAR_HI6Q_DESC_MODE(x) | BIT_HI6Q_DESC_MODE(v))
  20627. #endif
  20628. #if (HALMAC_8814B_SUPPORT)
  20629. /* 2 REG_P0HI6Q_HI7Q_TXBD_NUM (Offset 0x0398) */
  20630. #define BIT_SHIFT_P0HI6Q_DESC_MODE 12
  20631. #define BIT_MASK_P0HI6Q_DESC_MODE 0x3
  20632. #define BIT_P0HI6Q_DESC_MODE(x) \
  20633. (((x) & BIT_MASK_P0HI6Q_DESC_MODE) << BIT_SHIFT_P0HI6Q_DESC_MODE)
  20634. #define BITS_P0HI6Q_DESC_MODE \
  20635. (BIT_MASK_P0HI6Q_DESC_MODE << BIT_SHIFT_P0HI6Q_DESC_MODE)
  20636. #define BIT_CLEAR_P0HI6Q_DESC_MODE(x) ((x) & (~BITS_P0HI6Q_DESC_MODE))
  20637. #define BIT_GET_P0HI6Q_DESC_MODE(x) \
  20638. (((x) >> BIT_SHIFT_P0HI6Q_DESC_MODE) & BIT_MASK_P0HI6Q_DESC_MODE)
  20639. #define BIT_SET_P0HI6Q_DESC_MODE(x, v) \
  20640. (BIT_CLEAR_P0HI6Q_DESC_MODE(x) | BIT_P0HI6Q_DESC_MODE(v))
  20641. #define BIT_CLR_P0HI6Q_HOST_IDX BIT(12)
  20642. #define BIT_CLR_P0HI5Q_HOST_IDX BIT(11)
  20643. #define BIT_CLR_P0HI4Q_HOST_IDX BIT(10)
  20644. #define BIT_CLR_P0HI3Q_HOST_IDX BIT(9)
  20645. #define BIT_CLR_P0HI2Q_HOST_IDX BIT(8)
  20646. #define BIT_CLR_P0HI1Q_HOST_IDX BIT(7)
  20647. #define BIT_CLR_P0HI0Q_HOST_IDX BIT(6)
  20648. #define BIT_CLR_ACH3_HOST_IDX BIT(5)
  20649. #define BIT_CLR_ACH2_HOST_IDX BIT(4)
  20650. #define BIT_CLR_ACH1_HOST_IDX BIT(3)
  20651. #define BIT_CLR_ACH0_HOST_IDX BIT(2)
  20652. #define BIT_CLR_P0MGQ_HOST_IDX BIT(1)
  20653. #endif
  20654. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20655. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20656. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20657. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20658. /* 2 REG_HI6Q_TXBD_NUM (Offset 0x0398) */
  20659. #define BIT_SHIFT_HI6Q_DESC_NUM 0
  20660. #define BIT_MASK_HI6Q_DESC_NUM 0xfff
  20661. #define BIT_HI6Q_DESC_NUM(x) \
  20662. (((x) & BIT_MASK_HI6Q_DESC_NUM) << BIT_SHIFT_HI6Q_DESC_NUM)
  20663. #define BITS_HI6Q_DESC_NUM (BIT_MASK_HI6Q_DESC_NUM << BIT_SHIFT_HI6Q_DESC_NUM)
  20664. #define BIT_CLEAR_HI6Q_DESC_NUM(x) ((x) & (~BITS_HI6Q_DESC_NUM))
  20665. #define BIT_GET_HI6Q_DESC_NUM(x) \
  20666. (((x) >> BIT_SHIFT_HI6Q_DESC_NUM) & BIT_MASK_HI6Q_DESC_NUM)
  20667. #define BIT_SET_HI6Q_DESC_NUM(x, v) \
  20668. (BIT_CLEAR_HI6Q_DESC_NUM(x) | BIT_HI6Q_DESC_NUM(v))
  20669. #endif
  20670. #if (HALMAC_8814B_SUPPORT)
  20671. /* 2 REG_P0HI6Q_HI7Q_TXBD_NUM (Offset 0x0398) */
  20672. #define BIT_SHIFT_P0HI6Q_DESC_NUM 0
  20673. #define BIT_MASK_P0HI6Q_DESC_NUM 0xfff
  20674. #define BIT_P0HI6Q_DESC_NUM(x) \
  20675. (((x) & BIT_MASK_P0HI6Q_DESC_NUM) << BIT_SHIFT_P0HI6Q_DESC_NUM)
  20676. #define BITS_P0HI6Q_DESC_NUM \
  20677. (BIT_MASK_P0HI6Q_DESC_NUM << BIT_SHIFT_P0HI6Q_DESC_NUM)
  20678. #define BIT_CLEAR_P0HI6Q_DESC_NUM(x) ((x) & (~BITS_P0HI6Q_DESC_NUM))
  20679. #define BIT_GET_P0HI6Q_DESC_NUM(x) \
  20680. (((x) >> BIT_SHIFT_P0HI6Q_DESC_NUM) & BIT_MASK_P0HI6Q_DESC_NUM)
  20681. #define BIT_SET_P0HI6Q_DESC_NUM(x, v) \
  20682. (BIT_CLEAR_P0HI6Q_DESC_NUM(x) | BIT_P0HI6Q_DESC_NUM(v))
  20683. #define BIT_CLR_P0RXQ_HOST_IDX BIT(0)
  20684. #endif
  20685. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20686. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20687. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20688. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20689. /* 2 REG_HI7Q_TXBD_NUM (Offset 0x039A) */
  20690. #define BIT_HI7Q_FLAG BIT(14)
  20691. #define BIT_SHIFT_HI7Q_DESC_MODE 12
  20692. #define BIT_MASK_HI7Q_DESC_MODE 0x3
  20693. #define BIT_HI7Q_DESC_MODE(x) \
  20694. (((x) & BIT_MASK_HI7Q_DESC_MODE) << BIT_SHIFT_HI7Q_DESC_MODE)
  20695. #define BITS_HI7Q_DESC_MODE \
  20696. (BIT_MASK_HI7Q_DESC_MODE << BIT_SHIFT_HI7Q_DESC_MODE)
  20697. #define BIT_CLEAR_HI7Q_DESC_MODE(x) ((x) & (~BITS_HI7Q_DESC_MODE))
  20698. #define BIT_GET_HI7Q_DESC_MODE(x) \
  20699. (((x) >> BIT_SHIFT_HI7Q_DESC_MODE) & BIT_MASK_HI7Q_DESC_MODE)
  20700. #define BIT_SET_HI7Q_DESC_MODE(x, v) \
  20701. (BIT_CLEAR_HI7Q_DESC_MODE(x) | BIT_HI7Q_DESC_MODE(v))
  20702. #define BIT_SHIFT_HI7Q_DESC_NUM 0
  20703. #define BIT_MASK_HI7Q_DESC_NUM 0xfff
  20704. #define BIT_HI7Q_DESC_NUM(x) \
  20705. (((x) & BIT_MASK_HI7Q_DESC_NUM) << BIT_SHIFT_HI7Q_DESC_NUM)
  20706. #define BITS_HI7Q_DESC_NUM (BIT_MASK_HI7Q_DESC_NUM << BIT_SHIFT_HI7Q_DESC_NUM)
  20707. #define BIT_CLEAR_HI7Q_DESC_NUM(x) ((x) & (~BITS_HI7Q_DESC_NUM))
  20708. #define BIT_GET_HI7Q_DESC_NUM(x) \
  20709. (((x) >> BIT_SHIFT_HI7Q_DESC_NUM) & BIT_MASK_HI7Q_DESC_NUM)
  20710. #define BIT_SET_HI7Q_DESC_NUM(x, v) \
  20711. (BIT_CLEAR_HI7Q_DESC_NUM(x) | BIT_HI7Q_DESC_NUM(v))
  20712. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20713. #define BIT_CLR_HI7Q_HW_IDX BIT(29)
  20714. #define BIT_CLR_HI6Q_HW_IDX BIT(28)
  20715. #define BIT_CLR_HI5Q_HW_IDX BIT(27)
  20716. #define BIT_CLR_HI4Q_HW_IDX BIT(26)
  20717. #define BIT_CLR_HI3Q_HW_IDX BIT(25)
  20718. #define BIT_CLR_HI2Q_HW_IDX BIT(24)
  20719. #define BIT_CLR_HI1Q_HW_IDX BIT(23)
  20720. #endif
  20721. #if (HALMAC_8881A_SUPPORT)
  20722. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20723. #define BIT_BCN7DOK BIT(23)
  20724. #define BIT_BCN7DOKM BIT(23)
  20725. #endif
  20726. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20727. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20728. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20729. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20730. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20731. #define BIT_CLR_HI0Q_HW_IDX BIT(22)
  20732. #endif
  20733. #if (HALMAC_8881A_SUPPORT)
  20734. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20735. #define BIT_BCN6DOK BIT(22)
  20736. #define BIT_BCN6DOKM BIT(22)
  20737. #endif
  20738. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20739. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20740. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20741. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20742. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20743. #define BIT_CLR_BKQ_HW_IDX BIT(21)
  20744. #endif
  20745. #if (HALMAC_8881A_SUPPORT)
  20746. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20747. #define BIT_BCN5DOK BIT(21)
  20748. #define BIT_BCN5DOKM BIT(21)
  20749. #endif
  20750. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20751. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20752. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20753. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20754. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20755. #define BIT_CLR_BEQ_HW_IDX BIT(20)
  20756. #endif
  20757. #if (HALMAC_8881A_SUPPORT)
  20758. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20759. #define BIT_BCN4DOK BIT(20)
  20760. #define BIT_BCN4DOKM BIT(20)
  20761. #define BIT_RX_OVER_RD_ERR BIT(20)
  20762. #endif
  20763. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20764. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20765. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20766. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20767. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20768. #define BIT_CLR_VIQ_HW_IDX BIT(19)
  20769. #endif
  20770. #if (HALMAC_8881A_SUPPORT)
  20771. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20772. #define BIT_BCN3DOK BIT(19)
  20773. #define BIT_BCN3DOKM BIT(19)
  20774. #define BIT_RXDMA_STUCK BIT(19)
  20775. #endif
  20776. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20777. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20778. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20779. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20780. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20781. #define BIT_CLR_VOQ_HW_IDX BIT(18)
  20782. #endif
  20783. #if (HALMAC_8881A_SUPPORT)
  20784. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20785. #define BIT_BCN2DOK BIT(18)
  20786. #define BIT_BCN2DOKM BIT(18)
  20787. #endif
  20788. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20789. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20790. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20791. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20792. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20793. #define BIT_CLR_MGQ_HW_IDX BIT(17)
  20794. #endif
  20795. #if (HALMAC_8881A_SUPPORT)
  20796. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20797. #define BIT_BCN1DOK BIT(17)
  20798. #define BIT_BCN1DOKM BIT(17)
  20799. #endif
  20800. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20801. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20802. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  20803. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20804. /* 2 REG_TSFTIMER_HCI (Offset 0x039C) */
  20805. #define BIT_SHIFT_TSFT2_HCI 16
  20806. #define BIT_MASK_TSFT2_HCI 0xffff
  20807. #define BIT_TSFT2_HCI(x) (((x) & BIT_MASK_TSFT2_HCI) << BIT_SHIFT_TSFT2_HCI)
  20808. #define BITS_TSFT2_HCI (BIT_MASK_TSFT2_HCI << BIT_SHIFT_TSFT2_HCI)
  20809. #define BIT_CLEAR_TSFT2_HCI(x) ((x) & (~BITS_TSFT2_HCI))
  20810. #define BIT_GET_TSFT2_HCI(x) (((x) >> BIT_SHIFT_TSFT2_HCI) & BIT_MASK_TSFT2_HCI)
  20811. #define BIT_SET_TSFT2_HCI(x, v) (BIT_CLEAR_TSFT2_HCI(x) | BIT_TSFT2_HCI(v))
  20812. #endif
  20813. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20814. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20815. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20816. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20817. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20818. #define BIT_CLR_RXQ_HW_IDX BIT(16)
  20819. #endif
  20820. #if (HALMAC_8881A_SUPPORT)
  20821. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20822. #define BIT_BCN0DOK BIT(16)
  20823. #define BIT_BCN0DOKM BIT(16)
  20824. #define BIT_SHIFT_RX_STATE 16
  20825. #define BIT_MASK_RX_STATE 0x7
  20826. #define BIT_RX_STATE(x) (((x) & BIT_MASK_RX_STATE) << BIT_SHIFT_RX_STATE)
  20827. #define BITS_RX_STATE (BIT_MASK_RX_STATE << BIT_SHIFT_RX_STATE)
  20828. #define BIT_CLEAR_RX_STATE(x) ((x) & (~BITS_RX_STATE))
  20829. #define BIT_GET_RX_STATE(x) (((x) >> BIT_SHIFT_RX_STATE) & BIT_MASK_RX_STATE)
  20830. #define BIT_SET_RX_STATE(x, v) (BIT_CLEAR_RX_STATE(x) | BIT_RX_STATE(v))
  20831. #define BIT_SRST_TX BIT(15)
  20832. #define BIT_M7DOK BIT(15)
  20833. #define BIT_M7DOKM BIT(15)
  20834. #define BIT_TDE_NO_IDLE BIT(15)
  20835. #define BIT_SRST_RX BIT(14)
  20836. #define BIT_M6DOK BIT(14)
  20837. #define BIT_M6DOKM BIT(14)
  20838. #define BIT_TXDMA_STUCK BIT(14)
  20839. #endif
  20840. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20841. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20842. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20843. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20844. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20845. #define BIT_CLR_HI7Q_HOST_IDX BIT(13)
  20846. #endif
  20847. #if (HALMAC_8881A_SUPPORT)
  20848. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20849. #define BIT_M5DOK BIT(13)
  20850. #define BIT_M5DOKM BIT(13)
  20851. #define BIT_TDE_FULL_ERR BIT(13)
  20852. #endif
  20853. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20854. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20855. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20856. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20857. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20858. #define BIT_CLR_HI6Q_HOST_IDX BIT(12)
  20859. #endif
  20860. #if (HALMAC_8881A_SUPPORT)
  20861. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20862. #define BIT_M4DOK BIT(12)
  20863. #define BIT_M4DOKM BIT(12)
  20864. #define BIT_HD_SIZE_ERR BIT(12)
  20865. #endif
  20866. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20867. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20868. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20869. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20870. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20871. #define BIT_CLR_HI5Q_HOST_IDX BIT(11)
  20872. #endif
  20873. #if (HALMAC_8881A_SUPPORT)
  20874. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20875. #define BIT_M3DOK BIT(11)
  20876. #define BIT_M3DOKM BIT(11)
  20877. #endif
  20878. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20879. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20880. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20881. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20882. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20883. #define BIT_CLR_HI4Q_HOST_IDX BIT(10)
  20884. #endif
  20885. #if (HALMAC_8881A_SUPPORT)
  20886. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20887. #define BIT_M2DOK BIT(10)
  20888. #define BIT_M2DOKM BIT(10)
  20889. #endif
  20890. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20891. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20892. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20893. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20894. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20895. #define BIT_CLR_HI3Q_HOST_IDX BIT(9)
  20896. #endif
  20897. #if (HALMAC_8881A_SUPPORT)
  20898. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20899. #define BIT_M1DOK BIT(9)
  20900. #define BIT_M1DOKM BIT(9)
  20901. #endif
  20902. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20903. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20904. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20905. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20906. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20907. #define BIT_CLR_HI2Q_HOST_IDX BIT(8)
  20908. #endif
  20909. #if (HALMAC_8881A_SUPPORT)
  20910. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20911. #define BIT_M0DOK BIT(8)
  20912. #define BIT_M0DOKM BIT(8)
  20913. #define BIT_SHIFT_TX_STATE 8
  20914. #define BIT_MASK_TX_STATE 0xf
  20915. #define BIT_TX_STATE(x) (((x) & BIT_MASK_TX_STATE) << BIT_SHIFT_TX_STATE)
  20916. #define BITS_TX_STATE (BIT_MASK_TX_STATE << BIT_SHIFT_TX_STATE)
  20917. #define BIT_CLEAR_TX_STATE(x) ((x) & (~BITS_TX_STATE))
  20918. #define BIT_GET_TX_STATE(x) (((x) >> BIT_SHIFT_TX_STATE) & BIT_MASK_TX_STATE)
  20919. #define BIT_SET_TX_STATE(x, v) (BIT_CLEAR_TX_STATE(x) | BIT_TX_STATE(v))
  20920. #endif
  20921. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20922. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20923. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20924. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20925. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20926. #define BIT_CLR_HI1Q_HOST_IDX BIT(7)
  20927. #define BIT_CLR_HI0Q_HOST_IDX BIT(6)
  20928. #endif
  20929. #if (HALMAC_8881A_SUPPORT)
  20930. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20931. #define BIT_MGQDOK BIT(6)
  20932. #define BIT_MGQDOKM BIT(6)
  20933. #endif
  20934. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20935. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20936. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20937. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20938. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20939. #define BIT_CLR_BKQ_HOST_IDX BIT(5)
  20940. #endif
  20941. #if (HALMAC_8881A_SUPPORT)
  20942. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20943. #define BIT_BKQDOK BIT(5)
  20944. #define BIT_BKQDOKM BIT(5)
  20945. #endif
  20946. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20947. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20948. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20949. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20950. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20951. #define BIT_CLR_BEQ_HOST_IDX BIT(4)
  20952. #endif
  20953. #if (HALMAC_8881A_SUPPORT)
  20954. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20955. #define BIT_SHIFT_HPS_CLKR 4
  20956. #define BIT_MASK_HPS_CLKR 0x3
  20957. #define BIT_HPS_CLKR(x) (((x) & BIT_MASK_HPS_CLKR) << BIT_SHIFT_HPS_CLKR)
  20958. #define BITS_HPS_CLKR (BIT_MASK_HPS_CLKR << BIT_SHIFT_HPS_CLKR)
  20959. #define BIT_CLEAR_HPS_CLKR(x) ((x) & (~BITS_HPS_CLKR))
  20960. #define BIT_GET_HPS_CLKR(x) (((x) >> BIT_SHIFT_HPS_CLKR) & BIT_MASK_HPS_CLKR)
  20961. #define BIT_SET_HPS_CLKR(x, v) (BIT_CLEAR_HPS_CLKR(x) | BIT_HPS_CLKR(v))
  20962. #define BIT_BEQDOK BIT(4)
  20963. #define BIT_BEQDOKM BIT(4)
  20964. #endif
  20965. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20966. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20967. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20968. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20969. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20970. #define BIT_CLR_VIQ_HOST_IDX BIT(3)
  20971. #endif
  20972. #if (HALMAC_8881A_SUPPORT)
  20973. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20974. #define BIT_LX_INT BIT(3)
  20975. #define BIT_VIQDOK BIT(3)
  20976. #define BIT_VIQDOKM BIT(3)
  20977. #define BIT_MST_BUSY BIT(3)
  20978. #endif
  20979. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20980. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20981. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20982. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20983. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20984. #define BIT_CLR_VOQ_HOST_IDX BIT(2)
  20985. #endif
  20986. #if (HALMAC_8881A_SUPPORT)
  20987. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20988. #define BIT_VOQDOK BIT(2)
  20989. #define BIT_VOQDOKM BIT(2)
  20990. #define BIT_SLV_BUSY BIT(2)
  20991. #endif
  20992. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  20993. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  20994. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  20995. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  20996. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  20997. #define BIT_CLR_MGQ_HOST_IDX BIT(1)
  20998. #endif
  20999. #if (HALMAC_8881A_SUPPORT)
  21000. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  21001. #define BIT_RDUM BIT(1)
  21002. #define BIT_RXDES_UNAVAIL BIT(1)
  21003. #endif
  21004. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21005. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21006. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  21007. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21008. /* 2 REG_TSFTIMER_HCI (Offset 0x039C) */
  21009. #define BIT_SHIFT_TSFT1_HCI 0
  21010. #define BIT_MASK_TSFT1_HCI 0xffff
  21011. #define BIT_TSFT1_HCI(x) (((x) & BIT_MASK_TSFT1_HCI) << BIT_SHIFT_TSFT1_HCI)
  21012. #define BITS_TSFT1_HCI (BIT_MASK_TSFT1_HCI << BIT_SHIFT_TSFT1_HCI)
  21013. #define BIT_CLEAR_TSFT1_HCI(x) ((x) & (~BITS_TSFT1_HCI))
  21014. #define BIT_GET_TSFT1_HCI(x) (((x) >> BIT_SHIFT_TSFT1_HCI) & BIT_MASK_TSFT1_HCI)
  21015. #define BIT_SET_TSFT1_HCI(x, v) (BIT_CLEAR_TSFT1_HCI(x) | BIT_TSFT1_HCI(v))
  21016. #endif
  21017. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21018. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21019. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21020. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21021. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  21022. #define BIT_CLR_RXQ_HOST_IDX BIT(0)
  21023. #endif
  21024. #if (HALMAC_8881A_SUPPORT)
  21025. /* 2 REG_BD_RWPTR_CLR (Offset 0x039C) */
  21026. #define BIT_RXDOK BIT(0)
  21027. #define BIT_RXDOKM BIT(0)
  21028. #define BIT_EN_DBG_STUCK BIT(0)
  21029. #endif
  21030. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21031. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21032. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21033. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21034. /* 2 REG_VOQ_TXBD_IDX (Offset 0x03A0) */
  21035. #define BIT_SHIFT_VOQ_HW_IDX 16
  21036. #define BIT_MASK_VOQ_HW_IDX 0xfff
  21037. #define BIT_VOQ_HW_IDX(x) (((x) & BIT_MASK_VOQ_HW_IDX) << BIT_SHIFT_VOQ_HW_IDX)
  21038. #define BITS_VOQ_HW_IDX (BIT_MASK_VOQ_HW_IDX << BIT_SHIFT_VOQ_HW_IDX)
  21039. #define BIT_CLEAR_VOQ_HW_IDX(x) ((x) & (~BITS_VOQ_HW_IDX))
  21040. #define BIT_GET_VOQ_HW_IDX(x) \
  21041. (((x) >> BIT_SHIFT_VOQ_HW_IDX) & BIT_MASK_VOQ_HW_IDX)
  21042. #define BIT_SET_VOQ_HW_IDX(x, v) (BIT_CLEAR_VOQ_HW_IDX(x) | BIT_VOQ_HW_IDX(v))
  21043. #endif
  21044. #if (HALMAC_8814B_SUPPORT)
  21045. /* 2 REG_ACH0_TXBD_IDX (Offset 0x03A0) */
  21046. #define BIT_SHIFT_ACH0_HW_IDX 16
  21047. #define BIT_MASK_ACH0_HW_IDX 0xfff
  21048. #define BIT_ACH0_HW_IDX(x) \
  21049. (((x) & BIT_MASK_ACH0_HW_IDX) << BIT_SHIFT_ACH0_HW_IDX)
  21050. #define BITS_ACH0_HW_IDX (BIT_MASK_ACH0_HW_IDX << BIT_SHIFT_ACH0_HW_IDX)
  21051. #define BIT_CLEAR_ACH0_HW_IDX(x) ((x) & (~BITS_ACH0_HW_IDX))
  21052. #define BIT_GET_ACH0_HW_IDX(x) \
  21053. (((x) >> BIT_SHIFT_ACH0_HW_IDX) & BIT_MASK_ACH0_HW_IDX)
  21054. #define BIT_SET_ACH0_HW_IDX(x, v) \
  21055. (BIT_CLEAR_ACH0_HW_IDX(x) | BIT_ACH0_HW_IDX(v))
  21056. #endif
  21057. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21058. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21059. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21060. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21061. /* 2 REG_VOQ_TXBD_IDX (Offset 0x03A0) */
  21062. #define BIT_SHIFT_VOQ_HOST_IDX 0
  21063. #define BIT_MASK_VOQ_HOST_IDX 0xfff
  21064. #define BIT_VOQ_HOST_IDX(x) \
  21065. (((x) & BIT_MASK_VOQ_HOST_IDX) << BIT_SHIFT_VOQ_HOST_IDX)
  21066. #define BITS_VOQ_HOST_IDX (BIT_MASK_VOQ_HOST_IDX << BIT_SHIFT_VOQ_HOST_IDX)
  21067. #define BIT_CLEAR_VOQ_HOST_IDX(x) ((x) & (~BITS_VOQ_HOST_IDX))
  21068. #define BIT_GET_VOQ_HOST_IDX(x) \
  21069. (((x) >> BIT_SHIFT_VOQ_HOST_IDX) & BIT_MASK_VOQ_HOST_IDX)
  21070. #define BIT_SET_VOQ_HOST_IDX(x, v) \
  21071. (BIT_CLEAR_VOQ_HOST_IDX(x) | BIT_VOQ_HOST_IDX(v))
  21072. #endif
  21073. #if (HALMAC_8814B_SUPPORT)
  21074. /* 2 REG_ACH0_TXBD_IDX (Offset 0x03A0) */
  21075. #define BIT_SHIFT_ACH0_HOST_IDX 0
  21076. #define BIT_MASK_ACH0_HOST_IDX 0xfff
  21077. #define BIT_ACH0_HOST_IDX(x) \
  21078. (((x) & BIT_MASK_ACH0_HOST_IDX) << BIT_SHIFT_ACH0_HOST_IDX)
  21079. #define BITS_ACH0_HOST_IDX (BIT_MASK_ACH0_HOST_IDX << BIT_SHIFT_ACH0_HOST_IDX)
  21080. #define BIT_CLEAR_ACH0_HOST_IDX(x) ((x) & (~BITS_ACH0_HOST_IDX))
  21081. #define BIT_GET_ACH0_HOST_IDX(x) \
  21082. (((x) >> BIT_SHIFT_ACH0_HOST_IDX) & BIT_MASK_ACH0_HOST_IDX)
  21083. #define BIT_SET_ACH0_HOST_IDX(x, v) \
  21084. (BIT_CLEAR_ACH0_HOST_IDX(x) | BIT_ACH0_HOST_IDX(v))
  21085. #endif
  21086. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21087. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21088. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21089. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21090. /* 2 REG_VIQ_TXBD_IDX (Offset 0x03A4) */
  21091. #define BIT_SHIFT_VIQ_HW_IDX 16
  21092. #define BIT_MASK_VIQ_HW_IDX 0xfff
  21093. #define BIT_VIQ_HW_IDX(x) (((x) & BIT_MASK_VIQ_HW_IDX) << BIT_SHIFT_VIQ_HW_IDX)
  21094. #define BITS_VIQ_HW_IDX (BIT_MASK_VIQ_HW_IDX << BIT_SHIFT_VIQ_HW_IDX)
  21095. #define BIT_CLEAR_VIQ_HW_IDX(x) ((x) & (~BITS_VIQ_HW_IDX))
  21096. #define BIT_GET_VIQ_HW_IDX(x) \
  21097. (((x) >> BIT_SHIFT_VIQ_HW_IDX) & BIT_MASK_VIQ_HW_IDX)
  21098. #define BIT_SET_VIQ_HW_IDX(x, v) (BIT_CLEAR_VIQ_HW_IDX(x) | BIT_VIQ_HW_IDX(v))
  21099. #endif
  21100. #if (HALMAC_8814B_SUPPORT)
  21101. /* 2 REG_ACH1_TXBD_IDX (Offset 0x03A4) */
  21102. #define BIT_SHIFT_ACH1_HW_IDX 16
  21103. #define BIT_MASK_ACH1_HW_IDX 0xfff
  21104. #define BIT_ACH1_HW_IDX(x) \
  21105. (((x) & BIT_MASK_ACH1_HW_IDX) << BIT_SHIFT_ACH1_HW_IDX)
  21106. #define BITS_ACH1_HW_IDX (BIT_MASK_ACH1_HW_IDX << BIT_SHIFT_ACH1_HW_IDX)
  21107. #define BIT_CLEAR_ACH1_HW_IDX(x) ((x) & (~BITS_ACH1_HW_IDX))
  21108. #define BIT_GET_ACH1_HW_IDX(x) \
  21109. (((x) >> BIT_SHIFT_ACH1_HW_IDX) & BIT_MASK_ACH1_HW_IDX)
  21110. #define BIT_SET_ACH1_HW_IDX(x, v) \
  21111. (BIT_CLEAR_ACH1_HW_IDX(x) | BIT_ACH1_HW_IDX(v))
  21112. #endif
  21113. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21114. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21115. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21116. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21117. /* 2 REG_VIQ_TXBD_IDX (Offset 0x03A4) */
  21118. #define BIT_SHIFT_VIQ_HOST_IDX 0
  21119. #define BIT_MASK_VIQ_HOST_IDX 0xfff
  21120. #define BIT_VIQ_HOST_IDX(x) \
  21121. (((x) & BIT_MASK_VIQ_HOST_IDX) << BIT_SHIFT_VIQ_HOST_IDX)
  21122. #define BITS_VIQ_HOST_IDX (BIT_MASK_VIQ_HOST_IDX << BIT_SHIFT_VIQ_HOST_IDX)
  21123. #define BIT_CLEAR_VIQ_HOST_IDX(x) ((x) & (~BITS_VIQ_HOST_IDX))
  21124. #define BIT_GET_VIQ_HOST_IDX(x) \
  21125. (((x) >> BIT_SHIFT_VIQ_HOST_IDX) & BIT_MASK_VIQ_HOST_IDX)
  21126. #define BIT_SET_VIQ_HOST_IDX(x, v) \
  21127. (BIT_CLEAR_VIQ_HOST_IDX(x) | BIT_VIQ_HOST_IDX(v))
  21128. #endif
  21129. #if (HALMAC_8814B_SUPPORT)
  21130. /* 2 REG_ACH1_TXBD_IDX (Offset 0x03A4) */
  21131. #define BIT_SHIFT_ACH1_HOST_IDX 0
  21132. #define BIT_MASK_ACH1_HOST_IDX 0xfff
  21133. #define BIT_ACH1_HOST_IDX(x) \
  21134. (((x) & BIT_MASK_ACH1_HOST_IDX) << BIT_SHIFT_ACH1_HOST_IDX)
  21135. #define BITS_ACH1_HOST_IDX (BIT_MASK_ACH1_HOST_IDX << BIT_SHIFT_ACH1_HOST_IDX)
  21136. #define BIT_CLEAR_ACH1_HOST_IDX(x) ((x) & (~BITS_ACH1_HOST_IDX))
  21137. #define BIT_GET_ACH1_HOST_IDX(x) \
  21138. (((x) >> BIT_SHIFT_ACH1_HOST_IDX) & BIT_MASK_ACH1_HOST_IDX)
  21139. #define BIT_SET_ACH1_HOST_IDX(x, v) \
  21140. (BIT_CLEAR_ACH1_HOST_IDX(x) | BIT_ACH1_HOST_IDX(v))
  21141. #endif
  21142. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21143. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21144. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21145. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21146. /* 2 REG_BEQ_TXBD_IDX (Offset 0x03A8) */
  21147. #define BIT_SHIFT_BEQ_HW_IDX 16
  21148. #define BIT_MASK_BEQ_HW_IDX 0xfff
  21149. #define BIT_BEQ_HW_IDX(x) (((x) & BIT_MASK_BEQ_HW_IDX) << BIT_SHIFT_BEQ_HW_IDX)
  21150. #define BITS_BEQ_HW_IDX (BIT_MASK_BEQ_HW_IDX << BIT_SHIFT_BEQ_HW_IDX)
  21151. #define BIT_CLEAR_BEQ_HW_IDX(x) ((x) & (~BITS_BEQ_HW_IDX))
  21152. #define BIT_GET_BEQ_HW_IDX(x) \
  21153. (((x) >> BIT_SHIFT_BEQ_HW_IDX) & BIT_MASK_BEQ_HW_IDX)
  21154. #define BIT_SET_BEQ_HW_IDX(x, v) (BIT_CLEAR_BEQ_HW_IDX(x) | BIT_BEQ_HW_IDX(v))
  21155. #endif
  21156. #if (HALMAC_8814B_SUPPORT)
  21157. /* 2 REG_ACH2_TXBD_IDX (Offset 0x03A8) */
  21158. #define BIT_SHIFT_ACH2_HW_IDX 16
  21159. #define BIT_MASK_ACH2_HW_IDX 0xfff
  21160. #define BIT_ACH2_HW_IDX(x) \
  21161. (((x) & BIT_MASK_ACH2_HW_IDX) << BIT_SHIFT_ACH2_HW_IDX)
  21162. #define BITS_ACH2_HW_IDX (BIT_MASK_ACH2_HW_IDX << BIT_SHIFT_ACH2_HW_IDX)
  21163. #define BIT_CLEAR_ACH2_HW_IDX(x) ((x) & (~BITS_ACH2_HW_IDX))
  21164. #define BIT_GET_ACH2_HW_IDX(x) \
  21165. (((x) >> BIT_SHIFT_ACH2_HW_IDX) & BIT_MASK_ACH2_HW_IDX)
  21166. #define BIT_SET_ACH2_HW_IDX(x, v) \
  21167. (BIT_CLEAR_ACH2_HW_IDX(x) | BIT_ACH2_HW_IDX(v))
  21168. #endif
  21169. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21170. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21171. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21172. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21173. /* 2 REG_BEQ_TXBD_IDX (Offset 0x03A8) */
  21174. #define BIT_SHIFT_BEQ_HOST_IDX 0
  21175. #define BIT_MASK_BEQ_HOST_IDX 0xfff
  21176. #define BIT_BEQ_HOST_IDX(x) \
  21177. (((x) & BIT_MASK_BEQ_HOST_IDX) << BIT_SHIFT_BEQ_HOST_IDX)
  21178. #define BITS_BEQ_HOST_IDX (BIT_MASK_BEQ_HOST_IDX << BIT_SHIFT_BEQ_HOST_IDX)
  21179. #define BIT_CLEAR_BEQ_HOST_IDX(x) ((x) & (~BITS_BEQ_HOST_IDX))
  21180. #define BIT_GET_BEQ_HOST_IDX(x) \
  21181. (((x) >> BIT_SHIFT_BEQ_HOST_IDX) & BIT_MASK_BEQ_HOST_IDX)
  21182. #define BIT_SET_BEQ_HOST_IDX(x, v) \
  21183. (BIT_CLEAR_BEQ_HOST_IDX(x) | BIT_BEQ_HOST_IDX(v))
  21184. #endif
  21185. #if (HALMAC_8814B_SUPPORT)
  21186. /* 2 REG_ACH2_TXBD_IDX (Offset 0x03A8) */
  21187. #define BIT_SHIFT_ACH2_HOST_IDX 0
  21188. #define BIT_MASK_ACH2_HOST_IDX 0xfff
  21189. #define BIT_ACH2_HOST_IDX(x) \
  21190. (((x) & BIT_MASK_ACH2_HOST_IDX) << BIT_SHIFT_ACH2_HOST_IDX)
  21191. #define BITS_ACH2_HOST_IDX (BIT_MASK_ACH2_HOST_IDX << BIT_SHIFT_ACH2_HOST_IDX)
  21192. #define BIT_CLEAR_ACH2_HOST_IDX(x) ((x) & (~BITS_ACH2_HOST_IDX))
  21193. #define BIT_GET_ACH2_HOST_IDX(x) \
  21194. (((x) >> BIT_SHIFT_ACH2_HOST_IDX) & BIT_MASK_ACH2_HOST_IDX)
  21195. #define BIT_SET_ACH2_HOST_IDX(x, v) \
  21196. (BIT_CLEAR_ACH2_HOST_IDX(x) | BIT_ACH2_HOST_IDX(v))
  21197. #endif
  21198. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21199. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21200. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21201. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21202. /* 2 REG_BKQ_TXBD_IDX (Offset 0x03AC) */
  21203. #define BIT_SHIFT_BKQ_HW_IDX 16
  21204. #define BIT_MASK_BKQ_HW_IDX 0xfff
  21205. #define BIT_BKQ_HW_IDX(x) (((x) & BIT_MASK_BKQ_HW_IDX) << BIT_SHIFT_BKQ_HW_IDX)
  21206. #define BITS_BKQ_HW_IDX (BIT_MASK_BKQ_HW_IDX << BIT_SHIFT_BKQ_HW_IDX)
  21207. #define BIT_CLEAR_BKQ_HW_IDX(x) ((x) & (~BITS_BKQ_HW_IDX))
  21208. #define BIT_GET_BKQ_HW_IDX(x) \
  21209. (((x) >> BIT_SHIFT_BKQ_HW_IDX) & BIT_MASK_BKQ_HW_IDX)
  21210. #define BIT_SET_BKQ_HW_IDX(x, v) (BIT_CLEAR_BKQ_HW_IDX(x) | BIT_BKQ_HW_IDX(v))
  21211. #endif
  21212. #if (HALMAC_8814B_SUPPORT)
  21213. /* 2 REG_ACH3_TXBD_IDX (Offset 0x03AC) */
  21214. #define BIT_SHIFT_ACH3_HW_IDX 16
  21215. #define BIT_MASK_ACH3_HW_IDX 0xfff
  21216. #define BIT_ACH3_HW_IDX(x) \
  21217. (((x) & BIT_MASK_ACH3_HW_IDX) << BIT_SHIFT_ACH3_HW_IDX)
  21218. #define BITS_ACH3_HW_IDX (BIT_MASK_ACH3_HW_IDX << BIT_SHIFT_ACH3_HW_IDX)
  21219. #define BIT_CLEAR_ACH3_HW_IDX(x) ((x) & (~BITS_ACH3_HW_IDX))
  21220. #define BIT_GET_ACH3_HW_IDX(x) \
  21221. (((x) >> BIT_SHIFT_ACH3_HW_IDX) & BIT_MASK_ACH3_HW_IDX)
  21222. #define BIT_SET_ACH3_HW_IDX(x, v) \
  21223. (BIT_CLEAR_ACH3_HW_IDX(x) | BIT_ACH3_HW_IDX(v))
  21224. #endif
  21225. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21226. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21227. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21228. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21229. /* 2 REG_BKQ_TXBD_IDX (Offset 0x03AC) */
  21230. #define BIT_SHIFT_BKQ_HOST_IDX 0
  21231. #define BIT_MASK_BKQ_HOST_IDX 0xfff
  21232. #define BIT_BKQ_HOST_IDX(x) \
  21233. (((x) & BIT_MASK_BKQ_HOST_IDX) << BIT_SHIFT_BKQ_HOST_IDX)
  21234. #define BITS_BKQ_HOST_IDX (BIT_MASK_BKQ_HOST_IDX << BIT_SHIFT_BKQ_HOST_IDX)
  21235. #define BIT_CLEAR_BKQ_HOST_IDX(x) ((x) & (~BITS_BKQ_HOST_IDX))
  21236. #define BIT_GET_BKQ_HOST_IDX(x) \
  21237. (((x) >> BIT_SHIFT_BKQ_HOST_IDX) & BIT_MASK_BKQ_HOST_IDX)
  21238. #define BIT_SET_BKQ_HOST_IDX(x, v) \
  21239. (BIT_CLEAR_BKQ_HOST_IDX(x) | BIT_BKQ_HOST_IDX(v))
  21240. #endif
  21241. #if (HALMAC_8814B_SUPPORT)
  21242. /* 2 REG_ACH3_TXBD_IDX (Offset 0x03AC) */
  21243. #define BIT_SHIFT_ACH3_HOST_IDX 0
  21244. #define BIT_MASK_ACH3_HOST_IDX 0xfff
  21245. #define BIT_ACH3_HOST_IDX(x) \
  21246. (((x) & BIT_MASK_ACH3_HOST_IDX) << BIT_SHIFT_ACH3_HOST_IDX)
  21247. #define BITS_ACH3_HOST_IDX (BIT_MASK_ACH3_HOST_IDX << BIT_SHIFT_ACH3_HOST_IDX)
  21248. #define BIT_CLEAR_ACH3_HOST_IDX(x) ((x) & (~BITS_ACH3_HOST_IDX))
  21249. #define BIT_GET_ACH3_HOST_IDX(x) \
  21250. (((x) >> BIT_SHIFT_ACH3_HOST_IDX) & BIT_MASK_ACH3_HOST_IDX)
  21251. #define BIT_SET_ACH3_HOST_IDX(x, v) \
  21252. (BIT_CLEAR_ACH3_HOST_IDX(x) | BIT_ACH3_HOST_IDX(v))
  21253. #endif
  21254. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21255. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21256. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21257. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21258. /* 2 REG_MGQ_TXBD_IDX (Offset 0x03B0) */
  21259. #define BIT_SHIFT_MGQ_HW_IDX 16
  21260. #define BIT_MASK_MGQ_HW_IDX 0xfff
  21261. #define BIT_MGQ_HW_IDX(x) (((x) & BIT_MASK_MGQ_HW_IDX) << BIT_SHIFT_MGQ_HW_IDX)
  21262. #define BITS_MGQ_HW_IDX (BIT_MASK_MGQ_HW_IDX << BIT_SHIFT_MGQ_HW_IDX)
  21263. #define BIT_CLEAR_MGQ_HW_IDX(x) ((x) & (~BITS_MGQ_HW_IDX))
  21264. #define BIT_GET_MGQ_HW_IDX(x) \
  21265. (((x) >> BIT_SHIFT_MGQ_HW_IDX) & BIT_MASK_MGQ_HW_IDX)
  21266. #define BIT_SET_MGQ_HW_IDX(x, v) (BIT_CLEAR_MGQ_HW_IDX(x) | BIT_MGQ_HW_IDX(v))
  21267. #endif
  21268. #if (HALMAC_8814B_SUPPORT)
  21269. /* 2 REG_P0MGQ_TXBD_IDX (Offset 0x03B0) */
  21270. #define BIT_SHIFT_P0MGQ_HW_IDX 16
  21271. #define BIT_MASK_P0MGQ_HW_IDX 0xfff
  21272. #define BIT_P0MGQ_HW_IDX(x) \
  21273. (((x) & BIT_MASK_P0MGQ_HW_IDX) << BIT_SHIFT_P0MGQ_HW_IDX)
  21274. #define BITS_P0MGQ_HW_IDX (BIT_MASK_P0MGQ_HW_IDX << BIT_SHIFT_P0MGQ_HW_IDX)
  21275. #define BIT_CLEAR_P0MGQ_HW_IDX(x) ((x) & (~BITS_P0MGQ_HW_IDX))
  21276. #define BIT_GET_P0MGQ_HW_IDX(x) \
  21277. (((x) >> BIT_SHIFT_P0MGQ_HW_IDX) & BIT_MASK_P0MGQ_HW_IDX)
  21278. #define BIT_SET_P0MGQ_HW_IDX(x, v) \
  21279. (BIT_CLEAR_P0MGQ_HW_IDX(x) | BIT_P0MGQ_HW_IDX(v))
  21280. #endif
  21281. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21282. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21283. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21284. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21285. /* 2 REG_MGQ_TXBD_IDX (Offset 0x03B0) */
  21286. #define BIT_SHIFT_MGQ_HOST_IDX 0
  21287. #define BIT_MASK_MGQ_HOST_IDX 0xfff
  21288. #define BIT_MGQ_HOST_IDX(x) \
  21289. (((x) & BIT_MASK_MGQ_HOST_IDX) << BIT_SHIFT_MGQ_HOST_IDX)
  21290. #define BITS_MGQ_HOST_IDX (BIT_MASK_MGQ_HOST_IDX << BIT_SHIFT_MGQ_HOST_IDX)
  21291. #define BIT_CLEAR_MGQ_HOST_IDX(x) ((x) & (~BITS_MGQ_HOST_IDX))
  21292. #define BIT_GET_MGQ_HOST_IDX(x) \
  21293. (((x) >> BIT_SHIFT_MGQ_HOST_IDX) & BIT_MASK_MGQ_HOST_IDX)
  21294. #define BIT_SET_MGQ_HOST_IDX(x, v) \
  21295. (BIT_CLEAR_MGQ_HOST_IDX(x) | BIT_MGQ_HOST_IDX(v))
  21296. #endif
  21297. #if (HALMAC_8814B_SUPPORT)
  21298. /* 2 REG_P0MGQ_TXBD_IDX (Offset 0x03B0) */
  21299. #define BIT_SHIFT_P0MGQ_HOST_IDX 0
  21300. #define BIT_MASK_P0MGQ_HOST_IDX 0xfff
  21301. #define BIT_P0MGQ_HOST_IDX(x) \
  21302. (((x) & BIT_MASK_P0MGQ_HOST_IDX) << BIT_SHIFT_P0MGQ_HOST_IDX)
  21303. #define BITS_P0MGQ_HOST_IDX \
  21304. (BIT_MASK_P0MGQ_HOST_IDX << BIT_SHIFT_P0MGQ_HOST_IDX)
  21305. #define BIT_CLEAR_P0MGQ_HOST_IDX(x) ((x) & (~BITS_P0MGQ_HOST_IDX))
  21306. #define BIT_GET_P0MGQ_HOST_IDX(x) \
  21307. (((x) >> BIT_SHIFT_P0MGQ_HOST_IDX) & BIT_MASK_P0MGQ_HOST_IDX)
  21308. #define BIT_SET_P0MGQ_HOST_IDX(x, v) \
  21309. (BIT_CLEAR_P0MGQ_HOST_IDX(x) | BIT_P0MGQ_HOST_IDX(v))
  21310. #endif
  21311. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21312. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21313. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21314. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21315. /* 2 REG_RXQ_RXBD_IDX (Offset 0x03B4) */
  21316. #define BIT_SHIFT_RXQ_HW_IDX 16
  21317. #define BIT_MASK_RXQ_HW_IDX 0xfff
  21318. #define BIT_RXQ_HW_IDX(x) (((x) & BIT_MASK_RXQ_HW_IDX) << BIT_SHIFT_RXQ_HW_IDX)
  21319. #define BITS_RXQ_HW_IDX (BIT_MASK_RXQ_HW_IDX << BIT_SHIFT_RXQ_HW_IDX)
  21320. #define BIT_CLEAR_RXQ_HW_IDX(x) ((x) & (~BITS_RXQ_HW_IDX))
  21321. #define BIT_GET_RXQ_HW_IDX(x) \
  21322. (((x) >> BIT_SHIFT_RXQ_HW_IDX) & BIT_MASK_RXQ_HW_IDX)
  21323. #define BIT_SET_RXQ_HW_IDX(x, v) (BIT_CLEAR_RXQ_HW_IDX(x) | BIT_RXQ_HW_IDX(v))
  21324. #endif
  21325. #if (HALMAC_8814B_SUPPORT)
  21326. /* 2 REG_P0RXQ_RXBD_IDX (Offset 0x03B4) */
  21327. #define BIT_SHIFT_P0RXQ_HW_IDX 16
  21328. #define BIT_MASK_P0RXQ_HW_IDX 0xfff
  21329. #define BIT_P0RXQ_HW_IDX(x) \
  21330. (((x) & BIT_MASK_P0RXQ_HW_IDX) << BIT_SHIFT_P0RXQ_HW_IDX)
  21331. #define BITS_P0RXQ_HW_IDX (BIT_MASK_P0RXQ_HW_IDX << BIT_SHIFT_P0RXQ_HW_IDX)
  21332. #define BIT_CLEAR_P0RXQ_HW_IDX(x) ((x) & (~BITS_P0RXQ_HW_IDX))
  21333. #define BIT_GET_P0RXQ_HW_IDX(x) \
  21334. (((x) >> BIT_SHIFT_P0RXQ_HW_IDX) & BIT_MASK_P0RXQ_HW_IDX)
  21335. #define BIT_SET_P0RXQ_HW_IDX(x, v) \
  21336. (BIT_CLEAR_P0RXQ_HW_IDX(x) | BIT_P0RXQ_HW_IDX(v))
  21337. #endif
  21338. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21339. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21340. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21341. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21342. /* 2 REG_RXQ_RXBD_IDX (Offset 0x03B4) */
  21343. #define BIT_SHIFT_RXQ_HOST_IDX 0
  21344. #define BIT_MASK_RXQ_HOST_IDX 0xfff
  21345. #define BIT_RXQ_HOST_IDX(x) \
  21346. (((x) & BIT_MASK_RXQ_HOST_IDX) << BIT_SHIFT_RXQ_HOST_IDX)
  21347. #define BITS_RXQ_HOST_IDX (BIT_MASK_RXQ_HOST_IDX << BIT_SHIFT_RXQ_HOST_IDX)
  21348. #define BIT_CLEAR_RXQ_HOST_IDX(x) ((x) & (~BITS_RXQ_HOST_IDX))
  21349. #define BIT_GET_RXQ_HOST_IDX(x) \
  21350. (((x) >> BIT_SHIFT_RXQ_HOST_IDX) & BIT_MASK_RXQ_HOST_IDX)
  21351. #define BIT_SET_RXQ_HOST_IDX(x, v) \
  21352. (BIT_CLEAR_RXQ_HOST_IDX(x) | BIT_RXQ_HOST_IDX(v))
  21353. #endif
  21354. #if (HALMAC_8814B_SUPPORT)
  21355. /* 2 REG_P0RXQ_RXBD_IDX (Offset 0x03B4) */
  21356. #define BIT_SHIFT_P0RXQ_HOST_IDX 0
  21357. #define BIT_MASK_P0RXQ_HOST_IDX 0xfff
  21358. #define BIT_P0RXQ_HOST_IDX(x) \
  21359. (((x) & BIT_MASK_P0RXQ_HOST_IDX) << BIT_SHIFT_P0RXQ_HOST_IDX)
  21360. #define BITS_P0RXQ_HOST_IDX \
  21361. (BIT_MASK_P0RXQ_HOST_IDX << BIT_SHIFT_P0RXQ_HOST_IDX)
  21362. #define BIT_CLEAR_P0RXQ_HOST_IDX(x) ((x) & (~BITS_P0RXQ_HOST_IDX))
  21363. #define BIT_GET_P0RXQ_HOST_IDX(x) \
  21364. (((x) >> BIT_SHIFT_P0RXQ_HOST_IDX) & BIT_MASK_P0RXQ_HOST_IDX)
  21365. #define BIT_SET_P0RXQ_HOST_IDX(x, v) \
  21366. (BIT_CLEAR_P0RXQ_HOST_IDX(x) | BIT_P0RXQ_HOST_IDX(v))
  21367. #endif
  21368. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21369. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21370. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21371. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21372. /* 2 REG_HI0Q_TXBD_IDX (Offset 0x03B8) */
  21373. #define BIT_SHIFT_HI0Q_HW_IDX 16
  21374. #define BIT_MASK_HI0Q_HW_IDX 0xfff
  21375. #define BIT_HI0Q_HW_IDX(x) \
  21376. (((x) & BIT_MASK_HI0Q_HW_IDX) << BIT_SHIFT_HI0Q_HW_IDX)
  21377. #define BITS_HI0Q_HW_IDX (BIT_MASK_HI0Q_HW_IDX << BIT_SHIFT_HI0Q_HW_IDX)
  21378. #define BIT_CLEAR_HI0Q_HW_IDX(x) ((x) & (~BITS_HI0Q_HW_IDX))
  21379. #define BIT_GET_HI0Q_HW_IDX(x) \
  21380. (((x) >> BIT_SHIFT_HI0Q_HW_IDX) & BIT_MASK_HI0Q_HW_IDX)
  21381. #define BIT_SET_HI0Q_HW_IDX(x, v) \
  21382. (BIT_CLEAR_HI0Q_HW_IDX(x) | BIT_HI0Q_HW_IDX(v))
  21383. #endif
  21384. #if (HALMAC_8814B_SUPPORT)
  21385. /* 2 REG_P0HI0Q_TXBD_IDX (Offset 0x03B8) */
  21386. #define BIT_SHIFT_P0HI0Q_HW_IDX 16
  21387. #define BIT_MASK_P0HI0Q_HW_IDX 0xfff
  21388. #define BIT_P0HI0Q_HW_IDX(x) \
  21389. (((x) & BIT_MASK_P0HI0Q_HW_IDX) << BIT_SHIFT_P0HI0Q_HW_IDX)
  21390. #define BITS_P0HI0Q_HW_IDX (BIT_MASK_P0HI0Q_HW_IDX << BIT_SHIFT_P0HI0Q_HW_IDX)
  21391. #define BIT_CLEAR_P0HI0Q_HW_IDX(x) ((x) & (~BITS_P0HI0Q_HW_IDX))
  21392. #define BIT_GET_P0HI0Q_HW_IDX(x) \
  21393. (((x) >> BIT_SHIFT_P0HI0Q_HW_IDX) & BIT_MASK_P0HI0Q_HW_IDX)
  21394. #define BIT_SET_P0HI0Q_HW_IDX(x, v) \
  21395. (BIT_CLEAR_P0HI0Q_HW_IDX(x) | BIT_P0HI0Q_HW_IDX(v))
  21396. #endif
  21397. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21398. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21399. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21400. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21401. /* 2 REG_HI0Q_TXBD_IDX (Offset 0x03B8) */
  21402. #define BIT_SHIFT_HI0Q_HOST_IDX 0
  21403. #define BIT_MASK_HI0Q_HOST_IDX 0xfff
  21404. #define BIT_HI0Q_HOST_IDX(x) \
  21405. (((x) & BIT_MASK_HI0Q_HOST_IDX) << BIT_SHIFT_HI0Q_HOST_IDX)
  21406. #define BITS_HI0Q_HOST_IDX (BIT_MASK_HI0Q_HOST_IDX << BIT_SHIFT_HI0Q_HOST_IDX)
  21407. #define BIT_CLEAR_HI0Q_HOST_IDX(x) ((x) & (~BITS_HI0Q_HOST_IDX))
  21408. #define BIT_GET_HI0Q_HOST_IDX(x) \
  21409. (((x) >> BIT_SHIFT_HI0Q_HOST_IDX) & BIT_MASK_HI0Q_HOST_IDX)
  21410. #define BIT_SET_HI0Q_HOST_IDX(x, v) \
  21411. (BIT_CLEAR_HI0Q_HOST_IDX(x) | BIT_HI0Q_HOST_IDX(v))
  21412. #endif
  21413. #if (HALMAC_8814B_SUPPORT)
  21414. /* 2 REG_P0HI0Q_TXBD_IDX (Offset 0x03B8) */
  21415. #define BIT_SHIFT_P0HI0Q_HOST_IDX 0
  21416. #define BIT_MASK_P0HI0Q_HOST_IDX 0xfff
  21417. #define BIT_P0HI0Q_HOST_IDX(x) \
  21418. (((x) & BIT_MASK_P0HI0Q_HOST_IDX) << BIT_SHIFT_P0HI0Q_HOST_IDX)
  21419. #define BITS_P0HI0Q_HOST_IDX \
  21420. (BIT_MASK_P0HI0Q_HOST_IDX << BIT_SHIFT_P0HI0Q_HOST_IDX)
  21421. #define BIT_CLEAR_P0HI0Q_HOST_IDX(x) ((x) & (~BITS_P0HI0Q_HOST_IDX))
  21422. #define BIT_GET_P0HI0Q_HOST_IDX(x) \
  21423. (((x) >> BIT_SHIFT_P0HI0Q_HOST_IDX) & BIT_MASK_P0HI0Q_HOST_IDX)
  21424. #define BIT_SET_P0HI0Q_HOST_IDX(x, v) \
  21425. (BIT_CLEAR_P0HI0Q_HOST_IDX(x) | BIT_P0HI0Q_HOST_IDX(v))
  21426. #endif
  21427. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21428. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21429. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21430. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21431. /* 2 REG_HI1Q_TXBD_IDX (Offset 0x03BC) */
  21432. #define BIT_SHIFT_HI1Q_HW_IDX 16
  21433. #define BIT_MASK_HI1Q_HW_IDX 0xfff
  21434. #define BIT_HI1Q_HW_IDX(x) \
  21435. (((x) & BIT_MASK_HI1Q_HW_IDX) << BIT_SHIFT_HI1Q_HW_IDX)
  21436. #define BITS_HI1Q_HW_IDX (BIT_MASK_HI1Q_HW_IDX << BIT_SHIFT_HI1Q_HW_IDX)
  21437. #define BIT_CLEAR_HI1Q_HW_IDX(x) ((x) & (~BITS_HI1Q_HW_IDX))
  21438. #define BIT_GET_HI1Q_HW_IDX(x) \
  21439. (((x) >> BIT_SHIFT_HI1Q_HW_IDX) & BIT_MASK_HI1Q_HW_IDX)
  21440. #define BIT_SET_HI1Q_HW_IDX(x, v) \
  21441. (BIT_CLEAR_HI1Q_HW_IDX(x) | BIT_HI1Q_HW_IDX(v))
  21442. #endif
  21443. #if (HALMAC_8814B_SUPPORT)
  21444. /* 2 REG_P0HI1Q_TXBD_IDX (Offset 0x03BC) */
  21445. #define BIT_SHIFT_P0HI1Q_HW_IDX 16
  21446. #define BIT_MASK_P0HI1Q_HW_IDX 0xfff
  21447. #define BIT_P0HI1Q_HW_IDX(x) \
  21448. (((x) & BIT_MASK_P0HI1Q_HW_IDX) << BIT_SHIFT_P0HI1Q_HW_IDX)
  21449. #define BITS_P0HI1Q_HW_IDX (BIT_MASK_P0HI1Q_HW_IDX << BIT_SHIFT_P0HI1Q_HW_IDX)
  21450. #define BIT_CLEAR_P0HI1Q_HW_IDX(x) ((x) & (~BITS_P0HI1Q_HW_IDX))
  21451. #define BIT_GET_P0HI1Q_HW_IDX(x) \
  21452. (((x) >> BIT_SHIFT_P0HI1Q_HW_IDX) & BIT_MASK_P0HI1Q_HW_IDX)
  21453. #define BIT_SET_P0HI1Q_HW_IDX(x, v) \
  21454. (BIT_CLEAR_P0HI1Q_HW_IDX(x) | BIT_P0HI1Q_HW_IDX(v))
  21455. #endif
  21456. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21457. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21458. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21459. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21460. /* 2 REG_HI1Q_TXBD_IDX (Offset 0x03BC) */
  21461. #define BIT_SHIFT_HI1Q_HOST_IDX 0
  21462. #define BIT_MASK_HI1Q_HOST_IDX 0xfff
  21463. #define BIT_HI1Q_HOST_IDX(x) \
  21464. (((x) & BIT_MASK_HI1Q_HOST_IDX) << BIT_SHIFT_HI1Q_HOST_IDX)
  21465. #define BITS_HI1Q_HOST_IDX (BIT_MASK_HI1Q_HOST_IDX << BIT_SHIFT_HI1Q_HOST_IDX)
  21466. #define BIT_CLEAR_HI1Q_HOST_IDX(x) ((x) & (~BITS_HI1Q_HOST_IDX))
  21467. #define BIT_GET_HI1Q_HOST_IDX(x) \
  21468. (((x) >> BIT_SHIFT_HI1Q_HOST_IDX) & BIT_MASK_HI1Q_HOST_IDX)
  21469. #define BIT_SET_HI1Q_HOST_IDX(x, v) \
  21470. (BIT_CLEAR_HI1Q_HOST_IDX(x) | BIT_HI1Q_HOST_IDX(v))
  21471. #endif
  21472. #if (HALMAC_8814B_SUPPORT)
  21473. /* 2 REG_P0HI1Q_TXBD_IDX (Offset 0x03BC) */
  21474. #define BIT_SHIFT_P0HI1Q_HOST_IDX 0
  21475. #define BIT_MASK_P0HI1Q_HOST_IDX 0xfff
  21476. #define BIT_P0HI1Q_HOST_IDX(x) \
  21477. (((x) & BIT_MASK_P0HI1Q_HOST_IDX) << BIT_SHIFT_P0HI1Q_HOST_IDX)
  21478. #define BITS_P0HI1Q_HOST_IDX \
  21479. (BIT_MASK_P0HI1Q_HOST_IDX << BIT_SHIFT_P0HI1Q_HOST_IDX)
  21480. #define BIT_CLEAR_P0HI1Q_HOST_IDX(x) ((x) & (~BITS_P0HI1Q_HOST_IDX))
  21481. #define BIT_GET_P0HI1Q_HOST_IDX(x) \
  21482. (((x) >> BIT_SHIFT_P0HI1Q_HOST_IDX) & BIT_MASK_P0HI1Q_HOST_IDX)
  21483. #define BIT_SET_P0HI1Q_HOST_IDX(x, v) \
  21484. (BIT_CLEAR_P0HI1Q_HOST_IDX(x) | BIT_P0HI1Q_HOST_IDX(v))
  21485. #endif
  21486. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21487. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21488. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21489. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21490. /* 2 REG_HI2Q_TXBD_IDX (Offset 0x03C0) */
  21491. #define BIT_SHIFT_HI2Q_HW_IDX 16
  21492. #define BIT_MASK_HI2Q_HW_IDX 0xfff
  21493. #define BIT_HI2Q_HW_IDX(x) \
  21494. (((x) & BIT_MASK_HI2Q_HW_IDX) << BIT_SHIFT_HI2Q_HW_IDX)
  21495. #define BITS_HI2Q_HW_IDX (BIT_MASK_HI2Q_HW_IDX << BIT_SHIFT_HI2Q_HW_IDX)
  21496. #define BIT_CLEAR_HI2Q_HW_IDX(x) ((x) & (~BITS_HI2Q_HW_IDX))
  21497. #define BIT_GET_HI2Q_HW_IDX(x) \
  21498. (((x) >> BIT_SHIFT_HI2Q_HW_IDX) & BIT_MASK_HI2Q_HW_IDX)
  21499. #define BIT_SET_HI2Q_HW_IDX(x, v) \
  21500. (BIT_CLEAR_HI2Q_HW_IDX(x) | BIT_HI2Q_HW_IDX(v))
  21501. #endif
  21502. #if (HALMAC_8814B_SUPPORT)
  21503. /* 2 REG_P0HI2Q_TXBD_IDX (Offset 0x03C0) */
  21504. #define BIT_SHIFT_P0HI2Q_HW_IDX 16
  21505. #define BIT_MASK_P0HI2Q_HW_IDX 0xfff
  21506. #define BIT_P0HI2Q_HW_IDX(x) \
  21507. (((x) & BIT_MASK_P0HI2Q_HW_IDX) << BIT_SHIFT_P0HI2Q_HW_IDX)
  21508. #define BITS_P0HI2Q_HW_IDX (BIT_MASK_P0HI2Q_HW_IDX << BIT_SHIFT_P0HI2Q_HW_IDX)
  21509. #define BIT_CLEAR_P0HI2Q_HW_IDX(x) ((x) & (~BITS_P0HI2Q_HW_IDX))
  21510. #define BIT_GET_P0HI2Q_HW_IDX(x) \
  21511. (((x) >> BIT_SHIFT_P0HI2Q_HW_IDX) & BIT_MASK_P0HI2Q_HW_IDX)
  21512. #define BIT_SET_P0HI2Q_HW_IDX(x, v) \
  21513. (BIT_CLEAR_P0HI2Q_HW_IDX(x) | BIT_P0HI2Q_HW_IDX(v))
  21514. #endif
  21515. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21516. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21517. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21518. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21519. /* 2 REG_HI2Q_TXBD_IDX (Offset 0x03C0) */
  21520. #define BIT_SHIFT_HI2Q_HOST_IDX 0
  21521. #define BIT_MASK_HI2Q_HOST_IDX 0xfff
  21522. #define BIT_HI2Q_HOST_IDX(x) \
  21523. (((x) & BIT_MASK_HI2Q_HOST_IDX) << BIT_SHIFT_HI2Q_HOST_IDX)
  21524. #define BITS_HI2Q_HOST_IDX (BIT_MASK_HI2Q_HOST_IDX << BIT_SHIFT_HI2Q_HOST_IDX)
  21525. #define BIT_CLEAR_HI2Q_HOST_IDX(x) ((x) & (~BITS_HI2Q_HOST_IDX))
  21526. #define BIT_GET_HI2Q_HOST_IDX(x) \
  21527. (((x) >> BIT_SHIFT_HI2Q_HOST_IDX) & BIT_MASK_HI2Q_HOST_IDX)
  21528. #define BIT_SET_HI2Q_HOST_IDX(x, v) \
  21529. (BIT_CLEAR_HI2Q_HOST_IDX(x) | BIT_HI2Q_HOST_IDX(v))
  21530. #endif
  21531. #if (HALMAC_8814B_SUPPORT)
  21532. /* 2 REG_P0HI2Q_TXBD_IDX (Offset 0x03C0) */
  21533. #define BIT_SHIFT_P0HI2Q_HOST_IDX 0
  21534. #define BIT_MASK_P0HI2Q_HOST_IDX 0xfff
  21535. #define BIT_P0HI2Q_HOST_IDX(x) \
  21536. (((x) & BIT_MASK_P0HI2Q_HOST_IDX) << BIT_SHIFT_P0HI2Q_HOST_IDX)
  21537. #define BITS_P0HI2Q_HOST_IDX \
  21538. (BIT_MASK_P0HI2Q_HOST_IDX << BIT_SHIFT_P0HI2Q_HOST_IDX)
  21539. #define BIT_CLEAR_P0HI2Q_HOST_IDX(x) ((x) & (~BITS_P0HI2Q_HOST_IDX))
  21540. #define BIT_GET_P0HI2Q_HOST_IDX(x) \
  21541. (((x) >> BIT_SHIFT_P0HI2Q_HOST_IDX) & BIT_MASK_P0HI2Q_HOST_IDX)
  21542. #define BIT_SET_P0HI2Q_HOST_IDX(x, v) \
  21543. (BIT_CLEAR_P0HI2Q_HOST_IDX(x) | BIT_P0HI2Q_HOST_IDX(v))
  21544. #endif
  21545. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21546. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21547. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21548. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21549. /* 2 REG_HI3Q_TXBD_IDX (Offset 0x03C4) */
  21550. #define BIT_SHIFT_HI3Q_HW_IDX 16
  21551. #define BIT_MASK_HI3Q_HW_IDX 0xfff
  21552. #define BIT_HI3Q_HW_IDX(x) \
  21553. (((x) & BIT_MASK_HI3Q_HW_IDX) << BIT_SHIFT_HI3Q_HW_IDX)
  21554. #define BITS_HI3Q_HW_IDX (BIT_MASK_HI3Q_HW_IDX << BIT_SHIFT_HI3Q_HW_IDX)
  21555. #define BIT_CLEAR_HI3Q_HW_IDX(x) ((x) & (~BITS_HI3Q_HW_IDX))
  21556. #define BIT_GET_HI3Q_HW_IDX(x) \
  21557. (((x) >> BIT_SHIFT_HI3Q_HW_IDX) & BIT_MASK_HI3Q_HW_IDX)
  21558. #define BIT_SET_HI3Q_HW_IDX(x, v) \
  21559. (BIT_CLEAR_HI3Q_HW_IDX(x) | BIT_HI3Q_HW_IDX(v))
  21560. #endif
  21561. #if (HALMAC_8814B_SUPPORT)
  21562. /* 2 REG_P0HI3Q_TXBD_IDX (Offset 0x03C4) */
  21563. #define BIT_SHIFT_P0HI3Q_HW_IDX 16
  21564. #define BIT_MASK_P0HI3Q_HW_IDX 0xfff
  21565. #define BIT_P0HI3Q_HW_IDX(x) \
  21566. (((x) & BIT_MASK_P0HI3Q_HW_IDX) << BIT_SHIFT_P0HI3Q_HW_IDX)
  21567. #define BITS_P0HI3Q_HW_IDX (BIT_MASK_P0HI3Q_HW_IDX << BIT_SHIFT_P0HI3Q_HW_IDX)
  21568. #define BIT_CLEAR_P0HI3Q_HW_IDX(x) ((x) & (~BITS_P0HI3Q_HW_IDX))
  21569. #define BIT_GET_P0HI3Q_HW_IDX(x) \
  21570. (((x) >> BIT_SHIFT_P0HI3Q_HW_IDX) & BIT_MASK_P0HI3Q_HW_IDX)
  21571. #define BIT_SET_P0HI3Q_HW_IDX(x, v) \
  21572. (BIT_CLEAR_P0HI3Q_HW_IDX(x) | BIT_P0HI3Q_HW_IDX(v))
  21573. #endif
  21574. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21575. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21576. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21577. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21578. /* 2 REG_HI3Q_TXBD_IDX (Offset 0x03C4) */
  21579. #define BIT_SHIFT_HI3Q_HOST_IDX 0
  21580. #define BIT_MASK_HI3Q_HOST_IDX 0xfff
  21581. #define BIT_HI3Q_HOST_IDX(x) \
  21582. (((x) & BIT_MASK_HI3Q_HOST_IDX) << BIT_SHIFT_HI3Q_HOST_IDX)
  21583. #define BITS_HI3Q_HOST_IDX (BIT_MASK_HI3Q_HOST_IDX << BIT_SHIFT_HI3Q_HOST_IDX)
  21584. #define BIT_CLEAR_HI3Q_HOST_IDX(x) ((x) & (~BITS_HI3Q_HOST_IDX))
  21585. #define BIT_GET_HI3Q_HOST_IDX(x) \
  21586. (((x) >> BIT_SHIFT_HI3Q_HOST_IDX) & BIT_MASK_HI3Q_HOST_IDX)
  21587. #define BIT_SET_HI3Q_HOST_IDX(x, v) \
  21588. (BIT_CLEAR_HI3Q_HOST_IDX(x) | BIT_HI3Q_HOST_IDX(v))
  21589. #endif
  21590. #if (HALMAC_8814B_SUPPORT)
  21591. /* 2 REG_P0HI3Q_TXBD_IDX (Offset 0x03C4) */
  21592. #define BIT_SHIFT_P0HI3Q_HOST_IDX 0
  21593. #define BIT_MASK_P0HI3Q_HOST_IDX 0xfff
  21594. #define BIT_P0HI3Q_HOST_IDX(x) \
  21595. (((x) & BIT_MASK_P0HI3Q_HOST_IDX) << BIT_SHIFT_P0HI3Q_HOST_IDX)
  21596. #define BITS_P0HI3Q_HOST_IDX \
  21597. (BIT_MASK_P0HI3Q_HOST_IDX << BIT_SHIFT_P0HI3Q_HOST_IDX)
  21598. #define BIT_CLEAR_P0HI3Q_HOST_IDX(x) ((x) & (~BITS_P0HI3Q_HOST_IDX))
  21599. #define BIT_GET_P0HI3Q_HOST_IDX(x) \
  21600. (((x) >> BIT_SHIFT_P0HI3Q_HOST_IDX) & BIT_MASK_P0HI3Q_HOST_IDX)
  21601. #define BIT_SET_P0HI3Q_HOST_IDX(x, v) \
  21602. (BIT_CLEAR_P0HI3Q_HOST_IDX(x) | BIT_P0HI3Q_HOST_IDX(v))
  21603. #endif
  21604. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21605. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21606. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21607. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21608. /* 2 REG_HI4Q_TXBD_IDX (Offset 0x03C8) */
  21609. #define BIT_SHIFT_HI4Q_HW_IDX 16
  21610. #define BIT_MASK_HI4Q_HW_IDX 0xfff
  21611. #define BIT_HI4Q_HW_IDX(x) \
  21612. (((x) & BIT_MASK_HI4Q_HW_IDX) << BIT_SHIFT_HI4Q_HW_IDX)
  21613. #define BITS_HI4Q_HW_IDX (BIT_MASK_HI4Q_HW_IDX << BIT_SHIFT_HI4Q_HW_IDX)
  21614. #define BIT_CLEAR_HI4Q_HW_IDX(x) ((x) & (~BITS_HI4Q_HW_IDX))
  21615. #define BIT_GET_HI4Q_HW_IDX(x) \
  21616. (((x) >> BIT_SHIFT_HI4Q_HW_IDX) & BIT_MASK_HI4Q_HW_IDX)
  21617. #define BIT_SET_HI4Q_HW_IDX(x, v) \
  21618. (BIT_CLEAR_HI4Q_HW_IDX(x) | BIT_HI4Q_HW_IDX(v))
  21619. #endif
  21620. #if (HALMAC_8814B_SUPPORT)
  21621. /* 2 REG_P0HI4Q_TXBD_IDX (Offset 0x03C8) */
  21622. #define BIT_SHIFT_P0HI4Q_HW_IDX 16
  21623. #define BIT_MASK_P0HI4Q_HW_IDX 0xfff
  21624. #define BIT_P0HI4Q_HW_IDX(x) \
  21625. (((x) & BIT_MASK_P0HI4Q_HW_IDX) << BIT_SHIFT_P0HI4Q_HW_IDX)
  21626. #define BITS_P0HI4Q_HW_IDX (BIT_MASK_P0HI4Q_HW_IDX << BIT_SHIFT_P0HI4Q_HW_IDX)
  21627. #define BIT_CLEAR_P0HI4Q_HW_IDX(x) ((x) & (~BITS_P0HI4Q_HW_IDX))
  21628. #define BIT_GET_P0HI4Q_HW_IDX(x) \
  21629. (((x) >> BIT_SHIFT_P0HI4Q_HW_IDX) & BIT_MASK_P0HI4Q_HW_IDX)
  21630. #define BIT_SET_P0HI4Q_HW_IDX(x, v) \
  21631. (BIT_CLEAR_P0HI4Q_HW_IDX(x) | BIT_P0HI4Q_HW_IDX(v))
  21632. #endif
  21633. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21634. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21635. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21636. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21637. /* 2 REG_HI4Q_TXBD_IDX (Offset 0x03C8) */
  21638. #define BIT_SHIFT_HI4Q_HOST_IDX 0
  21639. #define BIT_MASK_HI4Q_HOST_IDX 0xfff
  21640. #define BIT_HI4Q_HOST_IDX(x) \
  21641. (((x) & BIT_MASK_HI4Q_HOST_IDX) << BIT_SHIFT_HI4Q_HOST_IDX)
  21642. #define BITS_HI4Q_HOST_IDX (BIT_MASK_HI4Q_HOST_IDX << BIT_SHIFT_HI4Q_HOST_IDX)
  21643. #define BIT_CLEAR_HI4Q_HOST_IDX(x) ((x) & (~BITS_HI4Q_HOST_IDX))
  21644. #define BIT_GET_HI4Q_HOST_IDX(x) \
  21645. (((x) >> BIT_SHIFT_HI4Q_HOST_IDX) & BIT_MASK_HI4Q_HOST_IDX)
  21646. #define BIT_SET_HI4Q_HOST_IDX(x, v) \
  21647. (BIT_CLEAR_HI4Q_HOST_IDX(x) | BIT_HI4Q_HOST_IDX(v))
  21648. #endif
  21649. #if (HALMAC_8814B_SUPPORT)
  21650. /* 2 REG_P0HI4Q_TXBD_IDX (Offset 0x03C8) */
  21651. #define BIT_SHIFT_P0HI4Q_HOST_IDX 0
  21652. #define BIT_MASK_P0HI4Q_HOST_IDX 0xfff
  21653. #define BIT_P0HI4Q_HOST_IDX(x) \
  21654. (((x) & BIT_MASK_P0HI4Q_HOST_IDX) << BIT_SHIFT_P0HI4Q_HOST_IDX)
  21655. #define BITS_P0HI4Q_HOST_IDX \
  21656. (BIT_MASK_P0HI4Q_HOST_IDX << BIT_SHIFT_P0HI4Q_HOST_IDX)
  21657. #define BIT_CLEAR_P0HI4Q_HOST_IDX(x) ((x) & (~BITS_P0HI4Q_HOST_IDX))
  21658. #define BIT_GET_P0HI4Q_HOST_IDX(x) \
  21659. (((x) >> BIT_SHIFT_P0HI4Q_HOST_IDX) & BIT_MASK_P0HI4Q_HOST_IDX)
  21660. #define BIT_SET_P0HI4Q_HOST_IDX(x, v) \
  21661. (BIT_CLEAR_P0HI4Q_HOST_IDX(x) | BIT_P0HI4Q_HOST_IDX(v))
  21662. #endif
  21663. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21664. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21665. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21666. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21667. /* 2 REG_HI5Q_TXBD_IDX (Offset 0x03CC) */
  21668. #define BIT_SHIFT_HI5Q_HW_IDX 16
  21669. #define BIT_MASK_HI5Q_HW_IDX 0xfff
  21670. #define BIT_HI5Q_HW_IDX(x) \
  21671. (((x) & BIT_MASK_HI5Q_HW_IDX) << BIT_SHIFT_HI5Q_HW_IDX)
  21672. #define BITS_HI5Q_HW_IDX (BIT_MASK_HI5Q_HW_IDX << BIT_SHIFT_HI5Q_HW_IDX)
  21673. #define BIT_CLEAR_HI5Q_HW_IDX(x) ((x) & (~BITS_HI5Q_HW_IDX))
  21674. #define BIT_GET_HI5Q_HW_IDX(x) \
  21675. (((x) >> BIT_SHIFT_HI5Q_HW_IDX) & BIT_MASK_HI5Q_HW_IDX)
  21676. #define BIT_SET_HI5Q_HW_IDX(x, v) \
  21677. (BIT_CLEAR_HI5Q_HW_IDX(x) | BIT_HI5Q_HW_IDX(v))
  21678. #endif
  21679. #if (HALMAC_8814B_SUPPORT)
  21680. /* 2 REG_P0HI5Q_TXBD_IDX (Offset 0x03CC) */
  21681. #define BIT_SHIFT_P0HI5Q_HW_IDX 16
  21682. #define BIT_MASK_P0HI5Q_HW_IDX 0xfff
  21683. #define BIT_P0HI5Q_HW_IDX(x) \
  21684. (((x) & BIT_MASK_P0HI5Q_HW_IDX) << BIT_SHIFT_P0HI5Q_HW_IDX)
  21685. #define BITS_P0HI5Q_HW_IDX (BIT_MASK_P0HI5Q_HW_IDX << BIT_SHIFT_P0HI5Q_HW_IDX)
  21686. #define BIT_CLEAR_P0HI5Q_HW_IDX(x) ((x) & (~BITS_P0HI5Q_HW_IDX))
  21687. #define BIT_GET_P0HI5Q_HW_IDX(x) \
  21688. (((x) >> BIT_SHIFT_P0HI5Q_HW_IDX) & BIT_MASK_P0HI5Q_HW_IDX)
  21689. #define BIT_SET_P0HI5Q_HW_IDX(x, v) \
  21690. (BIT_CLEAR_P0HI5Q_HW_IDX(x) | BIT_P0HI5Q_HW_IDX(v))
  21691. #endif
  21692. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21693. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21694. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21695. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21696. /* 2 REG_HI5Q_TXBD_IDX (Offset 0x03CC) */
  21697. #define BIT_SHIFT_HI5Q_HOST_IDX 0
  21698. #define BIT_MASK_HI5Q_HOST_IDX 0xfff
  21699. #define BIT_HI5Q_HOST_IDX(x) \
  21700. (((x) & BIT_MASK_HI5Q_HOST_IDX) << BIT_SHIFT_HI5Q_HOST_IDX)
  21701. #define BITS_HI5Q_HOST_IDX (BIT_MASK_HI5Q_HOST_IDX << BIT_SHIFT_HI5Q_HOST_IDX)
  21702. #define BIT_CLEAR_HI5Q_HOST_IDX(x) ((x) & (~BITS_HI5Q_HOST_IDX))
  21703. #define BIT_GET_HI5Q_HOST_IDX(x) \
  21704. (((x) >> BIT_SHIFT_HI5Q_HOST_IDX) & BIT_MASK_HI5Q_HOST_IDX)
  21705. #define BIT_SET_HI5Q_HOST_IDX(x, v) \
  21706. (BIT_CLEAR_HI5Q_HOST_IDX(x) | BIT_HI5Q_HOST_IDX(v))
  21707. #endif
  21708. #if (HALMAC_8814B_SUPPORT)
  21709. /* 2 REG_P0HI5Q_TXBD_IDX (Offset 0x03CC) */
  21710. #define BIT_SHIFT_P0HI5Q_HOST_IDX 0
  21711. #define BIT_MASK_P0HI5Q_HOST_IDX 0xfff
  21712. #define BIT_P0HI5Q_HOST_IDX(x) \
  21713. (((x) & BIT_MASK_P0HI5Q_HOST_IDX) << BIT_SHIFT_P0HI5Q_HOST_IDX)
  21714. #define BITS_P0HI5Q_HOST_IDX \
  21715. (BIT_MASK_P0HI5Q_HOST_IDX << BIT_SHIFT_P0HI5Q_HOST_IDX)
  21716. #define BIT_CLEAR_P0HI5Q_HOST_IDX(x) ((x) & (~BITS_P0HI5Q_HOST_IDX))
  21717. #define BIT_GET_P0HI5Q_HOST_IDX(x) \
  21718. (((x) >> BIT_SHIFT_P0HI5Q_HOST_IDX) & BIT_MASK_P0HI5Q_HOST_IDX)
  21719. #define BIT_SET_P0HI5Q_HOST_IDX(x, v) \
  21720. (BIT_CLEAR_P0HI5Q_HOST_IDX(x) | BIT_P0HI5Q_HOST_IDX(v))
  21721. #endif
  21722. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21723. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21724. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21725. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21726. /* 2 REG_HI6Q_TXBD_IDX (Offset 0x03D0) */
  21727. #define BIT_SHIFT_HI6Q_HW_IDX 16
  21728. #define BIT_MASK_HI6Q_HW_IDX 0xfff
  21729. #define BIT_HI6Q_HW_IDX(x) \
  21730. (((x) & BIT_MASK_HI6Q_HW_IDX) << BIT_SHIFT_HI6Q_HW_IDX)
  21731. #define BITS_HI6Q_HW_IDX (BIT_MASK_HI6Q_HW_IDX << BIT_SHIFT_HI6Q_HW_IDX)
  21732. #define BIT_CLEAR_HI6Q_HW_IDX(x) ((x) & (~BITS_HI6Q_HW_IDX))
  21733. #define BIT_GET_HI6Q_HW_IDX(x) \
  21734. (((x) >> BIT_SHIFT_HI6Q_HW_IDX) & BIT_MASK_HI6Q_HW_IDX)
  21735. #define BIT_SET_HI6Q_HW_IDX(x, v) \
  21736. (BIT_CLEAR_HI6Q_HW_IDX(x) | BIT_HI6Q_HW_IDX(v))
  21737. #endif
  21738. #if (HALMAC_8814B_SUPPORT)
  21739. /* 2 REG_P0HI6Q_TXBD_IDX (Offset 0x03D0) */
  21740. #define BIT_SHIFT_P0HI6Q_HW_IDX 16
  21741. #define BIT_MASK_P0HI6Q_HW_IDX 0xfff
  21742. #define BIT_P0HI6Q_HW_IDX(x) \
  21743. (((x) & BIT_MASK_P0HI6Q_HW_IDX) << BIT_SHIFT_P0HI6Q_HW_IDX)
  21744. #define BITS_P0HI6Q_HW_IDX (BIT_MASK_P0HI6Q_HW_IDX << BIT_SHIFT_P0HI6Q_HW_IDX)
  21745. #define BIT_CLEAR_P0HI6Q_HW_IDX(x) ((x) & (~BITS_P0HI6Q_HW_IDX))
  21746. #define BIT_GET_P0HI6Q_HW_IDX(x) \
  21747. (((x) >> BIT_SHIFT_P0HI6Q_HW_IDX) & BIT_MASK_P0HI6Q_HW_IDX)
  21748. #define BIT_SET_P0HI6Q_HW_IDX(x, v) \
  21749. (BIT_CLEAR_P0HI6Q_HW_IDX(x) | BIT_P0HI6Q_HW_IDX(v))
  21750. #endif
  21751. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21752. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21753. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21754. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21755. /* 2 REG_HI6Q_TXBD_IDX (Offset 0x03D0) */
  21756. #define BIT_SHIFT_HI6Q_HOST_IDX 0
  21757. #define BIT_MASK_HI6Q_HOST_IDX 0xfff
  21758. #define BIT_HI6Q_HOST_IDX(x) \
  21759. (((x) & BIT_MASK_HI6Q_HOST_IDX) << BIT_SHIFT_HI6Q_HOST_IDX)
  21760. #define BITS_HI6Q_HOST_IDX (BIT_MASK_HI6Q_HOST_IDX << BIT_SHIFT_HI6Q_HOST_IDX)
  21761. #define BIT_CLEAR_HI6Q_HOST_IDX(x) ((x) & (~BITS_HI6Q_HOST_IDX))
  21762. #define BIT_GET_HI6Q_HOST_IDX(x) \
  21763. (((x) >> BIT_SHIFT_HI6Q_HOST_IDX) & BIT_MASK_HI6Q_HOST_IDX)
  21764. #define BIT_SET_HI6Q_HOST_IDX(x, v) \
  21765. (BIT_CLEAR_HI6Q_HOST_IDX(x) | BIT_HI6Q_HOST_IDX(v))
  21766. #endif
  21767. #if (HALMAC_8814B_SUPPORT)
  21768. /* 2 REG_P0HI6Q_TXBD_IDX (Offset 0x03D0) */
  21769. #define BIT_SHIFT_P0HI6Q_HOST_IDX 0
  21770. #define BIT_MASK_P0HI6Q_HOST_IDX 0xfff
  21771. #define BIT_P0HI6Q_HOST_IDX(x) \
  21772. (((x) & BIT_MASK_P0HI6Q_HOST_IDX) << BIT_SHIFT_P0HI6Q_HOST_IDX)
  21773. #define BITS_P0HI6Q_HOST_IDX \
  21774. (BIT_MASK_P0HI6Q_HOST_IDX << BIT_SHIFT_P0HI6Q_HOST_IDX)
  21775. #define BIT_CLEAR_P0HI6Q_HOST_IDX(x) ((x) & (~BITS_P0HI6Q_HOST_IDX))
  21776. #define BIT_GET_P0HI6Q_HOST_IDX(x) \
  21777. (((x) >> BIT_SHIFT_P0HI6Q_HOST_IDX) & BIT_MASK_P0HI6Q_HOST_IDX)
  21778. #define BIT_SET_P0HI6Q_HOST_IDX(x, v) \
  21779. (BIT_CLEAR_P0HI6Q_HOST_IDX(x) | BIT_P0HI6Q_HOST_IDX(v))
  21780. #endif
  21781. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21782. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21783. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21784. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21785. /* 2 REG_HI7Q_TXBD_IDX (Offset 0x03D4) */
  21786. #define BIT_SHIFT_HI7Q_HW_IDX 16
  21787. #define BIT_MASK_HI7Q_HW_IDX 0xfff
  21788. #define BIT_HI7Q_HW_IDX(x) \
  21789. (((x) & BIT_MASK_HI7Q_HW_IDX) << BIT_SHIFT_HI7Q_HW_IDX)
  21790. #define BITS_HI7Q_HW_IDX (BIT_MASK_HI7Q_HW_IDX << BIT_SHIFT_HI7Q_HW_IDX)
  21791. #define BIT_CLEAR_HI7Q_HW_IDX(x) ((x) & (~BITS_HI7Q_HW_IDX))
  21792. #define BIT_GET_HI7Q_HW_IDX(x) \
  21793. (((x) >> BIT_SHIFT_HI7Q_HW_IDX) & BIT_MASK_HI7Q_HW_IDX)
  21794. #define BIT_SET_HI7Q_HW_IDX(x, v) \
  21795. (BIT_CLEAR_HI7Q_HW_IDX(x) | BIT_HI7Q_HW_IDX(v))
  21796. #endif
  21797. #if (HALMAC_8814B_SUPPORT)
  21798. /* 2 REG_P0HI7Q_TXBD_IDX (Offset 0x03D4) */
  21799. #define BIT_SHIFT_P0HI7Q_HW_IDX 16
  21800. #define BIT_MASK_P0HI7Q_HW_IDX 0xfff
  21801. #define BIT_P0HI7Q_HW_IDX(x) \
  21802. (((x) & BIT_MASK_P0HI7Q_HW_IDX) << BIT_SHIFT_P0HI7Q_HW_IDX)
  21803. #define BITS_P0HI7Q_HW_IDX (BIT_MASK_P0HI7Q_HW_IDX << BIT_SHIFT_P0HI7Q_HW_IDX)
  21804. #define BIT_CLEAR_P0HI7Q_HW_IDX(x) ((x) & (~BITS_P0HI7Q_HW_IDX))
  21805. #define BIT_GET_P0HI7Q_HW_IDX(x) \
  21806. (((x) >> BIT_SHIFT_P0HI7Q_HW_IDX) & BIT_MASK_P0HI7Q_HW_IDX)
  21807. #define BIT_SET_P0HI7Q_HW_IDX(x, v) \
  21808. (BIT_CLEAR_P0HI7Q_HW_IDX(x) | BIT_P0HI7Q_HW_IDX(v))
  21809. #endif
  21810. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21811. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21812. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  21813. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21814. /* 2 REG_HI7Q_TXBD_IDX (Offset 0x03D4) */
  21815. #define BIT_SHIFT_HI7Q_HOST_IDX 0
  21816. #define BIT_MASK_HI7Q_HOST_IDX 0xfff
  21817. #define BIT_HI7Q_HOST_IDX(x) \
  21818. (((x) & BIT_MASK_HI7Q_HOST_IDX) << BIT_SHIFT_HI7Q_HOST_IDX)
  21819. #define BITS_HI7Q_HOST_IDX (BIT_MASK_HI7Q_HOST_IDX << BIT_SHIFT_HI7Q_HOST_IDX)
  21820. #define BIT_CLEAR_HI7Q_HOST_IDX(x) ((x) & (~BITS_HI7Q_HOST_IDX))
  21821. #define BIT_GET_HI7Q_HOST_IDX(x) \
  21822. (((x) >> BIT_SHIFT_HI7Q_HOST_IDX) & BIT_MASK_HI7Q_HOST_IDX)
  21823. #define BIT_SET_HI7Q_HOST_IDX(x, v) \
  21824. (BIT_CLEAR_HI7Q_HOST_IDX(x) | BIT_HI7Q_HOST_IDX(v))
  21825. #endif
  21826. #if (HALMAC_8814B_SUPPORT)
  21827. /* 2 REG_P0HI7Q_TXBD_IDX (Offset 0x03D4) */
  21828. #define BIT_SHIFT_P0HI7Q_HOST_IDX 0
  21829. #define BIT_MASK_P0HI7Q_HOST_IDX 0xfff
  21830. #define BIT_P0HI7Q_HOST_IDX(x) \
  21831. (((x) & BIT_MASK_P0HI7Q_HOST_IDX) << BIT_SHIFT_P0HI7Q_HOST_IDX)
  21832. #define BITS_P0HI7Q_HOST_IDX \
  21833. (BIT_MASK_P0HI7Q_HOST_IDX << BIT_SHIFT_P0HI7Q_HOST_IDX)
  21834. #define BIT_CLEAR_P0HI7Q_HOST_IDX(x) ((x) & (~BITS_P0HI7Q_HOST_IDX))
  21835. #define BIT_GET_P0HI7Q_HOST_IDX(x) \
  21836. (((x) >> BIT_SHIFT_P0HI7Q_HOST_IDX) & BIT_MASK_P0HI7Q_HOST_IDX)
  21837. #define BIT_SET_P0HI7Q_HOST_IDX(x, v) \
  21838. (BIT_CLEAR_P0HI7Q_HOST_IDX(x) | BIT_P0HI7Q_HOST_IDX(v))
  21839. /* 2 REG_DBGSEL_PCIE_HRPWM1_HCPWM1_V1 (Offset 0x03D8) */
  21840. #define BIT_DIS_TXDMA_PRE_V1 BIT(31)
  21841. #define BIT_DIS_RXDMA_PRE_V1 BIT(30)
  21842. #define BIT_SHIFT_HPS_CLKR_PCIE_V1 28
  21843. #define BIT_MASK_HPS_CLKR_PCIE_V1 0x3
  21844. #define BIT_HPS_CLKR_PCIE_V1(x) \
  21845. (((x) & BIT_MASK_HPS_CLKR_PCIE_V1) << BIT_SHIFT_HPS_CLKR_PCIE_V1)
  21846. #define BITS_HPS_CLKR_PCIE_V1 \
  21847. (BIT_MASK_HPS_CLKR_PCIE_V1 << BIT_SHIFT_HPS_CLKR_PCIE_V1)
  21848. #define BIT_CLEAR_HPS_CLKR_PCIE_V1(x) ((x) & (~BITS_HPS_CLKR_PCIE_V1))
  21849. #define BIT_GET_HPS_CLKR_PCIE_V1(x) \
  21850. (((x) >> BIT_SHIFT_HPS_CLKR_PCIE_V1) & BIT_MASK_HPS_CLKR_PCIE_V1)
  21851. #define BIT_SET_HPS_CLKR_PCIE_V1(x, v) \
  21852. (BIT_CLEAR_HPS_CLKR_PCIE_V1(x) | BIT_HPS_CLKR_PCIE_V1(v))
  21853. #define BIT_PCIE_INT_V1 BIT(27)
  21854. #define BIT_TXFLAG_EXIT_L1_EN_V1 BIT(26)
  21855. #define BIT_EN_RXDMA_ALIGN_V2 BIT(25)
  21856. #define BIT_EN_TXDMA_ALIGN_V2 BIT(24)
  21857. #define BIT_SHIFT_PCIE_HCPWM_V1 16
  21858. #define BIT_MASK_PCIE_HCPWM_V1 0xff
  21859. #define BIT_PCIE_HCPWM_V1(x) \
  21860. (((x) & BIT_MASK_PCIE_HCPWM_V1) << BIT_SHIFT_PCIE_HCPWM_V1)
  21861. #define BITS_PCIE_HCPWM_V1 (BIT_MASK_PCIE_HCPWM_V1 << BIT_SHIFT_PCIE_HCPWM_V1)
  21862. #define BIT_CLEAR_PCIE_HCPWM_V1(x) ((x) & (~BITS_PCIE_HCPWM_V1))
  21863. #define BIT_GET_PCIE_HCPWM_V1(x) \
  21864. (((x) >> BIT_SHIFT_PCIE_HCPWM_V1) & BIT_MASK_PCIE_HCPWM_V1)
  21865. #define BIT_SET_PCIE_HCPWM_V1(x, v) \
  21866. (BIT_CLEAR_PCIE_HCPWM_V1(x) | BIT_PCIE_HCPWM_V1(v))
  21867. #define BIT_SHIFT_PCIE_HRPWM_V1 8
  21868. #define BIT_MASK_PCIE_HRPWM_V1 0xff
  21869. #define BIT_PCIE_HRPWM_V1(x) \
  21870. (((x) & BIT_MASK_PCIE_HRPWM_V1) << BIT_SHIFT_PCIE_HRPWM_V1)
  21871. #define BITS_PCIE_HRPWM_V1 (BIT_MASK_PCIE_HRPWM_V1 << BIT_SHIFT_PCIE_HRPWM_V1)
  21872. #define BIT_CLEAR_PCIE_HRPWM_V1(x) ((x) & (~BITS_PCIE_HRPWM_V1))
  21873. #define BIT_GET_PCIE_HRPWM_V1(x) \
  21874. (((x) >> BIT_SHIFT_PCIE_HRPWM_V1) & BIT_MASK_PCIE_HRPWM_V1)
  21875. #define BIT_SET_PCIE_HRPWM_V1(x, v) \
  21876. (BIT_CLEAR_PCIE_HRPWM_V1(x) | BIT_PCIE_HRPWM_V1(v))
  21877. #endif
  21878. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  21879. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  21880. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  21881. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  21882. /* 2 REG_DBG_SEL_V1 (Offset 0x03D8) */
  21883. #define BIT_SHIFT_DBG_SEL 0
  21884. #define BIT_MASK_DBG_SEL 0xff
  21885. #define BIT_DBG_SEL(x) (((x) & BIT_MASK_DBG_SEL) << BIT_SHIFT_DBG_SEL)
  21886. #define BITS_DBG_SEL (BIT_MASK_DBG_SEL << BIT_SHIFT_DBG_SEL)
  21887. #define BIT_CLEAR_DBG_SEL(x) ((x) & (~BITS_DBG_SEL))
  21888. #define BIT_GET_DBG_SEL(x) (((x) >> BIT_SHIFT_DBG_SEL) & BIT_MASK_DBG_SEL)
  21889. #define BIT_SET_DBG_SEL(x, v) (BIT_CLEAR_DBG_SEL(x) | BIT_DBG_SEL(v))
  21890. #endif
  21891. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  21892. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  21893. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21894. /* 2 REG_PCIE_HRPWM1_V1 (Offset 0x03D9) */
  21895. #define BIT_SHIFT_PCIE_HRPWM 0
  21896. #define BIT_MASK_PCIE_HRPWM 0xff
  21897. #define BIT_PCIE_HRPWM(x) (((x) & BIT_MASK_PCIE_HRPWM) << BIT_SHIFT_PCIE_HRPWM)
  21898. #define BITS_PCIE_HRPWM (BIT_MASK_PCIE_HRPWM << BIT_SHIFT_PCIE_HRPWM)
  21899. #define BIT_CLEAR_PCIE_HRPWM(x) ((x) & (~BITS_PCIE_HRPWM))
  21900. #define BIT_GET_PCIE_HRPWM(x) \
  21901. (((x) >> BIT_SHIFT_PCIE_HRPWM) & BIT_MASK_PCIE_HRPWM)
  21902. #define BIT_SET_PCIE_HRPWM(x, v) (BIT_CLEAR_PCIE_HRPWM(x) | BIT_PCIE_HRPWM(v))
  21903. #endif
  21904. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  21905. /* 2 REG_HCI_HRPWM1_V1 (Offset 0x03D9) */
  21906. #define BIT_SHIFT_HCI_HRPWM 0
  21907. #define BIT_MASK_HCI_HRPWM 0xff
  21908. #define BIT_HCI_HRPWM(x) (((x) & BIT_MASK_HCI_HRPWM) << BIT_SHIFT_HCI_HRPWM)
  21909. #define BITS_HCI_HRPWM (BIT_MASK_HCI_HRPWM << BIT_SHIFT_HCI_HRPWM)
  21910. #define BIT_CLEAR_HCI_HRPWM(x) ((x) & (~BITS_HCI_HRPWM))
  21911. #define BIT_GET_HCI_HRPWM(x) (((x) >> BIT_SHIFT_HCI_HRPWM) & BIT_MASK_HCI_HRPWM)
  21912. #define BIT_SET_HCI_HRPWM(x, v) (BIT_CLEAR_HCI_HRPWM(x) | BIT_HCI_HRPWM(v))
  21913. #endif
  21914. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  21915. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  21916. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  21917. /* 2 REG_PCIE_HCPWM1_V1 (Offset 0x03DA) */
  21918. #define BIT_SHIFT_PCIE_HCPWM 0
  21919. #define BIT_MASK_PCIE_HCPWM 0xff
  21920. #define BIT_PCIE_HCPWM(x) (((x) & BIT_MASK_PCIE_HCPWM) << BIT_SHIFT_PCIE_HCPWM)
  21921. #define BITS_PCIE_HCPWM (BIT_MASK_PCIE_HCPWM << BIT_SHIFT_PCIE_HCPWM)
  21922. #define BIT_CLEAR_PCIE_HCPWM(x) ((x) & (~BITS_PCIE_HCPWM))
  21923. #define BIT_GET_PCIE_HCPWM(x) \
  21924. (((x) >> BIT_SHIFT_PCIE_HCPWM) & BIT_MASK_PCIE_HCPWM)
  21925. #define BIT_SET_PCIE_HCPWM(x, v) (BIT_CLEAR_PCIE_HCPWM(x) | BIT_PCIE_HCPWM(v))
  21926. #endif
  21927. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  21928. /* 2 REG_HCI_HCPWM1_V1 (Offset 0x03DA) */
  21929. #define BIT_SHIFT_HCI_HCPWM 0
  21930. #define BIT_MASK_HCI_HCPWM 0xff
  21931. #define BIT_HCI_HCPWM(x) (((x) & BIT_MASK_HCI_HCPWM) << BIT_SHIFT_HCI_HCPWM)
  21932. #define BITS_HCI_HCPWM (BIT_MASK_HCI_HCPWM << BIT_SHIFT_HCI_HCPWM)
  21933. #define BIT_CLEAR_HCI_HCPWM(x) ((x) & (~BITS_HCI_HCPWM))
  21934. #define BIT_GET_HCI_HCPWM(x) (((x) >> BIT_SHIFT_HCI_HCPWM) & BIT_MASK_HCI_HCPWM)
  21935. #define BIT_SET_HCI_HCPWM(x, v) (BIT_CLEAR_HCI_HCPWM(x) | BIT_HCI_HCPWM(v))
  21936. #endif
  21937. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  21938. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  21939. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  21940. /* 2 REG_PCIE_CTRL2 (Offset 0x03DB) */
  21941. #define BIT_SHIFT_HPS_CLKR_PCIE 4
  21942. #define BIT_MASK_HPS_CLKR_PCIE 0x3
  21943. #define BIT_HPS_CLKR_PCIE(x) \
  21944. (((x) & BIT_MASK_HPS_CLKR_PCIE) << BIT_SHIFT_HPS_CLKR_PCIE)
  21945. #define BITS_HPS_CLKR_PCIE (BIT_MASK_HPS_CLKR_PCIE << BIT_SHIFT_HPS_CLKR_PCIE)
  21946. #define BIT_CLEAR_HPS_CLKR_PCIE(x) ((x) & (~BITS_HPS_CLKR_PCIE))
  21947. #define BIT_GET_HPS_CLKR_PCIE(x) \
  21948. (((x) >> BIT_SHIFT_HPS_CLKR_PCIE) & BIT_MASK_HPS_CLKR_PCIE)
  21949. #define BIT_SET_HPS_CLKR_PCIE(x, v) \
  21950. (BIT_CLEAR_HPS_CLKR_PCIE(x) | BIT_HPS_CLKR_PCIE(v))
  21951. #endif
  21952. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  21953. /* 2 REG_HCI_CTRL2 (Offset 0x03DB) */
  21954. #define BIT_SHIFT_HPS_CLKR_HCI 4
  21955. #define BIT_MASK_HPS_CLKR_HCI 0x3
  21956. #define BIT_HPS_CLKR_HCI(x) \
  21957. (((x) & BIT_MASK_HPS_CLKR_HCI) << BIT_SHIFT_HPS_CLKR_HCI)
  21958. #define BITS_HPS_CLKR_HCI (BIT_MASK_HPS_CLKR_HCI << BIT_SHIFT_HPS_CLKR_HCI)
  21959. #define BIT_CLEAR_HPS_CLKR_HCI(x) ((x) & (~BITS_HPS_CLKR_HCI))
  21960. #define BIT_GET_HPS_CLKR_HCI(x) \
  21961. (((x) >> BIT_SHIFT_HPS_CLKR_HCI) & BIT_MASK_HPS_CLKR_HCI)
  21962. #define BIT_SET_HPS_CLKR_HCI(x, v) \
  21963. (BIT_CLEAR_HPS_CLKR_HCI(x) | BIT_HPS_CLKR_HCI(v))
  21964. #endif
  21965. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  21966. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  21967. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  21968. /* 2 REG_PCIE_CTRL2 (Offset 0x03DB) */
  21969. #define BIT_PCIE_INT BIT(3)
  21970. #endif
  21971. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  21972. /* 2 REG_HCI_CTRL2 (Offset 0x03DB) */
  21973. #define BIT_HCI_INT BIT(3)
  21974. #endif
  21975. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  21976. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  21977. /* 2 REG_PCIE_CTRL2 (Offset 0x03DB) */
  21978. #define BIT_EN_RXDMA_ALIGN BIT(1)
  21979. #define BIT_EN_TXDMA_ALIGN BIT(0)
  21980. #endif
  21981. #if (HALMAC_8814B_SUPPORT)
  21982. /* 2 REG_PCIE_HRPWM2_HCPWM2_V1 (Offset 0x03DC) */
  21983. #define BIT_SHIFT_PCIE_HCPWM2_V1 16
  21984. #define BIT_MASK_PCIE_HCPWM2_V1 0xffff
  21985. #define BIT_PCIE_HCPWM2_V1(x) \
  21986. (((x) & BIT_MASK_PCIE_HCPWM2_V1) << BIT_SHIFT_PCIE_HCPWM2_V1)
  21987. #define BITS_PCIE_HCPWM2_V1 \
  21988. (BIT_MASK_PCIE_HCPWM2_V1 << BIT_SHIFT_PCIE_HCPWM2_V1)
  21989. #define BIT_CLEAR_PCIE_HCPWM2_V1(x) ((x) & (~BITS_PCIE_HCPWM2_V1))
  21990. #define BIT_GET_PCIE_HCPWM2_V1(x) \
  21991. (((x) >> BIT_SHIFT_PCIE_HCPWM2_V1) & BIT_MASK_PCIE_HCPWM2_V1)
  21992. #define BIT_SET_PCIE_HCPWM2_V1(x, v) \
  21993. (BIT_CLEAR_PCIE_HCPWM2_V1(x) | BIT_PCIE_HCPWM2_V1(v))
  21994. #endif
  21995. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  21996. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  21997. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  21998. HALMAC_8881A_SUPPORT)
  21999. /* 2 REG_PCIE_HRPWM2_V1 (Offset 0x03DC) */
  22000. #define BIT_SHIFT_PCIE_HRPWM2 0
  22001. #define BIT_MASK_PCIE_HRPWM2 0xffff
  22002. #define BIT_PCIE_HRPWM2(x) \
  22003. (((x) & BIT_MASK_PCIE_HRPWM2) << BIT_SHIFT_PCIE_HRPWM2)
  22004. #define BITS_PCIE_HRPWM2 (BIT_MASK_PCIE_HRPWM2 << BIT_SHIFT_PCIE_HRPWM2)
  22005. #define BIT_CLEAR_PCIE_HRPWM2(x) ((x) & (~BITS_PCIE_HRPWM2))
  22006. #define BIT_GET_PCIE_HRPWM2(x) \
  22007. (((x) >> BIT_SHIFT_PCIE_HRPWM2) & BIT_MASK_PCIE_HRPWM2)
  22008. #define BIT_SET_PCIE_HRPWM2(x, v) \
  22009. (BIT_CLEAR_PCIE_HRPWM2(x) | BIT_PCIE_HRPWM2(v))
  22010. #endif
  22011. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  22012. /* 2 REG_HCI_HRPWM2_V1 (Offset 0x03DC) */
  22013. #define BIT_SHIFT_HCI_HRPWM2 0
  22014. #define BIT_MASK_HCI_HRPWM2 0xffff
  22015. #define BIT_HCI_HRPWM2(x) (((x) & BIT_MASK_HCI_HRPWM2) << BIT_SHIFT_HCI_HRPWM2)
  22016. #define BITS_HCI_HRPWM2 (BIT_MASK_HCI_HRPWM2 << BIT_SHIFT_HCI_HRPWM2)
  22017. #define BIT_CLEAR_HCI_HRPWM2(x) ((x) & (~BITS_HCI_HRPWM2))
  22018. #define BIT_GET_HCI_HRPWM2(x) \
  22019. (((x) >> BIT_SHIFT_HCI_HRPWM2) & BIT_MASK_HCI_HRPWM2)
  22020. #define BIT_SET_HCI_HRPWM2(x, v) (BIT_CLEAR_HCI_HRPWM2(x) | BIT_HCI_HRPWM2(v))
  22021. #endif
  22022. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22023. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22024. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22025. /* 2 REG_PCIE_HCPWM2_V1 (Offset 0x03DE) */
  22026. #define BIT_SHIFT_PCIE_HCPWM2 0
  22027. #define BIT_MASK_PCIE_HCPWM2 0xffff
  22028. #define BIT_PCIE_HCPWM2(x) \
  22029. (((x) & BIT_MASK_PCIE_HCPWM2) << BIT_SHIFT_PCIE_HCPWM2)
  22030. #define BITS_PCIE_HCPWM2 (BIT_MASK_PCIE_HCPWM2 << BIT_SHIFT_PCIE_HCPWM2)
  22031. #define BIT_CLEAR_PCIE_HCPWM2(x) ((x) & (~BITS_PCIE_HCPWM2))
  22032. #define BIT_GET_PCIE_HCPWM2(x) \
  22033. (((x) >> BIT_SHIFT_PCIE_HCPWM2) & BIT_MASK_PCIE_HCPWM2)
  22034. #define BIT_SET_PCIE_HCPWM2(x, v) \
  22035. (BIT_CLEAR_PCIE_HCPWM2(x) | BIT_PCIE_HCPWM2(v))
  22036. #endif
  22037. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  22038. /* 2 REG_HCI_HCPWM2_V1 (Offset 0x03DE) */
  22039. #define BIT_SHIFT_HCI_HCPWM2 0
  22040. #define BIT_MASK_HCI_HCPWM2 0xffff
  22041. #define BIT_HCI_HCPWM2(x) (((x) & BIT_MASK_HCI_HCPWM2) << BIT_SHIFT_HCI_HCPWM2)
  22042. #define BITS_HCI_HCPWM2 (BIT_MASK_HCI_HCPWM2 << BIT_SHIFT_HCI_HCPWM2)
  22043. #define BIT_CLEAR_HCI_HCPWM2(x) ((x) & (~BITS_HCI_HCPWM2))
  22044. #define BIT_GET_HCI_HCPWM2(x) \
  22045. (((x) >> BIT_SHIFT_HCI_HCPWM2) & BIT_MASK_HCI_HCPWM2)
  22046. #define BIT_SET_HCI_HCPWM2(x, v) (BIT_CLEAR_HCI_HCPWM2(x) | BIT_HCI_HCPWM2(v))
  22047. #endif
  22048. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  22049. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22050. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22051. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22052. /* 2 REG_PCIE_H2C_MSG_V1 (Offset 0x03E0) */
  22053. #define BIT_AC7Q_EMPTY BIT(7)
  22054. #define BIT_AC6Q_EMPTY BIT(6)
  22055. #define BIT_AC5Q_EMPTY BIT(5)
  22056. #define BIT_AC4Q_EMPTY BIT(4)
  22057. #define BIT_AC3Q_EMPTY BIT(3)
  22058. #define BIT_AC2Q_EMPTY BIT(2)
  22059. #define BIT_AC1Q_EMPTY BIT(1)
  22060. #define BIT_SHIFT_DRV2FW_INFO 0
  22061. #define BIT_MASK_DRV2FW_INFO 0xffffffffL
  22062. #define BIT_DRV2FW_INFO(x) \
  22063. (((x) & BIT_MASK_DRV2FW_INFO) << BIT_SHIFT_DRV2FW_INFO)
  22064. #define BITS_DRV2FW_INFO (BIT_MASK_DRV2FW_INFO << BIT_SHIFT_DRV2FW_INFO)
  22065. #define BIT_CLEAR_DRV2FW_INFO(x) ((x) & (~BITS_DRV2FW_INFO))
  22066. #define BIT_GET_DRV2FW_INFO(x) \
  22067. (((x) >> BIT_SHIFT_DRV2FW_INFO) & BIT_MASK_DRV2FW_INFO)
  22068. #define BIT_SET_DRV2FW_INFO(x, v) \
  22069. (BIT_CLEAR_DRV2FW_INFO(x) | BIT_DRV2FW_INFO(v))
  22070. #define BIT_AC0Q_EMPTY BIT(0)
  22071. #endif
  22072. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22073. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  22074. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  22075. HALMAC_8881A_SUPPORT)
  22076. /* 2 REG_PCIE_C2H_MSG_V1 (Offset 0x03E4) */
  22077. #define BIT_SHIFT_HCI_PCIE_C2H_MSG 0
  22078. #define BIT_MASK_HCI_PCIE_C2H_MSG 0xffffffffL
  22079. #define BIT_HCI_PCIE_C2H_MSG(x) \
  22080. (((x) & BIT_MASK_HCI_PCIE_C2H_MSG) << BIT_SHIFT_HCI_PCIE_C2H_MSG)
  22081. #define BITS_HCI_PCIE_C2H_MSG \
  22082. (BIT_MASK_HCI_PCIE_C2H_MSG << BIT_SHIFT_HCI_PCIE_C2H_MSG)
  22083. #define BIT_CLEAR_HCI_PCIE_C2H_MSG(x) ((x) & (~BITS_HCI_PCIE_C2H_MSG))
  22084. #define BIT_GET_HCI_PCIE_C2H_MSG(x) \
  22085. (((x) >> BIT_SHIFT_HCI_PCIE_C2H_MSG) & BIT_MASK_HCI_PCIE_C2H_MSG)
  22086. #define BIT_SET_HCI_PCIE_C2H_MSG(x, v) \
  22087. (BIT_CLEAR_HCI_PCIE_C2H_MSG(x) | BIT_HCI_PCIE_C2H_MSG(v))
  22088. #endif
  22089. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  22090. /* 2 REG_HCI_C2H_MSG_V1 (Offset 0x03E4) */
  22091. #define BIT_SHIFT_HCI_C2H_MSG 0
  22092. #define BIT_MASK_HCI_C2H_MSG 0xffffffffL
  22093. #define BIT_HCI_C2H_MSG(x) \
  22094. (((x) & BIT_MASK_HCI_C2H_MSG) << BIT_SHIFT_HCI_C2H_MSG)
  22095. #define BITS_HCI_C2H_MSG (BIT_MASK_HCI_C2H_MSG << BIT_SHIFT_HCI_C2H_MSG)
  22096. #define BIT_CLEAR_HCI_C2H_MSG(x) ((x) & (~BITS_HCI_C2H_MSG))
  22097. #define BIT_GET_HCI_C2H_MSG(x) \
  22098. (((x) >> BIT_SHIFT_HCI_C2H_MSG) & BIT_MASK_HCI_C2H_MSG)
  22099. #define BIT_SET_HCI_C2H_MSG(x, v) \
  22100. (BIT_CLEAR_HCI_C2H_MSG(x) | BIT_HCI_C2H_MSG(v))
  22101. #endif
  22102. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  22103. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22104. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22105. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  22106. /* 2 REG_DBI_WDATA_V1 (Offset 0x03E8) */
  22107. #define BIT_SHIFT_DBI_WDATA 0
  22108. #define BIT_MASK_DBI_WDATA 0xffffffffL
  22109. #define BIT_DBI_WDATA(x) (((x) & BIT_MASK_DBI_WDATA) << BIT_SHIFT_DBI_WDATA)
  22110. #define BITS_DBI_WDATA (BIT_MASK_DBI_WDATA << BIT_SHIFT_DBI_WDATA)
  22111. #define BIT_CLEAR_DBI_WDATA(x) ((x) & (~BITS_DBI_WDATA))
  22112. #define BIT_GET_DBI_WDATA(x) (((x) >> BIT_SHIFT_DBI_WDATA) & BIT_MASK_DBI_WDATA)
  22113. #define BIT_SET_DBI_WDATA(x, v) (BIT_CLEAR_DBI_WDATA(x) | BIT_DBI_WDATA(v))
  22114. /* 2 REG_DBI_RDATA_V1 (Offset 0x03EC) */
  22115. #define BIT_SHIFT_DBI_RDATA 0
  22116. #define BIT_MASK_DBI_RDATA 0xffffffffL
  22117. #define BIT_DBI_RDATA(x) (((x) & BIT_MASK_DBI_RDATA) << BIT_SHIFT_DBI_RDATA)
  22118. #define BITS_DBI_RDATA (BIT_MASK_DBI_RDATA << BIT_SHIFT_DBI_RDATA)
  22119. #define BIT_CLEAR_DBI_RDATA(x) ((x) & (~BITS_DBI_RDATA))
  22120. #define BIT_GET_DBI_RDATA(x) (((x) >> BIT_SHIFT_DBI_RDATA) & BIT_MASK_DBI_RDATA)
  22121. #define BIT_SET_DBI_RDATA(x, v) (BIT_CLEAR_DBI_RDATA(x) | BIT_DBI_RDATA(v))
  22122. #endif
  22123. #if (HALMAC_8814B_SUPPORT)
  22124. /* 2 REG_DBI_FLAG_V1 (Offset 0x03F0) */
  22125. #define BIT_SHIFT_LOOPBACK_DBG_SEL 28
  22126. #define BIT_MASK_LOOPBACK_DBG_SEL 0xf
  22127. #define BIT_LOOPBACK_DBG_SEL(x) \
  22128. (((x) & BIT_MASK_LOOPBACK_DBG_SEL) << BIT_SHIFT_LOOPBACK_DBG_SEL)
  22129. #define BITS_LOOPBACK_DBG_SEL \
  22130. (BIT_MASK_LOOPBACK_DBG_SEL << BIT_SHIFT_LOOPBACK_DBG_SEL)
  22131. #define BIT_CLEAR_LOOPBACK_DBG_SEL(x) ((x) & (~BITS_LOOPBACK_DBG_SEL))
  22132. #define BIT_GET_LOOPBACK_DBG_SEL(x) \
  22133. (((x) >> BIT_SHIFT_LOOPBACK_DBG_SEL) & BIT_MASK_LOOPBACK_DBG_SEL)
  22134. #define BIT_SET_LOOPBACK_DBG_SEL(x, v) \
  22135. (BIT_CLEAR_LOOPBACK_DBG_SEL(x) | BIT_LOOPBACK_DBG_SEL(v))
  22136. #endif
  22137. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  22138. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22139. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22140. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  22141. /* 2 REG_DBI_FLAG_V1 (Offset 0x03F0) */
  22142. #define BIT_EN_STUCK_DBG BIT(26)
  22143. #define BIT_RX_STUCK BIT(25)
  22144. #define BIT_TX_STUCK BIT(24)
  22145. #define BIT_DBI_RFLAG BIT(17)
  22146. #define BIT_DBI_WFLAG BIT(16)
  22147. #define BIT_SHIFT_DBI_WREN 12
  22148. #define BIT_MASK_DBI_WREN 0xf
  22149. #define BIT_DBI_WREN(x) (((x) & BIT_MASK_DBI_WREN) << BIT_SHIFT_DBI_WREN)
  22150. #define BITS_DBI_WREN (BIT_MASK_DBI_WREN << BIT_SHIFT_DBI_WREN)
  22151. #define BIT_CLEAR_DBI_WREN(x) ((x) & (~BITS_DBI_WREN))
  22152. #define BIT_GET_DBI_WREN(x) (((x) >> BIT_SHIFT_DBI_WREN) & BIT_MASK_DBI_WREN)
  22153. #define BIT_SET_DBI_WREN(x, v) (BIT_CLEAR_DBI_WREN(x) | BIT_DBI_WREN(v))
  22154. #define BIT_SHIFT_DBI_ADDR 0
  22155. #define BIT_MASK_DBI_ADDR 0xfff
  22156. #define BIT_DBI_ADDR(x) (((x) & BIT_MASK_DBI_ADDR) << BIT_SHIFT_DBI_ADDR)
  22157. #define BITS_DBI_ADDR (BIT_MASK_DBI_ADDR << BIT_SHIFT_DBI_ADDR)
  22158. #define BIT_CLEAR_DBI_ADDR(x) ((x) & (~BITS_DBI_ADDR))
  22159. #define BIT_GET_DBI_ADDR(x) (((x) >> BIT_SHIFT_DBI_ADDR) & BIT_MASK_DBI_ADDR)
  22160. #define BIT_SET_DBI_ADDR(x, v) (BIT_CLEAR_DBI_ADDR(x) | BIT_DBI_ADDR(v))
  22161. /* 2 REG_MDIO_V1 (Offset 0x03F4) */
  22162. #define BIT_SHIFT_MDIO_RDATA 16
  22163. #define BIT_MASK_MDIO_RDATA 0xffff
  22164. #define BIT_MDIO_RDATA(x) (((x) & BIT_MASK_MDIO_RDATA) << BIT_SHIFT_MDIO_RDATA)
  22165. #define BITS_MDIO_RDATA (BIT_MASK_MDIO_RDATA << BIT_SHIFT_MDIO_RDATA)
  22166. #define BIT_CLEAR_MDIO_RDATA(x) ((x) & (~BITS_MDIO_RDATA))
  22167. #define BIT_GET_MDIO_RDATA(x) \
  22168. (((x) >> BIT_SHIFT_MDIO_RDATA) & BIT_MASK_MDIO_RDATA)
  22169. #define BIT_SET_MDIO_RDATA(x, v) (BIT_CLEAR_MDIO_RDATA(x) | BIT_MDIO_RDATA(v))
  22170. #define BIT_SHIFT_MDIO_WDATA 0
  22171. #define BIT_MASK_MDIO_WDATA 0xffff
  22172. #define BIT_MDIO_WDATA(x) (((x) & BIT_MASK_MDIO_WDATA) << BIT_SHIFT_MDIO_WDATA)
  22173. #define BITS_MDIO_WDATA (BIT_MASK_MDIO_WDATA << BIT_SHIFT_MDIO_WDATA)
  22174. #define BIT_CLEAR_MDIO_WDATA(x) ((x) & (~BITS_MDIO_WDATA))
  22175. #define BIT_GET_MDIO_WDATA(x) \
  22176. (((x) >> BIT_SHIFT_MDIO_WDATA) & BIT_MASK_MDIO_WDATA)
  22177. #define BIT_SET_MDIO_WDATA(x, v) (BIT_CLEAR_MDIO_WDATA(x) | BIT_MDIO_WDATA(v))
  22178. #endif
  22179. #if (HALMAC_8881A_SUPPORT)
  22180. /* 2 REG_BUS_MIX_CFG (Offset 0x03F8) */
  22181. #define BIT_SHIFT_DELAY_TIME 24
  22182. #define BIT_MASK_DELAY_TIME 0xff
  22183. #define BIT_DELAY_TIME(x) (((x) & BIT_MASK_DELAY_TIME) << BIT_SHIFT_DELAY_TIME)
  22184. #define BITS_DELAY_TIME (BIT_MASK_DELAY_TIME << BIT_SHIFT_DELAY_TIME)
  22185. #define BIT_CLEAR_DELAY_TIME(x) ((x) & (~BITS_DELAY_TIME))
  22186. #define BIT_GET_DELAY_TIME(x) \
  22187. (((x) >> BIT_SHIFT_DELAY_TIME) & BIT_MASK_DELAY_TIME)
  22188. #define BIT_SET_DELAY_TIME(x, v) (BIT_CLEAR_DELAY_TIME(x) | BIT_DELAY_TIME(v))
  22189. #define BIT_RX_TIMER_DELAY_EN BIT(17)
  22190. #endif
  22191. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22192. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  22193. /* 2 REG_PCIE_MIX_CFG (Offset 0x03F8) */
  22194. #define BIT_EN_WATCH_DOG BIT(8)
  22195. #endif
  22196. #if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT)
  22197. /* 2 REG_MDIO2_V1 (Offset 0x03F8) */
  22198. #define BIT_ECRC_EN BIT(7)
  22199. #define BIT_MDIO_RFLAG BIT(6)
  22200. #define BIT_MDIO_WFLAG BIT(5)
  22201. #endif
  22202. #if (HALMAC_8192E_SUPPORT)
  22203. /* 2 REG_MDIO2_V1 (Offset 0x03F8) */
  22204. #define BIT_SHIFT_MDIO_ADDR 0
  22205. #define BIT_MASK_MDIO_ADDR 0x1f
  22206. #define BIT_MDIO_ADDR(x) (((x) & BIT_MASK_MDIO_ADDR) << BIT_SHIFT_MDIO_ADDR)
  22207. #define BITS_MDIO_ADDR (BIT_MASK_MDIO_ADDR << BIT_SHIFT_MDIO_ADDR)
  22208. #define BIT_CLEAR_MDIO_ADDR(x) ((x) & (~BITS_MDIO_ADDR))
  22209. #define BIT_GET_MDIO_ADDR(x) (((x) >> BIT_SHIFT_MDIO_ADDR) & BIT_MASK_MDIO_ADDR)
  22210. #define BIT_SET_MDIO_ADDR(x, v) (BIT_CLEAR_MDIO_ADDR(x) | BIT_MDIO_ADDR(v))
  22211. #define BIT_SHIFT_TXFAIL_DROPCNT 0
  22212. #define BIT_MASK_TXFAIL_DROPCNT 0xffff
  22213. #define BIT_TXFAIL_DROPCNT(x) \
  22214. (((x) & BIT_MASK_TXFAIL_DROPCNT) << BIT_SHIFT_TXFAIL_DROPCNT)
  22215. #define BITS_TXFAIL_DROPCNT \
  22216. (BIT_MASK_TXFAIL_DROPCNT << BIT_SHIFT_TXFAIL_DROPCNT)
  22217. #define BIT_CLEAR_TXFAIL_DROPCNT(x) ((x) & (~BITS_TXFAIL_DROPCNT))
  22218. #define BIT_GET_TXFAIL_DROPCNT(x) \
  22219. (((x) >> BIT_SHIFT_TXFAIL_DROPCNT) & BIT_MASK_TXFAIL_DROPCNT)
  22220. #define BIT_SET_TXFAIL_DROPCNT(x, v) \
  22221. (BIT_CLEAR_TXFAIL_DROPCNT(x) | BIT_TXFAIL_DROPCNT(v))
  22222. #endif
  22223. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22224. HALMAC_8822C_SUPPORT)
  22225. /* 2 REG_PCIE_MIX_CFG (Offset 0x03F8) */
  22226. #define BIT_SHIFT_MDIO_REG_ADDR_V1 0
  22227. #define BIT_MASK_MDIO_REG_ADDR_V1 0x1f
  22228. #define BIT_MDIO_REG_ADDR_V1(x) \
  22229. (((x) & BIT_MASK_MDIO_REG_ADDR_V1) << BIT_SHIFT_MDIO_REG_ADDR_V1)
  22230. #define BITS_MDIO_REG_ADDR_V1 \
  22231. (BIT_MASK_MDIO_REG_ADDR_V1 << BIT_SHIFT_MDIO_REG_ADDR_V1)
  22232. #define BIT_CLEAR_MDIO_REG_ADDR_V1(x) ((x) & (~BITS_MDIO_REG_ADDR_V1))
  22233. #define BIT_GET_MDIO_REG_ADDR_V1(x) \
  22234. (((x) >> BIT_SHIFT_MDIO_REG_ADDR_V1) & BIT_MASK_MDIO_REG_ADDR_V1)
  22235. #define BIT_SET_MDIO_REG_ADDR_V1(x, v) \
  22236. (BIT_CLEAR_MDIO_REG_ADDR_V1(x) | BIT_MDIO_REG_ADDR_V1(v))
  22237. #endif
  22238. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22239. HALMAC_8814AMP_SUPPORT)
  22240. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22241. #define BIT_RXRST_BACKDOOR BIT(31)
  22242. #define BIT_TXRST_BACKDOOR BIT(30)
  22243. #define BIT_RXIDX_RSTB BIT(29)
  22244. #define BIT_TXIDX_RSTB BIT(28)
  22245. #endif
  22246. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  22247. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22248. #define BIT_SHIFT_WATCH_DOG_TIMER 28
  22249. #define BIT_MASK_WATCH_DOG_TIMER 0xf
  22250. #define BIT_WATCH_DOG_TIMER(x) \
  22251. (((x) & BIT_MASK_WATCH_DOG_TIMER) << BIT_SHIFT_WATCH_DOG_TIMER)
  22252. #define BITS_WATCH_DOG_TIMER \
  22253. (BIT_MASK_WATCH_DOG_TIMER << BIT_SHIFT_WATCH_DOG_TIMER)
  22254. #define BIT_CLEAR_WATCH_DOG_TIMER(x) ((x) & (~BITS_WATCH_DOG_TIMER))
  22255. #define BIT_GET_WATCH_DOG_TIMER(x) \
  22256. (((x) >> BIT_SHIFT_WATCH_DOG_TIMER) & BIT_MASK_WATCH_DOG_TIMER)
  22257. #define BIT_SET_WATCH_DOG_TIMER(x, v) \
  22258. (BIT_CLEAR_WATCH_DOG_TIMER(x) | BIT_WATCH_DOG_TIMER(v))
  22259. #endif
  22260. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22261. HALMAC_8814AMP_SUPPORT)
  22262. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22263. #define BIT_DROP_NEXT_RXPKT BIT(27)
  22264. #define BIT_SHORT_CORE_RST_SEL BIT(26)
  22265. #endif
  22266. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  22267. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22268. #define BIT_EXCEPT_RESUME_EN BIT(25)
  22269. #endif
  22270. #if (HALMAC_8192F_SUPPORT)
  22271. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22272. #define BIT_EXCEPT_FLAG BIT(24)
  22273. #endif
  22274. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  22275. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22276. #define BIT_EXCEPT_RESUME_FLAG BIT(24)
  22277. #endif
  22278. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22279. HALMAC_8814AMP_SUPPORT)
  22280. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22281. #define BIT_ALIGN_MTU BIT(23)
  22282. #endif
  22283. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22284. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22285. #define BIT_EN_ALIGN_MTU BIT(23)
  22286. #endif
  22287. #if (HALMAC_8814AMP_SUPPORT)
  22288. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22289. #define BIT_EARLY_TAG_RETURN BIT(22)
  22290. #endif
  22291. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22292. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22293. #define BIT_SHIFT_LATENCY_CONTROL 21
  22294. #define BIT_MASK_LATENCY_CONTROL 0x3
  22295. #define BIT_LATENCY_CONTROL(x) \
  22296. (((x) & BIT_MASK_LATENCY_CONTROL) << BIT_SHIFT_LATENCY_CONTROL)
  22297. #define BITS_LATENCY_CONTROL \
  22298. (BIT_MASK_LATENCY_CONTROL << BIT_SHIFT_LATENCY_CONTROL)
  22299. #define BIT_CLEAR_LATENCY_CONTROL(x) ((x) & (~BITS_LATENCY_CONTROL))
  22300. #define BIT_GET_LATENCY_CONTROL(x) \
  22301. (((x) >> BIT_SHIFT_LATENCY_CONTROL) & BIT_MASK_LATENCY_CONTROL)
  22302. #define BIT_SET_LATENCY_CONTROL(x, v) \
  22303. (BIT_CLEAR_LATENCY_CONTROL(x) | BIT_LATENCY_CONTROL(v))
  22304. #endif
  22305. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22306. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  22307. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22308. HALMAC_8822C_SUPPORT)
  22309. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22310. #define BIT_HOST_GEN2_SUPPORT BIT(20)
  22311. #endif
  22312. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22313. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22314. HALMAC_8822B_SUPPORT)
  22315. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22316. #define BIT_SHIFT_TXDMA_ERR_FLAG 16
  22317. #define BIT_MASK_TXDMA_ERR_FLAG 0xf
  22318. #define BIT_TXDMA_ERR_FLAG(x) \
  22319. (((x) & BIT_MASK_TXDMA_ERR_FLAG) << BIT_SHIFT_TXDMA_ERR_FLAG)
  22320. #define BITS_TXDMA_ERR_FLAG \
  22321. (BIT_MASK_TXDMA_ERR_FLAG << BIT_SHIFT_TXDMA_ERR_FLAG)
  22322. #define BIT_CLEAR_TXDMA_ERR_FLAG(x) ((x) & (~BITS_TXDMA_ERR_FLAG))
  22323. #define BIT_GET_TXDMA_ERR_FLAG(x) \
  22324. (((x) >> BIT_SHIFT_TXDMA_ERR_FLAG) & BIT_MASK_TXDMA_ERR_FLAG)
  22325. #define BIT_SET_TXDMA_ERR_FLAG(x, v) \
  22326. (BIT_CLEAR_TXDMA_ERR_FLAG(x) | BIT_TXDMA_ERR_FLAG(v))
  22327. #endif
  22328. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22329. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22330. #define BIT_SHIFT_TXDMA_ERR_FLAG_V1 15
  22331. #define BIT_MASK_TXDMA_ERR_FLAG_V1 0x1f
  22332. #define BIT_TXDMA_ERR_FLAG_V1(x) \
  22333. (((x) & BIT_MASK_TXDMA_ERR_FLAG_V1) << BIT_SHIFT_TXDMA_ERR_FLAG_V1)
  22334. #define BITS_TXDMA_ERR_FLAG_V1 \
  22335. (BIT_MASK_TXDMA_ERR_FLAG_V1 << BIT_SHIFT_TXDMA_ERR_FLAG_V1)
  22336. #define BIT_CLEAR_TXDMA_ERR_FLAG_V1(x) ((x) & (~BITS_TXDMA_ERR_FLAG_V1))
  22337. #define BIT_GET_TXDMA_ERR_FLAG_V1(x) \
  22338. (((x) >> BIT_SHIFT_TXDMA_ERR_FLAG_V1) & BIT_MASK_TXDMA_ERR_FLAG_V1)
  22339. #define BIT_SET_TXDMA_ERR_FLAG_V1(x, v) \
  22340. (BIT_CLEAR_TXDMA_ERR_FLAG_V1(x) | BIT_TXDMA_ERR_FLAG_V1(v))
  22341. #endif
  22342. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22343. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22344. HALMAC_8822B_SUPPORT)
  22345. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22346. #define BIT_SHIFT_EARLY_MODE_SEL 12
  22347. #define BIT_MASK_EARLY_MODE_SEL 0xf
  22348. #define BIT_EARLY_MODE_SEL(x) \
  22349. (((x) & BIT_MASK_EARLY_MODE_SEL) << BIT_SHIFT_EARLY_MODE_SEL)
  22350. #define BITS_EARLY_MODE_SEL \
  22351. (BIT_MASK_EARLY_MODE_SEL << BIT_SHIFT_EARLY_MODE_SEL)
  22352. #define BIT_CLEAR_EARLY_MODE_SEL(x) ((x) & (~BITS_EARLY_MODE_SEL))
  22353. #define BIT_GET_EARLY_MODE_SEL(x) \
  22354. (((x) >> BIT_SHIFT_EARLY_MODE_SEL) & BIT_MASK_EARLY_MODE_SEL)
  22355. #define BIT_SET_EARLY_MODE_SEL(x, v) \
  22356. (BIT_CLEAR_EARLY_MODE_SEL(x) | BIT_EARLY_MODE_SEL(v))
  22357. #endif
  22358. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22359. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  22360. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22361. HALMAC_8822C_SUPPORT)
  22362. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22363. #define BIT_EPHY_RX50_EN BIT(11)
  22364. #define BIT_SHIFT_MSI_TIMEOUT_ID_V1 8
  22365. #define BIT_MASK_MSI_TIMEOUT_ID_V1 0x7
  22366. #define BIT_MSI_TIMEOUT_ID_V1(x) \
  22367. (((x) & BIT_MASK_MSI_TIMEOUT_ID_V1) << BIT_SHIFT_MSI_TIMEOUT_ID_V1)
  22368. #define BITS_MSI_TIMEOUT_ID_V1 \
  22369. (BIT_MASK_MSI_TIMEOUT_ID_V1 << BIT_SHIFT_MSI_TIMEOUT_ID_V1)
  22370. #define BIT_CLEAR_MSI_TIMEOUT_ID_V1(x) ((x) & (~BITS_MSI_TIMEOUT_ID_V1))
  22371. #define BIT_GET_MSI_TIMEOUT_ID_V1(x) \
  22372. (((x) >> BIT_SHIFT_MSI_TIMEOUT_ID_V1) & BIT_MASK_MSI_TIMEOUT_ID_V1)
  22373. #define BIT_SET_MSI_TIMEOUT_ID_V1(x, v) \
  22374. (BIT_CLEAR_MSI_TIMEOUT_ID_V1(x) | BIT_MSI_TIMEOUT_ID_V1(v))
  22375. #endif
  22376. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22377. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22378. #define BIT_SHIFT_RXDMA_ERR_CNT 8
  22379. #define BIT_MASK_RXDMA_ERR_CNT 0xff
  22380. #define BIT_RXDMA_ERR_CNT(x) \
  22381. (((x) & BIT_MASK_RXDMA_ERR_CNT) << BIT_SHIFT_RXDMA_ERR_CNT)
  22382. #define BITS_RXDMA_ERR_CNT (BIT_MASK_RXDMA_ERR_CNT << BIT_SHIFT_RXDMA_ERR_CNT)
  22383. #define BIT_CLEAR_RXDMA_ERR_CNT(x) ((x) & (~BITS_RXDMA_ERR_CNT))
  22384. #define BIT_GET_RXDMA_ERR_CNT(x) \
  22385. (((x) >> BIT_SHIFT_RXDMA_ERR_CNT) & BIT_MASK_RXDMA_ERR_CNT)
  22386. #define BIT_SET_RXDMA_ERR_CNT(x, v) \
  22387. (BIT_CLEAR_RXDMA_ERR_CNT(x) | BIT_RXDMA_ERR_CNT(v))
  22388. #endif
  22389. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22390. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  22391. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22392. HALMAC_8822C_SUPPORT)
  22393. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22394. #define BIT_RADDR_RD BIT(7)
  22395. #endif
  22396. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22397. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22398. #define BIT_TXDMA_ERR_HANDLE_REQ BIT(7)
  22399. #endif
  22400. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22401. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22402. HALMAC_8822B_SUPPORT)
  22403. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22404. #define BIT_EN_MUL_TAG BIT(6)
  22405. #endif
  22406. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22407. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22408. #define BIT_TXDMA_ERROR_PS BIT(6)
  22409. #endif
  22410. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  22411. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22412. #define BIT_L1OFF_PWR_OFF_EN BIT(6)
  22413. #endif
  22414. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22415. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22416. HALMAC_8822B_SUPPORT)
  22417. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22418. #define BIT_EN_EARLY_MODE BIT(5)
  22419. #endif
  22420. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22421. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22422. #define BIT_EN_TXDMA_STUCK_ERR_HANDLE BIT(5)
  22423. #endif
  22424. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22425. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  22426. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22427. HALMAC_8822C_SUPPORT)
  22428. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22429. #define BIT_L0S_LINK_OFF BIT(4)
  22430. #endif
  22431. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22432. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22433. #define BIT_EN_TXDMA_RTN_ERR_HANDLE BIT(4)
  22434. #endif
  22435. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  22436. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  22437. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22438. HALMAC_8822C_SUPPORT)
  22439. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22440. #define BIT_ACT_LINK_OFF BIT(3)
  22441. #endif
  22442. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22443. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22444. #define BIT_RXDMA_ERR_HANDLE_REQ BIT(3)
  22445. #endif
  22446. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22447. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  22448. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22449. #define BIT_EN_SLOW_MAC_TX BIT(2)
  22450. #endif
  22451. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22452. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22453. #define BIT_RXDMA_ERROR_PS BIT(2)
  22454. #endif
  22455. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  22456. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  22457. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22458. #define BIT_EN_SLOW_MAC_RX BIT(1)
  22459. #endif
  22460. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  22461. /* 2 REG_HCI_MIX_CFG (Offset 0x03FC) */
  22462. #define BIT_EN_RXDMA_STUCK_ERR_HANDLE BIT(1)
  22463. #define BIT_EN_SLOW_MAC_HW BIT(0)
  22464. #define BIT_EN_RXDMA_RTN_ERR_HANDLE BIT(0)
  22465. #endif
  22466. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22467. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22468. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22469. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22470. #define BIT_SHIFT_QUEUEMACID_Q0_V1 25
  22471. #define BIT_MASK_QUEUEMACID_Q0_V1 0x7f
  22472. #define BIT_QUEUEMACID_Q0_V1(x) \
  22473. (((x) & BIT_MASK_QUEUEMACID_Q0_V1) << BIT_SHIFT_QUEUEMACID_Q0_V1)
  22474. #define BITS_QUEUEMACID_Q0_V1 \
  22475. (BIT_MASK_QUEUEMACID_Q0_V1 << BIT_SHIFT_QUEUEMACID_Q0_V1)
  22476. #define BIT_CLEAR_QUEUEMACID_Q0_V1(x) ((x) & (~BITS_QUEUEMACID_Q0_V1))
  22477. #define BIT_GET_QUEUEMACID_Q0_V1(x) \
  22478. (((x) >> BIT_SHIFT_QUEUEMACID_Q0_V1) & BIT_MASK_QUEUEMACID_Q0_V1)
  22479. #define BIT_SET_QUEUEMACID_Q0_V1(x, v) \
  22480. (BIT_CLEAR_QUEUEMACID_Q0_V1(x) | BIT_QUEUEMACID_Q0_V1(v))
  22481. #endif
  22482. #if (HALMAC_8198F_SUPPORT)
  22483. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22484. #define BIT_SHIFT_QUEUEMACID 25
  22485. #define BIT_MASK_QUEUEMACID 0x7f
  22486. #define BIT_QUEUEMACID(x) (((x) & BIT_MASK_QUEUEMACID) << BIT_SHIFT_QUEUEMACID)
  22487. #define BITS_QUEUEMACID (BIT_MASK_QUEUEMACID << BIT_SHIFT_QUEUEMACID)
  22488. #define BIT_CLEAR_QUEUEMACID(x) ((x) & (~BITS_QUEUEMACID))
  22489. #define BIT_GET_QUEUEMACID(x) \
  22490. (((x) >> BIT_SHIFT_QUEUEMACID) & BIT_MASK_QUEUEMACID)
  22491. #define BIT_SET_QUEUEMACID(x, v) (BIT_CLEAR_QUEUEMACID(x) | BIT_QUEUEMACID(v))
  22492. #define BIT_DONE BIT(24)
  22493. #endif
  22494. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22495. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22496. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22497. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22498. #define BIT_SHIFT_QUEUEAC_Q0_V1 23
  22499. #define BIT_MASK_QUEUEAC_Q0_V1 0x3
  22500. #define BIT_QUEUEAC_Q0_V1(x) \
  22501. (((x) & BIT_MASK_QUEUEAC_Q0_V1) << BIT_SHIFT_QUEUEAC_Q0_V1)
  22502. #define BITS_QUEUEAC_Q0_V1 (BIT_MASK_QUEUEAC_Q0_V1 << BIT_SHIFT_QUEUEAC_Q0_V1)
  22503. #define BIT_CLEAR_QUEUEAC_Q0_V1(x) ((x) & (~BITS_QUEUEAC_Q0_V1))
  22504. #define BIT_GET_QUEUEAC_Q0_V1(x) \
  22505. (((x) >> BIT_SHIFT_QUEUEAC_Q0_V1) & BIT_MASK_QUEUEAC_Q0_V1)
  22506. #define BIT_SET_QUEUEAC_Q0_V1(x, v) \
  22507. (BIT_CLEAR_QUEUEAC_Q0_V1(x) | BIT_QUEUEAC_Q0_V1(v))
  22508. #endif
  22509. #if (HALMAC_8198F_SUPPORT)
  22510. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22511. #define BIT_SHIFT_QUEUEAC 23
  22512. #define BIT_MASK_QUEUEAC 0x3
  22513. #define BIT_QUEUEAC(x) (((x) & BIT_MASK_QUEUEAC) << BIT_SHIFT_QUEUEAC)
  22514. #define BITS_QUEUEAC (BIT_MASK_QUEUEAC << BIT_SHIFT_QUEUEAC)
  22515. #define BIT_CLEAR_QUEUEAC(x) ((x) & (~BITS_QUEUEAC))
  22516. #define BIT_GET_QUEUEAC(x) (((x) >> BIT_SHIFT_QUEUEAC) & BIT_MASK_QUEUEAC)
  22517. #define BIT_SET_QUEUEAC(x, v) (BIT_CLEAR_QUEUEAC(x) | BIT_QUEUEAC(v))
  22518. #endif
  22519. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22520. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22521. HALMAC_8822C_SUPPORT)
  22522. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22523. #define BIT_TIDEMPTY_Q0_V1 BIT(22)
  22524. #endif
  22525. #if (HALMAC_8198F_SUPPORT)
  22526. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22527. #define BIT_TIDEMPTY BIT(22)
  22528. #define BIT_SHIFT_ACCWBITEN 20
  22529. #define BIT_MASK_ACCWBITEN 0xf
  22530. #define BIT_ACCWBITEN(x) (((x) & BIT_MASK_ACCWBITEN) << BIT_SHIFT_ACCWBITEN)
  22531. #define BITS_ACCWBITEN (BIT_MASK_ACCWBITEN << BIT_SHIFT_ACCWBITEN)
  22532. #define BIT_CLEAR_ACCWBITEN(x) ((x) & (~BITS_ACCWBITEN))
  22533. #define BIT_GET_ACCWBITEN(x) (((x) >> BIT_SHIFT_ACCWBITEN) & BIT_MASK_ACCWBITEN)
  22534. #define BIT_SET_ACCWBITEN(x, v) (BIT_CLEAR_ACCWBITEN(x) | BIT_ACCWBITEN(v))
  22535. #define BIT_BCNQ_EMPTY_V1 BIT(19)
  22536. #define BIT_HIQ_EMPTY_V1 BIT(18)
  22537. #define BIT_MQQ_EMPTY_V1 BIT(17)
  22538. #define BIT_SHIFT_COL_CNT 16
  22539. #define BIT_MASK_COL_CNT 0xf
  22540. #define BIT_COL_CNT(x) (((x) & BIT_MASK_COL_CNT) << BIT_SHIFT_COL_CNT)
  22541. #define BITS_COL_CNT (BIT_MASK_COL_CNT << BIT_SHIFT_COL_CNT)
  22542. #define BIT_CLEAR_COL_CNT(x) ((x) & (~BITS_COL_CNT))
  22543. #define BIT_GET_COL_CNT(x) (((x) >> BIT_SHIFT_COL_CNT) & BIT_MASK_COL_CNT)
  22544. #define BIT_SET_COL_CNT(x, v) (BIT_CLEAR_COL_CNT(x) | BIT_COL_CNT(v))
  22545. #define BIT_CPU_MGT_EMPTY BIT(16)
  22546. #endif
  22547. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22548. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22549. #define BIT_SHIFT_TAIL_PKT_Q0_V1 15
  22550. #define BIT_MASK_TAIL_PKT_Q0_V1 0xff
  22551. #define BIT_TAIL_PKT_Q0_V1(x) \
  22552. (((x) & BIT_MASK_TAIL_PKT_Q0_V1) << BIT_SHIFT_TAIL_PKT_Q0_V1)
  22553. #define BITS_TAIL_PKT_Q0_V1 \
  22554. (BIT_MASK_TAIL_PKT_Q0_V1 << BIT_SHIFT_TAIL_PKT_Q0_V1)
  22555. #define BIT_CLEAR_TAIL_PKT_Q0_V1(x) ((x) & (~BITS_TAIL_PKT_Q0_V1))
  22556. #define BIT_GET_TAIL_PKT_Q0_V1(x) \
  22557. (((x) >> BIT_SHIFT_TAIL_PKT_Q0_V1) & BIT_MASK_TAIL_PKT_Q0_V1)
  22558. #define BIT_SET_TAIL_PKT_Q0_V1(x, v) \
  22559. (BIT_CLEAR_TAIL_PKT_Q0_V1(x) | BIT_TAIL_PKT_Q0_V1(v))
  22560. #endif
  22561. #if (HALMAC_8198F_SUPPORT)
  22562. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22563. #define BIT_AC_MACID_NOT_SAME BIT(15)
  22564. #define BIT_SHIFT_GROUP_TABLE_ID 12
  22565. #define BIT_MASK_GROUP_TABLE_ID 0x7
  22566. #define BIT_GROUP_TABLE_ID(x) \
  22567. (((x) & BIT_MASK_GROUP_TABLE_ID) << BIT_SHIFT_GROUP_TABLE_ID)
  22568. #define BITS_GROUP_TABLE_ID \
  22569. (BIT_MASK_GROUP_TABLE_ID << BIT_SHIFT_GROUP_TABLE_ID)
  22570. #define BIT_CLEAR_GROUP_TABLE_ID(x) ((x) & (~BITS_GROUP_TABLE_ID))
  22571. #define BIT_GET_GROUP_TABLE_ID(x) \
  22572. (((x) >> BIT_SHIFT_GROUP_TABLE_ID) & BIT_MASK_GROUP_TABLE_ID)
  22573. #define BIT_SET_GROUP_TABLE_ID(x, v) \
  22574. (BIT_CLEAR_GROUP_TABLE_ID(x) | BIT_GROUP_TABLE_ID(v))
  22575. #endif
  22576. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22577. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22578. HALMAC_8822C_SUPPORT)
  22579. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22580. #define BIT_SHIFT_TAIL_PKT_Q0_V2 11
  22581. #define BIT_MASK_TAIL_PKT_Q0_V2 0x7ff
  22582. #define BIT_TAIL_PKT_Q0_V2(x) \
  22583. (((x) & BIT_MASK_TAIL_PKT_Q0_V2) << BIT_SHIFT_TAIL_PKT_Q0_V2)
  22584. #define BITS_TAIL_PKT_Q0_V2 \
  22585. (BIT_MASK_TAIL_PKT_Q0_V2 << BIT_SHIFT_TAIL_PKT_Q0_V2)
  22586. #define BIT_CLEAR_TAIL_PKT_Q0_V2(x) ((x) & (~BITS_TAIL_PKT_Q0_V2))
  22587. #define BIT_GET_TAIL_PKT_Q0_V2(x) \
  22588. (((x) >> BIT_SHIFT_TAIL_PKT_Q0_V2) & BIT_MASK_TAIL_PKT_Q0_V2)
  22589. #define BIT_SET_TAIL_PKT_Q0_V2(x, v) \
  22590. (BIT_CLEAR_TAIL_PKT_Q0_V2(x) | BIT_TAIL_PKT_Q0_V2(v))
  22591. #endif
  22592. #if (HALMAC_8198F_SUPPORT)
  22593. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22594. #define BIT_SHIFT_TAIL_PKT 11
  22595. #define BIT_MASK_TAIL_PKT 0x7ff
  22596. #define BIT_TAIL_PKT(x) (((x) & BIT_MASK_TAIL_PKT) << BIT_SHIFT_TAIL_PKT)
  22597. #define BITS_TAIL_PKT (BIT_MASK_TAIL_PKT << BIT_SHIFT_TAIL_PKT)
  22598. #define BIT_CLEAR_TAIL_PKT(x) ((x) & (~BITS_TAIL_PKT))
  22599. #define BIT_GET_TAIL_PKT(x) (((x) >> BIT_SHIFT_TAIL_PKT) & BIT_MASK_TAIL_PKT)
  22600. #define BIT_SET_TAIL_PKT(x, v) (BIT_CLEAR_TAIL_PKT(x) | BIT_TAIL_PKT(v))
  22601. #endif
  22602. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22603. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22604. #define BIT_SHIFT_PKT_NUM_Q0_V1 8
  22605. #define BIT_MASK_PKT_NUM_Q0_V1 0x7f
  22606. #define BIT_PKT_NUM_Q0_V1(x) \
  22607. (((x) & BIT_MASK_PKT_NUM_Q0_V1) << BIT_SHIFT_PKT_NUM_Q0_V1)
  22608. #define BITS_PKT_NUM_Q0_V1 (BIT_MASK_PKT_NUM_Q0_V1 << BIT_SHIFT_PKT_NUM_Q0_V1)
  22609. #define BIT_CLEAR_PKT_NUM_Q0_V1(x) ((x) & (~BITS_PKT_NUM_Q0_V1))
  22610. #define BIT_GET_PKT_NUM_Q0_V1(x) \
  22611. (((x) >> BIT_SHIFT_PKT_NUM_Q0_V1) & BIT_MASK_PKT_NUM_Q0_V1)
  22612. #define BIT_SET_PKT_NUM_Q0_V1(x, v) \
  22613. (BIT_CLEAR_PKT_NUM_Q0_V1(x) | BIT_PKT_NUM_Q0_V1(v))
  22614. #define BIT_SHIFT_HEAD_PKT_Q0 0
  22615. #define BIT_MASK_HEAD_PKT_Q0 0xff
  22616. #define BIT_HEAD_PKT_Q0(x) \
  22617. (((x) & BIT_MASK_HEAD_PKT_Q0) << BIT_SHIFT_HEAD_PKT_Q0)
  22618. #define BITS_HEAD_PKT_Q0 (BIT_MASK_HEAD_PKT_Q0 << BIT_SHIFT_HEAD_PKT_Q0)
  22619. #define BIT_CLEAR_HEAD_PKT_Q0(x) ((x) & (~BITS_HEAD_PKT_Q0))
  22620. #define BIT_GET_HEAD_PKT_Q0(x) \
  22621. (((x) >> BIT_SHIFT_HEAD_PKT_Q0) & BIT_MASK_HEAD_PKT_Q0)
  22622. #define BIT_SET_HEAD_PKT_Q0(x, v) \
  22623. (BIT_CLEAR_HEAD_PKT_Q0(x) | BIT_HEAD_PKT_Q0(v))
  22624. #endif
  22625. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22626. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22627. HALMAC_8822C_SUPPORT)
  22628. /* 2 REG_Q0_INFO (Offset 0x0400) */
  22629. #define BIT_SHIFT_HEAD_PKT_Q0_V1 0
  22630. #define BIT_MASK_HEAD_PKT_Q0_V1 0x7ff
  22631. #define BIT_HEAD_PKT_Q0_V1(x) \
  22632. (((x) & BIT_MASK_HEAD_PKT_Q0_V1) << BIT_SHIFT_HEAD_PKT_Q0_V1)
  22633. #define BITS_HEAD_PKT_Q0_V1 \
  22634. (BIT_MASK_HEAD_PKT_Q0_V1 << BIT_SHIFT_HEAD_PKT_Q0_V1)
  22635. #define BIT_CLEAR_HEAD_PKT_Q0_V1(x) ((x) & (~BITS_HEAD_PKT_Q0_V1))
  22636. #define BIT_GET_HEAD_PKT_Q0_V1(x) \
  22637. (((x) >> BIT_SHIFT_HEAD_PKT_Q0_V1) & BIT_MASK_HEAD_PKT_Q0_V1)
  22638. #define BIT_SET_HEAD_PKT_Q0_V1(x, v) \
  22639. (BIT_CLEAR_HEAD_PKT_Q0_V1(x) | BIT_HEAD_PKT_Q0_V1(v))
  22640. #endif
  22641. #if (HALMAC_8198F_SUPPORT)
  22642. /* 2 REG_QUEUE_INFO1 (Offset 0x0400) */
  22643. #define BIT_SHIFT_HEAD_PKT 0
  22644. #define BIT_MASK_HEAD_PKT 0x7ff
  22645. #define BIT_HEAD_PKT(x) (((x) & BIT_MASK_HEAD_PKT) << BIT_SHIFT_HEAD_PKT)
  22646. #define BITS_HEAD_PKT (BIT_MASK_HEAD_PKT << BIT_SHIFT_HEAD_PKT)
  22647. #define BIT_CLEAR_HEAD_PKT(x) ((x) & (~BITS_HEAD_PKT))
  22648. #define BIT_GET_HEAD_PKT(x) (((x) >> BIT_SHIFT_HEAD_PKT) & BIT_MASK_HEAD_PKT)
  22649. #define BIT_SET_HEAD_PKT(x, v) (BIT_CLEAR_HEAD_PKT(x) | BIT_HEAD_PKT(v))
  22650. #define BIT_SHIFT_PKT_NUMBER 0
  22651. #define BIT_MASK_PKT_NUMBER 0xfff
  22652. #define BIT_PKT_NUMBER(x) (((x) & BIT_MASK_PKT_NUMBER) << BIT_SHIFT_PKT_NUMBER)
  22653. #define BITS_PKT_NUMBER (BIT_MASK_PKT_NUMBER << BIT_SHIFT_PKT_NUMBER)
  22654. #define BIT_CLEAR_PKT_NUMBER(x) ((x) & (~BITS_PKT_NUMBER))
  22655. #define BIT_GET_PKT_NUMBER(x) \
  22656. (((x) >> BIT_SHIFT_PKT_NUMBER) & BIT_MASK_PKT_NUMBER)
  22657. #define BIT_SET_PKT_NUMBER(x, v) (BIT_CLEAR_PKT_NUMBER(x) | BIT_PKT_NUMBER(v))
  22658. #define BIT_SHIFT_ACCW 0
  22659. #define BIT_MASK_ACCW 0x3ff
  22660. #define BIT_ACCW(x) (((x) & BIT_MASK_ACCW) << BIT_SHIFT_ACCW)
  22661. #define BITS_ACCW (BIT_MASK_ACCW << BIT_SHIFT_ACCW)
  22662. #define BIT_CLEAR_ACCW(x) ((x) & (~BITS_ACCW))
  22663. #define BIT_GET_ACCW(x) (((x) >> BIT_SHIFT_ACCW) & BIT_MASK_ACCW)
  22664. #define BIT_SET_ACCW(x, v) (BIT_CLEAR_ACCW(x) | BIT_ACCW(v))
  22665. #endif
  22666. #if (HALMAC_8814B_SUPPORT)
  22667. /* 2 REG_QUEUELIST_INFO0 (Offset 0x0400) */
  22668. #define BIT_SHIFT_QINFO0 0
  22669. #define BIT_MASK_QINFO0 0xffffffffL
  22670. #define BIT_QINFO0(x) (((x) & BIT_MASK_QINFO0) << BIT_SHIFT_QINFO0)
  22671. #define BITS_QINFO0 (BIT_MASK_QINFO0 << BIT_SHIFT_QINFO0)
  22672. #define BIT_CLEAR_QINFO0(x) ((x) & (~BITS_QINFO0))
  22673. #define BIT_GET_QINFO0(x) (((x) >> BIT_SHIFT_QINFO0) & BIT_MASK_QINFO0)
  22674. #define BIT_SET_QINFO0(x, v) (BIT_CLEAR_QINFO0(x) | BIT_QINFO0(v))
  22675. #endif
  22676. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22677. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22678. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22679. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22680. #define BIT_SHIFT_QUEUEMACID_Q1_V1 25
  22681. #define BIT_MASK_QUEUEMACID_Q1_V1 0x7f
  22682. #define BIT_QUEUEMACID_Q1_V1(x) \
  22683. (((x) & BIT_MASK_QUEUEMACID_Q1_V1) << BIT_SHIFT_QUEUEMACID_Q1_V1)
  22684. #define BITS_QUEUEMACID_Q1_V1 \
  22685. (BIT_MASK_QUEUEMACID_Q1_V1 << BIT_SHIFT_QUEUEMACID_Q1_V1)
  22686. #define BIT_CLEAR_QUEUEMACID_Q1_V1(x) ((x) & (~BITS_QUEUEMACID_Q1_V1))
  22687. #define BIT_GET_QUEUEMACID_Q1_V1(x) \
  22688. (((x) >> BIT_SHIFT_QUEUEMACID_Q1_V1) & BIT_MASK_QUEUEMACID_Q1_V1)
  22689. #define BIT_SET_QUEUEMACID_Q1_V1(x, v) \
  22690. (BIT_CLEAR_QUEUEMACID_Q1_V1(x) | BIT_QUEUEMACID_Q1_V1(v))
  22691. #define BIT_SHIFT_QUEUEAC_Q1_V1 23
  22692. #define BIT_MASK_QUEUEAC_Q1_V1 0x3
  22693. #define BIT_QUEUEAC_Q1_V1(x) \
  22694. (((x) & BIT_MASK_QUEUEAC_Q1_V1) << BIT_SHIFT_QUEUEAC_Q1_V1)
  22695. #define BITS_QUEUEAC_Q1_V1 (BIT_MASK_QUEUEAC_Q1_V1 << BIT_SHIFT_QUEUEAC_Q1_V1)
  22696. #define BIT_CLEAR_QUEUEAC_Q1_V1(x) ((x) & (~BITS_QUEUEAC_Q1_V1))
  22697. #define BIT_GET_QUEUEAC_Q1_V1(x) \
  22698. (((x) >> BIT_SHIFT_QUEUEAC_Q1_V1) & BIT_MASK_QUEUEAC_Q1_V1)
  22699. #define BIT_SET_QUEUEAC_Q1_V1(x, v) \
  22700. (BIT_CLEAR_QUEUEAC_Q1_V1(x) | BIT_QUEUEAC_Q1_V1(v))
  22701. #endif
  22702. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22703. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22704. HALMAC_8822C_SUPPORT)
  22705. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22706. #define BIT_TIDEMPTY_Q1_V1 BIT(22)
  22707. #endif
  22708. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22709. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22710. #define BIT_SHIFT_TAIL_PKT_Q1_V1 15
  22711. #define BIT_MASK_TAIL_PKT_Q1_V1 0xff
  22712. #define BIT_TAIL_PKT_Q1_V1(x) \
  22713. (((x) & BIT_MASK_TAIL_PKT_Q1_V1) << BIT_SHIFT_TAIL_PKT_Q1_V1)
  22714. #define BITS_TAIL_PKT_Q1_V1 \
  22715. (BIT_MASK_TAIL_PKT_Q1_V1 << BIT_SHIFT_TAIL_PKT_Q1_V1)
  22716. #define BIT_CLEAR_TAIL_PKT_Q1_V1(x) ((x) & (~BITS_TAIL_PKT_Q1_V1))
  22717. #define BIT_GET_TAIL_PKT_Q1_V1(x) \
  22718. (((x) >> BIT_SHIFT_TAIL_PKT_Q1_V1) & BIT_MASK_TAIL_PKT_Q1_V1)
  22719. #define BIT_SET_TAIL_PKT_Q1_V1(x, v) \
  22720. (BIT_CLEAR_TAIL_PKT_Q1_V1(x) | BIT_TAIL_PKT_Q1_V1(v))
  22721. #endif
  22722. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22723. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22724. HALMAC_8822C_SUPPORT)
  22725. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22726. #define BIT_SHIFT_TAIL_PKT_Q1_V2 11
  22727. #define BIT_MASK_TAIL_PKT_Q1_V2 0x7ff
  22728. #define BIT_TAIL_PKT_Q1_V2(x) \
  22729. (((x) & BIT_MASK_TAIL_PKT_Q1_V2) << BIT_SHIFT_TAIL_PKT_Q1_V2)
  22730. #define BITS_TAIL_PKT_Q1_V2 \
  22731. (BIT_MASK_TAIL_PKT_Q1_V2 << BIT_SHIFT_TAIL_PKT_Q1_V2)
  22732. #define BIT_CLEAR_TAIL_PKT_Q1_V2(x) ((x) & (~BITS_TAIL_PKT_Q1_V2))
  22733. #define BIT_GET_TAIL_PKT_Q1_V2(x) \
  22734. (((x) >> BIT_SHIFT_TAIL_PKT_Q1_V2) & BIT_MASK_TAIL_PKT_Q1_V2)
  22735. #define BIT_SET_TAIL_PKT_Q1_V2(x, v) \
  22736. (BIT_CLEAR_TAIL_PKT_Q1_V2(x) | BIT_TAIL_PKT_Q1_V2(v))
  22737. #endif
  22738. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22739. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22740. #define BIT_SHIFT_PKT_NUM_Q1_V1 8
  22741. #define BIT_MASK_PKT_NUM_Q1_V1 0x7f
  22742. #define BIT_PKT_NUM_Q1_V1(x) \
  22743. (((x) & BIT_MASK_PKT_NUM_Q1_V1) << BIT_SHIFT_PKT_NUM_Q1_V1)
  22744. #define BITS_PKT_NUM_Q1_V1 (BIT_MASK_PKT_NUM_Q1_V1 << BIT_SHIFT_PKT_NUM_Q1_V1)
  22745. #define BIT_CLEAR_PKT_NUM_Q1_V1(x) ((x) & (~BITS_PKT_NUM_Q1_V1))
  22746. #define BIT_GET_PKT_NUM_Q1_V1(x) \
  22747. (((x) >> BIT_SHIFT_PKT_NUM_Q1_V1) & BIT_MASK_PKT_NUM_Q1_V1)
  22748. #define BIT_SET_PKT_NUM_Q1_V1(x, v) \
  22749. (BIT_CLEAR_PKT_NUM_Q1_V1(x) | BIT_PKT_NUM_Q1_V1(v))
  22750. #define BIT_SHIFT_HEAD_PKT_Q1 0
  22751. #define BIT_MASK_HEAD_PKT_Q1 0xff
  22752. #define BIT_HEAD_PKT_Q1(x) \
  22753. (((x) & BIT_MASK_HEAD_PKT_Q1) << BIT_SHIFT_HEAD_PKT_Q1)
  22754. #define BITS_HEAD_PKT_Q1 (BIT_MASK_HEAD_PKT_Q1 << BIT_SHIFT_HEAD_PKT_Q1)
  22755. #define BIT_CLEAR_HEAD_PKT_Q1(x) ((x) & (~BITS_HEAD_PKT_Q1))
  22756. #define BIT_GET_HEAD_PKT_Q1(x) \
  22757. (((x) >> BIT_SHIFT_HEAD_PKT_Q1) & BIT_MASK_HEAD_PKT_Q1)
  22758. #define BIT_SET_HEAD_PKT_Q1(x, v) \
  22759. (BIT_CLEAR_HEAD_PKT_Q1(x) | BIT_HEAD_PKT_Q1(v))
  22760. #endif
  22761. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22762. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22763. HALMAC_8822C_SUPPORT)
  22764. /* 2 REG_Q1_INFO (Offset 0x0404) */
  22765. #define BIT_SHIFT_HEAD_PKT_Q1_V1 0
  22766. #define BIT_MASK_HEAD_PKT_Q1_V1 0x7ff
  22767. #define BIT_HEAD_PKT_Q1_V1(x) \
  22768. (((x) & BIT_MASK_HEAD_PKT_Q1_V1) << BIT_SHIFT_HEAD_PKT_Q1_V1)
  22769. #define BITS_HEAD_PKT_Q1_V1 \
  22770. (BIT_MASK_HEAD_PKT_Q1_V1 << BIT_SHIFT_HEAD_PKT_Q1_V1)
  22771. #define BIT_CLEAR_HEAD_PKT_Q1_V1(x) ((x) & (~BITS_HEAD_PKT_Q1_V1))
  22772. #define BIT_GET_HEAD_PKT_Q1_V1(x) \
  22773. (((x) >> BIT_SHIFT_HEAD_PKT_Q1_V1) & BIT_MASK_HEAD_PKT_Q1_V1)
  22774. #define BIT_SET_HEAD_PKT_Q1_V1(x, v) \
  22775. (BIT_CLEAR_HEAD_PKT_Q1_V1(x) | BIT_HEAD_PKT_Q1_V1(v))
  22776. #endif
  22777. #if (HALMAC_8814B_SUPPORT)
  22778. /* 2 REG_QUEUELIST_INFO1 (Offset 0x0404) */
  22779. #define BIT_SHIFT_QINFO1 0
  22780. #define BIT_MASK_QINFO1 0xffffffffL
  22781. #define BIT_QINFO1(x) (((x) & BIT_MASK_QINFO1) << BIT_SHIFT_QINFO1)
  22782. #define BITS_QINFO1 (BIT_MASK_QINFO1 << BIT_SHIFT_QINFO1)
  22783. #define BIT_CLEAR_QINFO1(x) ((x) & (~BITS_QINFO1))
  22784. #define BIT_GET_QINFO1(x) (((x) >> BIT_SHIFT_QINFO1) & BIT_MASK_QINFO1)
  22785. #define BIT_SET_QINFO1(x, v) (BIT_CLEAR_QINFO1(x) | BIT_QINFO1(v))
  22786. #endif
  22787. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22788. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22789. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22790. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22791. #define BIT_SHIFT_QUEUEMACID_Q2_V1 25
  22792. #define BIT_MASK_QUEUEMACID_Q2_V1 0x7f
  22793. #define BIT_QUEUEMACID_Q2_V1(x) \
  22794. (((x) & BIT_MASK_QUEUEMACID_Q2_V1) << BIT_SHIFT_QUEUEMACID_Q2_V1)
  22795. #define BITS_QUEUEMACID_Q2_V1 \
  22796. (BIT_MASK_QUEUEMACID_Q2_V1 << BIT_SHIFT_QUEUEMACID_Q2_V1)
  22797. #define BIT_CLEAR_QUEUEMACID_Q2_V1(x) ((x) & (~BITS_QUEUEMACID_Q2_V1))
  22798. #define BIT_GET_QUEUEMACID_Q2_V1(x) \
  22799. (((x) >> BIT_SHIFT_QUEUEMACID_Q2_V1) & BIT_MASK_QUEUEMACID_Q2_V1)
  22800. #define BIT_SET_QUEUEMACID_Q2_V1(x, v) \
  22801. (BIT_CLEAR_QUEUEMACID_Q2_V1(x) | BIT_QUEUEMACID_Q2_V1(v))
  22802. #define BIT_SHIFT_QUEUEAC_Q2_V1 23
  22803. #define BIT_MASK_QUEUEAC_Q2_V1 0x3
  22804. #define BIT_QUEUEAC_Q2_V1(x) \
  22805. (((x) & BIT_MASK_QUEUEAC_Q2_V1) << BIT_SHIFT_QUEUEAC_Q2_V1)
  22806. #define BITS_QUEUEAC_Q2_V1 (BIT_MASK_QUEUEAC_Q2_V1 << BIT_SHIFT_QUEUEAC_Q2_V1)
  22807. #define BIT_CLEAR_QUEUEAC_Q2_V1(x) ((x) & (~BITS_QUEUEAC_Q2_V1))
  22808. #define BIT_GET_QUEUEAC_Q2_V1(x) \
  22809. (((x) >> BIT_SHIFT_QUEUEAC_Q2_V1) & BIT_MASK_QUEUEAC_Q2_V1)
  22810. #define BIT_SET_QUEUEAC_Q2_V1(x, v) \
  22811. (BIT_CLEAR_QUEUEAC_Q2_V1(x) | BIT_QUEUEAC_Q2_V1(v))
  22812. #endif
  22813. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22814. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22815. HALMAC_8822C_SUPPORT)
  22816. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22817. #define BIT_TIDEMPTY_Q2_V1 BIT(22)
  22818. #endif
  22819. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22820. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22821. #define BIT_SHIFT_TAIL_PKT_Q2_V1 15
  22822. #define BIT_MASK_TAIL_PKT_Q2_V1 0xff
  22823. #define BIT_TAIL_PKT_Q2_V1(x) \
  22824. (((x) & BIT_MASK_TAIL_PKT_Q2_V1) << BIT_SHIFT_TAIL_PKT_Q2_V1)
  22825. #define BITS_TAIL_PKT_Q2_V1 \
  22826. (BIT_MASK_TAIL_PKT_Q2_V1 << BIT_SHIFT_TAIL_PKT_Q2_V1)
  22827. #define BIT_CLEAR_TAIL_PKT_Q2_V1(x) ((x) & (~BITS_TAIL_PKT_Q2_V1))
  22828. #define BIT_GET_TAIL_PKT_Q2_V1(x) \
  22829. (((x) >> BIT_SHIFT_TAIL_PKT_Q2_V1) & BIT_MASK_TAIL_PKT_Q2_V1)
  22830. #define BIT_SET_TAIL_PKT_Q2_V1(x, v) \
  22831. (BIT_CLEAR_TAIL_PKT_Q2_V1(x) | BIT_TAIL_PKT_Q2_V1(v))
  22832. #endif
  22833. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22834. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22835. HALMAC_8822C_SUPPORT)
  22836. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22837. #define BIT_SHIFT_TAIL_PKT_Q2_V2 11
  22838. #define BIT_MASK_TAIL_PKT_Q2_V2 0x7ff
  22839. #define BIT_TAIL_PKT_Q2_V2(x) \
  22840. (((x) & BIT_MASK_TAIL_PKT_Q2_V2) << BIT_SHIFT_TAIL_PKT_Q2_V2)
  22841. #define BITS_TAIL_PKT_Q2_V2 \
  22842. (BIT_MASK_TAIL_PKT_Q2_V2 << BIT_SHIFT_TAIL_PKT_Q2_V2)
  22843. #define BIT_CLEAR_TAIL_PKT_Q2_V2(x) ((x) & (~BITS_TAIL_PKT_Q2_V2))
  22844. #define BIT_GET_TAIL_PKT_Q2_V2(x) \
  22845. (((x) >> BIT_SHIFT_TAIL_PKT_Q2_V2) & BIT_MASK_TAIL_PKT_Q2_V2)
  22846. #define BIT_SET_TAIL_PKT_Q2_V2(x, v) \
  22847. (BIT_CLEAR_TAIL_PKT_Q2_V2(x) | BIT_TAIL_PKT_Q2_V2(v))
  22848. #endif
  22849. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22850. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22851. #define BIT_SHIFT_PKT_NUM_Q2_V1 8
  22852. #define BIT_MASK_PKT_NUM_Q2_V1 0x7f
  22853. #define BIT_PKT_NUM_Q2_V1(x) \
  22854. (((x) & BIT_MASK_PKT_NUM_Q2_V1) << BIT_SHIFT_PKT_NUM_Q2_V1)
  22855. #define BITS_PKT_NUM_Q2_V1 (BIT_MASK_PKT_NUM_Q2_V1 << BIT_SHIFT_PKT_NUM_Q2_V1)
  22856. #define BIT_CLEAR_PKT_NUM_Q2_V1(x) ((x) & (~BITS_PKT_NUM_Q2_V1))
  22857. #define BIT_GET_PKT_NUM_Q2_V1(x) \
  22858. (((x) >> BIT_SHIFT_PKT_NUM_Q2_V1) & BIT_MASK_PKT_NUM_Q2_V1)
  22859. #define BIT_SET_PKT_NUM_Q2_V1(x, v) \
  22860. (BIT_CLEAR_PKT_NUM_Q2_V1(x) | BIT_PKT_NUM_Q2_V1(v))
  22861. #define BIT_SHIFT_HEAD_PKT_Q2 0
  22862. #define BIT_MASK_HEAD_PKT_Q2 0xff
  22863. #define BIT_HEAD_PKT_Q2(x) \
  22864. (((x) & BIT_MASK_HEAD_PKT_Q2) << BIT_SHIFT_HEAD_PKT_Q2)
  22865. #define BITS_HEAD_PKT_Q2 (BIT_MASK_HEAD_PKT_Q2 << BIT_SHIFT_HEAD_PKT_Q2)
  22866. #define BIT_CLEAR_HEAD_PKT_Q2(x) ((x) & (~BITS_HEAD_PKT_Q2))
  22867. #define BIT_GET_HEAD_PKT_Q2(x) \
  22868. (((x) >> BIT_SHIFT_HEAD_PKT_Q2) & BIT_MASK_HEAD_PKT_Q2)
  22869. #define BIT_SET_HEAD_PKT_Q2(x, v) \
  22870. (BIT_CLEAR_HEAD_PKT_Q2(x) | BIT_HEAD_PKT_Q2(v))
  22871. #endif
  22872. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22873. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22874. HALMAC_8822C_SUPPORT)
  22875. /* 2 REG_Q2_INFO (Offset 0x0408) */
  22876. #define BIT_SHIFT_HEAD_PKT_Q2_V1 0
  22877. #define BIT_MASK_HEAD_PKT_Q2_V1 0x7ff
  22878. #define BIT_HEAD_PKT_Q2_V1(x) \
  22879. (((x) & BIT_MASK_HEAD_PKT_Q2_V1) << BIT_SHIFT_HEAD_PKT_Q2_V1)
  22880. #define BITS_HEAD_PKT_Q2_V1 \
  22881. (BIT_MASK_HEAD_PKT_Q2_V1 << BIT_SHIFT_HEAD_PKT_Q2_V1)
  22882. #define BIT_CLEAR_HEAD_PKT_Q2_V1(x) ((x) & (~BITS_HEAD_PKT_Q2_V1))
  22883. #define BIT_GET_HEAD_PKT_Q2_V1(x) \
  22884. (((x) >> BIT_SHIFT_HEAD_PKT_Q2_V1) & BIT_MASK_HEAD_PKT_Q2_V1)
  22885. #define BIT_SET_HEAD_PKT_Q2_V1(x, v) \
  22886. (BIT_CLEAR_HEAD_PKT_Q2_V1(x) | BIT_HEAD_PKT_Q2_V1(v))
  22887. #endif
  22888. #if (HALMAC_8814B_SUPPORT)
  22889. /* 2 REG_QUEUELIST_INFO2 (Offset 0x0408) */
  22890. #define BIT_SHIFT_QINFO2 0
  22891. #define BIT_MASK_QINFO2 0xffffffffL
  22892. #define BIT_QINFO2(x) (((x) & BIT_MASK_QINFO2) << BIT_SHIFT_QINFO2)
  22893. #define BITS_QINFO2 (BIT_MASK_QINFO2 << BIT_SHIFT_QINFO2)
  22894. #define BIT_CLEAR_QINFO2(x) ((x) & (~BITS_QINFO2))
  22895. #define BIT_GET_QINFO2(x) (((x) >> BIT_SHIFT_QINFO2) & BIT_MASK_QINFO2)
  22896. #define BIT_SET_QINFO2(x, v) (BIT_CLEAR_QINFO2(x) | BIT_QINFO2(v))
  22897. #endif
  22898. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  22899. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  22900. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  22901. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22902. #define BIT_SHIFT_QUEUEMACID_Q3_V1 25
  22903. #define BIT_MASK_QUEUEMACID_Q3_V1 0x7f
  22904. #define BIT_QUEUEMACID_Q3_V1(x) \
  22905. (((x) & BIT_MASK_QUEUEMACID_Q3_V1) << BIT_SHIFT_QUEUEMACID_Q3_V1)
  22906. #define BITS_QUEUEMACID_Q3_V1 \
  22907. (BIT_MASK_QUEUEMACID_Q3_V1 << BIT_SHIFT_QUEUEMACID_Q3_V1)
  22908. #define BIT_CLEAR_QUEUEMACID_Q3_V1(x) ((x) & (~BITS_QUEUEMACID_Q3_V1))
  22909. #define BIT_GET_QUEUEMACID_Q3_V1(x) \
  22910. (((x) >> BIT_SHIFT_QUEUEMACID_Q3_V1) & BIT_MASK_QUEUEMACID_Q3_V1)
  22911. #define BIT_SET_QUEUEMACID_Q3_V1(x, v) \
  22912. (BIT_CLEAR_QUEUEMACID_Q3_V1(x) | BIT_QUEUEMACID_Q3_V1(v))
  22913. #define BIT_SHIFT_QUEUEAC_Q3_V1 23
  22914. #define BIT_MASK_QUEUEAC_Q3_V1 0x3
  22915. #define BIT_QUEUEAC_Q3_V1(x) \
  22916. (((x) & BIT_MASK_QUEUEAC_Q3_V1) << BIT_SHIFT_QUEUEAC_Q3_V1)
  22917. #define BITS_QUEUEAC_Q3_V1 (BIT_MASK_QUEUEAC_Q3_V1 << BIT_SHIFT_QUEUEAC_Q3_V1)
  22918. #define BIT_CLEAR_QUEUEAC_Q3_V1(x) ((x) & (~BITS_QUEUEAC_Q3_V1))
  22919. #define BIT_GET_QUEUEAC_Q3_V1(x) \
  22920. (((x) >> BIT_SHIFT_QUEUEAC_Q3_V1) & BIT_MASK_QUEUEAC_Q3_V1)
  22921. #define BIT_SET_QUEUEAC_Q3_V1(x, v) \
  22922. (BIT_CLEAR_QUEUEAC_Q3_V1(x) | BIT_QUEUEAC_Q3_V1(v))
  22923. #endif
  22924. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22925. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22926. HALMAC_8822C_SUPPORT)
  22927. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22928. #define BIT_TIDEMPTY_Q3_V1 BIT(22)
  22929. #endif
  22930. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22931. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22932. #define BIT_SHIFT_TAIL_PKT_Q3_V1 15
  22933. #define BIT_MASK_TAIL_PKT_Q3_V1 0xff
  22934. #define BIT_TAIL_PKT_Q3_V1(x) \
  22935. (((x) & BIT_MASK_TAIL_PKT_Q3_V1) << BIT_SHIFT_TAIL_PKT_Q3_V1)
  22936. #define BITS_TAIL_PKT_Q3_V1 \
  22937. (BIT_MASK_TAIL_PKT_Q3_V1 << BIT_SHIFT_TAIL_PKT_Q3_V1)
  22938. #define BIT_CLEAR_TAIL_PKT_Q3_V1(x) ((x) & (~BITS_TAIL_PKT_Q3_V1))
  22939. #define BIT_GET_TAIL_PKT_Q3_V1(x) \
  22940. (((x) >> BIT_SHIFT_TAIL_PKT_Q3_V1) & BIT_MASK_TAIL_PKT_Q3_V1)
  22941. #define BIT_SET_TAIL_PKT_Q3_V1(x, v) \
  22942. (BIT_CLEAR_TAIL_PKT_Q3_V1(x) | BIT_TAIL_PKT_Q3_V1(v))
  22943. #endif
  22944. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22945. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22946. HALMAC_8822C_SUPPORT)
  22947. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22948. #define BIT_SHIFT_TAIL_PKT_Q3_V2 11
  22949. #define BIT_MASK_TAIL_PKT_Q3_V2 0x7ff
  22950. #define BIT_TAIL_PKT_Q3_V2(x) \
  22951. (((x) & BIT_MASK_TAIL_PKT_Q3_V2) << BIT_SHIFT_TAIL_PKT_Q3_V2)
  22952. #define BITS_TAIL_PKT_Q3_V2 \
  22953. (BIT_MASK_TAIL_PKT_Q3_V2 << BIT_SHIFT_TAIL_PKT_Q3_V2)
  22954. #define BIT_CLEAR_TAIL_PKT_Q3_V2(x) ((x) & (~BITS_TAIL_PKT_Q3_V2))
  22955. #define BIT_GET_TAIL_PKT_Q3_V2(x) \
  22956. (((x) >> BIT_SHIFT_TAIL_PKT_Q3_V2) & BIT_MASK_TAIL_PKT_Q3_V2)
  22957. #define BIT_SET_TAIL_PKT_Q3_V2(x, v) \
  22958. (BIT_CLEAR_TAIL_PKT_Q3_V2(x) | BIT_TAIL_PKT_Q3_V2(v))
  22959. #endif
  22960. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  22961. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22962. #define BIT_SHIFT_PKT_NUM_Q3_V1 8
  22963. #define BIT_MASK_PKT_NUM_Q3_V1 0x7f
  22964. #define BIT_PKT_NUM_Q3_V1(x) \
  22965. (((x) & BIT_MASK_PKT_NUM_Q3_V1) << BIT_SHIFT_PKT_NUM_Q3_V1)
  22966. #define BITS_PKT_NUM_Q3_V1 (BIT_MASK_PKT_NUM_Q3_V1 << BIT_SHIFT_PKT_NUM_Q3_V1)
  22967. #define BIT_CLEAR_PKT_NUM_Q3_V1(x) ((x) & (~BITS_PKT_NUM_Q3_V1))
  22968. #define BIT_GET_PKT_NUM_Q3_V1(x) \
  22969. (((x) >> BIT_SHIFT_PKT_NUM_Q3_V1) & BIT_MASK_PKT_NUM_Q3_V1)
  22970. #define BIT_SET_PKT_NUM_Q3_V1(x, v) \
  22971. (BIT_CLEAR_PKT_NUM_Q3_V1(x) | BIT_PKT_NUM_Q3_V1(v))
  22972. #define BIT_SHIFT_HEAD_PKT_Q3 0
  22973. #define BIT_MASK_HEAD_PKT_Q3 0xff
  22974. #define BIT_HEAD_PKT_Q3(x) \
  22975. (((x) & BIT_MASK_HEAD_PKT_Q3) << BIT_SHIFT_HEAD_PKT_Q3)
  22976. #define BITS_HEAD_PKT_Q3 (BIT_MASK_HEAD_PKT_Q3 << BIT_SHIFT_HEAD_PKT_Q3)
  22977. #define BIT_CLEAR_HEAD_PKT_Q3(x) ((x) & (~BITS_HEAD_PKT_Q3))
  22978. #define BIT_GET_HEAD_PKT_Q3(x) \
  22979. (((x) >> BIT_SHIFT_HEAD_PKT_Q3) & BIT_MASK_HEAD_PKT_Q3)
  22980. #define BIT_SET_HEAD_PKT_Q3(x, v) \
  22981. (BIT_CLEAR_HEAD_PKT_Q3(x) | BIT_HEAD_PKT_Q3(v))
  22982. #endif
  22983. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  22984. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  22985. HALMAC_8822C_SUPPORT)
  22986. /* 2 REG_Q3_INFO (Offset 0x040C) */
  22987. #define BIT_SHIFT_HEAD_PKT_Q3_V1 0
  22988. #define BIT_MASK_HEAD_PKT_Q3_V1 0x7ff
  22989. #define BIT_HEAD_PKT_Q3_V1(x) \
  22990. (((x) & BIT_MASK_HEAD_PKT_Q3_V1) << BIT_SHIFT_HEAD_PKT_Q3_V1)
  22991. #define BITS_HEAD_PKT_Q3_V1 \
  22992. (BIT_MASK_HEAD_PKT_Q3_V1 << BIT_SHIFT_HEAD_PKT_Q3_V1)
  22993. #define BIT_CLEAR_HEAD_PKT_Q3_V1(x) ((x) & (~BITS_HEAD_PKT_Q3_V1))
  22994. #define BIT_GET_HEAD_PKT_Q3_V1(x) \
  22995. (((x) >> BIT_SHIFT_HEAD_PKT_Q3_V1) & BIT_MASK_HEAD_PKT_Q3_V1)
  22996. #define BIT_SET_HEAD_PKT_Q3_V1(x, v) \
  22997. (BIT_CLEAR_HEAD_PKT_Q3_V1(x) | BIT_HEAD_PKT_Q3_V1(v))
  22998. #endif
  22999. #if (HALMAC_8814B_SUPPORT)
  23000. /* 2 REG_QUEUELIST_INFO3 (Offset 0x040C) */
  23001. #define BIT_SHIFT_QINFO3 0
  23002. #define BIT_MASK_QINFO3 0xffffffffL
  23003. #define BIT_QINFO3(x) (((x) & BIT_MASK_QINFO3) << BIT_SHIFT_QINFO3)
  23004. #define BITS_QINFO3 (BIT_MASK_QINFO3 << BIT_SHIFT_QINFO3)
  23005. #define BIT_CLEAR_QINFO3(x) ((x) & (~BITS_QINFO3))
  23006. #define BIT_GET_QINFO3(x) (((x) >> BIT_SHIFT_QINFO3) & BIT_MASK_QINFO3)
  23007. #define BIT_SET_QINFO3(x, v) (BIT_CLEAR_QINFO3(x) | BIT_QINFO3(v))
  23008. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23009. #define BIT_FWCMDQ_EMPTY BIT(31)
  23010. #define BIT_MGQ_CPU_EMPTY_V1 BIT(30)
  23011. #define BIT_BCNQ_EMPTY_EXTP0 BIT(29)
  23012. #define BIT_BCNQ_EMPTY_PORT4 BIT(28)
  23013. #define BIT_BCNQ_EMPTY_PORT3 BIT(27)
  23014. #define BIT_BCNQ_EMPTY_PORT2 BIT(26)
  23015. #endif
  23016. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23017. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23018. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23019. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23020. #define BIT_SHIFT_QUEUEMACID_MGQ_V1 25
  23021. #define BIT_MASK_QUEUEMACID_MGQ_V1 0x7f
  23022. #define BIT_QUEUEMACID_MGQ_V1(x) \
  23023. (((x) & BIT_MASK_QUEUEMACID_MGQ_V1) << BIT_SHIFT_QUEUEMACID_MGQ_V1)
  23024. #define BITS_QUEUEMACID_MGQ_V1 \
  23025. (BIT_MASK_QUEUEMACID_MGQ_V1 << BIT_SHIFT_QUEUEMACID_MGQ_V1)
  23026. #define BIT_CLEAR_QUEUEMACID_MGQ_V1(x) ((x) & (~BITS_QUEUEMACID_MGQ_V1))
  23027. #define BIT_GET_QUEUEMACID_MGQ_V1(x) \
  23028. (((x) >> BIT_SHIFT_QUEUEMACID_MGQ_V1) & BIT_MASK_QUEUEMACID_MGQ_V1)
  23029. #define BIT_SET_QUEUEMACID_MGQ_V1(x, v) \
  23030. (BIT_CLEAR_QUEUEMACID_MGQ_V1(x) | BIT_QUEUEMACID_MGQ_V1(v))
  23031. #endif
  23032. #if (HALMAC_8814B_SUPPORT)
  23033. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23034. #define BIT_BCNQ_EMPTY_PORT1 BIT(25)
  23035. #define BIT_BCNQ_EMPTY_PORT0 BIT(24)
  23036. #endif
  23037. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23038. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23039. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23040. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23041. #define BIT_SHIFT_QUEUEAC_MGQ_V1 23
  23042. #define BIT_MASK_QUEUEAC_MGQ_V1 0x3
  23043. #define BIT_QUEUEAC_MGQ_V1(x) \
  23044. (((x) & BIT_MASK_QUEUEAC_MGQ_V1) << BIT_SHIFT_QUEUEAC_MGQ_V1)
  23045. #define BITS_QUEUEAC_MGQ_V1 \
  23046. (BIT_MASK_QUEUEAC_MGQ_V1 << BIT_SHIFT_QUEUEAC_MGQ_V1)
  23047. #define BIT_CLEAR_QUEUEAC_MGQ_V1(x) ((x) & (~BITS_QUEUEAC_MGQ_V1))
  23048. #define BIT_GET_QUEUEAC_MGQ_V1(x) \
  23049. (((x) >> BIT_SHIFT_QUEUEAC_MGQ_V1) & BIT_MASK_QUEUEAC_MGQ_V1)
  23050. #define BIT_SET_QUEUEAC_MGQ_V1(x, v) \
  23051. (BIT_CLEAR_QUEUEAC_MGQ_V1(x) | BIT_QUEUEAC_MGQ_V1(v))
  23052. #endif
  23053. #if (HALMAC_8814B_SUPPORT)
  23054. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23055. #define BIT_HQQ_EMPTY_V1 BIT(23)
  23056. #endif
  23057. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23058. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23059. HALMAC_8822C_SUPPORT)
  23060. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23061. #define BIT_TIDEMPTY_MGQ_V1 BIT(22)
  23062. #endif
  23063. #if (HALMAC_8814B_SUPPORT)
  23064. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23065. #define BIT_MQQ_EMPTY_V2 BIT(22)
  23066. #define BIT_S1_EMPTY BIT(21)
  23067. #define BIT_S0_EMPTY BIT(20)
  23068. #define BIT_AC19Q_EMPTY BIT(19)
  23069. #define BIT_AC18Q_EMPTY BIT(18)
  23070. #define BIT_AC17Q_EMPTY BIT(17)
  23071. #define BIT_AC16Q_EMPTY BIT(16)
  23072. #endif
  23073. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23074. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23075. #define BIT_SHIFT_TAIL_PKT_MGQ_V1 15
  23076. #define BIT_MASK_TAIL_PKT_MGQ_V1 0xff
  23077. #define BIT_TAIL_PKT_MGQ_V1(x) \
  23078. (((x) & BIT_MASK_TAIL_PKT_MGQ_V1) << BIT_SHIFT_TAIL_PKT_MGQ_V1)
  23079. #define BITS_TAIL_PKT_MGQ_V1 \
  23080. (BIT_MASK_TAIL_PKT_MGQ_V1 << BIT_SHIFT_TAIL_PKT_MGQ_V1)
  23081. #define BIT_CLEAR_TAIL_PKT_MGQ_V1(x) ((x) & (~BITS_TAIL_PKT_MGQ_V1))
  23082. #define BIT_GET_TAIL_PKT_MGQ_V1(x) \
  23083. (((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V1) & BIT_MASK_TAIL_PKT_MGQ_V1)
  23084. #define BIT_SET_TAIL_PKT_MGQ_V1(x, v) \
  23085. (BIT_CLEAR_TAIL_PKT_MGQ_V1(x) | BIT_TAIL_PKT_MGQ_V1(v))
  23086. #endif
  23087. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  23088. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23089. #define BIT_AC15Q_EMPTY BIT(15)
  23090. #define BIT_AC14Q_EMPTY BIT(14)
  23091. #define BIT_AC13Q_EMPTY BIT(13)
  23092. #define BIT_AC12Q_EMPTY BIT(12)
  23093. #define BIT_AC11Q_EMPTY BIT(11)
  23094. #endif
  23095. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23096. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23097. HALMAC_8822C_SUPPORT)
  23098. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23099. #define BIT_SHIFT_TAIL_PKT_MGQ_V2 11
  23100. #define BIT_MASK_TAIL_PKT_MGQ_V2 0x7ff
  23101. #define BIT_TAIL_PKT_MGQ_V2(x) \
  23102. (((x) & BIT_MASK_TAIL_PKT_MGQ_V2) << BIT_SHIFT_TAIL_PKT_MGQ_V2)
  23103. #define BITS_TAIL_PKT_MGQ_V2 \
  23104. (BIT_MASK_TAIL_PKT_MGQ_V2 << BIT_SHIFT_TAIL_PKT_MGQ_V2)
  23105. #define BIT_CLEAR_TAIL_PKT_MGQ_V2(x) ((x) & (~BITS_TAIL_PKT_MGQ_V2))
  23106. #define BIT_GET_TAIL_PKT_MGQ_V2(x) \
  23107. (((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V2) & BIT_MASK_TAIL_PKT_MGQ_V2)
  23108. #define BIT_SET_TAIL_PKT_MGQ_V2(x, v) \
  23109. (BIT_CLEAR_TAIL_PKT_MGQ_V2(x) | BIT_TAIL_PKT_MGQ_V2(v))
  23110. #endif
  23111. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  23112. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23113. #define BIT_AC10Q_EMPTY BIT(10)
  23114. #define BIT_AC9Q_EMPTY BIT(9)
  23115. #endif
  23116. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23117. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23118. #define BIT_SHIFT_PKT_NUM_MGQ_V1 8
  23119. #define BIT_MASK_PKT_NUM_MGQ_V1 0x7f
  23120. #define BIT_PKT_NUM_MGQ_V1(x) \
  23121. (((x) & BIT_MASK_PKT_NUM_MGQ_V1) << BIT_SHIFT_PKT_NUM_MGQ_V1)
  23122. #define BITS_PKT_NUM_MGQ_V1 \
  23123. (BIT_MASK_PKT_NUM_MGQ_V1 << BIT_SHIFT_PKT_NUM_MGQ_V1)
  23124. #define BIT_CLEAR_PKT_NUM_MGQ_V1(x) ((x) & (~BITS_PKT_NUM_MGQ_V1))
  23125. #define BIT_GET_PKT_NUM_MGQ_V1(x) \
  23126. (((x) >> BIT_SHIFT_PKT_NUM_MGQ_V1) & BIT_MASK_PKT_NUM_MGQ_V1)
  23127. #define BIT_SET_PKT_NUM_MGQ_V1(x, v) \
  23128. (BIT_CLEAR_PKT_NUM_MGQ_V1(x) | BIT_PKT_NUM_MGQ_V1(v))
  23129. #endif
  23130. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  23131. /* 2 REG_QUEUELIST_INFO_EMPTY (Offset 0x0410) */
  23132. #define BIT_AC8Q_EMPTY BIT(8)
  23133. #endif
  23134. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23135. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23136. #define BIT_SHIFT_HEAD_PKT_MGQ 0
  23137. #define BIT_MASK_HEAD_PKT_MGQ 0xff
  23138. #define BIT_HEAD_PKT_MGQ(x) \
  23139. (((x) & BIT_MASK_HEAD_PKT_MGQ) << BIT_SHIFT_HEAD_PKT_MGQ)
  23140. #define BITS_HEAD_PKT_MGQ (BIT_MASK_HEAD_PKT_MGQ << BIT_SHIFT_HEAD_PKT_MGQ)
  23141. #define BIT_CLEAR_HEAD_PKT_MGQ(x) ((x) & (~BITS_HEAD_PKT_MGQ))
  23142. #define BIT_GET_HEAD_PKT_MGQ(x) \
  23143. (((x) >> BIT_SHIFT_HEAD_PKT_MGQ) & BIT_MASK_HEAD_PKT_MGQ)
  23144. #define BIT_SET_HEAD_PKT_MGQ(x, v) \
  23145. (BIT_CLEAR_HEAD_PKT_MGQ(x) | BIT_HEAD_PKT_MGQ(v))
  23146. #endif
  23147. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23148. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23149. HALMAC_8822C_SUPPORT)
  23150. /* 2 REG_MGQ_INFO (Offset 0x0410) */
  23151. #define BIT_SHIFT_HEAD_PKT_MGQ_V1 0
  23152. #define BIT_MASK_HEAD_PKT_MGQ_V1 0x7ff
  23153. #define BIT_HEAD_PKT_MGQ_V1(x) \
  23154. (((x) & BIT_MASK_HEAD_PKT_MGQ_V1) << BIT_SHIFT_HEAD_PKT_MGQ_V1)
  23155. #define BITS_HEAD_PKT_MGQ_V1 \
  23156. (BIT_MASK_HEAD_PKT_MGQ_V1 << BIT_SHIFT_HEAD_PKT_MGQ_V1)
  23157. #define BIT_CLEAR_HEAD_PKT_MGQ_V1(x) ((x) & (~BITS_HEAD_PKT_MGQ_V1))
  23158. #define BIT_GET_HEAD_PKT_MGQ_V1(x) \
  23159. (((x) >> BIT_SHIFT_HEAD_PKT_MGQ_V1) & BIT_MASK_HEAD_PKT_MGQ_V1)
  23160. #define BIT_SET_HEAD_PKT_MGQ_V1(x, v) \
  23161. (BIT_CLEAR_HEAD_PKT_MGQ_V1(x) | BIT_HEAD_PKT_MGQ_V1(v))
  23162. #endif
  23163. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23164. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23165. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23166. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23167. #define BIT_SHIFT_QUEUEMACID_HIQ_V1 25
  23168. #define BIT_MASK_QUEUEMACID_HIQ_V1 0x7f
  23169. #define BIT_QUEUEMACID_HIQ_V1(x) \
  23170. (((x) & BIT_MASK_QUEUEMACID_HIQ_V1) << BIT_SHIFT_QUEUEMACID_HIQ_V1)
  23171. #define BITS_QUEUEMACID_HIQ_V1 \
  23172. (BIT_MASK_QUEUEMACID_HIQ_V1 << BIT_SHIFT_QUEUEMACID_HIQ_V1)
  23173. #define BIT_CLEAR_QUEUEMACID_HIQ_V1(x) ((x) & (~BITS_QUEUEMACID_HIQ_V1))
  23174. #define BIT_GET_QUEUEMACID_HIQ_V1(x) \
  23175. (((x) >> BIT_SHIFT_QUEUEMACID_HIQ_V1) & BIT_MASK_QUEUEMACID_HIQ_V1)
  23176. #define BIT_SET_QUEUEMACID_HIQ_V1(x, v) \
  23177. (BIT_CLEAR_QUEUEMACID_HIQ_V1(x) | BIT_QUEUEMACID_HIQ_V1(v))
  23178. #endif
  23179. #if (HALMAC_8814B_SUPPORT)
  23180. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23181. #define BIT_SHIFT_QINFO_CTRL 24
  23182. #define BIT_MASK_QINFO_CTRL 0x3f
  23183. #define BIT_QINFO_CTRL(x) (((x) & BIT_MASK_QINFO_CTRL) << BIT_SHIFT_QINFO_CTRL)
  23184. #define BITS_QINFO_CTRL (BIT_MASK_QINFO_CTRL << BIT_SHIFT_QINFO_CTRL)
  23185. #define BIT_CLEAR_QINFO_CTRL(x) ((x) & (~BITS_QINFO_CTRL))
  23186. #define BIT_GET_QINFO_CTRL(x) \
  23187. (((x) >> BIT_SHIFT_QINFO_CTRL) & BIT_MASK_QINFO_CTRL)
  23188. #define BIT_SET_QINFO_CTRL(x, v) (BIT_CLEAR_QINFO_CTRL(x) | BIT_QINFO_CTRL(v))
  23189. #endif
  23190. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23191. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23192. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23193. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23194. #define BIT_SHIFT_QUEUEAC_HIQ_V1 23
  23195. #define BIT_MASK_QUEUEAC_HIQ_V1 0x3
  23196. #define BIT_QUEUEAC_HIQ_V1(x) \
  23197. (((x) & BIT_MASK_QUEUEAC_HIQ_V1) << BIT_SHIFT_QUEUEAC_HIQ_V1)
  23198. #define BITS_QUEUEAC_HIQ_V1 \
  23199. (BIT_MASK_QUEUEAC_HIQ_V1 << BIT_SHIFT_QUEUEAC_HIQ_V1)
  23200. #define BIT_CLEAR_QUEUEAC_HIQ_V1(x) ((x) & (~BITS_QUEUEAC_HIQ_V1))
  23201. #define BIT_GET_QUEUEAC_HIQ_V1(x) \
  23202. (((x) >> BIT_SHIFT_QUEUEAC_HIQ_V1) & BIT_MASK_QUEUEAC_HIQ_V1)
  23203. #define BIT_SET_QUEUEAC_HIQ_V1(x, v) \
  23204. (BIT_CLEAR_QUEUEAC_HIQ_V1(x) | BIT_QUEUEAC_HIQ_V1(v))
  23205. #endif
  23206. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23207. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23208. HALMAC_8822C_SUPPORT)
  23209. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23210. #define BIT_TIDEMPTY_HIQ_V1 BIT(22)
  23211. #endif
  23212. #if (HALMAC_8814B_SUPPORT)
  23213. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23214. #define BIT_SHIFT_QINFO_MODE_BAND 20
  23215. #define BIT_MASK_QINFO_MODE_BAND 0x7
  23216. #define BIT_QINFO_MODE_BAND(x) \
  23217. (((x) & BIT_MASK_QINFO_MODE_BAND) << BIT_SHIFT_QINFO_MODE_BAND)
  23218. #define BITS_QINFO_MODE_BAND \
  23219. (BIT_MASK_QINFO_MODE_BAND << BIT_SHIFT_QINFO_MODE_BAND)
  23220. #define BIT_CLEAR_QINFO_MODE_BAND(x) ((x) & (~BITS_QINFO_MODE_BAND))
  23221. #define BIT_GET_QINFO_MODE_BAND(x) \
  23222. (((x) >> BIT_SHIFT_QINFO_MODE_BAND) & BIT_MASK_QINFO_MODE_BAND)
  23223. #define BIT_SET_QINFO_MODE_BAND(x, v) \
  23224. (BIT_CLEAR_QINFO_MODE_BAND(x) | BIT_QINFO_MODE_BAND(v))
  23225. #define BIT_ACQ19_ENABLE BIT(19)
  23226. #define BIT_ACQ18_ENABLE BIT(18)
  23227. #define BIT_ACQ17_ENABLE BIT(17)
  23228. #define BIT_ACQ16_ENABLE BIT(16)
  23229. #endif
  23230. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23231. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23232. #define BIT_SHIFT_TAIL_PKT_HIQ_V1 15
  23233. #define BIT_MASK_TAIL_PKT_HIQ_V1 0xff
  23234. #define BIT_TAIL_PKT_HIQ_V1(x) \
  23235. (((x) & BIT_MASK_TAIL_PKT_HIQ_V1) << BIT_SHIFT_TAIL_PKT_HIQ_V1)
  23236. #define BITS_TAIL_PKT_HIQ_V1 \
  23237. (BIT_MASK_TAIL_PKT_HIQ_V1 << BIT_SHIFT_TAIL_PKT_HIQ_V1)
  23238. #define BIT_CLEAR_TAIL_PKT_HIQ_V1(x) ((x) & (~BITS_TAIL_PKT_HIQ_V1))
  23239. #define BIT_GET_TAIL_PKT_HIQ_V1(x) \
  23240. (((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V1) & BIT_MASK_TAIL_PKT_HIQ_V1)
  23241. #define BIT_SET_TAIL_PKT_HIQ_V1(x, v) \
  23242. (BIT_CLEAR_TAIL_PKT_HIQ_V1(x) | BIT_TAIL_PKT_HIQ_V1(v))
  23243. #endif
  23244. #if (HALMAC_8814B_SUPPORT)
  23245. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23246. #define BIT_ACQ15_ENABLE BIT(15)
  23247. #define BIT_ACQ14_ENABLE BIT(14)
  23248. #define BIT_ACQ13_ENABLE BIT(13)
  23249. #define BIT_ACQ12_ENABLE BIT(12)
  23250. #endif
  23251. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23252. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23253. HALMAC_8822C_SUPPORT)
  23254. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23255. #define BIT_SHIFT_TAIL_PKT_HIQ_V2 11
  23256. #define BIT_MASK_TAIL_PKT_HIQ_V2 0x7ff
  23257. #define BIT_TAIL_PKT_HIQ_V2(x) \
  23258. (((x) & BIT_MASK_TAIL_PKT_HIQ_V2) << BIT_SHIFT_TAIL_PKT_HIQ_V2)
  23259. #define BITS_TAIL_PKT_HIQ_V2 \
  23260. (BIT_MASK_TAIL_PKT_HIQ_V2 << BIT_SHIFT_TAIL_PKT_HIQ_V2)
  23261. #define BIT_CLEAR_TAIL_PKT_HIQ_V2(x) ((x) & (~BITS_TAIL_PKT_HIQ_V2))
  23262. #define BIT_GET_TAIL_PKT_HIQ_V2(x) \
  23263. (((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V2) & BIT_MASK_TAIL_PKT_HIQ_V2)
  23264. #define BIT_SET_TAIL_PKT_HIQ_V2(x, v) \
  23265. (BIT_CLEAR_TAIL_PKT_HIQ_V2(x) | BIT_TAIL_PKT_HIQ_V2(v))
  23266. #endif
  23267. #if (HALMAC_8814B_SUPPORT)
  23268. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23269. #define BIT_ACQ11_ENABLE BIT(11)
  23270. #define BIT_ACQ10_ENABLE BIT(10)
  23271. #define BIT_ACQ9_ENABLE BIT(9)
  23272. #endif
  23273. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23274. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23275. #define BIT_SHIFT_PKT_NUM_HIQ_V1 8
  23276. #define BIT_MASK_PKT_NUM_HIQ_V1 0x7f
  23277. #define BIT_PKT_NUM_HIQ_V1(x) \
  23278. (((x) & BIT_MASK_PKT_NUM_HIQ_V1) << BIT_SHIFT_PKT_NUM_HIQ_V1)
  23279. #define BITS_PKT_NUM_HIQ_V1 \
  23280. (BIT_MASK_PKT_NUM_HIQ_V1 << BIT_SHIFT_PKT_NUM_HIQ_V1)
  23281. #define BIT_CLEAR_PKT_NUM_HIQ_V1(x) ((x) & (~BITS_PKT_NUM_HIQ_V1))
  23282. #define BIT_GET_PKT_NUM_HIQ_V1(x) \
  23283. (((x) >> BIT_SHIFT_PKT_NUM_HIQ_V1) & BIT_MASK_PKT_NUM_HIQ_V1)
  23284. #define BIT_SET_PKT_NUM_HIQ_V1(x, v) \
  23285. (BIT_CLEAR_PKT_NUM_HIQ_V1(x) | BIT_PKT_NUM_HIQ_V1(v))
  23286. #endif
  23287. #if (HALMAC_8814B_SUPPORT)
  23288. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23289. #define BIT_ACQ8_ENABLE BIT(8)
  23290. #define BIT_ACQ7_ENABLE BIT(7)
  23291. #define BIT_ACQ6_ENABLE BIT(6)
  23292. #define BIT_ACQ5_ENABLE BIT(5)
  23293. #define BIT_ACQ4_ENABLE BIT(4)
  23294. #define BIT_ACQ3_ENABLE BIT(3)
  23295. #define BIT_ACQ2_ENABLE BIT(2)
  23296. #define BIT_ACQ1_ENABLE BIT(1)
  23297. #endif
  23298. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23299. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23300. #define BIT_SHIFT_HEAD_PKT_HIQ 0
  23301. #define BIT_MASK_HEAD_PKT_HIQ 0xff
  23302. #define BIT_HEAD_PKT_HIQ(x) \
  23303. (((x) & BIT_MASK_HEAD_PKT_HIQ) << BIT_SHIFT_HEAD_PKT_HIQ)
  23304. #define BITS_HEAD_PKT_HIQ (BIT_MASK_HEAD_PKT_HIQ << BIT_SHIFT_HEAD_PKT_HIQ)
  23305. #define BIT_CLEAR_HEAD_PKT_HIQ(x) ((x) & (~BITS_HEAD_PKT_HIQ))
  23306. #define BIT_GET_HEAD_PKT_HIQ(x) \
  23307. (((x) >> BIT_SHIFT_HEAD_PKT_HIQ) & BIT_MASK_HEAD_PKT_HIQ)
  23308. #define BIT_SET_HEAD_PKT_HIQ(x, v) \
  23309. (BIT_CLEAR_HEAD_PKT_HIQ(x) | BIT_HEAD_PKT_HIQ(v))
  23310. #endif
  23311. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23312. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23313. HALMAC_8822C_SUPPORT)
  23314. /* 2 REG_HIQ_INFO (Offset 0x0414) */
  23315. #define BIT_SHIFT_HEAD_PKT_HIQ_V1 0
  23316. #define BIT_MASK_HEAD_PKT_HIQ_V1 0x7ff
  23317. #define BIT_HEAD_PKT_HIQ_V1(x) \
  23318. (((x) & BIT_MASK_HEAD_PKT_HIQ_V1) << BIT_SHIFT_HEAD_PKT_HIQ_V1)
  23319. #define BITS_HEAD_PKT_HIQ_V1 \
  23320. (BIT_MASK_HEAD_PKT_HIQ_V1 << BIT_SHIFT_HEAD_PKT_HIQ_V1)
  23321. #define BIT_CLEAR_HEAD_PKT_HIQ_V1(x) ((x) & (~BITS_HEAD_PKT_HIQ_V1))
  23322. #define BIT_GET_HEAD_PKT_HIQ_V1(x) \
  23323. (((x) >> BIT_SHIFT_HEAD_PKT_HIQ_V1) & BIT_MASK_HEAD_PKT_HIQ_V1)
  23324. #define BIT_SET_HEAD_PKT_HIQ_V1(x, v) \
  23325. (BIT_CLEAR_HEAD_PKT_HIQ_V1(x) | BIT_HEAD_PKT_HIQ_V1(v))
  23326. #endif
  23327. #if (HALMAC_8814B_SUPPORT)
  23328. /* 2 REG_QUEUELIST_ACQ_EN (Offset 0x0414) */
  23329. #define BIT_ACQ0_ENABLE BIT(0)
  23330. /* 2 REG_BCNQ_BDNY_V2 (Offset 0x0418) */
  23331. #define BIT_SHIFT_BCNQ_PGBNDY_WSEL 28
  23332. #define BIT_MASK_BCNQ_PGBNDY_WSEL 0x7
  23333. #define BIT_BCNQ_PGBNDY_WSEL(x) \
  23334. (((x) & BIT_MASK_BCNQ_PGBNDY_WSEL) << BIT_SHIFT_BCNQ_PGBNDY_WSEL)
  23335. #define BITS_BCNQ_PGBNDY_WSEL \
  23336. (BIT_MASK_BCNQ_PGBNDY_WSEL << BIT_SHIFT_BCNQ_PGBNDY_WSEL)
  23337. #define BIT_CLEAR_BCNQ_PGBNDY_WSEL(x) ((x) & (~BITS_BCNQ_PGBNDY_WSEL))
  23338. #define BIT_GET_BCNQ_PGBNDY_WSEL(x) \
  23339. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_WSEL) & BIT_MASK_BCNQ_PGBNDY_WSEL)
  23340. #define BIT_SET_BCNQ_PGBNDY_WSEL(x, v) \
  23341. (BIT_CLEAR_BCNQ_PGBNDY_WSEL(x) | BIT_BCNQ_PGBNDY_WSEL(v))
  23342. #define BIT_SHIFT_BCNQ_PGBNDY_RCONTENT 12
  23343. #define BIT_MASK_BCNQ_PGBNDY_RCONTENT 0xfff
  23344. #define BIT_BCNQ_PGBNDY_RCONTENT(x) \
  23345. (((x) & BIT_MASK_BCNQ_PGBNDY_RCONTENT) \
  23346. << BIT_SHIFT_BCNQ_PGBNDY_RCONTENT)
  23347. #define BITS_BCNQ_PGBNDY_RCONTENT \
  23348. (BIT_MASK_BCNQ_PGBNDY_RCONTENT << BIT_SHIFT_BCNQ_PGBNDY_RCONTENT)
  23349. #define BIT_CLEAR_BCNQ_PGBNDY_RCONTENT(x) ((x) & (~BITS_BCNQ_PGBNDY_RCONTENT))
  23350. #define BIT_GET_BCNQ_PGBNDY_RCONTENT(x) \
  23351. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_RCONTENT) & \
  23352. BIT_MASK_BCNQ_PGBNDY_RCONTENT)
  23353. #define BIT_SET_BCNQ_PGBNDY_RCONTENT(x, v) \
  23354. (BIT_CLEAR_BCNQ_PGBNDY_RCONTENT(x) | BIT_BCNQ_PGBNDY_RCONTENT(v))
  23355. #endif
  23356. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23357. /* 2 REG_BCNQ_INFO (Offset 0x0418) */
  23358. #define BIT_SHIFT_PKT_NUM_BCNQ 8
  23359. #define BIT_MASK_PKT_NUM_BCNQ 0xff
  23360. #define BIT_PKT_NUM_BCNQ(x) \
  23361. (((x) & BIT_MASK_PKT_NUM_BCNQ) << BIT_SHIFT_PKT_NUM_BCNQ)
  23362. #define BITS_PKT_NUM_BCNQ (BIT_MASK_PKT_NUM_BCNQ << BIT_SHIFT_PKT_NUM_BCNQ)
  23363. #define BIT_CLEAR_PKT_NUM_BCNQ(x) ((x) & (~BITS_PKT_NUM_BCNQ))
  23364. #define BIT_GET_PKT_NUM_BCNQ(x) \
  23365. (((x) >> BIT_SHIFT_PKT_NUM_BCNQ) & BIT_MASK_PKT_NUM_BCNQ)
  23366. #define BIT_SET_PKT_NUM_BCNQ(x, v) \
  23367. (BIT_CLEAR_PKT_NUM_BCNQ(x) | BIT_PKT_NUM_BCNQ(v))
  23368. #define BIT_SHIFT_BCNQ_HEAD_PG 0
  23369. #define BIT_MASK_BCNQ_HEAD_PG 0xff
  23370. #define BIT_BCNQ_HEAD_PG(x) \
  23371. (((x) & BIT_MASK_BCNQ_HEAD_PG) << BIT_SHIFT_BCNQ_HEAD_PG)
  23372. #define BITS_BCNQ_HEAD_PG (BIT_MASK_BCNQ_HEAD_PG << BIT_SHIFT_BCNQ_HEAD_PG)
  23373. #define BIT_CLEAR_BCNQ_HEAD_PG(x) ((x) & (~BITS_BCNQ_HEAD_PG))
  23374. #define BIT_GET_BCNQ_HEAD_PG(x) \
  23375. (((x) >> BIT_SHIFT_BCNQ_HEAD_PG) & BIT_MASK_BCNQ_HEAD_PG)
  23376. #define BIT_SET_BCNQ_HEAD_PG(x, v) \
  23377. (BIT_CLEAR_BCNQ_HEAD_PG(x) | BIT_BCNQ_HEAD_PG(v))
  23378. #endif
  23379. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23380. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23381. HALMAC_8822C_SUPPORT)
  23382. /* 2 REG_BCNQ_INFO (Offset 0x0418) */
  23383. #define BIT_SHIFT_BCNQ_HEAD_PG_V1 0
  23384. #define BIT_MASK_BCNQ_HEAD_PG_V1 0xfff
  23385. #define BIT_BCNQ_HEAD_PG_V1(x) \
  23386. (((x) & BIT_MASK_BCNQ_HEAD_PG_V1) << BIT_SHIFT_BCNQ_HEAD_PG_V1)
  23387. #define BITS_BCNQ_HEAD_PG_V1 \
  23388. (BIT_MASK_BCNQ_HEAD_PG_V1 << BIT_SHIFT_BCNQ_HEAD_PG_V1)
  23389. #define BIT_CLEAR_BCNQ_HEAD_PG_V1(x) ((x) & (~BITS_BCNQ_HEAD_PG_V1))
  23390. #define BIT_GET_BCNQ_HEAD_PG_V1(x) \
  23391. (((x) >> BIT_SHIFT_BCNQ_HEAD_PG_V1) & BIT_MASK_BCNQ_HEAD_PG_V1)
  23392. #define BIT_SET_BCNQ_HEAD_PG_V1(x, v) \
  23393. (BIT_CLEAR_BCNQ_HEAD_PG_V1(x) | BIT_BCNQ_HEAD_PG_V1(v))
  23394. #endif
  23395. #if (HALMAC_8814B_SUPPORT)
  23396. /* 2 REG_BCNQ_BDNY_V2 (Offset 0x0418) */
  23397. #define BIT_SHIFT_BCNQ_PGBNDY_WCONTENT 0
  23398. #define BIT_MASK_BCNQ_PGBNDY_WCONTENT 0xfff
  23399. #define BIT_BCNQ_PGBNDY_WCONTENT(x) \
  23400. (((x) & BIT_MASK_BCNQ_PGBNDY_WCONTENT) \
  23401. << BIT_SHIFT_BCNQ_PGBNDY_WCONTENT)
  23402. #define BITS_BCNQ_PGBNDY_WCONTENT \
  23403. (BIT_MASK_BCNQ_PGBNDY_WCONTENT << BIT_SHIFT_BCNQ_PGBNDY_WCONTENT)
  23404. #define BIT_CLEAR_BCNQ_PGBNDY_WCONTENT(x) ((x) & (~BITS_BCNQ_PGBNDY_WCONTENT))
  23405. #define BIT_GET_BCNQ_PGBNDY_WCONTENT(x) \
  23406. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_WCONTENT) & \
  23407. BIT_MASK_BCNQ_PGBNDY_WCONTENT)
  23408. #define BIT_SET_BCNQ_PGBNDY_WCONTENT(x, v) \
  23409. (BIT_CLEAR_BCNQ_PGBNDY_WCONTENT(x) | BIT_BCNQ_PGBNDY_WCONTENT(v))
  23410. #endif
  23411. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23412. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23413. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23414. /* 2 REG_TXPKT_EMPTY (Offset 0x041A) */
  23415. #define BIT_BCNQ_EMPTY BIT(11)
  23416. #define BIT_HQQ_EMPTY BIT(10)
  23417. #define BIT_MQQ_EMPTY BIT(9)
  23418. #define BIT_MGQ_CPU_EMPTY BIT(8)
  23419. #endif
  23420. #if (HALMAC_8192F_SUPPORT)
  23421. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23422. #define BIT_BCN_POLL2 BIT(31)
  23423. #define BIT_BCN_POLL1 BIT(30)
  23424. #endif
  23425. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23426. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23427. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23428. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23429. #define BIT_BCN1_POLL BIT(30)
  23430. #endif
  23431. #if (HALMAC_8814B_SUPPORT)
  23432. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23433. #define BIT_CPUMGT_CLR_V1 BIT(30)
  23434. #endif
  23435. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23436. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23437. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23438. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23439. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23440. #define BIT_CPUMGT_POLL BIT(29)
  23441. #endif
  23442. #if (HALMAC_8192F_SUPPORT)
  23443. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23444. #define BIT_CPUMGT_POLL_SET BIT(29)
  23445. #endif
  23446. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23447. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23448. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23449. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23450. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23451. #define BIT_BCN_POLL BIT(28)
  23452. #endif
  23453. #if (HALMAC_8192F_SUPPORT)
  23454. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23455. #define BIT_CPUMGT_POLL_CLR BIT(27)
  23456. #endif
  23457. #if (HALMAC_8198F_SUPPORT)
  23458. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23459. #define BIT_CPUMGT_CLR BIT(27)
  23460. #endif
  23461. #if (HALMAC_8192F_SUPPORT)
  23462. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23463. #define BIT_EVTQ_VALID BIT(26)
  23464. #endif
  23465. #if (HALMAC_8814B_SUPPORT)
  23466. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23467. #define BIT_BCN_EXT_POLL BIT(21)
  23468. #define BIT_BCN4_POLL BIT(20)
  23469. #define BIT_BCN3_POLL BIT(19)
  23470. #define BIT_BCN2_POLL BIT(18)
  23471. #define BIT_BCN1_POLL_V1 BIT(17)
  23472. #endif
  23473. #if (HALMAC_8192F_SUPPORT)
  23474. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23475. #define BIT_EN_RTY_BK_COND BIT(16)
  23476. #endif
  23477. #if (HALMAC_8814B_SUPPORT)
  23478. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23479. #define BIT_BCN_POLL_V1 BIT(16)
  23480. #endif
  23481. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23482. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23483. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23484. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23485. #define BIT_CPUMGQ_FW_NUM_V1 BIT(12)
  23486. #endif
  23487. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23488. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23489. #define BIT_CPUMGQ_FW_NUM BIT(8)
  23490. #endif
  23491. #if (HALMAC_8192F_SUPPORT)
  23492. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23493. #define BIT_EN_EVTQ_RPT BIT(2)
  23494. #define BIT_HWSEQ_EVTQ_EN BIT(1)
  23495. #endif
  23496. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23497. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23498. #define BIT_SHIFT_CPUMGQ_HEAD_PG 0
  23499. #define BIT_MASK_CPUMGQ_HEAD_PG 0xff
  23500. #define BIT_CPUMGQ_HEAD_PG(x) \
  23501. (((x) & BIT_MASK_CPUMGQ_HEAD_PG) << BIT_SHIFT_CPUMGQ_HEAD_PG)
  23502. #define BITS_CPUMGQ_HEAD_PG \
  23503. (BIT_MASK_CPUMGQ_HEAD_PG << BIT_SHIFT_CPUMGQ_HEAD_PG)
  23504. #define BIT_CLEAR_CPUMGQ_HEAD_PG(x) ((x) & (~BITS_CPUMGQ_HEAD_PG))
  23505. #define BIT_GET_CPUMGQ_HEAD_PG(x) \
  23506. (((x) >> BIT_SHIFT_CPUMGQ_HEAD_PG) & BIT_MASK_CPUMGQ_HEAD_PG)
  23507. #define BIT_SET_CPUMGQ_HEAD_PG(x, v) \
  23508. (BIT_CLEAR_CPUMGQ_HEAD_PG(x) | BIT_CPUMGQ_HEAD_PG(v))
  23509. #endif
  23510. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23511. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23512. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23513. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23514. #define BIT_SHIFT_FW_FREE_TAIL_V1 0
  23515. #define BIT_MASK_FW_FREE_TAIL_V1 0xfff
  23516. #define BIT_FW_FREE_TAIL_V1(x) \
  23517. (((x) & BIT_MASK_FW_FREE_TAIL_V1) << BIT_SHIFT_FW_FREE_TAIL_V1)
  23518. #define BITS_FW_FREE_TAIL_V1 \
  23519. (BIT_MASK_FW_FREE_TAIL_V1 << BIT_SHIFT_FW_FREE_TAIL_V1)
  23520. #define BIT_CLEAR_FW_FREE_TAIL_V1(x) ((x) & (~BITS_FW_FREE_TAIL_V1))
  23521. #define BIT_GET_FW_FREE_TAIL_V1(x) \
  23522. (((x) >> BIT_SHIFT_FW_FREE_TAIL_V1) & BIT_MASK_FW_FREE_TAIL_V1)
  23523. #define BIT_SET_FW_FREE_TAIL_V1(x, v) \
  23524. (BIT_CLEAR_FW_FREE_TAIL_V1(x) | BIT_FW_FREE_TAIL_V1(v))
  23525. #endif
  23526. #if (HALMAC_8814B_SUPPORT)
  23527. /* 2 REG_CPU_MGQ_INFO (Offset 0x041C) */
  23528. #define BIT_SHIFT_FREE_TAIL_PAGE 0
  23529. #define BIT_MASK_FREE_TAIL_PAGE 0xfff
  23530. #define BIT_FREE_TAIL_PAGE(x) \
  23531. (((x) & BIT_MASK_FREE_TAIL_PAGE) << BIT_SHIFT_FREE_TAIL_PAGE)
  23532. #define BITS_FREE_TAIL_PAGE \
  23533. (BIT_MASK_FREE_TAIL_PAGE << BIT_SHIFT_FREE_TAIL_PAGE)
  23534. #define BIT_CLEAR_FREE_TAIL_PAGE(x) ((x) & (~BITS_FREE_TAIL_PAGE))
  23535. #define BIT_GET_FREE_TAIL_PAGE(x) \
  23536. (((x) >> BIT_SHIFT_FREE_TAIL_PAGE) & BIT_MASK_FREE_TAIL_PAGE)
  23537. #define BIT_SET_FREE_TAIL_PAGE(x, v) \
  23538. (BIT_CLEAR_FREE_TAIL_PAGE(x) | BIT_FREE_TAIL_PAGE(v))
  23539. #endif
  23540. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23541. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23542. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23543. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23544. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23545. #define BIT_RTS_LIMIT_IN_OFDM BIT(23)
  23546. #endif
  23547. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23548. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23549. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23550. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23551. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23552. #define BIT_EN_BCNQ_DL BIT(22)
  23553. #endif
  23554. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23555. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23556. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23557. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23558. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23559. #define BIT_EN_RD_RESP_NAV_BK BIT(21)
  23560. #define BIT_EN_WR_FREE_TAIL BIT(20)
  23561. #endif
  23562. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  23563. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23564. #define BIT_TXRPT_DIS BIT(19)
  23565. #endif
  23566. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  23567. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23568. #define BIT_NOTXRPT_USERATE_EN BIT(19)
  23569. #endif
  23570. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  23571. HALMAC_8822C_SUPPORT)
  23572. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23573. #define BIT_DIS_TXFAIL_RPT BIT(18)
  23574. #endif
  23575. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  23576. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23577. #define BIT_FTM_TIMEOUT_BYPASS BIT(16)
  23578. #endif
  23579. #if (HALMAC_8814B_SUPPORT)
  23580. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23581. #define BIT_EN_BCNQ_DL5 BIT(13)
  23582. #define BIT_EN_BCNQ_DL4 BIT(12)
  23583. #define BIT_EN_BCNQ_DL3 BIT(11)
  23584. #define BIT_EN_BCNQ_DL2 BIT(10)
  23585. #define BIT_EN_BCNQ_DL1 BIT(9)
  23586. #endif
  23587. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23588. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23589. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23590. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23591. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23592. #define BIT_SHIFT_EN_QUEUE_RPT 8
  23593. #define BIT_MASK_EN_QUEUE_RPT 0xff
  23594. #define BIT_EN_QUEUE_RPT(x) \
  23595. (((x) & BIT_MASK_EN_QUEUE_RPT) << BIT_SHIFT_EN_QUEUE_RPT)
  23596. #define BITS_EN_QUEUE_RPT (BIT_MASK_EN_QUEUE_RPT << BIT_SHIFT_EN_QUEUE_RPT)
  23597. #define BIT_CLEAR_EN_QUEUE_RPT(x) ((x) & (~BITS_EN_QUEUE_RPT))
  23598. #define BIT_GET_EN_QUEUE_RPT(x) \
  23599. (((x) >> BIT_SHIFT_EN_QUEUE_RPT) & BIT_MASK_EN_QUEUE_RPT)
  23600. #define BIT_SET_EN_QUEUE_RPT(x, v) \
  23601. (BIT_CLEAR_EN_QUEUE_RPT(x) | BIT_EN_QUEUE_RPT(v))
  23602. #endif
  23603. #if (HALMAC_8814B_SUPPORT)
  23604. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23605. #define BIT_EN_BCNQ_DL0 BIT(8)
  23606. #endif
  23607. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23608. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23609. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23610. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23611. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23612. #define BIT_EN_RTY_BK BIT(7)
  23613. #define BIT_EN_USE_INI_RAT BIT(6)
  23614. #define BIT_EN_RTS_NAV_BK BIT(5)
  23615. #define BIT_DIS_SSN_CHECK BIT(4)
  23616. #define BIT_MACID_MATCH_RTS BIT(3)
  23617. #endif
  23618. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23619. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  23620. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23621. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23622. #define BIT_EN_BCN_TRXRPT_V1 BIT(2)
  23623. #endif
  23624. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  23625. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23626. #define BIT_R_EN_FTMRPT BIT(1)
  23627. #endif
  23628. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  23629. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23630. #define BIT_R_EN_FTMRPT_V1 BIT(1)
  23631. #endif
  23632. #if (HALMAC_8814B_SUPPORT)
  23633. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23634. #define BIT_EN_FTMRPT_V1 BIT(1)
  23635. #endif
  23636. #if (HALMAC_8822B_SUPPORT)
  23637. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23638. #define BIT_EN_FTMACKRPT BIT(1)
  23639. #endif
  23640. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23641. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  23642. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23643. #define BIT_R_BMC_NAV_PROTECT BIT(0)
  23644. #endif
  23645. #if (HALMAC_8814B_SUPPORT)
  23646. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23647. #define BIT_BMC_NAV_PROTECT BIT(0)
  23648. #endif
  23649. #if (HALMAC_8822B_SUPPORT)
  23650. /* 2 REG_FWHW_TXQ_CTRL (Offset 0x0420) */
  23651. #define BIT_EN_FTMRPT BIT(0)
  23652. #endif
  23653. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23654. /* 2 REG_HWSEQ_CTRL (Offset 0x0423) */
  23655. #define BIT_HWSEQ_CPUM_EN BIT(7)
  23656. #define BIT_HWSEQ_BCN_EN BIT(6)
  23657. #define BIT_HWSEQ_HI_EN BIT(5)
  23658. #define BIT_HWSEQ_MGT_EN BIT(4)
  23659. #define BIT_HWSEQ_BK_EN BIT(3)
  23660. #endif
  23661. #if (HALMAC_8198F_SUPPORT)
  23662. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23663. #define BIT_R_BROADCAST_RETRY_EN BIT(3)
  23664. #endif
  23665. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23666. HALMAC_8822C_SUPPORT)
  23667. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23668. #define BIT_BROADCAST_RTY_EN BIT(3)
  23669. #endif
  23670. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23671. /* 2 REG_HWSEQ_CTRL (Offset 0x0423) */
  23672. #define BIT_HWSEQ_BE_EN BIT(2)
  23673. #endif
  23674. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  23675. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23676. #define BIT__R_EN_RTY_BK_COD BIT(2)
  23677. #endif
  23678. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23679. HALMAC_8822C_SUPPORT)
  23680. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23681. #define BIT_EN_RTY_BK_COD BIT(2)
  23682. #endif
  23683. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23684. /* 2 REG_HWSEQ_CTRL (Offset 0x0423) */
  23685. #define BIT_HWSEQ_VI_EN BIT(1)
  23686. #define BIT_HWSEQ_VO_EN BIT(0)
  23687. #endif
  23688. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23689. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23690. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23691. #define BIT_SHIFT__R_DATA_FALLBACK_SEL 0
  23692. #define BIT_MASK__R_DATA_FALLBACK_SEL 0x3
  23693. #define BIT__R_DATA_FALLBACK_SEL(x) \
  23694. (((x) & BIT_MASK__R_DATA_FALLBACK_SEL) \
  23695. << BIT_SHIFT__R_DATA_FALLBACK_SEL)
  23696. #define BITS__R_DATA_FALLBACK_SEL \
  23697. (BIT_MASK__R_DATA_FALLBACK_SEL << BIT_SHIFT__R_DATA_FALLBACK_SEL)
  23698. #define BIT_CLEAR__R_DATA_FALLBACK_SEL(x) ((x) & (~BITS__R_DATA_FALLBACK_SEL))
  23699. #define BIT_GET__R_DATA_FALLBACK_SEL(x) \
  23700. (((x) >> BIT_SHIFT__R_DATA_FALLBACK_SEL) & \
  23701. BIT_MASK__R_DATA_FALLBACK_SEL)
  23702. #define BIT_SET__R_DATA_FALLBACK_SEL(x, v) \
  23703. (BIT_CLEAR__R_DATA_FALLBACK_SEL(x) | BIT__R_DATA_FALLBACK_SEL(v))
  23704. #endif
  23705. #if (HALMAC_8814B_SUPPORT)
  23706. /* 2 REG_DATAFB_SEL (Offset 0x0423) */
  23707. #define BIT_SHIFT__DATA_FALLBACK_SEL 0
  23708. #define BIT_MASK__DATA_FALLBACK_SEL 0x3
  23709. #define BIT__DATA_FALLBACK_SEL(x) \
  23710. (((x) & BIT_MASK__DATA_FALLBACK_SEL) << BIT_SHIFT__DATA_FALLBACK_SEL)
  23711. #define BITS__DATA_FALLBACK_SEL \
  23712. (BIT_MASK__DATA_FALLBACK_SEL << BIT_SHIFT__DATA_FALLBACK_SEL)
  23713. #define BIT_CLEAR__DATA_FALLBACK_SEL(x) ((x) & (~BITS__DATA_FALLBACK_SEL))
  23714. #define BIT_GET__DATA_FALLBACK_SEL(x) \
  23715. (((x) >> BIT_SHIFT__DATA_FALLBACK_SEL) & BIT_MASK__DATA_FALLBACK_SEL)
  23716. #define BIT_SET__DATA_FALLBACK_SEL(x, v) \
  23717. (BIT_CLEAR__DATA_FALLBACK_SEL(x) | BIT__DATA_FALLBACK_SEL(v))
  23718. #endif
  23719. #if (HALMAC_8192F_SUPPORT)
  23720. /* 2 REG_BCNQ_BDNY (Offset 0x0424) */
  23721. #define BIT_SHIFT_MGQ_PGBNDY_V2 8
  23722. #define BIT_MASK_MGQ_PGBNDY_V2 0xff
  23723. #define BIT_MGQ_PGBNDY_V2(x) \
  23724. (((x) & BIT_MASK_MGQ_PGBNDY_V2) << BIT_SHIFT_MGQ_PGBNDY_V2)
  23725. #define BITS_MGQ_PGBNDY_V2 (BIT_MASK_MGQ_PGBNDY_V2 << BIT_SHIFT_MGQ_PGBNDY_V2)
  23726. #define BIT_CLEAR_MGQ_PGBNDY_V2(x) ((x) & (~BITS_MGQ_PGBNDY_V2))
  23727. #define BIT_GET_MGQ_PGBNDY_V2(x) \
  23728. (((x) >> BIT_SHIFT_MGQ_PGBNDY_V2) & BIT_MASK_MGQ_PGBNDY_V2)
  23729. #define BIT_SET_MGQ_PGBNDY_V2(x, v) \
  23730. (BIT_CLEAR_MGQ_PGBNDY_V2(x) | BIT_MGQ_PGBNDY_V2(v))
  23731. #endif
  23732. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23733. /* 2 REG_BCNQ_BDNY (Offset 0x0424) */
  23734. #define BIT_SHIFT_BCNQ_PGBNDY 0
  23735. #define BIT_MASK_BCNQ_PGBNDY 0xff
  23736. #define BIT_BCNQ_PGBNDY(x) \
  23737. (((x) & BIT_MASK_BCNQ_PGBNDY) << BIT_SHIFT_BCNQ_PGBNDY)
  23738. #define BITS_BCNQ_PGBNDY (BIT_MASK_BCNQ_PGBNDY << BIT_SHIFT_BCNQ_PGBNDY)
  23739. #define BIT_CLEAR_BCNQ_PGBNDY(x) ((x) & (~BITS_BCNQ_PGBNDY))
  23740. #define BIT_GET_BCNQ_PGBNDY(x) \
  23741. (((x) >> BIT_SHIFT_BCNQ_PGBNDY) & BIT_MASK_BCNQ_PGBNDY)
  23742. #define BIT_SET_BCNQ_PGBNDY(x, v) \
  23743. (BIT_CLEAR_BCNQ_PGBNDY(x) | BIT_BCNQ_PGBNDY(v))
  23744. #endif
  23745. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23746. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  23747. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23748. /* 2 REG_BCNQ_BDNY_V1 (Offset 0x0424) */
  23749. #define BIT_SHIFT_BCNQ_PGBNDY_V1 0
  23750. #define BIT_MASK_BCNQ_PGBNDY_V1 0xfff
  23751. #define BIT_BCNQ_PGBNDY_V1(x) \
  23752. (((x) & BIT_MASK_BCNQ_PGBNDY_V1) << BIT_SHIFT_BCNQ_PGBNDY_V1)
  23753. #define BITS_BCNQ_PGBNDY_V1 \
  23754. (BIT_MASK_BCNQ_PGBNDY_V1 << BIT_SHIFT_BCNQ_PGBNDY_V1)
  23755. #define BIT_CLEAR_BCNQ_PGBNDY_V1(x) ((x) & (~BITS_BCNQ_PGBNDY_V1))
  23756. #define BIT_GET_BCNQ_PGBNDY_V1(x) \
  23757. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_V1) & BIT_MASK_BCNQ_PGBNDY_V1)
  23758. #define BIT_SET_BCNQ_PGBNDY_V1(x, v) \
  23759. (BIT_CLEAR_BCNQ_PGBNDY_V1(x) | BIT_BCNQ_PGBNDY_V1(v))
  23760. #endif
  23761. #if (HALMAC_8814B_SUPPORT)
  23762. /* 2 REG_TXBDNY (Offset 0x0424) */
  23763. #define BIT_SHIFT_TXBNDY 0
  23764. #define BIT_MASK_TXBNDY 0xfff
  23765. #define BIT_TXBNDY(x) (((x) & BIT_MASK_TXBNDY) << BIT_SHIFT_TXBNDY)
  23766. #define BITS_TXBNDY (BIT_MASK_TXBNDY << BIT_SHIFT_TXBNDY)
  23767. #define BIT_CLEAR_TXBNDY(x) ((x) & (~BITS_TXBNDY))
  23768. #define BIT_GET_TXBNDY(x) (((x) >> BIT_SHIFT_TXBNDY) & BIT_MASK_TXBNDY)
  23769. #define BIT_SET_TXBNDY(x, v) (BIT_CLEAR_TXBNDY(x) | BIT_TXBNDY(v))
  23770. #endif
  23771. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23772. /* 2 REG_MGQ_BDNY (Offset 0x0425) */
  23773. #define BIT_SHIFT_MGQ_PGBNDY 0
  23774. #define BIT_MASK_MGQ_PGBNDY 0xff
  23775. #define BIT_MGQ_PGBNDY(x) (((x) & BIT_MASK_MGQ_PGBNDY) << BIT_SHIFT_MGQ_PGBNDY)
  23776. #define BITS_MGQ_PGBNDY (BIT_MASK_MGQ_PGBNDY << BIT_SHIFT_MGQ_PGBNDY)
  23777. #define BIT_CLEAR_MGQ_PGBNDY(x) ((x) & (~BITS_MGQ_PGBNDY))
  23778. #define BIT_GET_MGQ_PGBNDY(x) \
  23779. (((x) >> BIT_SHIFT_MGQ_PGBNDY) & BIT_MASK_MGQ_PGBNDY)
  23780. #define BIT_SET_MGQ_PGBNDY(x, v) (BIT_CLEAR_MGQ_PGBNDY(x) | BIT_MGQ_PGBNDY(v))
  23781. #endif
  23782. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23783. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23784. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23785. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23786. /* 2 REG_LIFETIME_EN (Offset 0x0426) */
  23787. #define BIT_BT_INT_CPU BIT(7)
  23788. #define BIT_BT_INT_PTA BIT(6)
  23789. #endif
  23790. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23791. /* 2 REG_LIFETIME_EN (Offset 0x0426) */
  23792. #define BIT_SPERPT_ENTRY BIT(5)
  23793. #endif
  23794. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  23795. /* 2 REG_LIFETIME_EN (Offset 0x0426) */
  23796. #define BIT_RTYCNT_FB BIT(4)
  23797. #endif
  23798. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23799. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23800. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23801. HALMAC_8822C_SUPPORT)
  23802. /* 2 REG_LIFETIME_EN (Offset 0x0426) */
  23803. #define BIT_EN_CTRL_RTYBIT BIT(4)
  23804. #endif
  23805. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23806. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23807. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23808. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23809. /* 2 REG_LIFETIME_EN (Offset 0x0426) */
  23810. #define BIT_LIFETIME_BK_EN BIT(3)
  23811. #define BIT_LIFETIME_BE_EN BIT(2)
  23812. #define BIT_LIFETIME_VI_EN BIT(1)
  23813. #define BIT_LIFETIME_VO_EN BIT(0)
  23814. #endif
  23815. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  23816. /* 2 REG_FW_FREE_TAIL (Offset 0x0427) */
  23817. #define BIT_SHIFT_FW_FREE_TAIL 0
  23818. #define BIT_MASK_FW_FREE_TAIL 0xff
  23819. #define BIT_FW_FREE_TAIL(x) \
  23820. (((x) & BIT_MASK_FW_FREE_TAIL) << BIT_SHIFT_FW_FREE_TAIL)
  23821. #define BITS_FW_FREE_TAIL (BIT_MASK_FW_FREE_TAIL << BIT_SHIFT_FW_FREE_TAIL)
  23822. #define BIT_CLEAR_FW_FREE_TAIL(x) ((x) & (~BITS_FW_FREE_TAIL))
  23823. #define BIT_GET_FW_FREE_TAIL(x) \
  23824. (((x) >> BIT_SHIFT_FW_FREE_TAIL) & BIT_MASK_FW_FREE_TAIL)
  23825. #define BIT_SET_FW_FREE_TAIL(x, v) \
  23826. (BIT_CLEAR_FW_FREE_TAIL(x) | BIT_FW_FREE_TAIL(v))
  23827. #endif
  23828. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  23829. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  23830. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  23831. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  23832. /* 2 REG_SPEC_SIFS (Offset 0x0428) */
  23833. #define BIT_SHIFT_SPEC_SIFS_OFDM_PTCL 8
  23834. #define BIT_MASK_SPEC_SIFS_OFDM_PTCL 0xff
  23835. #define BIT_SPEC_SIFS_OFDM_PTCL(x) \
  23836. (((x) & BIT_MASK_SPEC_SIFS_OFDM_PTCL) << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL)
  23837. #define BITS_SPEC_SIFS_OFDM_PTCL \
  23838. (BIT_MASK_SPEC_SIFS_OFDM_PTCL << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL)
  23839. #define BIT_CLEAR_SPEC_SIFS_OFDM_PTCL(x) ((x) & (~BITS_SPEC_SIFS_OFDM_PTCL))
  23840. #define BIT_GET_SPEC_SIFS_OFDM_PTCL(x) \
  23841. (((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_PTCL) & BIT_MASK_SPEC_SIFS_OFDM_PTCL)
  23842. #define BIT_SET_SPEC_SIFS_OFDM_PTCL(x, v) \
  23843. (BIT_CLEAR_SPEC_SIFS_OFDM_PTCL(x) | BIT_SPEC_SIFS_OFDM_PTCL(v))
  23844. #define BIT_SHIFT_SPEC_SIFS_CCK_PTCL 0
  23845. #define BIT_MASK_SPEC_SIFS_CCK_PTCL 0xff
  23846. #define BIT_SPEC_SIFS_CCK_PTCL(x) \
  23847. (((x) & BIT_MASK_SPEC_SIFS_CCK_PTCL) << BIT_SHIFT_SPEC_SIFS_CCK_PTCL)
  23848. #define BITS_SPEC_SIFS_CCK_PTCL \
  23849. (BIT_MASK_SPEC_SIFS_CCK_PTCL << BIT_SHIFT_SPEC_SIFS_CCK_PTCL)
  23850. #define BIT_CLEAR_SPEC_SIFS_CCK_PTCL(x) ((x) & (~BITS_SPEC_SIFS_CCK_PTCL))
  23851. #define BIT_GET_SPEC_SIFS_CCK_PTCL(x) \
  23852. (((x) >> BIT_SHIFT_SPEC_SIFS_CCK_PTCL) & BIT_MASK_SPEC_SIFS_CCK_PTCL)
  23853. #define BIT_SET_SPEC_SIFS_CCK_PTCL(x, v) \
  23854. (BIT_CLEAR_SPEC_SIFS_CCK_PTCL(x) | BIT_SPEC_SIFS_CCK_PTCL(v))
  23855. /* 2 REG_RETRY_LIMIT (Offset 0x042A) */
  23856. #define BIT_SHIFT_SRL 8
  23857. #define BIT_MASK_SRL 0x3f
  23858. #define BIT_SRL(x) (((x) & BIT_MASK_SRL) << BIT_SHIFT_SRL)
  23859. #define BITS_SRL (BIT_MASK_SRL << BIT_SHIFT_SRL)
  23860. #define BIT_CLEAR_SRL(x) ((x) & (~BITS_SRL))
  23861. #define BIT_GET_SRL(x) (((x) >> BIT_SHIFT_SRL) & BIT_MASK_SRL)
  23862. #define BIT_SET_SRL(x, v) (BIT_CLEAR_SRL(x) | BIT_SRL(v))
  23863. #define BIT_SHIFT_LRL 0
  23864. #define BIT_MASK_LRL 0x3f
  23865. #define BIT_LRL(x) (((x) & BIT_MASK_LRL) << BIT_SHIFT_LRL)
  23866. #define BITS_LRL (BIT_MASK_LRL << BIT_SHIFT_LRL)
  23867. #define BIT_CLEAR_LRL(x) ((x) & (~BITS_LRL))
  23868. #define BIT_GET_LRL(x) (((x) >> BIT_SHIFT_LRL) & BIT_MASK_LRL)
  23869. #define BIT_SET_LRL(x, v) (BIT_CLEAR_LRL(x) | BIT_LRL(v))
  23870. #endif
  23871. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23872. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23873. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23874. HALMAC_8881A_SUPPORT)
  23875. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23876. #define BIT_R_ENABLE_NDPA BIT(31)
  23877. #endif
  23878. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23879. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23880. #define BIT_ENABLE_NDPA BIT(31)
  23881. #endif
  23882. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23883. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23884. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23885. HALMAC_8881A_SUPPORT)
  23886. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23887. #define BIT_USE_NDPA_PARAMETER BIT(30)
  23888. #endif
  23889. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23890. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23891. #define BIT_NDPA_PARA BIT(30)
  23892. #endif
  23893. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23894. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23895. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23896. HALMAC_8881A_SUPPORT)
  23897. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23898. #define BIT_R_PROP_TXBF BIT(29)
  23899. #endif
  23900. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23901. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23902. #define BIT_PROP_TXBF BIT(29)
  23903. #endif
  23904. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23905. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23906. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23907. HALMAC_8881A_SUPPORT)
  23908. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23909. #define BIT_R_EN_NDPA_INT BIT(28)
  23910. #endif
  23911. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23912. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23913. #define BIT_EN_NDPA_INT BIT(28)
  23914. #endif
  23915. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23916. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23917. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23918. HALMAC_8881A_SUPPORT)
  23919. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23920. #define BIT_R_TXBF1_80M BIT(27)
  23921. #endif
  23922. #if (HALMAC_8192F_SUPPORT)
  23923. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23924. #define BIT_TXBF1_80M BIT(27)
  23925. #endif
  23926. #if (HALMAC_8814B_SUPPORT)
  23927. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23928. #define BIT_TXBF1_80M_160M BIT(27)
  23929. #endif
  23930. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23931. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23932. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23933. HALMAC_8881A_SUPPORT)
  23934. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23935. #define BIT_R_TXBF1_40M BIT(26)
  23936. #endif
  23937. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23938. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23939. #define BIT_TXBF1_40M BIT(26)
  23940. #endif
  23941. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23942. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23943. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23944. HALMAC_8881A_SUPPORT)
  23945. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23946. #define BIT_R_TXBF1_20M BIT(25)
  23947. #endif
  23948. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23949. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23950. #define BIT_TXBF1_20M BIT(25)
  23951. #endif
  23952. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23953. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23954. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23955. HALMAC_8881A_SUPPORT)
  23956. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23957. #define BIT_SHIFT_R_TXBF1_AID 16
  23958. #define BIT_MASK_R_TXBF1_AID 0x1ff
  23959. #define BIT_R_TXBF1_AID(x) \
  23960. (((x) & BIT_MASK_R_TXBF1_AID) << BIT_SHIFT_R_TXBF1_AID)
  23961. #define BITS_R_TXBF1_AID (BIT_MASK_R_TXBF1_AID << BIT_SHIFT_R_TXBF1_AID)
  23962. #define BIT_CLEAR_R_TXBF1_AID(x) ((x) & (~BITS_R_TXBF1_AID))
  23963. #define BIT_GET_R_TXBF1_AID(x) \
  23964. (((x) >> BIT_SHIFT_R_TXBF1_AID) & BIT_MASK_R_TXBF1_AID)
  23965. #define BIT_SET_R_TXBF1_AID(x, v) \
  23966. (BIT_CLEAR_R_TXBF1_AID(x) | BIT_R_TXBF1_AID(v))
  23967. #endif
  23968. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23969. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23970. #define BIT_SHIFT_TXBF1_AID 16
  23971. #define BIT_MASK_TXBF1_AID 0x1ff
  23972. #define BIT_TXBF1_AID(x) (((x) & BIT_MASK_TXBF1_AID) << BIT_SHIFT_TXBF1_AID)
  23973. #define BITS_TXBF1_AID (BIT_MASK_TXBF1_AID << BIT_SHIFT_TXBF1_AID)
  23974. #define BIT_CLEAR_TXBF1_AID(x) ((x) & (~BITS_TXBF1_AID))
  23975. #define BIT_GET_TXBF1_AID(x) (((x) >> BIT_SHIFT_TXBF1_AID) & BIT_MASK_TXBF1_AID)
  23976. #define BIT_SET_TXBF1_AID(x, v) (BIT_CLEAR_TXBF1_AID(x) | BIT_TXBF1_AID(v))
  23977. #endif
  23978. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23979. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23980. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  23981. HALMAC_8822C_SUPPORT)
  23982. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23983. #define BIT_DIS_NDP_BFEN BIT(15)
  23984. #endif
  23985. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  23986. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23987. #define BIT_TXBCN_NOBLOCK_NDP BIT(14)
  23988. #endif
  23989. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  23990. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  23991. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23992. #define BIT_R_TXBCN_NOBLOCK_NDP BIT(14)
  23993. #endif
  23994. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  23995. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  23996. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  23997. HALMAC_8881A_SUPPORT)
  23998. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  23999. #define BIT_R_TXBF0_80M BIT(11)
  24000. #endif
  24001. #if (HALMAC_8192F_SUPPORT)
  24002. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24003. #define BIT_TXBF0_80M BIT(11)
  24004. #endif
  24005. #if (HALMAC_8814B_SUPPORT)
  24006. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24007. #define BIT_TXBF0_80M_160M BIT(11)
  24008. #endif
  24009. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24010. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24011. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  24012. HALMAC_8881A_SUPPORT)
  24013. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24014. #define BIT_R_TXBF0_40M BIT(10)
  24015. #endif
  24016. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  24017. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24018. #define BIT_TXBF0_40M BIT(10)
  24019. #endif
  24020. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24021. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24022. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  24023. HALMAC_8881A_SUPPORT)
  24024. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24025. #define BIT_R_TXBF0_20M BIT(9)
  24026. #endif
  24027. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  24028. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24029. #define BIT_TXBF0_20M BIT(9)
  24030. #endif
  24031. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24032. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24033. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  24034. HALMAC_8881A_SUPPORT)
  24035. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24036. #define BIT_SHIFT_R_TXBF0_AID 0
  24037. #define BIT_MASK_R_TXBF0_AID 0x1ff
  24038. #define BIT_R_TXBF0_AID(x) \
  24039. (((x) & BIT_MASK_R_TXBF0_AID) << BIT_SHIFT_R_TXBF0_AID)
  24040. #define BITS_R_TXBF0_AID (BIT_MASK_R_TXBF0_AID << BIT_SHIFT_R_TXBF0_AID)
  24041. #define BIT_CLEAR_R_TXBF0_AID(x) ((x) & (~BITS_R_TXBF0_AID))
  24042. #define BIT_GET_R_TXBF0_AID(x) \
  24043. (((x) >> BIT_SHIFT_R_TXBF0_AID) & BIT_MASK_R_TXBF0_AID)
  24044. #define BIT_SET_R_TXBF0_AID(x, v) \
  24045. (BIT_CLEAR_R_TXBF0_AID(x) | BIT_R_TXBF0_AID(v))
  24046. #endif
  24047. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  24048. /* 2 REG_TXBF_CTRL (Offset 0x042C) */
  24049. #define BIT_SHIFT_TXBF0_AID 0
  24050. #define BIT_MASK_TXBF0_AID 0x1ff
  24051. #define BIT_TXBF0_AID(x) (((x) & BIT_MASK_TXBF0_AID) << BIT_SHIFT_TXBF0_AID)
  24052. #define BITS_TXBF0_AID (BIT_MASK_TXBF0_AID << BIT_SHIFT_TXBF0_AID)
  24053. #define BIT_CLEAR_TXBF0_AID(x) ((x) & (~BITS_TXBF0_AID))
  24054. #define BIT_GET_TXBF0_AID(x) (((x) >> BIT_SHIFT_TXBF0_AID) & BIT_MASK_TXBF0_AID)
  24055. #define BIT_SET_TXBF0_AID(x, v) (BIT_CLEAR_TXBF0_AID(x) | BIT_TXBF0_AID(v))
  24056. #endif
  24057. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24058. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  24059. /* 2 REG_DARFRC (Offset 0x0430) */
  24060. #define BIT_SHIFT_DARF_RC8 (56 & CPU_OPT_WIDTH)
  24061. #define BIT_MASK_DARF_RC8 0x1f
  24062. #define BIT_DARF_RC8(x) (((x) & BIT_MASK_DARF_RC8) << BIT_SHIFT_DARF_RC8)
  24063. #define BITS_DARF_RC8 (BIT_MASK_DARF_RC8 << BIT_SHIFT_DARF_RC8)
  24064. #define BIT_CLEAR_DARF_RC8(x) ((x) & (~BITS_DARF_RC8))
  24065. #define BIT_GET_DARF_RC8(x) (((x) >> BIT_SHIFT_DARF_RC8) & BIT_MASK_DARF_RC8)
  24066. #define BIT_SET_DARF_RC8(x, v) (BIT_CLEAR_DARF_RC8(x) | BIT_DARF_RC8(v))
  24067. #define BIT_SHIFT_DARF_RC7 (48 & CPU_OPT_WIDTH)
  24068. #define BIT_MASK_DARF_RC7 0x1f
  24069. #define BIT_DARF_RC7(x) (((x) & BIT_MASK_DARF_RC7) << BIT_SHIFT_DARF_RC7)
  24070. #define BITS_DARF_RC7 (BIT_MASK_DARF_RC7 << BIT_SHIFT_DARF_RC7)
  24071. #define BIT_CLEAR_DARF_RC7(x) ((x) & (~BITS_DARF_RC7))
  24072. #define BIT_GET_DARF_RC7(x) (((x) >> BIT_SHIFT_DARF_RC7) & BIT_MASK_DARF_RC7)
  24073. #define BIT_SET_DARF_RC7(x, v) (BIT_CLEAR_DARF_RC7(x) | BIT_DARF_RC7(v))
  24074. #define BIT_SHIFT_DARF_RC6 (40 & CPU_OPT_WIDTH)
  24075. #define BIT_MASK_DARF_RC6 0x1f
  24076. #define BIT_DARF_RC6(x) (((x) & BIT_MASK_DARF_RC6) << BIT_SHIFT_DARF_RC6)
  24077. #define BITS_DARF_RC6 (BIT_MASK_DARF_RC6 << BIT_SHIFT_DARF_RC6)
  24078. #define BIT_CLEAR_DARF_RC6(x) ((x) & (~BITS_DARF_RC6))
  24079. #define BIT_GET_DARF_RC6(x) (((x) >> BIT_SHIFT_DARF_RC6) & BIT_MASK_DARF_RC6)
  24080. #define BIT_SET_DARF_RC6(x, v) (BIT_CLEAR_DARF_RC6(x) | BIT_DARF_RC6(v))
  24081. #define BIT_SHIFT_DARF_RC5 (32 & CPU_OPT_WIDTH)
  24082. #define BIT_MASK_DARF_RC5 0x1f
  24083. #define BIT_DARF_RC5(x) (((x) & BIT_MASK_DARF_RC5) << BIT_SHIFT_DARF_RC5)
  24084. #define BITS_DARF_RC5 (BIT_MASK_DARF_RC5 << BIT_SHIFT_DARF_RC5)
  24085. #define BIT_CLEAR_DARF_RC5(x) ((x) & (~BITS_DARF_RC5))
  24086. #define BIT_GET_DARF_RC5(x) (((x) >> BIT_SHIFT_DARF_RC5) & BIT_MASK_DARF_RC5)
  24087. #define BIT_SET_DARF_RC5(x, v) (BIT_CLEAR_DARF_RC5(x) | BIT_DARF_RC5(v))
  24088. #endif
  24089. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24090. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24091. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24092. /* 2 REG_DARFRC (Offset 0x0430) */
  24093. #define BIT_SHIFT_DARF_RC4 24
  24094. #define BIT_MASK_DARF_RC4 0x1f
  24095. #define BIT_DARF_RC4(x) (((x) & BIT_MASK_DARF_RC4) << BIT_SHIFT_DARF_RC4)
  24096. #define BITS_DARF_RC4 (BIT_MASK_DARF_RC4 << BIT_SHIFT_DARF_RC4)
  24097. #define BIT_CLEAR_DARF_RC4(x) ((x) & (~BITS_DARF_RC4))
  24098. #define BIT_GET_DARF_RC4(x) (((x) >> BIT_SHIFT_DARF_RC4) & BIT_MASK_DARF_RC4)
  24099. #define BIT_SET_DARF_RC4(x, v) (BIT_CLEAR_DARF_RC4(x) | BIT_DARF_RC4(v))
  24100. #endif
  24101. #if (HALMAC_8192F_SUPPORT)
  24102. /* 2 REG_DARFRC (Offset 0x0430) */
  24103. #define BIT_SHIFT_DARF_RC4_V2 24
  24104. #define BIT_MASK_DARF_RC4_V2 0x1f
  24105. #define BIT_DARF_RC4_V2(x) \
  24106. (((x) & BIT_MASK_DARF_RC4_V2) << BIT_SHIFT_DARF_RC4_V2)
  24107. #define BITS_DARF_RC4_V2 (BIT_MASK_DARF_RC4_V2 << BIT_SHIFT_DARF_RC4_V2)
  24108. #define BIT_CLEAR_DARF_RC4_V2(x) ((x) & (~BITS_DARF_RC4_V2))
  24109. #define BIT_GET_DARF_RC4_V2(x) \
  24110. (((x) >> BIT_SHIFT_DARF_RC4_V2) & BIT_MASK_DARF_RC4_V2)
  24111. #define BIT_SET_DARF_RC4_V2(x, v) \
  24112. (BIT_CLEAR_DARF_RC4_V2(x) | BIT_DARF_RC4_V2(v))
  24113. #endif
  24114. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  24115. /* 2 REG_DARFRC (Offset 0x0430) */
  24116. #define BIT_SHIFT_DARF_RC4_V1 24
  24117. #define BIT_MASK_DARF_RC4_V1 0x3f
  24118. #define BIT_DARF_RC4_V1(x) \
  24119. (((x) & BIT_MASK_DARF_RC4_V1) << BIT_SHIFT_DARF_RC4_V1)
  24120. #define BITS_DARF_RC4_V1 (BIT_MASK_DARF_RC4_V1 << BIT_SHIFT_DARF_RC4_V1)
  24121. #define BIT_CLEAR_DARF_RC4_V1(x) ((x) & (~BITS_DARF_RC4_V1))
  24122. #define BIT_GET_DARF_RC4_V1(x) \
  24123. (((x) >> BIT_SHIFT_DARF_RC4_V1) & BIT_MASK_DARF_RC4_V1)
  24124. #define BIT_SET_DARF_RC4_V1(x, v) \
  24125. (BIT_CLEAR_DARF_RC4_V1(x) | BIT_DARF_RC4_V1(v))
  24126. #endif
  24127. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24128. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24129. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24130. /* 2 REG_DARFRC (Offset 0x0430) */
  24131. #define BIT_SHIFT_DARF_RC3 16
  24132. #define BIT_MASK_DARF_RC3 0x1f
  24133. #define BIT_DARF_RC3(x) (((x) & BIT_MASK_DARF_RC3) << BIT_SHIFT_DARF_RC3)
  24134. #define BITS_DARF_RC3 (BIT_MASK_DARF_RC3 << BIT_SHIFT_DARF_RC3)
  24135. #define BIT_CLEAR_DARF_RC3(x) ((x) & (~BITS_DARF_RC3))
  24136. #define BIT_GET_DARF_RC3(x) (((x) >> BIT_SHIFT_DARF_RC3) & BIT_MASK_DARF_RC3)
  24137. #define BIT_SET_DARF_RC3(x, v) (BIT_CLEAR_DARF_RC3(x) | BIT_DARF_RC3(v))
  24138. #endif
  24139. #if (HALMAC_8192F_SUPPORT)
  24140. /* 2 REG_DARFRC (Offset 0x0430) */
  24141. #define BIT_SHIFT_DARF_RC3_V2 16
  24142. #define BIT_MASK_DARF_RC3_V2 0x1f
  24143. #define BIT_DARF_RC3_V2(x) \
  24144. (((x) & BIT_MASK_DARF_RC3_V2) << BIT_SHIFT_DARF_RC3_V2)
  24145. #define BITS_DARF_RC3_V2 (BIT_MASK_DARF_RC3_V2 << BIT_SHIFT_DARF_RC3_V2)
  24146. #define BIT_CLEAR_DARF_RC3_V2(x) ((x) & (~BITS_DARF_RC3_V2))
  24147. #define BIT_GET_DARF_RC3_V2(x) \
  24148. (((x) >> BIT_SHIFT_DARF_RC3_V2) & BIT_MASK_DARF_RC3_V2)
  24149. #define BIT_SET_DARF_RC3_V2(x, v) \
  24150. (BIT_CLEAR_DARF_RC3_V2(x) | BIT_DARF_RC3_V2(v))
  24151. #endif
  24152. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  24153. /* 2 REG_DARFRC (Offset 0x0430) */
  24154. #define BIT_SHIFT_DARF_RC3_V1 16
  24155. #define BIT_MASK_DARF_RC3_V1 0x3f
  24156. #define BIT_DARF_RC3_V1(x) \
  24157. (((x) & BIT_MASK_DARF_RC3_V1) << BIT_SHIFT_DARF_RC3_V1)
  24158. #define BITS_DARF_RC3_V1 (BIT_MASK_DARF_RC3_V1 << BIT_SHIFT_DARF_RC3_V1)
  24159. #define BIT_CLEAR_DARF_RC3_V1(x) ((x) & (~BITS_DARF_RC3_V1))
  24160. #define BIT_GET_DARF_RC3_V1(x) \
  24161. (((x) >> BIT_SHIFT_DARF_RC3_V1) & BIT_MASK_DARF_RC3_V1)
  24162. #define BIT_SET_DARF_RC3_V1(x, v) \
  24163. (BIT_CLEAR_DARF_RC3_V1(x) | BIT_DARF_RC3_V1(v))
  24164. #endif
  24165. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24166. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24167. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24168. /* 2 REG_DARFRC (Offset 0x0430) */
  24169. #define BIT_SHIFT_DARF_RC2 8
  24170. #define BIT_MASK_DARF_RC2 0x1f
  24171. #define BIT_DARF_RC2(x) (((x) & BIT_MASK_DARF_RC2) << BIT_SHIFT_DARF_RC2)
  24172. #define BITS_DARF_RC2 (BIT_MASK_DARF_RC2 << BIT_SHIFT_DARF_RC2)
  24173. #define BIT_CLEAR_DARF_RC2(x) ((x) & (~BITS_DARF_RC2))
  24174. #define BIT_GET_DARF_RC2(x) (((x) >> BIT_SHIFT_DARF_RC2) & BIT_MASK_DARF_RC2)
  24175. #define BIT_SET_DARF_RC2(x, v) (BIT_CLEAR_DARF_RC2(x) | BIT_DARF_RC2(v))
  24176. #endif
  24177. #if (HALMAC_8192F_SUPPORT)
  24178. /* 2 REG_DARFRC (Offset 0x0430) */
  24179. #define BIT_SHIFT_DARF_RC2_V2 8
  24180. #define BIT_MASK_DARF_RC2_V2 0x1f
  24181. #define BIT_DARF_RC2_V2(x) \
  24182. (((x) & BIT_MASK_DARF_RC2_V2) << BIT_SHIFT_DARF_RC2_V2)
  24183. #define BITS_DARF_RC2_V2 (BIT_MASK_DARF_RC2_V2 << BIT_SHIFT_DARF_RC2_V2)
  24184. #define BIT_CLEAR_DARF_RC2_V2(x) ((x) & (~BITS_DARF_RC2_V2))
  24185. #define BIT_GET_DARF_RC2_V2(x) \
  24186. (((x) >> BIT_SHIFT_DARF_RC2_V2) & BIT_MASK_DARF_RC2_V2)
  24187. #define BIT_SET_DARF_RC2_V2(x, v) \
  24188. (BIT_CLEAR_DARF_RC2_V2(x) | BIT_DARF_RC2_V2(v))
  24189. #endif
  24190. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  24191. /* 2 REG_DARFRC (Offset 0x0430) */
  24192. #define BIT_SHIFT_DARF_RC2_V1 8
  24193. #define BIT_MASK_DARF_RC2_V1 0x3f
  24194. #define BIT_DARF_RC2_V1(x) \
  24195. (((x) & BIT_MASK_DARF_RC2_V1) << BIT_SHIFT_DARF_RC2_V1)
  24196. #define BITS_DARF_RC2_V1 (BIT_MASK_DARF_RC2_V1 << BIT_SHIFT_DARF_RC2_V1)
  24197. #define BIT_CLEAR_DARF_RC2_V1(x) ((x) & (~BITS_DARF_RC2_V1))
  24198. #define BIT_GET_DARF_RC2_V1(x) \
  24199. (((x) >> BIT_SHIFT_DARF_RC2_V1) & BIT_MASK_DARF_RC2_V1)
  24200. #define BIT_SET_DARF_RC2_V1(x, v) \
  24201. (BIT_CLEAR_DARF_RC2_V1(x) | BIT_DARF_RC2_V1(v))
  24202. #endif
  24203. #if (HALMAC_8192E_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24204. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24205. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24206. /* 2 REG_DARFRC (Offset 0x0430) */
  24207. #define BIT_SHIFT_DARF_RC1 0
  24208. #define BIT_MASK_DARF_RC1 0x1f
  24209. #define BIT_DARF_RC1(x) (((x) & BIT_MASK_DARF_RC1) << BIT_SHIFT_DARF_RC1)
  24210. #define BITS_DARF_RC1 (BIT_MASK_DARF_RC1 << BIT_SHIFT_DARF_RC1)
  24211. #define BIT_CLEAR_DARF_RC1(x) ((x) & (~BITS_DARF_RC1))
  24212. #define BIT_GET_DARF_RC1(x) (((x) >> BIT_SHIFT_DARF_RC1) & BIT_MASK_DARF_RC1)
  24213. #define BIT_SET_DARF_RC1(x, v) (BIT_CLEAR_DARF_RC1(x) | BIT_DARF_RC1(v))
  24214. #endif
  24215. #if (HALMAC_8192F_SUPPORT)
  24216. /* 2 REG_DARFRC (Offset 0x0430) */
  24217. #define BIT_SHIFT_DARF_RC1_V2 0
  24218. #define BIT_MASK_DARF_RC1_V2 0x1f
  24219. #define BIT_DARF_RC1_V2(x) \
  24220. (((x) & BIT_MASK_DARF_RC1_V2) << BIT_SHIFT_DARF_RC1_V2)
  24221. #define BITS_DARF_RC1_V2 (BIT_MASK_DARF_RC1_V2 << BIT_SHIFT_DARF_RC1_V2)
  24222. #define BIT_CLEAR_DARF_RC1_V2(x) ((x) & (~BITS_DARF_RC1_V2))
  24223. #define BIT_GET_DARF_RC1_V2(x) \
  24224. (((x) >> BIT_SHIFT_DARF_RC1_V2) & BIT_MASK_DARF_RC1_V2)
  24225. #define BIT_SET_DARF_RC1_V2(x, v) \
  24226. (BIT_CLEAR_DARF_RC1_V2(x) | BIT_DARF_RC1_V2(v))
  24227. #endif
  24228. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  24229. /* 2 REG_DARFRC (Offset 0x0430) */
  24230. #define BIT_SHIFT_DARF_RC1_V1 0
  24231. #define BIT_MASK_DARF_RC1_V1 0x3f
  24232. #define BIT_DARF_RC1_V1(x) \
  24233. (((x) & BIT_MASK_DARF_RC1_V1) << BIT_SHIFT_DARF_RC1_V1)
  24234. #define BITS_DARF_RC1_V1 (BIT_MASK_DARF_RC1_V1 << BIT_SHIFT_DARF_RC1_V1)
  24235. #define BIT_CLEAR_DARF_RC1_V1(x) ((x) & (~BITS_DARF_RC1_V1))
  24236. #define BIT_GET_DARF_RC1_V1(x) \
  24237. (((x) >> BIT_SHIFT_DARF_RC1_V1) & BIT_MASK_DARF_RC1_V1)
  24238. #define BIT_SET_DARF_RC1_V1(x, v) \
  24239. (BIT_CLEAR_DARF_RC1_V1(x) | BIT_DARF_RC1_V1(v))
  24240. #endif
  24241. #if (HALMAC_8192F_SUPPORT)
  24242. /* 2 REG_DARFRCH (Offset 0x0434) */
  24243. #define BIT_SHIFT_DARF_RC8_V3 24
  24244. #define BIT_MASK_DARF_RC8_V3 0x1f
  24245. #define BIT_DARF_RC8_V3(x) \
  24246. (((x) & BIT_MASK_DARF_RC8_V3) << BIT_SHIFT_DARF_RC8_V3)
  24247. #define BITS_DARF_RC8_V3 (BIT_MASK_DARF_RC8_V3 << BIT_SHIFT_DARF_RC8_V3)
  24248. #define BIT_CLEAR_DARF_RC8_V3(x) ((x) & (~BITS_DARF_RC8_V3))
  24249. #define BIT_GET_DARF_RC8_V3(x) \
  24250. (((x) >> BIT_SHIFT_DARF_RC8_V3) & BIT_MASK_DARF_RC8_V3)
  24251. #define BIT_SET_DARF_RC8_V3(x, v) \
  24252. (BIT_CLEAR_DARF_RC8_V3(x) | BIT_DARF_RC8_V3(v))
  24253. #endif
  24254. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24255. /* 2 REG_DARFRCH (Offset 0x0434) */
  24256. #define BIT_SHIFT_DARF_RC8_V1 24
  24257. #define BIT_MASK_DARF_RC8_V1 0x1f
  24258. #define BIT_DARF_RC8_V1(x) \
  24259. (((x) & BIT_MASK_DARF_RC8_V1) << BIT_SHIFT_DARF_RC8_V1)
  24260. #define BITS_DARF_RC8_V1 (BIT_MASK_DARF_RC8_V1 << BIT_SHIFT_DARF_RC8_V1)
  24261. #define BIT_CLEAR_DARF_RC8_V1(x) ((x) & (~BITS_DARF_RC8_V1))
  24262. #define BIT_GET_DARF_RC8_V1(x) \
  24263. (((x) >> BIT_SHIFT_DARF_RC8_V1) & BIT_MASK_DARF_RC8_V1)
  24264. #define BIT_SET_DARF_RC8_V1(x, v) \
  24265. (BIT_CLEAR_DARF_RC8_V1(x) | BIT_DARF_RC8_V1(v))
  24266. #endif
  24267. #if (HALMAC_8192F_SUPPORT)
  24268. /* 2 REG_DARFRCH (Offset 0x0434) */
  24269. #define BIT_SHIFT_DARF_RC7_V3 16
  24270. #define BIT_MASK_DARF_RC7_V3 0x1f
  24271. #define BIT_DARF_RC7_V3(x) \
  24272. (((x) & BIT_MASK_DARF_RC7_V3) << BIT_SHIFT_DARF_RC7_V3)
  24273. #define BITS_DARF_RC7_V3 (BIT_MASK_DARF_RC7_V3 << BIT_SHIFT_DARF_RC7_V3)
  24274. #define BIT_CLEAR_DARF_RC7_V3(x) ((x) & (~BITS_DARF_RC7_V3))
  24275. #define BIT_GET_DARF_RC7_V3(x) \
  24276. (((x) >> BIT_SHIFT_DARF_RC7_V3) & BIT_MASK_DARF_RC7_V3)
  24277. #define BIT_SET_DARF_RC7_V3(x, v) \
  24278. (BIT_CLEAR_DARF_RC7_V3(x) | BIT_DARF_RC7_V3(v))
  24279. #endif
  24280. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24281. /* 2 REG_DARFRCH (Offset 0x0434) */
  24282. #define BIT_SHIFT_DARF_RC7_V1 16
  24283. #define BIT_MASK_DARF_RC7_V1 0x1f
  24284. #define BIT_DARF_RC7_V1(x) \
  24285. (((x) & BIT_MASK_DARF_RC7_V1) << BIT_SHIFT_DARF_RC7_V1)
  24286. #define BITS_DARF_RC7_V1 (BIT_MASK_DARF_RC7_V1 << BIT_SHIFT_DARF_RC7_V1)
  24287. #define BIT_CLEAR_DARF_RC7_V1(x) ((x) & (~BITS_DARF_RC7_V1))
  24288. #define BIT_GET_DARF_RC7_V1(x) \
  24289. (((x) >> BIT_SHIFT_DARF_RC7_V1) & BIT_MASK_DARF_RC7_V1)
  24290. #define BIT_SET_DARF_RC7_V1(x, v) \
  24291. (BIT_CLEAR_DARF_RC7_V1(x) | BIT_DARF_RC7_V1(v))
  24292. #endif
  24293. #if (HALMAC_8192F_SUPPORT)
  24294. /* 2 REG_DARFRCH (Offset 0x0434) */
  24295. #define BIT_SHIFT_DARF_RC6_V3 8
  24296. #define BIT_MASK_DARF_RC6_V3 0x1f
  24297. #define BIT_DARF_RC6_V3(x) \
  24298. (((x) & BIT_MASK_DARF_RC6_V3) << BIT_SHIFT_DARF_RC6_V3)
  24299. #define BITS_DARF_RC6_V3 (BIT_MASK_DARF_RC6_V3 << BIT_SHIFT_DARF_RC6_V3)
  24300. #define BIT_CLEAR_DARF_RC6_V3(x) ((x) & (~BITS_DARF_RC6_V3))
  24301. #define BIT_GET_DARF_RC6_V3(x) \
  24302. (((x) >> BIT_SHIFT_DARF_RC6_V3) & BIT_MASK_DARF_RC6_V3)
  24303. #define BIT_SET_DARF_RC6_V3(x, v) \
  24304. (BIT_CLEAR_DARF_RC6_V3(x) | BIT_DARF_RC6_V3(v))
  24305. #endif
  24306. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24307. /* 2 REG_DARFRCH (Offset 0x0434) */
  24308. #define BIT_SHIFT_DARF_RC6_V1 8
  24309. #define BIT_MASK_DARF_RC6_V1 0x1f
  24310. #define BIT_DARF_RC6_V1(x) \
  24311. (((x) & BIT_MASK_DARF_RC6_V1) << BIT_SHIFT_DARF_RC6_V1)
  24312. #define BITS_DARF_RC6_V1 (BIT_MASK_DARF_RC6_V1 << BIT_SHIFT_DARF_RC6_V1)
  24313. #define BIT_CLEAR_DARF_RC6_V1(x) ((x) & (~BITS_DARF_RC6_V1))
  24314. #define BIT_GET_DARF_RC6_V1(x) \
  24315. (((x) >> BIT_SHIFT_DARF_RC6_V1) & BIT_MASK_DARF_RC6_V1)
  24316. #define BIT_SET_DARF_RC6_V1(x, v) \
  24317. (BIT_CLEAR_DARF_RC6_V1(x) | BIT_DARF_RC6_V1(v))
  24318. #endif
  24319. #if (HALMAC_8192F_SUPPORT)
  24320. /* 2 REG_DARFRCH (Offset 0x0434) */
  24321. #define BIT_SHIFT_DARF_RC5_V3 0
  24322. #define BIT_MASK_DARF_RC5_V3 0x1f
  24323. #define BIT_DARF_RC5_V3(x) \
  24324. (((x) & BIT_MASK_DARF_RC5_V3) << BIT_SHIFT_DARF_RC5_V3)
  24325. #define BITS_DARF_RC5_V3 (BIT_MASK_DARF_RC5_V3 << BIT_SHIFT_DARF_RC5_V3)
  24326. #define BIT_CLEAR_DARF_RC5_V3(x) ((x) & (~BITS_DARF_RC5_V3))
  24327. #define BIT_GET_DARF_RC5_V3(x) \
  24328. (((x) >> BIT_SHIFT_DARF_RC5_V3) & BIT_MASK_DARF_RC5_V3)
  24329. #define BIT_SET_DARF_RC5_V3(x, v) \
  24330. (BIT_CLEAR_DARF_RC5_V3(x) | BIT_DARF_RC5_V3(v))
  24331. #endif
  24332. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24333. /* 2 REG_DARFRCH (Offset 0x0434) */
  24334. #define BIT_SHIFT_DARF_RC5_V1 0
  24335. #define BIT_MASK_DARF_RC5_V1 0x1f
  24336. #define BIT_DARF_RC5_V1(x) \
  24337. (((x) & BIT_MASK_DARF_RC5_V1) << BIT_SHIFT_DARF_RC5_V1)
  24338. #define BITS_DARF_RC5_V1 (BIT_MASK_DARF_RC5_V1 << BIT_SHIFT_DARF_RC5_V1)
  24339. #define BIT_CLEAR_DARF_RC5_V1(x) ((x) & (~BITS_DARF_RC5_V1))
  24340. #define BIT_GET_DARF_RC5_V1(x) \
  24341. (((x) >> BIT_SHIFT_DARF_RC5_V1) & BIT_MASK_DARF_RC5_V1)
  24342. #define BIT_SET_DARF_RC5_V1(x, v) \
  24343. (BIT_CLEAR_DARF_RC5_V1(x) | BIT_DARF_RC5_V1(v))
  24344. #endif
  24345. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24346. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  24347. HALMAC_8881A_SUPPORT)
  24348. /* 2 REG_RARFRC (Offset 0x0438) */
  24349. #define BIT_SHIFT_RARF_RC8 (56 & CPU_OPT_WIDTH)
  24350. #define BIT_MASK_RARF_RC8 0x1f
  24351. #define BIT_RARF_RC8(x) (((x) & BIT_MASK_RARF_RC8) << BIT_SHIFT_RARF_RC8)
  24352. #define BITS_RARF_RC8 (BIT_MASK_RARF_RC8 << BIT_SHIFT_RARF_RC8)
  24353. #define BIT_CLEAR_RARF_RC8(x) ((x) & (~BITS_RARF_RC8))
  24354. #define BIT_GET_RARF_RC8(x) (((x) >> BIT_SHIFT_RARF_RC8) & BIT_MASK_RARF_RC8)
  24355. #define BIT_SET_RARF_RC8(x, v) (BIT_CLEAR_RARF_RC8(x) | BIT_RARF_RC8(v))
  24356. #define BIT_SHIFT_RARF_RC7 (48 & CPU_OPT_WIDTH)
  24357. #define BIT_MASK_RARF_RC7 0x1f
  24358. #define BIT_RARF_RC7(x) (((x) & BIT_MASK_RARF_RC7) << BIT_SHIFT_RARF_RC7)
  24359. #define BITS_RARF_RC7 (BIT_MASK_RARF_RC7 << BIT_SHIFT_RARF_RC7)
  24360. #define BIT_CLEAR_RARF_RC7(x) ((x) & (~BITS_RARF_RC7))
  24361. #define BIT_GET_RARF_RC7(x) (((x) >> BIT_SHIFT_RARF_RC7) & BIT_MASK_RARF_RC7)
  24362. #define BIT_SET_RARF_RC7(x, v) (BIT_CLEAR_RARF_RC7(x) | BIT_RARF_RC7(v))
  24363. #define BIT_SHIFT_RARF_RC6 (40 & CPU_OPT_WIDTH)
  24364. #define BIT_MASK_RARF_RC6 0x1f
  24365. #define BIT_RARF_RC6(x) (((x) & BIT_MASK_RARF_RC6) << BIT_SHIFT_RARF_RC6)
  24366. #define BITS_RARF_RC6 (BIT_MASK_RARF_RC6 << BIT_SHIFT_RARF_RC6)
  24367. #define BIT_CLEAR_RARF_RC6(x) ((x) & (~BITS_RARF_RC6))
  24368. #define BIT_GET_RARF_RC6(x) (((x) >> BIT_SHIFT_RARF_RC6) & BIT_MASK_RARF_RC6)
  24369. #define BIT_SET_RARF_RC6(x, v) (BIT_CLEAR_RARF_RC6(x) | BIT_RARF_RC6(v))
  24370. #define BIT_SHIFT_RARF_RC5 (32 & CPU_OPT_WIDTH)
  24371. #define BIT_MASK_RARF_RC5 0x1f
  24372. #define BIT_RARF_RC5(x) (((x) & BIT_MASK_RARF_RC5) << BIT_SHIFT_RARF_RC5)
  24373. #define BITS_RARF_RC5 (BIT_MASK_RARF_RC5 << BIT_SHIFT_RARF_RC5)
  24374. #define BIT_CLEAR_RARF_RC5(x) ((x) & (~BITS_RARF_RC5))
  24375. #define BIT_GET_RARF_RC5(x) (((x) >> BIT_SHIFT_RARF_RC5) & BIT_MASK_RARF_RC5)
  24376. #define BIT_SET_RARF_RC5(x, v) (BIT_CLEAR_RARF_RC5(x) | BIT_RARF_RC5(v))
  24377. #endif
  24378. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24379. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24380. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24381. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24382. /* 2 REG_RARFRC (Offset 0x0438) */
  24383. #define BIT_SHIFT_RARF_RC4 24
  24384. #define BIT_MASK_RARF_RC4 0x1f
  24385. #define BIT_RARF_RC4(x) (((x) & BIT_MASK_RARF_RC4) << BIT_SHIFT_RARF_RC4)
  24386. #define BITS_RARF_RC4 (BIT_MASK_RARF_RC4 << BIT_SHIFT_RARF_RC4)
  24387. #define BIT_CLEAR_RARF_RC4(x) ((x) & (~BITS_RARF_RC4))
  24388. #define BIT_GET_RARF_RC4(x) (((x) >> BIT_SHIFT_RARF_RC4) & BIT_MASK_RARF_RC4)
  24389. #define BIT_SET_RARF_RC4(x, v) (BIT_CLEAR_RARF_RC4(x) | BIT_RARF_RC4(v))
  24390. #define BIT_SHIFT_RARF_RC3 16
  24391. #define BIT_MASK_RARF_RC3 0x1f
  24392. #define BIT_RARF_RC3(x) (((x) & BIT_MASK_RARF_RC3) << BIT_SHIFT_RARF_RC3)
  24393. #define BITS_RARF_RC3 (BIT_MASK_RARF_RC3 << BIT_SHIFT_RARF_RC3)
  24394. #define BIT_CLEAR_RARF_RC3(x) ((x) & (~BITS_RARF_RC3))
  24395. #define BIT_GET_RARF_RC3(x) (((x) >> BIT_SHIFT_RARF_RC3) & BIT_MASK_RARF_RC3)
  24396. #define BIT_SET_RARF_RC3(x, v) (BIT_CLEAR_RARF_RC3(x) | BIT_RARF_RC3(v))
  24397. #define BIT_SHIFT_RARF_RC2 8
  24398. #define BIT_MASK_RARF_RC2 0x1f
  24399. #define BIT_RARF_RC2(x) (((x) & BIT_MASK_RARF_RC2) << BIT_SHIFT_RARF_RC2)
  24400. #define BITS_RARF_RC2 (BIT_MASK_RARF_RC2 << BIT_SHIFT_RARF_RC2)
  24401. #define BIT_CLEAR_RARF_RC2(x) ((x) & (~BITS_RARF_RC2))
  24402. #define BIT_GET_RARF_RC2(x) (((x) >> BIT_SHIFT_RARF_RC2) & BIT_MASK_RARF_RC2)
  24403. #define BIT_SET_RARF_RC2(x, v) (BIT_CLEAR_RARF_RC2(x) | BIT_RARF_RC2(v))
  24404. #define BIT_SHIFT_RARF_RC1 0
  24405. #define BIT_MASK_RARF_RC1 0x1f
  24406. #define BIT_RARF_RC1(x) (((x) & BIT_MASK_RARF_RC1) << BIT_SHIFT_RARF_RC1)
  24407. #define BITS_RARF_RC1 (BIT_MASK_RARF_RC1 << BIT_SHIFT_RARF_RC1)
  24408. #define BIT_CLEAR_RARF_RC1(x) ((x) & (~BITS_RARF_RC1))
  24409. #define BIT_GET_RARF_RC1(x) (((x) >> BIT_SHIFT_RARF_RC1) & BIT_MASK_RARF_RC1)
  24410. #define BIT_SET_RARF_RC1(x, v) (BIT_CLEAR_RARF_RC1(x) | BIT_RARF_RC1(v))
  24411. #endif
  24412. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  24413. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24414. /* 2 REG_RARFRCH (Offset 0x043C) */
  24415. #define BIT_SHIFT_RARF_RC8_V1 24
  24416. #define BIT_MASK_RARF_RC8_V1 0x1f
  24417. #define BIT_RARF_RC8_V1(x) \
  24418. (((x) & BIT_MASK_RARF_RC8_V1) << BIT_SHIFT_RARF_RC8_V1)
  24419. #define BITS_RARF_RC8_V1 (BIT_MASK_RARF_RC8_V1 << BIT_SHIFT_RARF_RC8_V1)
  24420. #define BIT_CLEAR_RARF_RC8_V1(x) ((x) & (~BITS_RARF_RC8_V1))
  24421. #define BIT_GET_RARF_RC8_V1(x) \
  24422. (((x) >> BIT_SHIFT_RARF_RC8_V1) & BIT_MASK_RARF_RC8_V1)
  24423. #define BIT_SET_RARF_RC8_V1(x, v) \
  24424. (BIT_CLEAR_RARF_RC8_V1(x) | BIT_RARF_RC8_V1(v))
  24425. #define BIT_SHIFT_RARF_RC7_V1 16
  24426. #define BIT_MASK_RARF_RC7_V1 0x1f
  24427. #define BIT_RARF_RC7_V1(x) \
  24428. (((x) & BIT_MASK_RARF_RC7_V1) << BIT_SHIFT_RARF_RC7_V1)
  24429. #define BITS_RARF_RC7_V1 (BIT_MASK_RARF_RC7_V1 << BIT_SHIFT_RARF_RC7_V1)
  24430. #define BIT_CLEAR_RARF_RC7_V1(x) ((x) & (~BITS_RARF_RC7_V1))
  24431. #define BIT_GET_RARF_RC7_V1(x) \
  24432. (((x) >> BIT_SHIFT_RARF_RC7_V1) & BIT_MASK_RARF_RC7_V1)
  24433. #define BIT_SET_RARF_RC7_V1(x, v) \
  24434. (BIT_CLEAR_RARF_RC7_V1(x) | BIT_RARF_RC7_V1(v))
  24435. #define BIT_SHIFT_RARF_RC6_V1 8
  24436. #define BIT_MASK_RARF_RC6_V1 0x1f
  24437. #define BIT_RARF_RC6_V1(x) \
  24438. (((x) & BIT_MASK_RARF_RC6_V1) << BIT_SHIFT_RARF_RC6_V1)
  24439. #define BITS_RARF_RC6_V1 (BIT_MASK_RARF_RC6_V1 << BIT_SHIFT_RARF_RC6_V1)
  24440. #define BIT_CLEAR_RARF_RC6_V1(x) ((x) & (~BITS_RARF_RC6_V1))
  24441. #define BIT_GET_RARF_RC6_V1(x) \
  24442. (((x) >> BIT_SHIFT_RARF_RC6_V1) & BIT_MASK_RARF_RC6_V1)
  24443. #define BIT_SET_RARF_RC6_V1(x, v) \
  24444. (BIT_CLEAR_RARF_RC6_V1(x) | BIT_RARF_RC6_V1(v))
  24445. #define BIT_SHIFT_RARF_RC5_V1 0
  24446. #define BIT_MASK_RARF_RC5_V1 0x1f
  24447. #define BIT_RARF_RC5_V1(x) \
  24448. (((x) & BIT_MASK_RARF_RC5_V1) << BIT_SHIFT_RARF_RC5_V1)
  24449. #define BITS_RARF_RC5_V1 (BIT_MASK_RARF_RC5_V1 << BIT_SHIFT_RARF_RC5_V1)
  24450. #define BIT_CLEAR_RARF_RC5_V1(x) ((x) & (~BITS_RARF_RC5_V1))
  24451. #define BIT_GET_RARF_RC5_V1(x) \
  24452. (((x) >> BIT_SHIFT_RARF_RC5_V1) & BIT_MASK_RARF_RC5_V1)
  24453. #define BIT_SET_RARF_RC5_V1(x, v) \
  24454. (BIT_CLEAR_RARF_RC5_V1(x) | BIT_RARF_RC5_V1(v))
  24455. #endif
  24456. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  24457. /* 2 REG_RRSR (Offset 0x0440) */
  24458. #define BIT_EN_VHTBW_FALL BIT(31)
  24459. #define BIT_EN_HTBW_FALL BIT(30)
  24460. #endif
  24461. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24462. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24463. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24464. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24465. /* 2 REG_RRSR (Offset 0x0440) */
  24466. #define BIT_SHIFT_RRSR_RSC 21
  24467. #define BIT_MASK_RRSR_RSC 0x3
  24468. #define BIT_RRSR_RSC(x) (((x) & BIT_MASK_RRSR_RSC) << BIT_SHIFT_RRSR_RSC)
  24469. #define BITS_RRSR_RSC (BIT_MASK_RRSR_RSC << BIT_SHIFT_RRSR_RSC)
  24470. #define BIT_CLEAR_RRSR_RSC(x) ((x) & (~BITS_RRSR_RSC))
  24471. #define BIT_GET_RRSR_RSC(x) (((x) >> BIT_SHIFT_RRSR_RSC) & BIT_MASK_RRSR_RSC)
  24472. #define BIT_SET_RRSR_RSC(x, v) (BIT_CLEAR_RRSR_RSC(x) | BIT_RRSR_RSC(v))
  24473. #endif
  24474. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24475. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  24476. HALMAC_8881A_SUPPORT)
  24477. /* 2 REG_RRSR (Offset 0x0440) */
  24478. #define BIT_RRSR_BW BIT(20)
  24479. #endif
  24480. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24481. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24482. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24483. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24484. /* 2 REG_RRSR (Offset 0x0440) */
  24485. #define BIT_SHIFT_RRSC_BITMAP 0
  24486. #define BIT_MASK_RRSC_BITMAP 0xfffff
  24487. #define BIT_RRSC_BITMAP(x) \
  24488. (((x) & BIT_MASK_RRSC_BITMAP) << BIT_SHIFT_RRSC_BITMAP)
  24489. #define BITS_RRSC_BITMAP (BIT_MASK_RRSC_BITMAP << BIT_SHIFT_RRSC_BITMAP)
  24490. #define BIT_CLEAR_RRSC_BITMAP(x) ((x) & (~BITS_RRSC_BITMAP))
  24491. #define BIT_GET_RRSC_BITMAP(x) \
  24492. (((x) >> BIT_SHIFT_RRSC_BITMAP) & BIT_MASK_RRSC_BITMAP)
  24493. #define BIT_SET_RRSC_BITMAP(x, v) \
  24494. (BIT_CLEAR_RRSC_BITMAP(x) | BIT_RRSC_BITMAP(v))
  24495. #endif
  24496. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24497. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  24498. HALMAC_8881A_SUPPORT)
  24499. /* 2 REG_ARFR0 (Offset 0x0444) */
  24500. #define BIT_SHIFT_ARFR0_V1 0
  24501. #define BIT_MASK_ARFR0_V1 0xffffffffffffffffL
  24502. #define BIT_ARFR0_V1(x) (((x) & BIT_MASK_ARFR0_V1) << BIT_SHIFT_ARFR0_V1)
  24503. #define BITS_ARFR0_V1 (BIT_MASK_ARFR0_V1 << BIT_SHIFT_ARFR0_V1)
  24504. #define BIT_CLEAR_ARFR0_V1(x) ((x) & (~BITS_ARFR0_V1))
  24505. #define BIT_GET_ARFR0_V1(x) (((x) >> BIT_SHIFT_ARFR0_V1) & BIT_MASK_ARFR0_V1)
  24506. #define BIT_SET_ARFR0_V1(x, v) (BIT_CLEAR_ARFR0_V1(x) | BIT_ARFR0_V1(v))
  24507. #endif
  24508. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  24509. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  24510. /* 2 REG_ARFR0 (Offset 0x0444) */
  24511. #define BIT_SHIFT_ARFRL0 0
  24512. #define BIT_MASK_ARFRL0 0xffffffffL
  24513. #define BIT_ARFRL0(x) (((x) & BIT_MASK_ARFRL0) << BIT_SHIFT_ARFRL0)
  24514. #define BITS_ARFRL0 (BIT_MASK_ARFRL0 << BIT_SHIFT_ARFRL0)
  24515. #define BIT_CLEAR_ARFRL0(x) ((x) & (~BITS_ARFRL0))
  24516. #define BIT_GET_ARFRL0(x) (((x) >> BIT_SHIFT_ARFRL0) & BIT_MASK_ARFRL0)
  24517. #define BIT_SET_ARFRL0(x, v) (BIT_CLEAR_ARFRL0(x) | BIT_ARFRL0(v))
  24518. /* 2 REG_ARFRH0 (Offset 0x0448) */
  24519. #define BIT_SHIFT_ARFRH0 0
  24520. #define BIT_MASK_ARFRH0 0xffffffffL
  24521. #define BIT_ARFRH0(x) (((x) & BIT_MASK_ARFRH0) << BIT_SHIFT_ARFRH0)
  24522. #define BITS_ARFRH0 (BIT_MASK_ARFRH0 << BIT_SHIFT_ARFRH0)
  24523. #define BIT_CLEAR_ARFRH0(x) ((x) & (~BITS_ARFRH0))
  24524. #define BIT_GET_ARFRH0(x) (((x) >> BIT_SHIFT_ARFRH0) & BIT_MASK_ARFRH0)
  24525. #define BIT_SET_ARFRH0(x, v) (BIT_CLEAR_ARFRH0(x) | BIT_ARFRH0(v))
  24526. #endif
  24527. #if (HALMAC_8814B_SUPPORT)
  24528. /* 2 REG_REG_ARFR_WT0 (Offset 0x044C) */
  24529. #define BIT_SHIFT_RATE7_WEIGHTING 28
  24530. #define BIT_MASK_RATE7_WEIGHTING 0xf
  24531. #define BIT_RATE7_WEIGHTING(x) \
  24532. (((x) & BIT_MASK_RATE7_WEIGHTING) << BIT_SHIFT_RATE7_WEIGHTING)
  24533. #define BITS_RATE7_WEIGHTING \
  24534. (BIT_MASK_RATE7_WEIGHTING << BIT_SHIFT_RATE7_WEIGHTING)
  24535. #define BIT_CLEAR_RATE7_WEIGHTING(x) ((x) & (~BITS_RATE7_WEIGHTING))
  24536. #define BIT_GET_RATE7_WEIGHTING(x) \
  24537. (((x) >> BIT_SHIFT_RATE7_WEIGHTING) & BIT_MASK_RATE7_WEIGHTING)
  24538. #define BIT_SET_RATE7_WEIGHTING(x, v) \
  24539. (BIT_CLEAR_RATE7_WEIGHTING(x) | BIT_RATE7_WEIGHTING(v))
  24540. #define BIT_SHIFT_RATE6_WEIGHTING 24
  24541. #define BIT_MASK_RATE6_WEIGHTING 0xf
  24542. #define BIT_RATE6_WEIGHTING(x) \
  24543. (((x) & BIT_MASK_RATE6_WEIGHTING) << BIT_SHIFT_RATE6_WEIGHTING)
  24544. #define BITS_RATE6_WEIGHTING \
  24545. (BIT_MASK_RATE6_WEIGHTING << BIT_SHIFT_RATE6_WEIGHTING)
  24546. #define BIT_CLEAR_RATE6_WEIGHTING(x) ((x) & (~BITS_RATE6_WEIGHTING))
  24547. #define BIT_GET_RATE6_WEIGHTING(x) \
  24548. (((x) >> BIT_SHIFT_RATE6_WEIGHTING) & BIT_MASK_RATE6_WEIGHTING)
  24549. #define BIT_SET_RATE6_WEIGHTING(x, v) \
  24550. (BIT_CLEAR_RATE6_WEIGHTING(x) | BIT_RATE6_WEIGHTING(v))
  24551. #define BIT_SHIFT_RATE5_WEIGHTING 20
  24552. #define BIT_MASK_RATE5_WEIGHTING 0xf
  24553. #define BIT_RATE5_WEIGHTING(x) \
  24554. (((x) & BIT_MASK_RATE5_WEIGHTING) << BIT_SHIFT_RATE5_WEIGHTING)
  24555. #define BITS_RATE5_WEIGHTING \
  24556. (BIT_MASK_RATE5_WEIGHTING << BIT_SHIFT_RATE5_WEIGHTING)
  24557. #define BIT_CLEAR_RATE5_WEIGHTING(x) ((x) & (~BITS_RATE5_WEIGHTING))
  24558. #define BIT_GET_RATE5_WEIGHTING(x) \
  24559. (((x) >> BIT_SHIFT_RATE5_WEIGHTING) & BIT_MASK_RATE5_WEIGHTING)
  24560. #define BIT_SET_RATE5_WEIGHTING(x, v) \
  24561. (BIT_CLEAR_RATE5_WEIGHTING(x) | BIT_RATE5_WEIGHTING(v))
  24562. #define BIT_SHIFT_RATE4_WEIGHTING 16
  24563. #define BIT_MASK_RATE4_WEIGHTING 0xf
  24564. #define BIT_RATE4_WEIGHTING(x) \
  24565. (((x) & BIT_MASK_RATE4_WEIGHTING) << BIT_SHIFT_RATE4_WEIGHTING)
  24566. #define BITS_RATE4_WEIGHTING \
  24567. (BIT_MASK_RATE4_WEIGHTING << BIT_SHIFT_RATE4_WEIGHTING)
  24568. #define BIT_CLEAR_RATE4_WEIGHTING(x) ((x) & (~BITS_RATE4_WEIGHTING))
  24569. #define BIT_GET_RATE4_WEIGHTING(x) \
  24570. (((x) >> BIT_SHIFT_RATE4_WEIGHTING) & BIT_MASK_RATE4_WEIGHTING)
  24571. #define BIT_SET_RATE4_WEIGHTING(x, v) \
  24572. (BIT_CLEAR_RATE4_WEIGHTING(x) | BIT_RATE4_WEIGHTING(v))
  24573. #define BIT_SHIFT_RATE3_WEIGHTING 12
  24574. #define BIT_MASK_RATE3_WEIGHTING 0xf
  24575. #define BIT_RATE3_WEIGHTING(x) \
  24576. (((x) & BIT_MASK_RATE3_WEIGHTING) << BIT_SHIFT_RATE3_WEIGHTING)
  24577. #define BITS_RATE3_WEIGHTING \
  24578. (BIT_MASK_RATE3_WEIGHTING << BIT_SHIFT_RATE3_WEIGHTING)
  24579. #define BIT_CLEAR_RATE3_WEIGHTING(x) ((x) & (~BITS_RATE3_WEIGHTING))
  24580. #define BIT_GET_RATE3_WEIGHTING(x) \
  24581. (((x) >> BIT_SHIFT_RATE3_WEIGHTING) & BIT_MASK_RATE3_WEIGHTING)
  24582. #define BIT_SET_RATE3_WEIGHTING(x, v) \
  24583. (BIT_CLEAR_RATE3_WEIGHTING(x) | BIT_RATE3_WEIGHTING(v))
  24584. #define BIT_SHIFT_RATE2_WEIGHTING 8
  24585. #define BIT_MASK_RATE2_WEIGHTING 0xf
  24586. #define BIT_RATE2_WEIGHTING(x) \
  24587. (((x) & BIT_MASK_RATE2_WEIGHTING) << BIT_SHIFT_RATE2_WEIGHTING)
  24588. #define BITS_RATE2_WEIGHTING \
  24589. (BIT_MASK_RATE2_WEIGHTING << BIT_SHIFT_RATE2_WEIGHTING)
  24590. #define BIT_CLEAR_RATE2_WEIGHTING(x) ((x) & (~BITS_RATE2_WEIGHTING))
  24591. #define BIT_GET_RATE2_WEIGHTING(x) \
  24592. (((x) >> BIT_SHIFT_RATE2_WEIGHTING) & BIT_MASK_RATE2_WEIGHTING)
  24593. #define BIT_SET_RATE2_WEIGHTING(x, v) \
  24594. (BIT_CLEAR_RATE2_WEIGHTING(x) | BIT_RATE2_WEIGHTING(v))
  24595. #define BIT_SHIFT_RATE1_WEIGHTING 4
  24596. #define BIT_MASK_RATE1_WEIGHTING 0xf
  24597. #define BIT_RATE1_WEIGHTING(x) \
  24598. (((x) & BIT_MASK_RATE1_WEIGHTING) << BIT_SHIFT_RATE1_WEIGHTING)
  24599. #define BITS_RATE1_WEIGHTING \
  24600. (BIT_MASK_RATE1_WEIGHTING << BIT_SHIFT_RATE1_WEIGHTING)
  24601. #define BIT_CLEAR_RATE1_WEIGHTING(x) ((x) & (~BITS_RATE1_WEIGHTING))
  24602. #define BIT_GET_RATE1_WEIGHTING(x) \
  24603. (((x) >> BIT_SHIFT_RATE1_WEIGHTING) & BIT_MASK_RATE1_WEIGHTING)
  24604. #define BIT_SET_RATE1_WEIGHTING(x, v) \
  24605. (BIT_CLEAR_RATE1_WEIGHTING(x) | BIT_RATE1_WEIGHTING(v))
  24606. #endif
  24607. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24608. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  24609. HALMAC_8881A_SUPPORT)
  24610. /* 2 REG_ARFR1_V1 (Offset 0x044C) */
  24611. #define BIT_SHIFT_ARFR1_V1 0
  24612. #define BIT_MASK_ARFR1_V1 0xffffffffffffffffL
  24613. #define BIT_ARFR1_V1(x) (((x) & BIT_MASK_ARFR1_V1) << BIT_SHIFT_ARFR1_V1)
  24614. #define BITS_ARFR1_V1 (BIT_MASK_ARFR1_V1 << BIT_SHIFT_ARFR1_V1)
  24615. #define BIT_CLEAR_ARFR1_V1(x) ((x) & (~BITS_ARFR1_V1))
  24616. #define BIT_GET_ARFR1_V1(x) (((x) >> BIT_SHIFT_ARFR1_V1) & BIT_MASK_ARFR1_V1)
  24617. #define BIT_SET_ARFR1_V1(x, v) (BIT_CLEAR_ARFR1_V1(x) | BIT_ARFR1_V1(v))
  24618. #endif
  24619. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  24620. HALMAC_8822C_SUPPORT)
  24621. /* 2 REG_ARFR1_V1 (Offset 0x044C) */
  24622. #define BIT_SHIFT_ARFRL1 0
  24623. #define BIT_MASK_ARFRL1 0xffffffffL
  24624. #define BIT_ARFRL1(x) (((x) & BIT_MASK_ARFRL1) << BIT_SHIFT_ARFRL1)
  24625. #define BITS_ARFRL1 (BIT_MASK_ARFRL1 << BIT_SHIFT_ARFRL1)
  24626. #define BIT_CLEAR_ARFRL1(x) ((x) & (~BITS_ARFRL1))
  24627. #define BIT_GET_ARFRL1(x) (((x) >> BIT_SHIFT_ARFRL1) & BIT_MASK_ARFRL1)
  24628. #define BIT_SET_ARFRL1(x, v) (BIT_CLEAR_ARFRL1(x) | BIT_ARFRL1(v))
  24629. #endif
  24630. #if (HALMAC_8814B_SUPPORT)
  24631. /* 2 REG_REG_ARFR_WT0 (Offset 0x044C) */
  24632. #define BIT_SHIFT_RATE0_WEIGHTING 0
  24633. #define BIT_MASK_RATE0_WEIGHTING 0xf
  24634. #define BIT_RATE0_WEIGHTING(x) \
  24635. (((x) & BIT_MASK_RATE0_WEIGHTING) << BIT_SHIFT_RATE0_WEIGHTING)
  24636. #define BITS_RATE0_WEIGHTING \
  24637. (BIT_MASK_RATE0_WEIGHTING << BIT_SHIFT_RATE0_WEIGHTING)
  24638. #define BIT_CLEAR_RATE0_WEIGHTING(x) ((x) & (~BITS_RATE0_WEIGHTING))
  24639. #define BIT_GET_RATE0_WEIGHTING(x) \
  24640. (((x) >> BIT_SHIFT_RATE0_WEIGHTING) & BIT_MASK_RATE0_WEIGHTING)
  24641. #define BIT_SET_RATE0_WEIGHTING(x, v) \
  24642. (BIT_CLEAR_RATE0_WEIGHTING(x) | BIT_RATE0_WEIGHTING(v))
  24643. /* 2 REG_REG_ARFR_WT1 (Offset 0x0450) */
  24644. #define BIT_SHIFT_RATE15_WEIGHTING 28
  24645. #define BIT_MASK_RATE15_WEIGHTING 0xf
  24646. #define BIT_RATE15_WEIGHTING(x) \
  24647. (((x) & BIT_MASK_RATE15_WEIGHTING) << BIT_SHIFT_RATE15_WEIGHTING)
  24648. #define BITS_RATE15_WEIGHTING \
  24649. (BIT_MASK_RATE15_WEIGHTING << BIT_SHIFT_RATE15_WEIGHTING)
  24650. #define BIT_CLEAR_RATE15_WEIGHTING(x) ((x) & (~BITS_RATE15_WEIGHTING))
  24651. #define BIT_GET_RATE15_WEIGHTING(x) \
  24652. (((x) >> BIT_SHIFT_RATE15_WEIGHTING) & BIT_MASK_RATE15_WEIGHTING)
  24653. #define BIT_SET_RATE15_WEIGHTING(x, v) \
  24654. (BIT_CLEAR_RATE15_WEIGHTING(x) | BIT_RATE15_WEIGHTING(v))
  24655. #define BIT_SHIFT_RATE14_WEIGHTING 24
  24656. #define BIT_MASK_RATE14_WEIGHTING 0xf
  24657. #define BIT_RATE14_WEIGHTING(x) \
  24658. (((x) & BIT_MASK_RATE14_WEIGHTING) << BIT_SHIFT_RATE14_WEIGHTING)
  24659. #define BITS_RATE14_WEIGHTING \
  24660. (BIT_MASK_RATE14_WEIGHTING << BIT_SHIFT_RATE14_WEIGHTING)
  24661. #define BIT_CLEAR_RATE14_WEIGHTING(x) ((x) & (~BITS_RATE14_WEIGHTING))
  24662. #define BIT_GET_RATE14_WEIGHTING(x) \
  24663. (((x) >> BIT_SHIFT_RATE14_WEIGHTING) & BIT_MASK_RATE14_WEIGHTING)
  24664. #define BIT_SET_RATE14_WEIGHTING(x, v) \
  24665. (BIT_CLEAR_RATE14_WEIGHTING(x) | BIT_RATE14_WEIGHTING(v))
  24666. #define BIT_SHIFT_RATE13_WEIGHTING 20
  24667. #define BIT_MASK_RATE13_WEIGHTING 0xf
  24668. #define BIT_RATE13_WEIGHTING(x) \
  24669. (((x) & BIT_MASK_RATE13_WEIGHTING) << BIT_SHIFT_RATE13_WEIGHTING)
  24670. #define BITS_RATE13_WEIGHTING \
  24671. (BIT_MASK_RATE13_WEIGHTING << BIT_SHIFT_RATE13_WEIGHTING)
  24672. #define BIT_CLEAR_RATE13_WEIGHTING(x) ((x) & (~BITS_RATE13_WEIGHTING))
  24673. #define BIT_GET_RATE13_WEIGHTING(x) \
  24674. (((x) >> BIT_SHIFT_RATE13_WEIGHTING) & BIT_MASK_RATE13_WEIGHTING)
  24675. #define BIT_SET_RATE13_WEIGHTING(x, v) \
  24676. (BIT_CLEAR_RATE13_WEIGHTING(x) | BIT_RATE13_WEIGHTING(v))
  24677. #define BIT_SHIFT_RATE12_WEIGHTING 16
  24678. #define BIT_MASK_RATE12_WEIGHTING 0xf
  24679. #define BIT_RATE12_WEIGHTING(x) \
  24680. (((x) & BIT_MASK_RATE12_WEIGHTING) << BIT_SHIFT_RATE12_WEIGHTING)
  24681. #define BITS_RATE12_WEIGHTING \
  24682. (BIT_MASK_RATE12_WEIGHTING << BIT_SHIFT_RATE12_WEIGHTING)
  24683. #define BIT_CLEAR_RATE12_WEIGHTING(x) ((x) & (~BITS_RATE12_WEIGHTING))
  24684. #define BIT_GET_RATE12_WEIGHTING(x) \
  24685. (((x) >> BIT_SHIFT_RATE12_WEIGHTING) & BIT_MASK_RATE12_WEIGHTING)
  24686. #define BIT_SET_RATE12_WEIGHTING(x, v) \
  24687. (BIT_CLEAR_RATE12_WEIGHTING(x) | BIT_RATE12_WEIGHTING(v))
  24688. #define BIT_SHIFT_RATE11_WEIGHTING 12
  24689. #define BIT_MASK_RATE11_WEIGHTING 0xf
  24690. #define BIT_RATE11_WEIGHTING(x) \
  24691. (((x) & BIT_MASK_RATE11_WEIGHTING) << BIT_SHIFT_RATE11_WEIGHTING)
  24692. #define BITS_RATE11_WEIGHTING \
  24693. (BIT_MASK_RATE11_WEIGHTING << BIT_SHIFT_RATE11_WEIGHTING)
  24694. #define BIT_CLEAR_RATE11_WEIGHTING(x) ((x) & (~BITS_RATE11_WEIGHTING))
  24695. #define BIT_GET_RATE11_WEIGHTING(x) \
  24696. (((x) >> BIT_SHIFT_RATE11_WEIGHTING) & BIT_MASK_RATE11_WEIGHTING)
  24697. #define BIT_SET_RATE11_WEIGHTING(x, v) \
  24698. (BIT_CLEAR_RATE11_WEIGHTING(x) | BIT_RATE11_WEIGHTING(v))
  24699. #define BIT_SHIFT_RATE10_WEIGHTING 8
  24700. #define BIT_MASK_RATE10_WEIGHTING 0xf
  24701. #define BIT_RATE10_WEIGHTING(x) \
  24702. (((x) & BIT_MASK_RATE10_WEIGHTING) << BIT_SHIFT_RATE10_WEIGHTING)
  24703. #define BITS_RATE10_WEIGHTING \
  24704. (BIT_MASK_RATE10_WEIGHTING << BIT_SHIFT_RATE10_WEIGHTING)
  24705. #define BIT_CLEAR_RATE10_WEIGHTING(x) ((x) & (~BITS_RATE10_WEIGHTING))
  24706. #define BIT_GET_RATE10_WEIGHTING(x) \
  24707. (((x) >> BIT_SHIFT_RATE10_WEIGHTING) & BIT_MASK_RATE10_WEIGHTING)
  24708. #define BIT_SET_RATE10_WEIGHTING(x, v) \
  24709. (BIT_CLEAR_RATE10_WEIGHTING(x) | BIT_RATE10_WEIGHTING(v))
  24710. #define BIT_SHIFT_RATE9_WEIGHTING 4
  24711. #define BIT_MASK_RATE9_WEIGHTING 0xf
  24712. #define BIT_RATE9_WEIGHTING(x) \
  24713. (((x) & BIT_MASK_RATE9_WEIGHTING) << BIT_SHIFT_RATE9_WEIGHTING)
  24714. #define BITS_RATE9_WEIGHTING \
  24715. (BIT_MASK_RATE9_WEIGHTING << BIT_SHIFT_RATE9_WEIGHTING)
  24716. #define BIT_CLEAR_RATE9_WEIGHTING(x) ((x) & (~BITS_RATE9_WEIGHTING))
  24717. #define BIT_GET_RATE9_WEIGHTING(x) \
  24718. (((x) >> BIT_SHIFT_RATE9_WEIGHTING) & BIT_MASK_RATE9_WEIGHTING)
  24719. #define BIT_SET_RATE9_WEIGHTING(x, v) \
  24720. (BIT_CLEAR_RATE9_WEIGHTING(x) | BIT_RATE9_WEIGHTING(v))
  24721. #endif
  24722. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  24723. HALMAC_8822C_SUPPORT)
  24724. /* 2 REG_ARFRH1 (Offset 0x0450) */
  24725. #define BIT_SHIFT_ARFRH1 0
  24726. #define BIT_MASK_ARFRH1 0xffffffffL
  24727. #define BIT_ARFRH1(x) (((x) & BIT_MASK_ARFRH1) << BIT_SHIFT_ARFRH1)
  24728. #define BITS_ARFRH1 (BIT_MASK_ARFRH1 << BIT_SHIFT_ARFRH1)
  24729. #define BIT_CLEAR_ARFRH1(x) ((x) & (~BITS_ARFRH1))
  24730. #define BIT_GET_ARFRH1(x) (((x) >> BIT_SHIFT_ARFRH1) & BIT_MASK_ARFRH1)
  24731. #define BIT_SET_ARFRH1(x, v) (BIT_CLEAR_ARFRH1(x) | BIT_ARFRH1(v))
  24732. #endif
  24733. #if (HALMAC_8814B_SUPPORT)
  24734. /* 2 REG_REG_ARFR_WT1 (Offset 0x0450) */
  24735. #define BIT_SHIFT_RATE8_WEIGHTING 0
  24736. #define BIT_MASK_RATE8_WEIGHTING 0xf
  24737. #define BIT_RATE8_WEIGHTING(x) \
  24738. (((x) & BIT_MASK_RATE8_WEIGHTING) << BIT_SHIFT_RATE8_WEIGHTING)
  24739. #define BITS_RATE8_WEIGHTING \
  24740. (BIT_MASK_RATE8_WEIGHTING << BIT_SHIFT_RATE8_WEIGHTING)
  24741. #define BIT_CLEAR_RATE8_WEIGHTING(x) ((x) & (~BITS_RATE8_WEIGHTING))
  24742. #define BIT_GET_RATE8_WEIGHTING(x) \
  24743. (((x) >> BIT_SHIFT_RATE8_WEIGHTING) & BIT_MASK_RATE8_WEIGHTING)
  24744. #define BIT_SET_RATE8_WEIGHTING(x, v) \
  24745. (BIT_CLEAR_RATE8_WEIGHTING(x) | BIT_RATE8_WEIGHTING(v))
  24746. #endif
  24747. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24748. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24749. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24750. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24751. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24752. #define BIT_CHECK_CCK_EN BIT(7)
  24753. #endif
  24754. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24755. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24756. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24757. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24758. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24759. #define BIT_EN_BCN_PKT_REL BIT(6)
  24760. #endif
  24761. #if (HALMAC_8814B_SUPPORT)
  24762. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24763. #define BIT_EN_BCN_PKT_REL_P0 BIT(6)
  24764. #endif
  24765. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24766. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24767. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24768. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24769. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24770. #define BIT_BCN_PORT_SEL BIT(5)
  24771. #define BIT_MOREDATA_BYPASS BIT(4)
  24772. #endif
  24773. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24774. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24775. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24776. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24777. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24778. #define BIT_EN_CLR_CMD_REL_BCN_PKT BIT(3)
  24779. #endif
  24780. #if (HALMAC_8814B_SUPPORT)
  24781. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24782. #define BIT_EN_CLR_CMD_REL_BCN_PKT_P0 BIT(3)
  24783. #endif
  24784. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  24785. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24786. #define BIT_EN_SET_MOREDATA BIT(2)
  24787. #endif
  24788. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24789. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24790. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24791. #define BIT_R_EN_SET_MOREDATA BIT(2)
  24792. #endif
  24793. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24794. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24795. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24796. /* 2 REG_CCK_CHECK (Offset 0x0454) */
  24797. #define BIT__R_DIS_CLEAR_MACID_RELEASE BIT(1)
  24798. #define BIT__R_MACID_RELEASE_EN BIT(0)
  24799. #endif
  24800. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24801. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24802. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24803. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24804. /* 2 REG_AMPDU_MAX_TIME_V1 (Offset 0x0455) */
  24805. #define BIT_SHIFT_AMPDU_MAX_TIME 0
  24806. #define BIT_MASK_AMPDU_MAX_TIME 0xff
  24807. #define BIT_AMPDU_MAX_TIME(x) \
  24808. (((x) & BIT_MASK_AMPDU_MAX_TIME) << BIT_SHIFT_AMPDU_MAX_TIME)
  24809. #define BITS_AMPDU_MAX_TIME \
  24810. (BIT_MASK_AMPDU_MAX_TIME << BIT_SHIFT_AMPDU_MAX_TIME)
  24811. #define BIT_CLEAR_AMPDU_MAX_TIME(x) ((x) & (~BITS_AMPDU_MAX_TIME))
  24812. #define BIT_GET_AMPDU_MAX_TIME(x) \
  24813. (((x) >> BIT_SHIFT_AMPDU_MAX_TIME) & BIT_MASK_AMPDU_MAX_TIME)
  24814. #define BIT_SET_AMPDU_MAX_TIME(x, v) \
  24815. (BIT_CLEAR_AMPDU_MAX_TIME(x) | BIT_AMPDU_MAX_TIME(v))
  24816. #endif
  24817. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  24818. /* 2 REG_AMPDU_BURST_CTRL (Offset 0x0455) */
  24819. #define BIT_AMPDU_BURST_GLOBAL_EN BIT(0)
  24820. #endif
  24821. #if (HALMAC_8192F_SUPPORT)
  24822. /* 2 REG_BCNQ2_HEAD (Offset 0x0455) */
  24823. #define BIT_SHIFT_BCNQ2_HEAD 0
  24824. #define BIT_MASK_BCNQ2_HEAD 0xff
  24825. #define BIT_BCNQ2_HEAD(x) (((x) & BIT_MASK_BCNQ2_HEAD) << BIT_SHIFT_BCNQ2_HEAD)
  24826. #define BITS_BCNQ2_HEAD (BIT_MASK_BCNQ2_HEAD << BIT_SHIFT_BCNQ2_HEAD)
  24827. #define BIT_CLEAR_BCNQ2_HEAD(x) ((x) & (~BITS_BCNQ2_HEAD))
  24828. #define BIT_GET_BCNQ2_HEAD(x) \
  24829. (((x) >> BIT_SHIFT_BCNQ2_HEAD) & BIT_MASK_BCNQ2_HEAD)
  24830. #define BIT_SET_BCNQ2_HEAD(x, v) (BIT_CLEAR_BCNQ2_HEAD(x) | BIT_BCNQ2_HEAD(v))
  24831. #endif
  24832. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24833. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  24834. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24835. /* 2 REG_BCNQ1_BDNY_V1 (Offset 0x0456) */
  24836. #define BIT_SHIFT_BCNQ1_PGBNDY_V1 0
  24837. #define BIT_MASK_BCNQ1_PGBNDY_V1 0xfff
  24838. #define BIT_BCNQ1_PGBNDY_V1(x) \
  24839. (((x) & BIT_MASK_BCNQ1_PGBNDY_V1) << BIT_SHIFT_BCNQ1_PGBNDY_V1)
  24840. #define BITS_BCNQ1_PGBNDY_V1 \
  24841. (BIT_MASK_BCNQ1_PGBNDY_V1 << BIT_SHIFT_BCNQ1_PGBNDY_V1)
  24842. #define BIT_CLEAR_BCNQ1_PGBNDY_V1(x) ((x) & (~BITS_BCNQ1_PGBNDY_V1))
  24843. #define BIT_GET_BCNQ1_PGBNDY_V1(x) \
  24844. (((x) >> BIT_SHIFT_BCNQ1_PGBNDY_V1) & BIT_MASK_BCNQ1_PGBNDY_V1)
  24845. #define BIT_SET_BCNQ1_PGBNDY_V1(x, v) \
  24846. (BIT_CLEAR_BCNQ1_PGBNDY_V1(x) | BIT_BCNQ1_PGBNDY_V1(v))
  24847. #endif
  24848. #if (HALMAC_8814B_SUPPORT)
  24849. /* 2 REG_TAB_SEL (Offset 0x0456) */
  24850. #define BIT_SHIFT_RATE_SEL 0
  24851. #define BIT_MASK_RATE_SEL 0xf
  24852. #define BIT_RATE_SEL(x) (((x) & BIT_MASK_RATE_SEL) << BIT_SHIFT_RATE_SEL)
  24853. #define BITS_RATE_SEL (BIT_MASK_RATE_SEL << BIT_SHIFT_RATE_SEL)
  24854. #define BIT_CLEAR_RATE_SEL(x) ((x) & (~BITS_RATE_SEL))
  24855. #define BIT_GET_RATE_SEL(x) (((x) >> BIT_SHIFT_RATE_SEL) & BIT_MASK_RATE_SEL)
  24856. #define BIT_SET_RATE_SEL(x, v) (BIT_CLEAR_RATE_SEL(x) | BIT_RATE_SEL(v))
  24857. /* 2 REG_BCN_INVALID_CTRL (Offset 0x0457) */
  24858. #define BIT_EN_CLR_CMD_REL_BCN_PKT_P4 BIT(7)
  24859. #define BIT_EN_BCN_PKT_REL_P4 BIT(6)
  24860. #define BIT_EN_CLR_CMD_REL_BCN_PKT_P3 BIT(5)
  24861. #define BIT_EN_BCN_PKT_REL_P3 BIT(4)
  24862. #define BIT_EN_CLR_CMD_REL_BCN_PKT_P2 BIT(3)
  24863. #define BIT_EN_BCN_PKT_REL_P2 BIT(2)
  24864. #define BIT_EN_CLR_CMD_REL_BCN_PKT_P1 BIT(1)
  24865. #endif
  24866. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  24867. /* 2 REG_BCNQ1_BDNY (Offset 0x0457) */
  24868. #define BIT_SHIFT_BCNQ1_PGBNDY 0
  24869. #define BIT_MASK_BCNQ1_PGBNDY 0xff
  24870. #define BIT_BCNQ1_PGBNDY(x) \
  24871. (((x) & BIT_MASK_BCNQ1_PGBNDY) << BIT_SHIFT_BCNQ1_PGBNDY)
  24872. #define BITS_BCNQ1_PGBNDY (BIT_MASK_BCNQ1_PGBNDY << BIT_SHIFT_BCNQ1_PGBNDY)
  24873. #define BIT_CLEAR_BCNQ1_PGBNDY(x) ((x) & (~BITS_BCNQ1_PGBNDY))
  24874. #define BIT_GET_BCNQ1_PGBNDY(x) \
  24875. (((x) >> BIT_SHIFT_BCNQ1_PGBNDY) & BIT_MASK_BCNQ1_PGBNDY)
  24876. #define BIT_SET_BCNQ1_PGBNDY(x, v) \
  24877. (BIT_CLEAR_BCNQ1_PGBNDY(x) | BIT_BCNQ1_PGBNDY(v))
  24878. #endif
  24879. #if (HALMAC_8192F_SUPPORT)
  24880. /* 2 REG_BCNQ1_BDNY (Offset 0x0457) */
  24881. #define BIT_SHIFT_BCNQ1_HEAD 0
  24882. #define BIT_MASK_BCNQ1_HEAD 0xff
  24883. #define BIT_BCNQ1_HEAD(x) (((x) & BIT_MASK_BCNQ1_HEAD) << BIT_SHIFT_BCNQ1_HEAD)
  24884. #define BITS_BCNQ1_HEAD (BIT_MASK_BCNQ1_HEAD << BIT_SHIFT_BCNQ1_HEAD)
  24885. #define BIT_CLEAR_BCNQ1_HEAD(x) ((x) & (~BITS_BCNQ1_HEAD))
  24886. #define BIT_GET_BCNQ1_HEAD(x) \
  24887. (((x) >> BIT_SHIFT_BCNQ1_HEAD) & BIT_MASK_BCNQ1_HEAD)
  24888. #define BIT_SET_BCNQ1_HEAD(x, v) (BIT_CLEAR_BCNQ1_HEAD(x) | BIT_BCNQ1_HEAD(v))
  24889. #endif
  24890. #if (HALMAC_8814B_SUPPORT)
  24891. /* 2 REG_BCN_INVALID_CTRL (Offset 0x0457) */
  24892. #define BIT_EN_BCN_PKT_REL_P1 BIT(0)
  24893. #endif
  24894. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24895. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24896. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  24897. /* 2 REG_AMPDU_MAX_LENGTH (Offset 0x0458) */
  24898. #define BIT_SHIFT_AMPDU_MAX_LENGTH 0
  24899. #define BIT_MASK_AMPDU_MAX_LENGTH 0xffffffffL
  24900. #define BIT_AMPDU_MAX_LENGTH(x) \
  24901. (((x) & BIT_MASK_AMPDU_MAX_LENGTH) << BIT_SHIFT_AMPDU_MAX_LENGTH)
  24902. #define BITS_AMPDU_MAX_LENGTH \
  24903. (BIT_MASK_AMPDU_MAX_LENGTH << BIT_SHIFT_AMPDU_MAX_LENGTH)
  24904. #define BIT_CLEAR_AMPDU_MAX_LENGTH(x) ((x) & (~BITS_AMPDU_MAX_LENGTH))
  24905. #define BIT_GET_AMPDU_MAX_LENGTH(x) \
  24906. (((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH) & BIT_MASK_AMPDU_MAX_LENGTH)
  24907. #define BIT_SET_AMPDU_MAX_LENGTH(x, v) \
  24908. (BIT_CLEAR_AMPDU_MAX_LENGTH(x) | BIT_AMPDU_MAX_LENGTH(v))
  24909. #endif
  24910. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  24911. /* 2 REG_AMPDU_MAX_LENGTH_HT (Offset 0x0458) */
  24912. #define BIT_SHIFT_AMPDU_MAX_LENGTH_HT 0
  24913. #define BIT_MASK_AMPDU_MAX_LENGTH_HT 0xffff
  24914. #define BIT_AMPDU_MAX_LENGTH_HT(x) \
  24915. (((x) & BIT_MASK_AMPDU_MAX_LENGTH_HT) << BIT_SHIFT_AMPDU_MAX_LENGTH_HT)
  24916. #define BITS_AMPDU_MAX_LENGTH_HT \
  24917. (BIT_MASK_AMPDU_MAX_LENGTH_HT << BIT_SHIFT_AMPDU_MAX_LENGTH_HT)
  24918. #define BIT_CLEAR_AMPDU_MAX_LENGTH_HT(x) ((x) & (~BITS_AMPDU_MAX_LENGTH_HT))
  24919. #define BIT_GET_AMPDU_MAX_LENGTH_HT(x) \
  24920. (((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH_HT) & BIT_MASK_AMPDU_MAX_LENGTH_HT)
  24921. #define BIT_SET_AMPDU_MAX_LENGTH_HT(x, v) \
  24922. (BIT_CLEAR_AMPDU_MAX_LENGTH_HT(x) | BIT_AMPDU_MAX_LENGTH_HT(v))
  24923. #endif
  24924. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  24925. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  24926. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  24927. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24928. /* 2 REG_ACQ_STOP (Offset 0x045C) */
  24929. #define BIT_AC7Q_STOP BIT(7)
  24930. #define BIT_AC6Q_STOP BIT(6)
  24931. #define BIT_AC5Q_STOP BIT(5)
  24932. #define BIT_AC4Q_STOP BIT(4)
  24933. #define BIT_AC3Q_STOP BIT(3)
  24934. #define BIT_AC2Q_STOP BIT(2)
  24935. #define BIT_AC1Q_STOP BIT(1)
  24936. #define BIT_AC0Q_STOP BIT(0)
  24937. #endif
  24938. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  24939. /* 2 REG_WMAC_LBK_BUF_HD (Offset 0x045D) */
  24940. #define BIT_SHIFT_WMAC_LBK_BUF_HEAD 0
  24941. #define BIT_MASK_WMAC_LBK_BUF_HEAD 0xff
  24942. #define BIT_WMAC_LBK_BUF_HEAD(x) \
  24943. (((x) & BIT_MASK_WMAC_LBK_BUF_HEAD) << BIT_SHIFT_WMAC_LBK_BUF_HEAD)
  24944. #define BITS_WMAC_LBK_BUF_HEAD \
  24945. (BIT_MASK_WMAC_LBK_BUF_HEAD << BIT_SHIFT_WMAC_LBK_BUF_HEAD)
  24946. #define BIT_CLEAR_WMAC_LBK_BUF_HEAD(x) ((x) & (~BITS_WMAC_LBK_BUF_HEAD))
  24947. #define BIT_GET_WMAC_LBK_BUF_HEAD(x) \
  24948. (((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD) & BIT_MASK_WMAC_LBK_BUF_HEAD)
  24949. #define BIT_SET_WMAC_LBK_BUF_HEAD(x, v) \
  24950. (BIT_CLEAR_WMAC_LBK_BUF_HEAD(x) | BIT_WMAC_LBK_BUF_HEAD(v))
  24951. #endif
  24952. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24953. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  24954. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24955. /* 2 REG_NDPA_RATE (Offset 0x045D) */
  24956. #define BIT_SHIFT_R_NDPA_RATE_V1 0
  24957. #define BIT_MASK_R_NDPA_RATE_V1 0xff
  24958. #define BIT_R_NDPA_RATE_V1(x) \
  24959. (((x) & BIT_MASK_R_NDPA_RATE_V1) << BIT_SHIFT_R_NDPA_RATE_V1)
  24960. #define BITS_R_NDPA_RATE_V1 \
  24961. (BIT_MASK_R_NDPA_RATE_V1 << BIT_SHIFT_R_NDPA_RATE_V1)
  24962. #define BIT_CLEAR_R_NDPA_RATE_V1(x) ((x) & (~BITS_R_NDPA_RATE_V1))
  24963. #define BIT_GET_R_NDPA_RATE_V1(x) \
  24964. (((x) >> BIT_SHIFT_R_NDPA_RATE_V1) & BIT_MASK_R_NDPA_RATE_V1)
  24965. #define BIT_SET_R_NDPA_RATE_V1(x, v) \
  24966. (BIT_CLEAR_R_NDPA_RATE_V1(x) | BIT_R_NDPA_RATE_V1(v))
  24967. #endif
  24968. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  24969. /* 2 REG_TX_HANG_CTRL (Offset 0x045E) */
  24970. #define BIT_EN_GNT_BT_AWAKE BIT(3)
  24971. #endif
  24972. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24973. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24974. /* 2 REG_TX_HANG_CTRL (Offset 0x045E) */
  24975. #define BIT_R_EN_GNT_BT_AWAKE BIT(3)
  24976. #endif
  24977. #if (HALMAC_8192F_SUPPORT)
  24978. /* 2 REG_TX_HANG_CTRL (Offset 0x045E) */
  24979. #define BIT_DIS_RELEASE_RETRY BIT(2)
  24980. #endif
  24981. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24982. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  24983. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24984. /* 2 REG_TX_HANG_CTRL (Offset 0x045E) */
  24985. #define BIT_EN_EOF_V1 BIT(2)
  24986. #endif
  24987. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  24988. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  24989. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  24990. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  24991. /* 2 REG_TX_HANG_CTRL (Offset 0x045E) */
  24992. #define BIT_DIS_OQT_BLOCK BIT(1)
  24993. #define BIT_SEARCH_QUEUE_EN BIT(0)
  24994. #endif
  24995. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  24996. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  24997. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  24998. #define BIT_R_DIS_MACID_RELEASE_RTY BIT(5)
  24999. #endif
  25000. #if (HALMAC_8814B_SUPPORT)
  25001. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25002. #define BIT_DIS_MACID_RELEASE_RTY BIT(5)
  25003. #endif
  25004. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25005. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25006. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25007. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25008. #define BIT_SHIFT_BW_SIGTA 3
  25009. #define BIT_MASK_BW_SIGTA 0x3
  25010. #define BIT_BW_SIGTA(x) (((x) & BIT_MASK_BW_SIGTA) << BIT_SHIFT_BW_SIGTA)
  25011. #define BITS_BW_SIGTA (BIT_MASK_BW_SIGTA << BIT_SHIFT_BW_SIGTA)
  25012. #define BIT_CLEAR_BW_SIGTA(x) ((x) & (~BITS_BW_SIGTA))
  25013. #define BIT_GET_BW_SIGTA(x) (((x) >> BIT_SHIFT_BW_SIGTA) & BIT_MASK_BW_SIGTA)
  25014. #define BIT_SET_BW_SIGTA(x, v) (BIT_CLEAR_BW_SIGTA(x) | BIT_BW_SIGTA(v))
  25015. #endif
  25016. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25017. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25018. #define BIT_SHIFT_R_NDPA_RATE 2
  25019. #define BIT_MASK_R_NDPA_RATE 0x3f
  25020. #define BIT_R_NDPA_RATE(x) \
  25021. (((x) & BIT_MASK_R_NDPA_RATE) << BIT_SHIFT_R_NDPA_RATE)
  25022. #define BITS_R_NDPA_RATE (BIT_MASK_R_NDPA_RATE << BIT_SHIFT_R_NDPA_RATE)
  25023. #define BIT_CLEAR_R_NDPA_RATE(x) ((x) & (~BITS_R_NDPA_RATE))
  25024. #define BIT_GET_R_NDPA_RATE(x) \
  25025. (((x) >> BIT_SHIFT_R_NDPA_RATE) & BIT_MASK_R_NDPA_RATE)
  25026. #define BIT_SET_R_NDPA_RATE(x, v) \
  25027. (BIT_CLEAR_R_NDPA_RATE(x) | BIT_R_NDPA_RATE(v))
  25028. #endif
  25029. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25030. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25031. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25032. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25033. #define BIT_EN_BAR_SIGTA BIT(2)
  25034. #endif
  25035. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  25036. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25037. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  25038. HALMAC_8881A_SUPPORT)
  25039. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25040. #define BIT_SHIFT_R_NDPA_BW 0
  25041. #define BIT_MASK_R_NDPA_BW 0x3
  25042. #define BIT_R_NDPA_BW(x) (((x) & BIT_MASK_R_NDPA_BW) << BIT_SHIFT_R_NDPA_BW)
  25043. #define BITS_R_NDPA_BW (BIT_MASK_R_NDPA_BW << BIT_SHIFT_R_NDPA_BW)
  25044. #define BIT_CLEAR_R_NDPA_BW(x) ((x) & (~BITS_R_NDPA_BW))
  25045. #define BIT_GET_R_NDPA_BW(x) (((x) >> BIT_SHIFT_R_NDPA_BW) & BIT_MASK_R_NDPA_BW)
  25046. #define BIT_SET_R_NDPA_BW(x, v) (BIT_CLEAR_R_NDPA_BW(x) | BIT_R_NDPA_BW(v))
  25047. #endif
  25048. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  25049. /* 2 REG_NDPA_OPT_CTRL (Offset 0x045F) */
  25050. #define BIT_SHIFT_NDPA_BW 0
  25051. #define BIT_MASK_NDPA_BW 0x3
  25052. #define BIT_NDPA_BW(x) (((x) & BIT_MASK_NDPA_BW) << BIT_SHIFT_NDPA_BW)
  25053. #define BITS_NDPA_BW (BIT_MASK_NDPA_BW << BIT_SHIFT_NDPA_BW)
  25054. #define BIT_CLEAR_NDPA_BW(x) ((x) & (~BITS_NDPA_BW))
  25055. #define BIT_GET_NDPA_BW(x) (((x) >> BIT_SHIFT_NDPA_BW) & BIT_MASK_NDPA_BW)
  25056. #define BIT_SET_NDPA_BW(x, v) (BIT_CLEAR_NDPA_BW(x) | BIT_NDPA_BW(v))
  25057. #endif
  25058. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25059. /* 2 REG_FAST_EDCA_CTRL (Offset 0x0460) */
  25060. #define BIT_SHIFT_FAST_EDCA_TO_V1 16
  25061. #define BIT_MASK_FAST_EDCA_TO_V1 0xff
  25062. #define BIT_FAST_EDCA_TO_V1(x) \
  25063. (((x) & BIT_MASK_FAST_EDCA_TO_V1) << BIT_SHIFT_FAST_EDCA_TO_V1)
  25064. #define BITS_FAST_EDCA_TO_V1 \
  25065. (BIT_MASK_FAST_EDCA_TO_V1 << BIT_SHIFT_FAST_EDCA_TO_V1)
  25066. #define BIT_CLEAR_FAST_EDCA_TO_V1(x) ((x) & (~BITS_FAST_EDCA_TO_V1))
  25067. #define BIT_GET_FAST_EDCA_TO_V1(x) \
  25068. (((x) >> BIT_SHIFT_FAST_EDCA_TO_V1) & BIT_MASK_FAST_EDCA_TO_V1)
  25069. #define BIT_SET_FAST_EDCA_TO_V1(x, v) \
  25070. (BIT_CLEAR_FAST_EDCA_TO_V1(x) | BIT_FAST_EDCA_TO_V1(v))
  25071. #define BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH 12
  25072. #define BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH 0xf
  25073. #define BIT_AC3_AC7_FAST_EDCA_PKT_TH(x) \
  25074. (((x) & BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH) \
  25075. << BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH)
  25076. #define BITS_AC3_AC7_FAST_EDCA_PKT_TH \
  25077. (BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH \
  25078. << BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH)
  25079. #define BIT_CLEAR_AC3_AC7_FAST_EDCA_PKT_TH(x) \
  25080. ((x) & (~BITS_AC3_AC7_FAST_EDCA_PKT_TH))
  25081. #define BIT_GET_AC3_AC7_FAST_EDCA_PKT_TH(x) \
  25082. (((x) >> BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH) & \
  25083. BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH)
  25084. #define BIT_SET_AC3_AC7_FAST_EDCA_PKT_TH(x, v) \
  25085. (BIT_CLEAR_AC3_AC7_FAST_EDCA_PKT_TH(x) | \
  25086. BIT_AC3_AC7_FAST_EDCA_PKT_TH(v))
  25087. #define BIT_SHIFT_AC2_FAST_EDCA_PKT_TH 8
  25088. #define BIT_MASK_AC2_FAST_EDCA_PKT_TH 0xf
  25089. #define BIT_AC2_FAST_EDCA_PKT_TH(x) \
  25090. (((x) & BIT_MASK_AC2_FAST_EDCA_PKT_TH) \
  25091. << BIT_SHIFT_AC2_FAST_EDCA_PKT_TH)
  25092. #define BITS_AC2_FAST_EDCA_PKT_TH \
  25093. (BIT_MASK_AC2_FAST_EDCA_PKT_TH << BIT_SHIFT_AC2_FAST_EDCA_PKT_TH)
  25094. #define BIT_CLEAR_AC2_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_AC2_FAST_EDCA_PKT_TH))
  25095. #define BIT_GET_AC2_FAST_EDCA_PKT_TH(x) \
  25096. (((x) >> BIT_SHIFT_AC2_FAST_EDCA_PKT_TH) & \
  25097. BIT_MASK_AC2_FAST_EDCA_PKT_TH)
  25098. #define BIT_SET_AC2_FAST_EDCA_PKT_TH(x, v) \
  25099. (BIT_CLEAR_AC2_FAST_EDCA_PKT_TH(x) | BIT_AC2_FAST_EDCA_PKT_TH(v))
  25100. #define BIT_SHIFT_AC1_FAST_EDCA_PKT_TH 4
  25101. #define BIT_MASK_AC1_FAST_EDCA_PKT_TH 0xf
  25102. #define BIT_AC1_FAST_EDCA_PKT_TH(x) \
  25103. (((x) & BIT_MASK_AC1_FAST_EDCA_PKT_TH) \
  25104. << BIT_SHIFT_AC1_FAST_EDCA_PKT_TH)
  25105. #define BITS_AC1_FAST_EDCA_PKT_TH \
  25106. (BIT_MASK_AC1_FAST_EDCA_PKT_TH << BIT_SHIFT_AC1_FAST_EDCA_PKT_TH)
  25107. #define BIT_CLEAR_AC1_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_AC1_FAST_EDCA_PKT_TH))
  25108. #define BIT_GET_AC1_FAST_EDCA_PKT_TH(x) \
  25109. (((x) >> BIT_SHIFT_AC1_FAST_EDCA_PKT_TH) & \
  25110. BIT_MASK_AC1_FAST_EDCA_PKT_TH)
  25111. #define BIT_SET_AC1_FAST_EDCA_PKT_TH(x, v) \
  25112. (BIT_CLEAR_AC1_FAST_EDCA_PKT_TH(x) | BIT_AC1_FAST_EDCA_PKT_TH(v))
  25113. #define BIT_SHIFT_AC0_FAST_EDCA_PKT_TH 0
  25114. #define BIT_MASK_AC0_FAST_EDCA_PKT_TH 0xf
  25115. #define BIT_AC0_FAST_EDCA_PKT_TH(x) \
  25116. (((x) & BIT_MASK_AC0_FAST_EDCA_PKT_TH) \
  25117. << BIT_SHIFT_AC0_FAST_EDCA_PKT_TH)
  25118. #define BITS_AC0_FAST_EDCA_PKT_TH \
  25119. (BIT_MASK_AC0_FAST_EDCA_PKT_TH << BIT_SHIFT_AC0_FAST_EDCA_PKT_TH)
  25120. #define BIT_CLEAR_AC0_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_AC0_FAST_EDCA_PKT_TH))
  25121. #define BIT_GET_AC0_FAST_EDCA_PKT_TH(x) \
  25122. (((x) >> BIT_SHIFT_AC0_FAST_EDCA_PKT_TH) & \
  25123. BIT_MASK_AC0_FAST_EDCA_PKT_TH)
  25124. #define BIT_SET_AC0_FAST_EDCA_PKT_TH(x, v) \
  25125. (BIT_CLEAR_AC0_FAST_EDCA_PKT_TH(x) | BIT_AC0_FAST_EDCA_PKT_TH(v))
  25126. #endif
  25127. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  25128. /* 2 REG_AMPDU_MAX_LENGTH_VHT (Offset 0x0460) */
  25129. #define BIT_SHIFT_AMPDU_MAX_LENGTH_VHT_V1 0
  25130. #define BIT_MASK_AMPDU_MAX_LENGTH_VHT_V1 0xfffff
  25131. #define BIT_AMPDU_MAX_LENGTH_VHT_V1(x) \
  25132. (((x) & BIT_MASK_AMPDU_MAX_LENGTH_VHT_V1) \
  25133. << BIT_SHIFT_AMPDU_MAX_LENGTH_VHT_V1)
  25134. #define BITS_AMPDU_MAX_LENGTH_VHT_V1 \
  25135. (BIT_MASK_AMPDU_MAX_LENGTH_VHT_V1 << BIT_SHIFT_AMPDU_MAX_LENGTH_VHT_V1)
  25136. #define BIT_CLEAR_AMPDU_MAX_LENGTH_VHT_V1(x) \
  25137. ((x) & (~BITS_AMPDU_MAX_LENGTH_VHT_V1))
  25138. #define BIT_GET_AMPDU_MAX_LENGTH_VHT_V1(x) \
  25139. (((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH_VHT_V1) & \
  25140. BIT_MASK_AMPDU_MAX_LENGTH_VHT_V1)
  25141. #define BIT_SET_AMPDU_MAX_LENGTH_VHT_V1(x, v) \
  25142. (BIT_CLEAR_AMPDU_MAX_LENGTH_VHT_V1(x) | BIT_AMPDU_MAX_LENGTH_VHT_V1(v))
  25143. #endif
  25144. #if (HALMAC_8814B_SUPPORT)
  25145. /* 2 REG_AMPDU_MAX_LENGTH_VHT (Offset 0x0460) */
  25146. #define BIT_SHIFT_AMPDU_MAX_LENGTH_VHT 0
  25147. #define BIT_MASK_AMPDU_MAX_LENGTH_VHT 0x3ffff
  25148. #define BIT_AMPDU_MAX_LENGTH_VHT(x) \
  25149. (((x) & BIT_MASK_AMPDU_MAX_LENGTH_VHT) \
  25150. << BIT_SHIFT_AMPDU_MAX_LENGTH_VHT)
  25151. #define BITS_AMPDU_MAX_LENGTH_VHT \
  25152. (BIT_MASK_AMPDU_MAX_LENGTH_VHT << BIT_SHIFT_AMPDU_MAX_LENGTH_VHT)
  25153. #define BIT_CLEAR_AMPDU_MAX_LENGTH_VHT(x) ((x) & (~BITS_AMPDU_MAX_LENGTH_VHT))
  25154. #define BIT_GET_AMPDU_MAX_LENGTH_VHT(x) \
  25155. (((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH_VHT) & \
  25156. BIT_MASK_AMPDU_MAX_LENGTH_VHT)
  25157. #define BIT_SET_AMPDU_MAX_LENGTH_VHT(x, v) \
  25158. (BIT_CLEAR_AMPDU_MAX_LENGTH_VHT(x) | BIT_AMPDU_MAX_LENGTH_VHT(v))
  25159. #endif
  25160. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25161. /* 2 REG_RD_RESP_PKT_TH (Offset 0x0463) */
  25162. #define BIT_SHIFT_RD_RESP_PKT_TH 0
  25163. #define BIT_MASK_RD_RESP_PKT_TH 0x1f
  25164. #define BIT_RD_RESP_PKT_TH(x) \
  25165. (((x) & BIT_MASK_RD_RESP_PKT_TH) << BIT_SHIFT_RD_RESP_PKT_TH)
  25166. #define BITS_RD_RESP_PKT_TH \
  25167. (BIT_MASK_RD_RESP_PKT_TH << BIT_SHIFT_RD_RESP_PKT_TH)
  25168. #define BIT_CLEAR_RD_RESP_PKT_TH(x) ((x) & (~BITS_RD_RESP_PKT_TH))
  25169. #define BIT_GET_RD_RESP_PKT_TH(x) \
  25170. (((x) >> BIT_SHIFT_RD_RESP_PKT_TH) & BIT_MASK_RD_RESP_PKT_TH)
  25171. #define BIT_SET_RD_RESP_PKT_TH(x, v) \
  25172. (BIT_CLEAR_RD_RESP_PKT_TH(x) | BIT_RD_RESP_PKT_TH(v))
  25173. #endif
  25174. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  25175. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25176. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25177. HALMAC_8822C_SUPPORT)
  25178. /* 2 REG_RD_RESP_PKT_TH (Offset 0x0463) */
  25179. #define BIT_SHIFT_RD_RESP_PKT_TH_V1 0
  25180. #define BIT_MASK_RD_RESP_PKT_TH_V1 0x3f
  25181. #define BIT_RD_RESP_PKT_TH_V1(x) \
  25182. (((x) & BIT_MASK_RD_RESP_PKT_TH_V1) << BIT_SHIFT_RD_RESP_PKT_TH_V1)
  25183. #define BITS_RD_RESP_PKT_TH_V1 \
  25184. (BIT_MASK_RD_RESP_PKT_TH_V1 << BIT_SHIFT_RD_RESP_PKT_TH_V1)
  25185. #define BIT_CLEAR_RD_RESP_PKT_TH_V1(x) ((x) & (~BITS_RD_RESP_PKT_TH_V1))
  25186. #define BIT_GET_RD_RESP_PKT_TH_V1(x) \
  25187. (((x) >> BIT_SHIFT_RD_RESP_PKT_TH_V1) & BIT_MASK_RD_RESP_PKT_TH_V1)
  25188. #define BIT_SET_RD_RESP_PKT_TH_V1(x, v) \
  25189. (BIT_CLEAR_RD_RESP_PKT_TH_V1(x) | BIT_RD_RESP_PKT_TH_V1(v))
  25190. #endif
  25191. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25192. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25193. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25194. #define BIT_SHIFT_QUEUEMACID_CMDQ_V1 25
  25195. #define BIT_MASK_QUEUEMACID_CMDQ_V1 0x7f
  25196. #define BIT_QUEUEMACID_CMDQ_V1(x) \
  25197. (((x) & BIT_MASK_QUEUEMACID_CMDQ_V1) << BIT_SHIFT_QUEUEMACID_CMDQ_V1)
  25198. #define BITS_QUEUEMACID_CMDQ_V1 \
  25199. (BIT_MASK_QUEUEMACID_CMDQ_V1 << BIT_SHIFT_QUEUEMACID_CMDQ_V1)
  25200. #define BIT_CLEAR_QUEUEMACID_CMDQ_V1(x) ((x) & (~BITS_QUEUEMACID_CMDQ_V1))
  25201. #define BIT_GET_QUEUEMACID_CMDQ_V1(x) \
  25202. (((x) >> BIT_SHIFT_QUEUEMACID_CMDQ_V1) & BIT_MASK_QUEUEMACID_CMDQ_V1)
  25203. #define BIT_SET_QUEUEMACID_CMDQ_V1(x, v) \
  25204. (BIT_CLEAR_QUEUEMACID_CMDQ_V1(x) | BIT_QUEUEMACID_CMDQ_V1(v))
  25205. #endif
  25206. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25207. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25208. #define BIT_SHIFT_PKT_NUM_CMDQ_V2 24
  25209. #define BIT_MASK_PKT_NUM_CMDQ_V2 0xff
  25210. #define BIT_PKT_NUM_CMDQ_V2(x) \
  25211. (((x) & BIT_MASK_PKT_NUM_CMDQ_V2) << BIT_SHIFT_PKT_NUM_CMDQ_V2)
  25212. #define BITS_PKT_NUM_CMDQ_V2 \
  25213. (BIT_MASK_PKT_NUM_CMDQ_V2 << BIT_SHIFT_PKT_NUM_CMDQ_V2)
  25214. #define BIT_CLEAR_PKT_NUM_CMDQ_V2(x) ((x) & (~BITS_PKT_NUM_CMDQ_V2))
  25215. #define BIT_GET_PKT_NUM_CMDQ_V2(x) \
  25216. (((x) >> BIT_SHIFT_PKT_NUM_CMDQ_V2) & BIT_MASK_PKT_NUM_CMDQ_V2)
  25217. #define BIT_SET_PKT_NUM_CMDQ_V2(x, v) \
  25218. (BIT_CLEAR_PKT_NUM_CMDQ_V2(x) | BIT_PKT_NUM_CMDQ_V2(v))
  25219. #endif
  25220. #if (HALMAC_8197F_SUPPORT)
  25221. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25222. #define BIT_SHIFT_PKT_NUM 23
  25223. #define BIT_MASK_PKT_NUM 0x1ff
  25224. #define BIT_PKT_NUM(x) (((x) & BIT_MASK_PKT_NUM) << BIT_SHIFT_PKT_NUM)
  25225. #define BITS_PKT_NUM (BIT_MASK_PKT_NUM << BIT_SHIFT_PKT_NUM)
  25226. #define BIT_CLEAR_PKT_NUM(x) ((x) & (~BITS_PKT_NUM))
  25227. #define BIT_GET_PKT_NUM(x) (((x) >> BIT_SHIFT_PKT_NUM) & BIT_MASK_PKT_NUM)
  25228. #define BIT_SET_PKT_NUM(x, v) (BIT_CLEAR_PKT_NUM(x) | BIT_PKT_NUM(v))
  25229. #endif
  25230. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25231. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25232. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25233. #define BIT_SHIFT_QUEUEAC_CMDQ_V1 23
  25234. #define BIT_MASK_QUEUEAC_CMDQ_V1 0x3
  25235. #define BIT_QUEUEAC_CMDQ_V1(x) \
  25236. (((x) & BIT_MASK_QUEUEAC_CMDQ_V1) << BIT_SHIFT_QUEUEAC_CMDQ_V1)
  25237. #define BITS_QUEUEAC_CMDQ_V1 \
  25238. (BIT_MASK_QUEUEAC_CMDQ_V1 << BIT_SHIFT_QUEUEAC_CMDQ_V1)
  25239. #define BIT_CLEAR_QUEUEAC_CMDQ_V1(x) ((x) & (~BITS_QUEUEAC_CMDQ_V1))
  25240. #define BIT_GET_QUEUEAC_CMDQ_V1(x) \
  25241. (((x) >> BIT_SHIFT_QUEUEAC_CMDQ_V1) & BIT_MASK_QUEUEAC_CMDQ_V1)
  25242. #define BIT_SET_QUEUEAC_CMDQ_V1(x, v) \
  25243. (BIT_CLEAR_QUEUEAC_CMDQ_V1(x) | BIT_QUEUEAC_CMDQ_V1(v))
  25244. #endif
  25245. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25246. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25247. HALMAC_8822C_SUPPORT)
  25248. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25249. #define BIT_TIDEMPTY_CMDQ_V1 BIT(22)
  25250. #endif
  25251. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25252. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25253. #define BIT_SHIFT_TAIL_PKT_CMDQ 16
  25254. #define BIT_MASK_TAIL_PKT_CMDQ 0xff
  25255. #define BIT_TAIL_PKT_CMDQ(x) \
  25256. (((x) & BIT_MASK_TAIL_PKT_CMDQ) << BIT_SHIFT_TAIL_PKT_CMDQ)
  25257. #define BITS_TAIL_PKT_CMDQ (BIT_MASK_TAIL_PKT_CMDQ << BIT_SHIFT_TAIL_PKT_CMDQ)
  25258. #define BIT_CLEAR_TAIL_PKT_CMDQ(x) ((x) & (~BITS_TAIL_PKT_CMDQ))
  25259. #define BIT_GET_TAIL_PKT_CMDQ(x) \
  25260. (((x) >> BIT_SHIFT_TAIL_PKT_CMDQ) & BIT_MASK_TAIL_PKT_CMDQ)
  25261. #define BIT_SET_TAIL_PKT_CMDQ(x, v) \
  25262. (BIT_CLEAR_TAIL_PKT_CMDQ(x) | BIT_TAIL_PKT_CMDQ(v))
  25263. #endif
  25264. #if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25265. HALMAC_8822B_SUPPORT)
  25266. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25267. #define BIT_SHIFT_TAIL_PKT_CMDQ_V2 11
  25268. #define BIT_MASK_TAIL_PKT_CMDQ_V2 0x7ff
  25269. #define BIT_TAIL_PKT_CMDQ_V2(x) \
  25270. (((x) & BIT_MASK_TAIL_PKT_CMDQ_V2) << BIT_SHIFT_TAIL_PKT_CMDQ_V2)
  25271. #define BITS_TAIL_PKT_CMDQ_V2 \
  25272. (BIT_MASK_TAIL_PKT_CMDQ_V2 << BIT_SHIFT_TAIL_PKT_CMDQ_V2)
  25273. #define BIT_CLEAR_TAIL_PKT_CMDQ_V2(x) ((x) & (~BITS_TAIL_PKT_CMDQ_V2))
  25274. #define BIT_GET_TAIL_PKT_CMDQ_V2(x) \
  25275. (((x) >> BIT_SHIFT_TAIL_PKT_CMDQ_V2) & BIT_MASK_TAIL_PKT_CMDQ_V2)
  25276. #define BIT_SET_TAIL_PKT_CMDQ_V2(x, v) \
  25277. (BIT_CLEAR_TAIL_PKT_CMDQ_V2(x) | BIT_TAIL_PKT_CMDQ_V2(v))
  25278. #endif
  25279. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  25280. /* 2 REG_NEW_EDCA_CTRL_V1 (Offset 0x0464) */
  25281. #define BIT_SHIFT_RANDOM_VALUE_SHIFT 9
  25282. #define BIT_MASK_RANDOM_VALUE_SHIFT 0x7
  25283. #define BIT_RANDOM_VALUE_SHIFT(x) \
  25284. (((x) & BIT_MASK_RANDOM_VALUE_SHIFT) << BIT_SHIFT_RANDOM_VALUE_SHIFT)
  25285. #define BITS_RANDOM_VALUE_SHIFT \
  25286. (BIT_MASK_RANDOM_VALUE_SHIFT << BIT_SHIFT_RANDOM_VALUE_SHIFT)
  25287. #define BIT_CLEAR_RANDOM_VALUE_SHIFT(x) ((x) & (~BITS_RANDOM_VALUE_SHIFT))
  25288. #define BIT_GET_RANDOM_VALUE_SHIFT(x) \
  25289. (((x) >> BIT_SHIFT_RANDOM_VALUE_SHIFT) & BIT_MASK_RANDOM_VALUE_SHIFT)
  25290. #define BIT_SET_RANDOM_VALUE_SHIFT(x, v) \
  25291. (BIT_CLEAR_RANDOM_VALUE_SHIFT(x) | BIT_RANDOM_VALUE_SHIFT(v))
  25292. #endif
  25293. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25294. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25295. #define BIT_SHIFT_PKT_NUM_CMDQ 8
  25296. #define BIT_MASK_PKT_NUM_CMDQ 0xff
  25297. #define BIT_PKT_NUM_CMDQ(x) \
  25298. (((x) & BIT_MASK_PKT_NUM_CMDQ) << BIT_SHIFT_PKT_NUM_CMDQ)
  25299. #define BITS_PKT_NUM_CMDQ (BIT_MASK_PKT_NUM_CMDQ << BIT_SHIFT_PKT_NUM_CMDQ)
  25300. #define BIT_CLEAR_PKT_NUM_CMDQ(x) ((x) & (~BITS_PKT_NUM_CMDQ))
  25301. #define BIT_GET_PKT_NUM_CMDQ(x) \
  25302. (((x) >> BIT_SHIFT_PKT_NUM_CMDQ) & BIT_MASK_PKT_NUM_CMDQ)
  25303. #define BIT_SET_PKT_NUM_CMDQ(x, v) \
  25304. (BIT_CLEAR_PKT_NUM_CMDQ(x) | BIT_PKT_NUM_CMDQ(v))
  25305. #endif
  25306. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  25307. /* 2 REG_NEW_EDCA_CTRL_V1 (Offset 0x0464) */
  25308. #define BIT_ENABLE_NEW_EDCA BIT(8)
  25309. #endif
  25310. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25311. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25312. #define BIT_SHIFT_HEAD_PKT_CMDQ 0
  25313. #define BIT_MASK_HEAD_PKT_CMDQ 0xff
  25314. #define BIT_HEAD_PKT_CMDQ(x) \
  25315. (((x) & BIT_MASK_HEAD_PKT_CMDQ) << BIT_SHIFT_HEAD_PKT_CMDQ)
  25316. #define BITS_HEAD_PKT_CMDQ (BIT_MASK_HEAD_PKT_CMDQ << BIT_SHIFT_HEAD_PKT_CMDQ)
  25317. #define BIT_CLEAR_HEAD_PKT_CMDQ(x) ((x) & (~BITS_HEAD_PKT_CMDQ))
  25318. #define BIT_GET_HEAD_PKT_CMDQ(x) \
  25319. (((x) >> BIT_SHIFT_HEAD_PKT_CMDQ) & BIT_MASK_HEAD_PKT_CMDQ)
  25320. #define BIT_SET_HEAD_PKT_CMDQ(x, v) \
  25321. (BIT_CLEAR_HEAD_PKT_CMDQ(x) | BIT_HEAD_PKT_CMDQ(v))
  25322. #endif
  25323. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25324. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25325. HALMAC_8822C_SUPPORT)
  25326. /* 2 REG_CMDQ_INFO (Offset 0x0464) */
  25327. #define BIT_SHIFT_HEAD_PKT_CMDQ_V1 0
  25328. #define BIT_MASK_HEAD_PKT_CMDQ_V1 0x7ff
  25329. #define BIT_HEAD_PKT_CMDQ_V1(x) \
  25330. (((x) & BIT_MASK_HEAD_PKT_CMDQ_V1) << BIT_SHIFT_HEAD_PKT_CMDQ_V1)
  25331. #define BITS_HEAD_PKT_CMDQ_V1 \
  25332. (BIT_MASK_HEAD_PKT_CMDQ_V1 << BIT_SHIFT_HEAD_PKT_CMDQ_V1)
  25333. #define BIT_CLEAR_HEAD_PKT_CMDQ_V1(x) ((x) & (~BITS_HEAD_PKT_CMDQ_V1))
  25334. #define BIT_GET_HEAD_PKT_CMDQ_V1(x) \
  25335. (((x) >> BIT_SHIFT_HEAD_PKT_CMDQ_V1) & BIT_MASK_HEAD_PKT_CMDQ_V1)
  25336. #define BIT_SET_HEAD_PKT_CMDQ_V1(x, v) \
  25337. (BIT_CLEAR_HEAD_PKT_CMDQ_V1(x) | BIT_HEAD_PKT_CMDQ_V1(v))
  25338. #endif
  25339. #if (HALMAC_8814B_SUPPORT)
  25340. /* 2 REG_NEW_EDCA_CTRL_V1 (Offset 0x0464) */
  25341. #define BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER 0
  25342. #define BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER 0xff
  25343. #define BIT_MEDIUM_HAS_IDKE_TRIGGER(x) \
  25344. (((x) & BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER) \
  25345. << BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER)
  25346. #define BITS_MEDIUM_HAS_IDKE_TRIGGER \
  25347. (BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER << BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER)
  25348. #define BIT_CLEAR_MEDIUM_HAS_IDKE_TRIGGER(x) \
  25349. ((x) & (~BITS_MEDIUM_HAS_IDKE_TRIGGER))
  25350. #define BIT_GET_MEDIUM_HAS_IDKE_TRIGGER(x) \
  25351. (((x) >> BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER) & \
  25352. BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER)
  25353. #define BIT_SET_MEDIUM_HAS_IDKE_TRIGGER(x, v) \
  25354. (BIT_CLEAR_MEDIUM_HAS_IDKE_TRIGGER(x) | BIT_MEDIUM_HAS_IDKE_TRIGGER(v))
  25355. #endif
  25356. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25357. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  25358. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  25359. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25360. #define BIT_SHIFT_QUEUEMACID_Q4_V1 25
  25361. #define BIT_MASK_QUEUEMACID_Q4_V1 0x7f
  25362. #define BIT_QUEUEMACID_Q4_V1(x) \
  25363. (((x) & BIT_MASK_QUEUEMACID_Q4_V1) << BIT_SHIFT_QUEUEMACID_Q4_V1)
  25364. #define BITS_QUEUEMACID_Q4_V1 \
  25365. (BIT_MASK_QUEUEMACID_Q4_V1 << BIT_SHIFT_QUEUEMACID_Q4_V1)
  25366. #define BIT_CLEAR_QUEUEMACID_Q4_V1(x) ((x) & (~BITS_QUEUEMACID_Q4_V1))
  25367. #define BIT_GET_QUEUEMACID_Q4_V1(x) \
  25368. (((x) >> BIT_SHIFT_QUEUEMACID_Q4_V1) & BIT_MASK_QUEUEMACID_Q4_V1)
  25369. #define BIT_SET_QUEUEMACID_Q4_V1(x, v) \
  25370. (BIT_CLEAR_QUEUEMACID_Q4_V1(x) | BIT_QUEUEMACID_Q4_V1(v))
  25371. #define BIT_SHIFT_QUEUEAC_Q4_V1 23
  25372. #define BIT_MASK_QUEUEAC_Q4_V1 0x3
  25373. #define BIT_QUEUEAC_Q4_V1(x) \
  25374. (((x) & BIT_MASK_QUEUEAC_Q4_V1) << BIT_SHIFT_QUEUEAC_Q4_V1)
  25375. #define BITS_QUEUEAC_Q4_V1 (BIT_MASK_QUEUEAC_Q4_V1 << BIT_SHIFT_QUEUEAC_Q4_V1)
  25376. #define BIT_CLEAR_QUEUEAC_Q4_V1(x) ((x) & (~BITS_QUEUEAC_Q4_V1))
  25377. #define BIT_GET_QUEUEAC_Q4_V1(x) \
  25378. (((x) >> BIT_SHIFT_QUEUEAC_Q4_V1) & BIT_MASK_QUEUEAC_Q4_V1)
  25379. #define BIT_SET_QUEUEAC_Q4_V1(x, v) \
  25380. (BIT_CLEAR_QUEUEAC_Q4_V1(x) | BIT_QUEUEAC_Q4_V1(v))
  25381. #endif
  25382. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25383. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25384. HALMAC_8822C_SUPPORT)
  25385. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25386. #define BIT_TIDEMPTY_Q4_V1 BIT(22)
  25387. #endif
  25388. #if (HALMAC_8814B_SUPPORT)
  25389. /* 2 REG_ACQ_STOP_V2 (Offset 0x0468) */
  25390. #define BIT_AC19Q_STOP BIT(19)
  25391. #define BIT_AC18Q_STOP BIT(18)
  25392. #define BIT_AC17Q_STOP BIT(17)
  25393. #define BIT_AC16Q_STOP BIT(16)
  25394. #endif
  25395. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25396. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25397. #define BIT_SHIFT_TAIL_PKT_Q4_V1 15
  25398. #define BIT_MASK_TAIL_PKT_Q4_V1 0xff
  25399. #define BIT_TAIL_PKT_Q4_V1(x) \
  25400. (((x) & BIT_MASK_TAIL_PKT_Q4_V1) << BIT_SHIFT_TAIL_PKT_Q4_V1)
  25401. #define BITS_TAIL_PKT_Q4_V1 \
  25402. (BIT_MASK_TAIL_PKT_Q4_V1 << BIT_SHIFT_TAIL_PKT_Q4_V1)
  25403. #define BIT_CLEAR_TAIL_PKT_Q4_V1(x) ((x) & (~BITS_TAIL_PKT_Q4_V1))
  25404. #define BIT_GET_TAIL_PKT_Q4_V1(x) \
  25405. (((x) >> BIT_SHIFT_TAIL_PKT_Q4_V1) & BIT_MASK_TAIL_PKT_Q4_V1)
  25406. #define BIT_SET_TAIL_PKT_Q4_V1(x, v) \
  25407. (BIT_CLEAR_TAIL_PKT_Q4_V1(x) | BIT_TAIL_PKT_Q4_V1(v))
  25408. #endif
  25409. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  25410. /* 2 REG_ACQ_STOP_V2 (Offset 0x0468) */
  25411. #define BIT_AC15Q_STOP BIT(15)
  25412. #define BIT_AC14Q_STOP BIT(14)
  25413. #define BIT_AC13Q_STOP BIT(13)
  25414. #define BIT_AC12Q_STOP BIT(12)
  25415. #endif
  25416. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25417. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25418. HALMAC_8822C_SUPPORT)
  25419. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25420. #define BIT_SHIFT_TAIL_PKT_Q4_V2 11
  25421. #define BIT_MASK_TAIL_PKT_Q4_V2 0x7ff
  25422. #define BIT_TAIL_PKT_Q4_V2(x) \
  25423. (((x) & BIT_MASK_TAIL_PKT_Q4_V2) << BIT_SHIFT_TAIL_PKT_Q4_V2)
  25424. #define BITS_TAIL_PKT_Q4_V2 \
  25425. (BIT_MASK_TAIL_PKT_Q4_V2 << BIT_SHIFT_TAIL_PKT_Q4_V2)
  25426. #define BIT_CLEAR_TAIL_PKT_Q4_V2(x) ((x) & (~BITS_TAIL_PKT_Q4_V2))
  25427. #define BIT_GET_TAIL_PKT_Q4_V2(x) \
  25428. (((x) >> BIT_SHIFT_TAIL_PKT_Q4_V2) & BIT_MASK_TAIL_PKT_Q4_V2)
  25429. #define BIT_SET_TAIL_PKT_Q4_V2(x, v) \
  25430. (BIT_CLEAR_TAIL_PKT_Q4_V2(x) | BIT_TAIL_PKT_Q4_V2(v))
  25431. #endif
  25432. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  25433. /* 2 REG_ACQ_STOP_V2 (Offset 0x0468) */
  25434. #define BIT_AC11Q_STOP BIT(11)
  25435. #define BIT_AC10Q_STOP BIT(10)
  25436. #define BIT_AC9Q_STOP BIT(9)
  25437. #endif
  25438. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25439. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25440. #define BIT_SHIFT_PKT_NUM_Q4_V1 8
  25441. #define BIT_MASK_PKT_NUM_Q4_V1 0x7f
  25442. #define BIT_PKT_NUM_Q4_V1(x) \
  25443. (((x) & BIT_MASK_PKT_NUM_Q4_V1) << BIT_SHIFT_PKT_NUM_Q4_V1)
  25444. #define BITS_PKT_NUM_Q4_V1 (BIT_MASK_PKT_NUM_Q4_V1 << BIT_SHIFT_PKT_NUM_Q4_V1)
  25445. #define BIT_CLEAR_PKT_NUM_Q4_V1(x) ((x) & (~BITS_PKT_NUM_Q4_V1))
  25446. #define BIT_GET_PKT_NUM_Q4_V1(x) \
  25447. (((x) >> BIT_SHIFT_PKT_NUM_Q4_V1) & BIT_MASK_PKT_NUM_Q4_V1)
  25448. #define BIT_SET_PKT_NUM_Q4_V1(x, v) \
  25449. (BIT_CLEAR_PKT_NUM_Q4_V1(x) | BIT_PKT_NUM_Q4_V1(v))
  25450. #endif
  25451. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  25452. /* 2 REG_ACQ_STOP_V2 (Offset 0x0468) */
  25453. #define BIT_AC8Q_STOP BIT(8)
  25454. #endif
  25455. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25456. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25457. #define BIT_SHIFT_HEAD_PKT_Q4 0
  25458. #define BIT_MASK_HEAD_PKT_Q4 0xff
  25459. #define BIT_HEAD_PKT_Q4(x) \
  25460. (((x) & BIT_MASK_HEAD_PKT_Q4) << BIT_SHIFT_HEAD_PKT_Q4)
  25461. #define BITS_HEAD_PKT_Q4 (BIT_MASK_HEAD_PKT_Q4 << BIT_SHIFT_HEAD_PKT_Q4)
  25462. #define BIT_CLEAR_HEAD_PKT_Q4(x) ((x) & (~BITS_HEAD_PKT_Q4))
  25463. #define BIT_GET_HEAD_PKT_Q4(x) \
  25464. (((x) >> BIT_SHIFT_HEAD_PKT_Q4) & BIT_MASK_HEAD_PKT_Q4)
  25465. #define BIT_SET_HEAD_PKT_Q4(x, v) \
  25466. (BIT_CLEAR_HEAD_PKT_Q4(x) | BIT_HEAD_PKT_Q4(v))
  25467. #endif
  25468. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25469. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25470. HALMAC_8822C_SUPPORT)
  25471. /* 2 REG_Q4_INFO (Offset 0x0468) */
  25472. #define BIT_SHIFT_HEAD_PKT_Q4_V1 0
  25473. #define BIT_MASK_HEAD_PKT_Q4_V1 0x7ff
  25474. #define BIT_HEAD_PKT_Q4_V1(x) \
  25475. (((x) & BIT_MASK_HEAD_PKT_Q4_V1) << BIT_SHIFT_HEAD_PKT_Q4_V1)
  25476. #define BITS_HEAD_PKT_Q4_V1 \
  25477. (BIT_MASK_HEAD_PKT_Q4_V1 << BIT_SHIFT_HEAD_PKT_Q4_V1)
  25478. #define BIT_CLEAR_HEAD_PKT_Q4_V1(x) ((x) & (~BITS_HEAD_PKT_Q4_V1))
  25479. #define BIT_GET_HEAD_PKT_Q4_V1(x) \
  25480. (((x) >> BIT_SHIFT_HEAD_PKT_Q4_V1) & BIT_MASK_HEAD_PKT_Q4_V1)
  25481. #define BIT_SET_HEAD_PKT_Q4_V1(x, v) \
  25482. (BIT_CLEAR_HEAD_PKT_Q4_V1(x) | BIT_HEAD_PKT_Q4_V1(v))
  25483. #endif
  25484. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25485. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  25486. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  25487. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25488. #define BIT_SHIFT_QUEUEMACID_Q5_V1 25
  25489. #define BIT_MASK_QUEUEMACID_Q5_V1 0x7f
  25490. #define BIT_QUEUEMACID_Q5_V1(x) \
  25491. (((x) & BIT_MASK_QUEUEMACID_Q5_V1) << BIT_SHIFT_QUEUEMACID_Q5_V1)
  25492. #define BITS_QUEUEMACID_Q5_V1 \
  25493. (BIT_MASK_QUEUEMACID_Q5_V1 << BIT_SHIFT_QUEUEMACID_Q5_V1)
  25494. #define BIT_CLEAR_QUEUEMACID_Q5_V1(x) ((x) & (~BITS_QUEUEMACID_Q5_V1))
  25495. #define BIT_GET_QUEUEMACID_Q5_V1(x) \
  25496. (((x) >> BIT_SHIFT_QUEUEMACID_Q5_V1) & BIT_MASK_QUEUEMACID_Q5_V1)
  25497. #define BIT_SET_QUEUEMACID_Q5_V1(x, v) \
  25498. (BIT_CLEAR_QUEUEMACID_Q5_V1(x) | BIT_QUEUEMACID_Q5_V1(v))
  25499. #define BIT_SHIFT_QUEUEAC_Q5_V1 23
  25500. #define BIT_MASK_QUEUEAC_Q5_V1 0x3
  25501. #define BIT_QUEUEAC_Q5_V1(x) \
  25502. (((x) & BIT_MASK_QUEUEAC_Q5_V1) << BIT_SHIFT_QUEUEAC_Q5_V1)
  25503. #define BITS_QUEUEAC_Q5_V1 (BIT_MASK_QUEUEAC_Q5_V1 << BIT_SHIFT_QUEUEAC_Q5_V1)
  25504. #define BIT_CLEAR_QUEUEAC_Q5_V1(x) ((x) & (~BITS_QUEUEAC_Q5_V1))
  25505. #define BIT_GET_QUEUEAC_Q5_V1(x) \
  25506. (((x) >> BIT_SHIFT_QUEUEAC_Q5_V1) & BIT_MASK_QUEUEAC_Q5_V1)
  25507. #define BIT_SET_QUEUEAC_Q5_V1(x, v) \
  25508. (BIT_CLEAR_QUEUEAC_Q5_V1(x) | BIT_QUEUEAC_Q5_V1(v))
  25509. #endif
  25510. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25511. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25512. HALMAC_8822C_SUPPORT)
  25513. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25514. #define BIT_TIDEMPTY_Q5_V1 BIT(22)
  25515. #endif
  25516. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25517. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25518. #define BIT_SHIFT_TAIL_PKT_Q5_V1 15
  25519. #define BIT_MASK_TAIL_PKT_Q5_V1 0xff
  25520. #define BIT_TAIL_PKT_Q5_V1(x) \
  25521. (((x) & BIT_MASK_TAIL_PKT_Q5_V1) << BIT_SHIFT_TAIL_PKT_Q5_V1)
  25522. #define BITS_TAIL_PKT_Q5_V1 \
  25523. (BIT_MASK_TAIL_PKT_Q5_V1 << BIT_SHIFT_TAIL_PKT_Q5_V1)
  25524. #define BIT_CLEAR_TAIL_PKT_Q5_V1(x) ((x) & (~BITS_TAIL_PKT_Q5_V1))
  25525. #define BIT_GET_TAIL_PKT_Q5_V1(x) \
  25526. (((x) >> BIT_SHIFT_TAIL_PKT_Q5_V1) & BIT_MASK_TAIL_PKT_Q5_V1)
  25527. #define BIT_SET_TAIL_PKT_Q5_V1(x, v) \
  25528. (BIT_CLEAR_TAIL_PKT_Q5_V1(x) | BIT_TAIL_PKT_Q5_V1(v))
  25529. #endif
  25530. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25531. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25532. HALMAC_8822C_SUPPORT)
  25533. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25534. #define BIT_SHIFT_TAIL_PKT_Q5_V2 11
  25535. #define BIT_MASK_TAIL_PKT_Q5_V2 0x7ff
  25536. #define BIT_TAIL_PKT_Q5_V2(x) \
  25537. (((x) & BIT_MASK_TAIL_PKT_Q5_V2) << BIT_SHIFT_TAIL_PKT_Q5_V2)
  25538. #define BITS_TAIL_PKT_Q5_V2 \
  25539. (BIT_MASK_TAIL_PKT_Q5_V2 << BIT_SHIFT_TAIL_PKT_Q5_V2)
  25540. #define BIT_CLEAR_TAIL_PKT_Q5_V2(x) ((x) & (~BITS_TAIL_PKT_Q5_V2))
  25541. #define BIT_GET_TAIL_PKT_Q5_V2(x) \
  25542. (((x) >> BIT_SHIFT_TAIL_PKT_Q5_V2) & BIT_MASK_TAIL_PKT_Q5_V2)
  25543. #define BIT_SET_TAIL_PKT_Q5_V2(x, v) \
  25544. (BIT_CLEAR_TAIL_PKT_Q5_V2(x) | BIT_TAIL_PKT_Q5_V2(v))
  25545. #endif
  25546. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25547. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25548. #define BIT_SHIFT_PKT_NUM_Q5_V1 8
  25549. #define BIT_MASK_PKT_NUM_Q5_V1 0x7f
  25550. #define BIT_PKT_NUM_Q5_V1(x) \
  25551. (((x) & BIT_MASK_PKT_NUM_Q5_V1) << BIT_SHIFT_PKT_NUM_Q5_V1)
  25552. #define BITS_PKT_NUM_Q5_V1 (BIT_MASK_PKT_NUM_Q5_V1 << BIT_SHIFT_PKT_NUM_Q5_V1)
  25553. #define BIT_CLEAR_PKT_NUM_Q5_V1(x) ((x) & (~BITS_PKT_NUM_Q5_V1))
  25554. #define BIT_GET_PKT_NUM_Q5_V1(x) \
  25555. (((x) >> BIT_SHIFT_PKT_NUM_Q5_V1) & BIT_MASK_PKT_NUM_Q5_V1)
  25556. #define BIT_SET_PKT_NUM_Q5_V1(x, v) \
  25557. (BIT_CLEAR_PKT_NUM_Q5_V1(x) | BIT_PKT_NUM_Q5_V1(v))
  25558. #define BIT_SHIFT_HEAD_PKT_Q5 0
  25559. #define BIT_MASK_HEAD_PKT_Q5 0xff
  25560. #define BIT_HEAD_PKT_Q5(x) \
  25561. (((x) & BIT_MASK_HEAD_PKT_Q5) << BIT_SHIFT_HEAD_PKT_Q5)
  25562. #define BITS_HEAD_PKT_Q5 (BIT_MASK_HEAD_PKT_Q5 << BIT_SHIFT_HEAD_PKT_Q5)
  25563. #define BIT_CLEAR_HEAD_PKT_Q5(x) ((x) & (~BITS_HEAD_PKT_Q5))
  25564. #define BIT_GET_HEAD_PKT_Q5(x) \
  25565. (((x) >> BIT_SHIFT_HEAD_PKT_Q5) & BIT_MASK_HEAD_PKT_Q5)
  25566. #define BIT_SET_HEAD_PKT_Q5(x, v) \
  25567. (BIT_CLEAR_HEAD_PKT_Q5(x) | BIT_HEAD_PKT_Q5(v))
  25568. #endif
  25569. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25570. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25571. HALMAC_8822C_SUPPORT)
  25572. /* 2 REG_Q5_INFO (Offset 0x046C) */
  25573. #define BIT_SHIFT_HEAD_PKT_Q5_V1 0
  25574. #define BIT_MASK_HEAD_PKT_Q5_V1 0x7ff
  25575. #define BIT_HEAD_PKT_Q5_V1(x) \
  25576. (((x) & BIT_MASK_HEAD_PKT_Q5_V1) << BIT_SHIFT_HEAD_PKT_Q5_V1)
  25577. #define BITS_HEAD_PKT_Q5_V1 \
  25578. (BIT_MASK_HEAD_PKT_Q5_V1 << BIT_SHIFT_HEAD_PKT_Q5_V1)
  25579. #define BIT_CLEAR_HEAD_PKT_Q5_V1(x) ((x) & (~BITS_HEAD_PKT_Q5_V1))
  25580. #define BIT_GET_HEAD_PKT_Q5_V1(x) \
  25581. (((x) >> BIT_SHIFT_HEAD_PKT_Q5_V1) & BIT_MASK_HEAD_PKT_Q5_V1)
  25582. #define BIT_SET_HEAD_PKT_Q5_V1(x, v) \
  25583. (BIT_CLEAR_HEAD_PKT_Q5_V1(x) | BIT_HEAD_PKT_Q5_V1(v))
  25584. #endif
  25585. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25586. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  25587. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  25588. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25589. #define BIT_SHIFT_QUEUEMACID_Q6_V1 25
  25590. #define BIT_MASK_QUEUEMACID_Q6_V1 0x7f
  25591. #define BIT_QUEUEMACID_Q6_V1(x) \
  25592. (((x) & BIT_MASK_QUEUEMACID_Q6_V1) << BIT_SHIFT_QUEUEMACID_Q6_V1)
  25593. #define BITS_QUEUEMACID_Q6_V1 \
  25594. (BIT_MASK_QUEUEMACID_Q6_V1 << BIT_SHIFT_QUEUEMACID_Q6_V1)
  25595. #define BIT_CLEAR_QUEUEMACID_Q6_V1(x) ((x) & (~BITS_QUEUEMACID_Q6_V1))
  25596. #define BIT_GET_QUEUEMACID_Q6_V1(x) \
  25597. (((x) >> BIT_SHIFT_QUEUEMACID_Q6_V1) & BIT_MASK_QUEUEMACID_Q6_V1)
  25598. #define BIT_SET_QUEUEMACID_Q6_V1(x, v) \
  25599. (BIT_CLEAR_QUEUEMACID_Q6_V1(x) | BIT_QUEUEMACID_Q6_V1(v))
  25600. #define BIT_SHIFT_QUEUEAC_Q6_V1 23
  25601. #define BIT_MASK_QUEUEAC_Q6_V1 0x3
  25602. #define BIT_QUEUEAC_Q6_V1(x) \
  25603. (((x) & BIT_MASK_QUEUEAC_Q6_V1) << BIT_SHIFT_QUEUEAC_Q6_V1)
  25604. #define BITS_QUEUEAC_Q6_V1 (BIT_MASK_QUEUEAC_Q6_V1 << BIT_SHIFT_QUEUEAC_Q6_V1)
  25605. #define BIT_CLEAR_QUEUEAC_Q6_V1(x) ((x) & (~BITS_QUEUEAC_Q6_V1))
  25606. #define BIT_GET_QUEUEAC_Q6_V1(x) \
  25607. (((x) >> BIT_SHIFT_QUEUEAC_Q6_V1) & BIT_MASK_QUEUEAC_Q6_V1)
  25608. #define BIT_SET_QUEUEAC_Q6_V1(x, v) \
  25609. (BIT_CLEAR_QUEUEAC_Q6_V1(x) | BIT_QUEUEAC_Q6_V1(v))
  25610. #endif
  25611. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25612. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25613. HALMAC_8822C_SUPPORT)
  25614. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25615. #define BIT_TIDEMPTY_Q6_V1 BIT(22)
  25616. #endif
  25617. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25618. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25619. #define BIT_SHIFT_TAIL_PKT_Q6_V1 15
  25620. #define BIT_MASK_TAIL_PKT_Q6_V1 0xff
  25621. #define BIT_TAIL_PKT_Q6_V1(x) \
  25622. (((x) & BIT_MASK_TAIL_PKT_Q6_V1) << BIT_SHIFT_TAIL_PKT_Q6_V1)
  25623. #define BITS_TAIL_PKT_Q6_V1 \
  25624. (BIT_MASK_TAIL_PKT_Q6_V1 << BIT_SHIFT_TAIL_PKT_Q6_V1)
  25625. #define BIT_CLEAR_TAIL_PKT_Q6_V1(x) ((x) & (~BITS_TAIL_PKT_Q6_V1))
  25626. #define BIT_GET_TAIL_PKT_Q6_V1(x) \
  25627. (((x) >> BIT_SHIFT_TAIL_PKT_Q6_V1) & BIT_MASK_TAIL_PKT_Q6_V1)
  25628. #define BIT_SET_TAIL_PKT_Q6_V1(x, v) \
  25629. (BIT_CLEAR_TAIL_PKT_Q6_V1(x) | BIT_TAIL_PKT_Q6_V1(v))
  25630. #endif
  25631. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25632. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25633. HALMAC_8822C_SUPPORT)
  25634. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25635. #define BIT_SHIFT_TAIL_PKT_Q6_V2 11
  25636. #define BIT_MASK_TAIL_PKT_Q6_V2 0x7ff
  25637. #define BIT_TAIL_PKT_Q6_V2(x) \
  25638. (((x) & BIT_MASK_TAIL_PKT_Q6_V2) << BIT_SHIFT_TAIL_PKT_Q6_V2)
  25639. #define BITS_TAIL_PKT_Q6_V2 \
  25640. (BIT_MASK_TAIL_PKT_Q6_V2 << BIT_SHIFT_TAIL_PKT_Q6_V2)
  25641. #define BIT_CLEAR_TAIL_PKT_Q6_V2(x) ((x) & (~BITS_TAIL_PKT_Q6_V2))
  25642. #define BIT_GET_TAIL_PKT_Q6_V2(x) \
  25643. (((x) >> BIT_SHIFT_TAIL_PKT_Q6_V2) & BIT_MASK_TAIL_PKT_Q6_V2)
  25644. #define BIT_SET_TAIL_PKT_Q6_V2(x, v) \
  25645. (BIT_CLEAR_TAIL_PKT_Q6_V2(x) | BIT_TAIL_PKT_Q6_V2(v))
  25646. #endif
  25647. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25648. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25649. #define BIT_SHIFT_PKT_NUM_Q6_V1 8
  25650. #define BIT_MASK_PKT_NUM_Q6_V1 0x7f
  25651. #define BIT_PKT_NUM_Q6_V1(x) \
  25652. (((x) & BIT_MASK_PKT_NUM_Q6_V1) << BIT_SHIFT_PKT_NUM_Q6_V1)
  25653. #define BITS_PKT_NUM_Q6_V1 (BIT_MASK_PKT_NUM_Q6_V1 << BIT_SHIFT_PKT_NUM_Q6_V1)
  25654. #define BIT_CLEAR_PKT_NUM_Q6_V1(x) ((x) & (~BITS_PKT_NUM_Q6_V1))
  25655. #define BIT_GET_PKT_NUM_Q6_V1(x) \
  25656. (((x) >> BIT_SHIFT_PKT_NUM_Q6_V1) & BIT_MASK_PKT_NUM_Q6_V1)
  25657. #define BIT_SET_PKT_NUM_Q6_V1(x, v) \
  25658. (BIT_CLEAR_PKT_NUM_Q6_V1(x) | BIT_PKT_NUM_Q6_V1(v))
  25659. #define BIT_SHIFT_HEAD_PKT_Q6 0
  25660. #define BIT_MASK_HEAD_PKT_Q6 0xff
  25661. #define BIT_HEAD_PKT_Q6(x) \
  25662. (((x) & BIT_MASK_HEAD_PKT_Q6) << BIT_SHIFT_HEAD_PKT_Q6)
  25663. #define BITS_HEAD_PKT_Q6 (BIT_MASK_HEAD_PKT_Q6 << BIT_SHIFT_HEAD_PKT_Q6)
  25664. #define BIT_CLEAR_HEAD_PKT_Q6(x) ((x) & (~BITS_HEAD_PKT_Q6))
  25665. #define BIT_GET_HEAD_PKT_Q6(x) \
  25666. (((x) >> BIT_SHIFT_HEAD_PKT_Q6) & BIT_MASK_HEAD_PKT_Q6)
  25667. #define BIT_SET_HEAD_PKT_Q6(x, v) \
  25668. (BIT_CLEAR_HEAD_PKT_Q6(x) | BIT_HEAD_PKT_Q6(v))
  25669. #endif
  25670. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25671. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25672. HALMAC_8822C_SUPPORT)
  25673. /* 2 REG_Q6_INFO (Offset 0x0470) */
  25674. #define BIT_SHIFT_HEAD_PKT_Q6_V1 0
  25675. #define BIT_MASK_HEAD_PKT_Q6_V1 0x7ff
  25676. #define BIT_HEAD_PKT_Q6_V1(x) \
  25677. (((x) & BIT_MASK_HEAD_PKT_Q6_V1) << BIT_SHIFT_HEAD_PKT_Q6_V1)
  25678. #define BITS_HEAD_PKT_Q6_V1 \
  25679. (BIT_MASK_HEAD_PKT_Q6_V1 << BIT_SHIFT_HEAD_PKT_Q6_V1)
  25680. #define BIT_CLEAR_HEAD_PKT_Q6_V1(x) ((x) & (~BITS_HEAD_PKT_Q6_V1))
  25681. #define BIT_GET_HEAD_PKT_Q6_V1(x) \
  25682. (((x) >> BIT_SHIFT_HEAD_PKT_Q6_V1) & BIT_MASK_HEAD_PKT_Q6_V1)
  25683. #define BIT_SET_HEAD_PKT_Q6_V1(x, v) \
  25684. (BIT_CLEAR_HEAD_PKT_Q6_V1(x) | BIT_HEAD_PKT_Q6_V1(v))
  25685. #endif
  25686. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25687. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  25688. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  25689. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25690. #define BIT_SHIFT_QUEUEMACID_Q7_V1 25
  25691. #define BIT_MASK_QUEUEMACID_Q7_V1 0x7f
  25692. #define BIT_QUEUEMACID_Q7_V1(x) \
  25693. (((x) & BIT_MASK_QUEUEMACID_Q7_V1) << BIT_SHIFT_QUEUEMACID_Q7_V1)
  25694. #define BITS_QUEUEMACID_Q7_V1 \
  25695. (BIT_MASK_QUEUEMACID_Q7_V1 << BIT_SHIFT_QUEUEMACID_Q7_V1)
  25696. #define BIT_CLEAR_QUEUEMACID_Q7_V1(x) ((x) & (~BITS_QUEUEMACID_Q7_V1))
  25697. #define BIT_GET_QUEUEMACID_Q7_V1(x) \
  25698. (((x) >> BIT_SHIFT_QUEUEMACID_Q7_V1) & BIT_MASK_QUEUEMACID_Q7_V1)
  25699. #define BIT_SET_QUEUEMACID_Q7_V1(x, v) \
  25700. (BIT_CLEAR_QUEUEMACID_Q7_V1(x) | BIT_QUEUEMACID_Q7_V1(v))
  25701. #define BIT_SHIFT_QUEUEAC_Q7_V1 23
  25702. #define BIT_MASK_QUEUEAC_Q7_V1 0x3
  25703. #define BIT_QUEUEAC_Q7_V1(x) \
  25704. (((x) & BIT_MASK_QUEUEAC_Q7_V1) << BIT_SHIFT_QUEUEAC_Q7_V1)
  25705. #define BITS_QUEUEAC_Q7_V1 (BIT_MASK_QUEUEAC_Q7_V1 << BIT_SHIFT_QUEUEAC_Q7_V1)
  25706. #define BIT_CLEAR_QUEUEAC_Q7_V1(x) ((x) & (~BITS_QUEUEAC_Q7_V1))
  25707. #define BIT_GET_QUEUEAC_Q7_V1(x) \
  25708. (((x) >> BIT_SHIFT_QUEUEAC_Q7_V1) & BIT_MASK_QUEUEAC_Q7_V1)
  25709. #define BIT_SET_QUEUEAC_Q7_V1(x, v) \
  25710. (BIT_CLEAR_QUEUEAC_Q7_V1(x) | BIT_QUEUEAC_Q7_V1(v))
  25711. #endif
  25712. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25713. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25714. HALMAC_8822C_SUPPORT)
  25715. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25716. #define BIT_TIDEMPTY_Q7_V1 BIT(22)
  25717. #endif
  25718. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25719. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25720. #define BIT_SHIFT_TAIL_PKT_Q7_V1 15
  25721. #define BIT_MASK_TAIL_PKT_Q7_V1 0xff
  25722. #define BIT_TAIL_PKT_Q7_V1(x) \
  25723. (((x) & BIT_MASK_TAIL_PKT_Q7_V1) << BIT_SHIFT_TAIL_PKT_Q7_V1)
  25724. #define BITS_TAIL_PKT_Q7_V1 \
  25725. (BIT_MASK_TAIL_PKT_Q7_V1 << BIT_SHIFT_TAIL_PKT_Q7_V1)
  25726. #define BIT_CLEAR_TAIL_PKT_Q7_V1(x) ((x) & (~BITS_TAIL_PKT_Q7_V1))
  25727. #define BIT_GET_TAIL_PKT_Q7_V1(x) \
  25728. (((x) >> BIT_SHIFT_TAIL_PKT_Q7_V1) & BIT_MASK_TAIL_PKT_Q7_V1)
  25729. #define BIT_SET_TAIL_PKT_Q7_V1(x, v) \
  25730. (BIT_CLEAR_TAIL_PKT_Q7_V1(x) | BIT_TAIL_PKT_Q7_V1(v))
  25731. #endif
  25732. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25733. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25734. HALMAC_8822C_SUPPORT)
  25735. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25736. #define BIT_SHIFT_TAIL_PKT_Q7_V2 11
  25737. #define BIT_MASK_TAIL_PKT_Q7_V2 0x7ff
  25738. #define BIT_TAIL_PKT_Q7_V2(x) \
  25739. (((x) & BIT_MASK_TAIL_PKT_Q7_V2) << BIT_SHIFT_TAIL_PKT_Q7_V2)
  25740. #define BITS_TAIL_PKT_Q7_V2 \
  25741. (BIT_MASK_TAIL_PKT_Q7_V2 << BIT_SHIFT_TAIL_PKT_Q7_V2)
  25742. #define BIT_CLEAR_TAIL_PKT_Q7_V2(x) ((x) & (~BITS_TAIL_PKT_Q7_V2))
  25743. #define BIT_GET_TAIL_PKT_Q7_V2(x) \
  25744. (((x) >> BIT_SHIFT_TAIL_PKT_Q7_V2) & BIT_MASK_TAIL_PKT_Q7_V2)
  25745. #define BIT_SET_TAIL_PKT_Q7_V2(x, v) \
  25746. (BIT_CLEAR_TAIL_PKT_Q7_V2(x) | BIT_TAIL_PKT_Q7_V2(v))
  25747. #endif
  25748. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  25749. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25750. #define BIT_SHIFT_PKT_NUM_Q7_V1 8
  25751. #define BIT_MASK_PKT_NUM_Q7_V1 0x7f
  25752. #define BIT_PKT_NUM_Q7_V1(x) \
  25753. (((x) & BIT_MASK_PKT_NUM_Q7_V1) << BIT_SHIFT_PKT_NUM_Q7_V1)
  25754. #define BITS_PKT_NUM_Q7_V1 (BIT_MASK_PKT_NUM_Q7_V1 << BIT_SHIFT_PKT_NUM_Q7_V1)
  25755. #define BIT_CLEAR_PKT_NUM_Q7_V1(x) ((x) & (~BITS_PKT_NUM_Q7_V1))
  25756. #define BIT_GET_PKT_NUM_Q7_V1(x) \
  25757. (((x) >> BIT_SHIFT_PKT_NUM_Q7_V1) & BIT_MASK_PKT_NUM_Q7_V1)
  25758. #define BIT_SET_PKT_NUM_Q7_V1(x, v) \
  25759. (BIT_CLEAR_PKT_NUM_Q7_V1(x) | BIT_PKT_NUM_Q7_V1(v))
  25760. #define BIT_SHIFT_HEAD_PKT_Q7 0
  25761. #define BIT_MASK_HEAD_PKT_Q7 0xff
  25762. #define BIT_HEAD_PKT_Q7(x) \
  25763. (((x) & BIT_MASK_HEAD_PKT_Q7) << BIT_SHIFT_HEAD_PKT_Q7)
  25764. #define BITS_HEAD_PKT_Q7 (BIT_MASK_HEAD_PKT_Q7 << BIT_SHIFT_HEAD_PKT_Q7)
  25765. #define BIT_CLEAR_HEAD_PKT_Q7(x) ((x) & (~BITS_HEAD_PKT_Q7))
  25766. #define BIT_GET_HEAD_PKT_Q7(x) \
  25767. (((x) >> BIT_SHIFT_HEAD_PKT_Q7) & BIT_MASK_HEAD_PKT_Q7)
  25768. #define BIT_SET_HEAD_PKT_Q7(x, v) \
  25769. (BIT_CLEAR_HEAD_PKT_Q7(x) | BIT_HEAD_PKT_Q7(v))
  25770. #endif
  25771. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25772. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  25773. HALMAC_8822C_SUPPORT)
  25774. /* 2 REG_Q7_INFO (Offset 0x0474) */
  25775. #define BIT_SHIFT_HEAD_PKT_Q7_V1 0
  25776. #define BIT_MASK_HEAD_PKT_Q7_V1 0x7ff
  25777. #define BIT_HEAD_PKT_Q7_V1(x) \
  25778. (((x) & BIT_MASK_HEAD_PKT_Q7_V1) << BIT_SHIFT_HEAD_PKT_Q7_V1)
  25779. #define BITS_HEAD_PKT_Q7_V1 \
  25780. (BIT_MASK_HEAD_PKT_Q7_V1 << BIT_SHIFT_HEAD_PKT_Q7_V1)
  25781. #define BIT_CLEAR_HEAD_PKT_Q7_V1(x) ((x) & (~BITS_HEAD_PKT_Q7_V1))
  25782. #define BIT_GET_HEAD_PKT_Q7_V1(x) \
  25783. (((x) >> BIT_SHIFT_HEAD_PKT_Q7_V1) & BIT_MASK_HEAD_PKT_Q7_V1)
  25784. #define BIT_SET_HEAD_PKT_Q7_V1(x, v) \
  25785. (BIT_CLEAR_HEAD_PKT_Q7_V1(x) | BIT_HEAD_PKT_Q7_V1(v))
  25786. #endif
  25787. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25788. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25789. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25790. /* 2 REG_WMAC_LBK_BUF_HD_V1 (Offset 0x0478) */
  25791. #define BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1 0
  25792. #define BIT_MASK_WMAC_LBK_BUF_HEAD_V1 0xfff
  25793. #define BIT_WMAC_LBK_BUF_HEAD_V1(x) \
  25794. (((x) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1) \
  25795. << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1)
  25796. #define BITS_WMAC_LBK_BUF_HEAD_V1 \
  25797. (BIT_MASK_WMAC_LBK_BUF_HEAD_V1 << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1)
  25798. #define BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1(x) ((x) & (~BITS_WMAC_LBK_BUF_HEAD_V1))
  25799. #define BIT_GET_WMAC_LBK_BUF_HEAD_V1(x) \
  25800. (((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1) & \
  25801. BIT_MASK_WMAC_LBK_BUF_HEAD_V1)
  25802. #define BIT_SET_WMAC_LBK_BUF_HEAD_V1(x, v) \
  25803. (BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1(x) | BIT_WMAC_LBK_BUF_HEAD_V1(v))
  25804. /* 2 REG_MGQ_BDNY_V1 (Offset 0x047A) */
  25805. #define BIT_SHIFT_MGQ_PGBNDY_V1 0
  25806. #define BIT_MASK_MGQ_PGBNDY_V1 0xfff
  25807. #define BIT_MGQ_PGBNDY_V1(x) \
  25808. (((x) & BIT_MASK_MGQ_PGBNDY_V1) << BIT_SHIFT_MGQ_PGBNDY_V1)
  25809. #define BITS_MGQ_PGBNDY_V1 (BIT_MASK_MGQ_PGBNDY_V1 << BIT_SHIFT_MGQ_PGBNDY_V1)
  25810. #define BIT_CLEAR_MGQ_PGBNDY_V1(x) ((x) & (~BITS_MGQ_PGBNDY_V1))
  25811. #define BIT_GET_MGQ_PGBNDY_V1(x) \
  25812. (((x) >> BIT_SHIFT_MGQ_PGBNDY_V1) & BIT_MASK_MGQ_PGBNDY_V1)
  25813. #define BIT_SET_MGQ_PGBNDY_V1(x, v) \
  25814. (BIT_CLEAR_MGQ_PGBNDY_V1(x) | BIT_MGQ_PGBNDY_V1(v))
  25815. #endif
  25816. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25817. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25818. #define BIT_SHIFT_SPC_READ_PTR 24
  25819. #define BIT_MASK_SPC_READ_PTR 0xf
  25820. #define BIT_SPC_READ_PTR(x) \
  25821. (((x) & BIT_MASK_SPC_READ_PTR) << BIT_SHIFT_SPC_READ_PTR)
  25822. #define BITS_SPC_READ_PTR (BIT_MASK_SPC_READ_PTR << BIT_SHIFT_SPC_READ_PTR)
  25823. #define BIT_CLEAR_SPC_READ_PTR(x) ((x) & (~BITS_SPC_READ_PTR))
  25824. #define BIT_GET_SPC_READ_PTR(x) \
  25825. (((x) >> BIT_SHIFT_SPC_READ_PTR) & BIT_MASK_SPC_READ_PTR)
  25826. #define BIT_SET_SPC_READ_PTR(x, v) \
  25827. (BIT_CLEAR_SPC_READ_PTR(x) | BIT_SPC_READ_PTR(v))
  25828. #endif
  25829. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25830. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25831. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25832. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25833. #define BIT_SHIFT_TRXRPT_TIMER_TH 24
  25834. #define BIT_MASK_TRXRPT_TIMER_TH 0xff
  25835. #define BIT_TRXRPT_TIMER_TH(x) \
  25836. (((x) & BIT_MASK_TRXRPT_TIMER_TH) << BIT_SHIFT_TRXRPT_TIMER_TH)
  25837. #define BITS_TRXRPT_TIMER_TH \
  25838. (BIT_MASK_TRXRPT_TIMER_TH << BIT_SHIFT_TRXRPT_TIMER_TH)
  25839. #define BIT_CLEAR_TRXRPT_TIMER_TH(x) ((x) & (~BITS_TRXRPT_TIMER_TH))
  25840. #define BIT_GET_TRXRPT_TIMER_TH(x) \
  25841. (((x) >> BIT_SHIFT_TRXRPT_TIMER_TH) & BIT_MASK_TRXRPT_TIMER_TH)
  25842. #define BIT_SET_TRXRPT_TIMER_TH(x, v) \
  25843. (BIT_CLEAR_TRXRPT_TIMER_TH(x) | BIT_TRXRPT_TIMER_TH(v))
  25844. #endif
  25845. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25846. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25847. #define BIT_SHIFT_SPC_WRITE_PTR 16
  25848. #define BIT_MASK_SPC_WRITE_PTR 0xf
  25849. #define BIT_SPC_WRITE_PTR(x) \
  25850. (((x) & BIT_MASK_SPC_WRITE_PTR) << BIT_SHIFT_SPC_WRITE_PTR)
  25851. #define BITS_SPC_WRITE_PTR (BIT_MASK_SPC_WRITE_PTR << BIT_SHIFT_SPC_WRITE_PTR)
  25852. #define BIT_CLEAR_SPC_WRITE_PTR(x) ((x) & (~BITS_SPC_WRITE_PTR))
  25853. #define BIT_GET_SPC_WRITE_PTR(x) \
  25854. (((x) >> BIT_SHIFT_SPC_WRITE_PTR) & BIT_MASK_SPC_WRITE_PTR)
  25855. #define BIT_SET_SPC_WRITE_PTR(x, v) \
  25856. (BIT_CLEAR_SPC_WRITE_PTR(x) | BIT_SPC_WRITE_PTR(v))
  25857. #endif
  25858. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25859. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25860. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25861. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25862. #define BIT_SHIFT_TRXRPT_LEN_TH 16
  25863. #define BIT_MASK_TRXRPT_LEN_TH 0xff
  25864. #define BIT_TRXRPT_LEN_TH(x) \
  25865. (((x) & BIT_MASK_TRXRPT_LEN_TH) << BIT_SHIFT_TRXRPT_LEN_TH)
  25866. #define BITS_TRXRPT_LEN_TH (BIT_MASK_TRXRPT_LEN_TH << BIT_SHIFT_TRXRPT_LEN_TH)
  25867. #define BIT_CLEAR_TRXRPT_LEN_TH(x) ((x) & (~BITS_TRXRPT_LEN_TH))
  25868. #define BIT_GET_TRXRPT_LEN_TH(x) \
  25869. (((x) >> BIT_SHIFT_TRXRPT_LEN_TH) & BIT_MASK_TRXRPT_LEN_TH)
  25870. #define BIT_SET_TRXRPT_LEN_TH(x, v) \
  25871. (BIT_CLEAR_TRXRPT_LEN_TH(x) | BIT_TRXRPT_LEN_TH(v))
  25872. #endif
  25873. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25874. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25875. #define BIT_SHIFT_AC_READ_PTR 8
  25876. #define BIT_MASK_AC_READ_PTR 0xf
  25877. #define BIT_AC_READ_PTR(x) \
  25878. (((x) & BIT_MASK_AC_READ_PTR) << BIT_SHIFT_AC_READ_PTR)
  25879. #define BITS_AC_READ_PTR (BIT_MASK_AC_READ_PTR << BIT_SHIFT_AC_READ_PTR)
  25880. #define BIT_CLEAR_AC_READ_PTR(x) ((x) & (~BITS_AC_READ_PTR))
  25881. #define BIT_GET_AC_READ_PTR(x) \
  25882. (((x) >> BIT_SHIFT_AC_READ_PTR) & BIT_MASK_AC_READ_PTR)
  25883. #define BIT_SET_AC_READ_PTR(x, v) \
  25884. (BIT_CLEAR_AC_READ_PTR(x) | BIT_AC_READ_PTR(v))
  25885. #endif
  25886. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25887. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25888. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25889. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25890. #define BIT_SHIFT_TRXRPT_READ_PTR 8
  25891. #define BIT_MASK_TRXRPT_READ_PTR 0xff
  25892. #define BIT_TRXRPT_READ_PTR(x) \
  25893. (((x) & BIT_MASK_TRXRPT_READ_PTR) << BIT_SHIFT_TRXRPT_READ_PTR)
  25894. #define BITS_TRXRPT_READ_PTR \
  25895. (BIT_MASK_TRXRPT_READ_PTR << BIT_SHIFT_TRXRPT_READ_PTR)
  25896. #define BIT_CLEAR_TRXRPT_READ_PTR(x) ((x) & (~BITS_TRXRPT_READ_PTR))
  25897. #define BIT_GET_TRXRPT_READ_PTR(x) \
  25898. (((x) >> BIT_SHIFT_TRXRPT_READ_PTR) & BIT_MASK_TRXRPT_READ_PTR)
  25899. #define BIT_SET_TRXRPT_READ_PTR(x, v) \
  25900. (BIT_CLEAR_TRXRPT_READ_PTR(x) | BIT_TRXRPT_READ_PTR(v))
  25901. #endif
  25902. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  25903. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25904. #define BIT_SHIFT_AC_WRITE_PTR 0
  25905. #define BIT_MASK_AC_WRITE_PTR 0xf
  25906. #define BIT_AC_WRITE_PTR(x) \
  25907. (((x) & BIT_MASK_AC_WRITE_PTR) << BIT_SHIFT_AC_WRITE_PTR)
  25908. #define BITS_AC_WRITE_PTR (BIT_MASK_AC_WRITE_PTR << BIT_SHIFT_AC_WRITE_PTR)
  25909. #define BIT_CLEAR_AC_WRITE_PTR(x) ((x) & (~BITS_AC_WRITE_PTR))
  25910. #define BIT_GET_AC_WRITE_PTR(x) \
  25911. (((x) >> BIT_SHIFT_AC_WRITE_PTR) & BIT_MASK_AC_WRITE_PTR)
  25912. #define BIT_SET_AC_WRITE_PTR(x, v) \
  25913. (BIT_CLEAR_AC_WRITE_PTR(x) | BIT_AC_WRITE_PTR(v))
  25914. #endif
  25915. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  25916. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  25917. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  25918. /* 2 REG_TXRPT_CTRL (Offset 0x047C) */
  25919. #define BIT_SHIFT_TRXRPT_WRITE_PTR 0
  25920. #define BIT_MASK_TRXRPT_WRITE_PTR 0xff
  25921. #define BIT_TRXRPT_WRITE_PTR(x) \
  25922. (((x) & BIT_MASK_TRXRPT_WRITE_PTR) << BIT_SHIFT_TRXRPT_WRITE_PTR)
  25923. #define BITS_TRXRPT_WRITE_PTR \
  25924. (BIT_MASK_TRXRPT_WRITE_PTR << BIT_SHIFT_TRXRPT_WRITE_PTR)
  25925. #define BIT_CLEAR_TRXRPT_WRITE_PTR(x) ((x) & (~BITS_TRXRPT_WRITE_PTR))
  25926. #define BIT_GET_TRXRPT_WRITE_PTR(x) \
  25927. (((x) >> BIT_SHIFT_TRXRPT_WRITE_PTR) & BIT_MASK_TRXRPT_WRITE_PTR)
  25928. #define BIT_SET_TRXRPT_WRITE_PTR(x, v) \
  25929. (BIT_CLEAR_TRXRPT_WRITE_PTR(x) | BIT_TRXRPT_WRITE_PTR(v))
  25930. #endif
  25931. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  25932. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  25933. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  25934. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  25935. /* 2 REG_INIRTS_RATE_SEL (Offset 0x0480) */
  25936. #define BIT_LEAG_RTS_BW_DUP BIT(5)
  25937. /* 2 REG_BASIC_CFEND_RATE (Offset 0x0481) */
  25938. #define BIT_SHIFT_BASIC_CFEND_RATE 0
  25939. #define BIT_MASK_BASIC_CFEND_RATE 0x1f
  25940. #define BIT_BASIC_CFEND_RATE(x) \
  25941. (((x) & BIT_MASK_BASIC_CFEND_RATE) << BIT_SHIFT_BASIC_CFEND_RATE)
  25942. #define BITS_BASIC_CFEND_RATE \
  25943. (BIT_MASK_BASIC_CFEND_RATE << BIT_SHIFT_BASIC_CFEND_RATE)
  25944. #define BIT_CLEAR_BASIC_CFEND_RATE(x) ((x) & (~BITS_BASIC_CFEND_RATE))
  25945. #define BIT_GET_BASIC_CFEND_RATE(x) \
  25946. (((x) >> BIT_SHIFT_BASIC_CFEND_RATE) & BIT_MASK_BASIC_CFEND_RATE)
  25947. #define BIT_SET_BASIC_CFEND_RATE(x, v) \
  25948. (BIT_CLEAR_BASIC_CFEND_RATE(x) | BIT_BASIC_CFEND_RATE(v))
  25949. /* 2 REG_STBC_CFEND_RATE (Offset 0x0482) */
  25950. #define BIT_SHIFT_STBC_CFEND_RATE 0
  25951. #define BIT_MASK_STBC_CFEND_RATE 0x1f
  25952. #define BIT_STBC_CFEND_RATE(x) \
  25953. (((x) & BIT_MASK_STBC_CFEND_RATE) << BIT_SHIFT_STBC_CFEND_RATE)
  25954. #define BITS_STBC_CFEND_RATE \
  25955. (BIT_MASK_STBC_CFEND_RATE << BIT_SHIFT_STBC_CFEND_RATE)
  25956. #define BIT_CLEAR_STBC_CFEND_RATE(x) ((x) & (~BITS_STBC_CFEND_RATE))
  25957. #define BIT_GET_STBC_CFEND_RATE(x) \
  25958. (((x) >> BIT_SHIFT_STBC_CFEND_RATE) & BIT_MASK_STBC_CFEND_RATE)
  25959. #define BIT_SET_STBC_CFEND_RATE(x, v) \
  25960. (BIT_CLEAR_STBC_CFEND_RATE(x) | BIT_STBC_CFEND_RATE(v))
  25961. /* 2 REG_DATA_SC (Offset 0x0483) */
  25962. #define BIT_SHIFT_TXSC_40M 4
  25963. #define BIT_MASK_TXSC_40M 0xf
  25964. #define BIT_TXSC_40M(x) (((x) & BIT_MASK_TXSC_40M) << BIT_SHIFT_TXSC_40M)
  25965. #define BITS_TXSC_40M (BIT_MASK_TXSC_40M << BIT_SHIFT_TXSC_40M)
  25966. #define BIT_CLEAR_TXSC_40M(x) ((x) & (~BITS_TXSC_40M))
  25967. #define BIT_GET_TXSC_40M(x) (((x) >> BIT_SHIFT_TXSC_40M) & BIT_MASK_TXSC_40M)
  25968. #define BIT_SET_TXSC_40M(x, v) (BIT_CLEAR_TXSC_40M(x) | BIT_TXSC_40M(v))
  25969. #define BIT_SHIFT_TXSC_20M 0
  25970. #define BIT_MASK_TXSC_20M 0xf
  25971. #define BIT_TXSC_20M(x) (((x) & BIT_MASK_TXSC_20M) << BIT_SHIFT_TXSC_20M)
  25972. #define BITS_TXSC_20M (BIT_MASK_TXSC_20M << BIT_SHIFT_TXSC_20M)
  25973. #define BIT_CLEAR_TXSC_20M(x) ((x) & (~BITS_TXSC_20M))
  25974. #define BIT_GET_TXSC_20M(x) (((x) >> BIT_SHIFT_TXSC_20M) & BIT_MASK_TXSC_20M)
  25975. #define BIT_SET_TXSC_20M(x, v) (BIT_CLEAR_TXSC_20M(x) | BIT_TXSC_20M(v))
  25976. #endif
  25977. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  25978. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  25979. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  25980. HALMAC_8881A_SUPPORT)
  25981. /* 2 REG_MACID_SLEEP3 (Offset 0x0484) */
  25982. #define BIT_SHIFT_MACID127_96_PKTSLEEP 0
  25983. #define BIT_MASK_MACID127_96_PKTSLEEP 0xffffffffL
  25984. #define BIT_MACID127_96_PKTSLEEP(x) \
  25985. (((x) & BIT_MASK_MACID127_96_PKTSLEEP) \
  25986. << BIT_SHIFT_MACID127_96_PKTSLEEP)
  25987. #define BITS_MACID127_96_PKTSLEEP \
  25988. (BIT_MASK_MACID127_96_PKTSLEEP << BIT_SHIFT_MACID127_96_PKTSLEEP)
  25989. #define BIT_CLEAR_MACID127_96_PKTSLEEP(x) ((x) & (~BITS_MACID127_96_PKTSLEEP))
  25990. #define BIT_GET_MACID127_96_PKTSLEEP(x) \
  25991. (((x) >> BIT_SHIFT_MACID127_96_PKTSLEEP) & \
  25992. BIT_MASK_MACID127_96_PKTSLEEP)
  25993. #define BIT_SET_MACID127_96_PKTSLEEP(x, v) \
  25994. (BIT_CLEAR_MACID127_96_PKTSLEEP(x) | BIT_MACID127_96_PKTSLEEP(v))
  25995. #endif
  25996. #if (HALMAC_8192F_SUPPORT)
  25997. /* 2 REG_MACID_SLEEP3 (Offset 0x0484) */
  25998. #define BIT_SHIFT_MACID103_96_PKTSLEEP 0
  25999. #define BIT_MASK_MACID103_96_PKTSLEEP 0xff
  26000. #define BIT_MACID103_96_PKTSLEEP(x) \
  26001. (((x) & BIT_MASK_MACID103_96_PKTSLEEP) \
  26002. << BIT_SHIFT_MACID103_96_PKTSLEEP)
  26003. #define BITS_MACID103_96_PKTSLEEP \
  26004. (BIT_MASK_MACID103_96_PKTSLEEP << BIT_SHIFT_MACID103_96_PKTSLEEP)
  26005. #define BIT_CLEAR_MACID103_96_PKTSLEEP(x) ((x) & (~BITS_MACID103_96_PKTSLEEP))
  26006. #define BIT_GET_MACID103_96_PKTSLEEP(x) \
  26007. (((x) >> BIT_SHIFT_MACID103_96_PKTSLEEP) & \
  26008. BIT_MASK_MACID103_96_PKTSLEEP)
  26009. #define BIT_SET_MACID103_96_PKTSLEEP(x, v) \
  26010. (BIT_CLEAR_MACID103_96_PKTSLEEP(x) | BIT_MACID103_96_PKTSLEEP(v))
  26011. /* 2 REG_MACID_SLEEP4 (Offset 0x0485) */
  26012. #define BIT_SHIFT_MACID119_104_PKTSLEEP 0
  26013. #define BIT_MASK_MACID119_104_PKTSLEEP 0xffff
  26014. #define BIT_MACID119_104_PKTSLEEP(x) \
  26015. (((x) & BIT_MASK_MACID119_104_PKTSLEEP) \
  26016. << BIT_SHIFT_MACID119_104_PKTSLEEP)
  26017. #define BITS_MACID119_104_PKTSLEEP \
  26018. (BIT_MASK_MACID119_104_PKTSLEEP << BIT_SHIFT_MACID119_104_PKTSLEEP)
  26019. #define BIT_CLEAR_MACID119_104_PKTSLEEP(x) ((x) & (~BITS_MACID119_104_PKTSLEEP))
  26020. #define BIT_GET_MACID119_104_PKTSLEEP(x) \
  26021. (((x) >> BIT_SHIFT_MACID119_104_PKTSLEEP) & \
  26022. BIT_MASK_MACID119_104_PKTSLEEP)
  26023. #define BIT_SET_MACID119_104_PKTSLEEP(x, v) \
  26024. (BIT_CLEAR_MACID119_104_PKTSLEEP(x) | BIT_MACID119_104_PKTSLEEP(v))
  26025. #endif
  26026. #if (HALMAC_8814B_SUPPORT)
  26027. /* 2 REG_DATA_SC1 (Offset 0x0487) */
  26028. #define BIT_SHIFT_TXSC_160M 4
  26029. #define BIT_MASK_TXSC_160M 0xf
  26030. #define BIT_TXSC_160M(x) (((x) & BIT_MASK_TXSC_160M) << BIT_SHIFT_TXSC_160M)
  26031. #define BITS_TXSC_160M (BIT_MASK_TXSC_160M << BIT_SHIFT_TXSC_160M)
  26032. #define BIT_CLEAR_TXSC_160M(x) ((x) & (~BITS_TXSC_160M))
  26033. #define BIT_GET_TXSC_160M(x) (((x) >> BIT_SHIFT_TXSC_160M) & BIT_MASK_TXSC_160M)
  26034. #define BIT_SET_TXSC_160M(x, v) (BIT_CLEAR_TXSC_160M(x) | BIT_TXSC_160M(v))
  26035. #endif
  26036. #if (HALMAC_8192F_SUPPORT)
  26037. /* 2 REG_MACID_SLEEP5 (Offset 0x0487) */
  26038. #define BIT_SHIFT_MACID127_120_PKTSLEEP 0
  26039. #define BIT_MASK_MACID127_120_PKTSLEEP 0xff
  26040. #define BIT_MACID127_120_PKTSLEEP(x) \
  26041. (((x) & BIT_MASK_MACID127_120_PKTSLEEP) \
  26042. << BIT_SHIFT_MACID127_120_PKTSLEEP)
  26043. #define BITS_MACID127_120_PKTSLEEP \
  26044. (BIT_MASK_MACID127_120_PKTSLEEP << BIT_SHIFT_MACID127_120_PKTSLEEP)
  26045. #define BIT_CLEAR_MACID127_120_PKTSLEEP(x) ((x) & (~BITS_MACID127_120_PKTSLEEP))
  26046. #define BIT_GET_MACID127_120_PKTSLEEP(x) \
  26047. (((x) >> BIT_SHIFT_MACID127_120_PKTSLEEP) & \
  26048. BIT_MASK_MACID127_120_PKTSLEEP)
  26049. #define BIT_SET_MACID127_120_PKTSLEEP(x, v) \
  26050. (BIT_CLEAR_MACID127_120_PKTSLEEP(x) | BIT_MACID127_120_PKTSLEEP(v))
  26051. #endif
  26052. #if (HALMAC_8814B_SUPPORT)
  26053. /* 2 REG_DATA_SC1 (Offset 0x0487) */
  26054. #define BIT_SHIFT_TXSC_80M 0
  26055. #define BIT_MASK_TXSC_80M 0xf
  26056. #define BIT_TXSC_80M(x) (((x) & BIT_MASK_TXSC_80M) << BIT_SHIFT_TXSC_80M)
  26057. #define BITS_TXSC_80M (BIT_MASK_TXSC_80M << BIT_SHIFT_TXSC_80M)
  26058. #define BIT_CLEAR_TXSC_80M(x) ((x) & (~BITS_TXSC_80M))
  26059. #define BIT_GET_TXSC_80M(x) (((x) >> BIT_SHIFT_TXSC_80M) & BIT_MASK_TXSC_80M)
  26060. #define BIT_SET_TXSC_80M(x, v) (BIT_CLEAR_TXSC_80M(x) | BIT_TXSC_80M(v))
  26061. #endif
  26062. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26063. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26064. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  26065. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26066. /* 2 REG_MACID_SLEEP1 (Offset 0x0488) */
  26067. #define BIT_SHIFT_MACID63_32_PKTSLEEP 0
  26068. #define BIT_MASK_MACID63_32_PKTSLEEP 0xffffffffL
  26069. #define BIT_MACID63_32_PKTSLEEP(x) \
  26070. (((x) & BIT_MASK_MACID63_32_PKTSLEEP) << BIT_SHIFT_MACID63_32_PKTSLEEP)
  26071. #define BITS_MACID63_32_PKTSLEEP \
  26072. (BIT_MASK_MACID63_32_PKTSLEEP << BIT_SHIFT_MACID63_32_PKTSLEEP)
  26073. #define BIT_CLEAR_MACID63_32_PKTSLEEP(x) ((x) & (~BITS_MACID63_32_PKTSLEEP))
  26074. #define BIT_GET_MACID63_32_PKTSLEEP(x) \
  26075. (((x) >> BIT_SHIFT_MACID63_32_PKTSLEEP) & BIT_MASK_MACID63_32_PKTSLEEP)
  26076. #define BIT_SET_MACID63_32_PKTSLEEP(x, v) \
  26077. (BIT_CLEAR_MACID63_32_PKTSLEEP(x) | BIT_MACID63_32_PKTSLEEP(v))
  26078. #endif
  26079. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26080. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  26081. HALMAC_8881A_SUPPORT)
  26082. /* 2 REG_ARFR2_V1 (Offset 0x048C) */
  26083. #define BIT_SHIFT_ARFR2_V1 0
  26084. #define BIT_MASK_ARFR2_V1 0xffffffffffffffffL
  26085. #define BIT_ARFR2_V1(x) (((x) & BIT_MASK_ARFR2_V1) << BIT_SHIFT_ARFR2_V1)
  26086. #define BITS_ARFR2_V1 (BIT_MASK_ARFR2_V1 << BIT_SHIFT_ARFR2_V1)
  26087. #define BIT_CLEAR_ARFR2_V1(x) ((x) & (~BITS_ARFR2_V1))
  26088. #define BIT_GET_ARFR2_V1(x) (((x) >> BIT_SHIFT_ARFR2_V1) & BIT_MASK_ARFR2_V1)
  26089. #define BIT_SET_ARFR2_V1(x, v) (BIT_CLEAR_ARFR2_V1(x) | BIT_ARFR2_V1(v))
  26090. #endif
  26091. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  26092. HALMAC_8822C_SUPPORT)
  26093. /* 2 REG_ARFR2 (Offset 0x048C) */
  26094. #define BIT_SHIFT_ARFRL2 0
  26095. #define BIT_MASK_ARFRL2 0xffffffffL
  26096. #define BIT_ARFRL2(x) (((x) & BIT_MASK_ARFRL2) << BIT_SHIFT_ARFRL2)
  26097. #define BITS_ARFRL2 (BIT_MASK_ARFRL2 << BIT_SHIFT_ARFRL2)
  26098. #define BIT_CLEAR_ARFRL2(x) ((x) & (~BITS_ARFRL2))
  26099. #define BIT_GET_ARFRL2(x) (((x) >> BIT_SHIFT_ARFRL2) & BIT_MASK_ARFRL2)
  26100. #define BIT_SET_ARFRL2(x, v) (BIT_CLEAR_ARFRL2(x) | BIT_ARFRL2(v))
  26101. /* 2 REG_ARFRH2 (Offset 0x0490) */
  26102. #define BIT_SHIFT_ARFRH2 0
  26103. #define BIT_MASK_ARFRH2 0xffffffffL
  26104. #define BIT_ARFRH2(x) (((x) & BIT_MASK_ARFRH2) << BIT_SHIFT_ARFRH2)
  26105. #define BITS_ARFRH2 (BIT_MASK_ARFRH2 << BIT_SHIFT_ARFRH2)
  26106. #define BIT_CLEAR_ARFRH2(x) ((x) & (~BITS_ARFRH2))
  26107. #define BIT_GET_ARFRH2(x) (((x) >> BIT_SHIFT_ARFRH2) & BIT_MASK_ARFRH2)
  26108. #define BIT_SET_ARFRH2(x, v) (BIT_CLEAR_ARFRH2(x) | BIT_ARFRH2(v))
  26109. #endif
  26110. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26111. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  26112. HALMAC_8881A_SUPPORT)
  26113. /* 2 REG_ARFR3_V1 (Offset 0x0494) */
  26114. #define BIT_SHIFT_ARFR3_V1 0
  26115. #define BIT_MASK_ARFR3_V1 0xffffffffffffffffL
  26116. #define BIT_ARFR3_V1(x) (((x) & BIT_MASK_ARFR3_V1) << BIT_SHIFT_ARFR3_V1)
  26117. #define BITS_ARFR3_V1 (BIT_MASK_ARFR3_V1 << BIT_SHIFT_ARFR3_V1)
  26118. #define BIT_CLEAR_ARFR3_V1(x) ((x) & (~BITS_ARFR3_V1))
  26119. #define BIT_GET_ARFR3_V1(x) (((x) >> BIT_SHIFT_ARFR3_V1) & BIT_MASK_ARFR3_V1)
  26120. #define BIT_SET_ARFR3_V1(x, v) (BIT_CLEAR_ARFR3_V1(x) | BIT_ARFR3_V1(v))
  26121. #endif
  26122. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  26123. HALMAC_8822C_SUPPORT)
  26124. /* 2 REG_ARFR3 (Offset 0x0494) */
  26125. #define BIT_SHIFT_ARFRL3 0
  26126. #define BIT_MASK_ARFRL3 0xffffffffL
  26127. #define BIT_ARFRL3(x) (((x) & BIT_MASK_ARFRL3) << BIT_SHIFT_ARFRL3)
  26128. #define BITS_ARFRL3 (BIT_MASK_ARFRL3 << BIT_SHIFT_ARFRL3)
  26129. #define BIT_CLEAR_ARFRL3(x) ((x) & (~BITS_ARFRL3))
  26130. #define BIT_GET_ARFRL3(x) (((x) >> BIT_SHIFT_ARFRL3) & BIT_MASK_ARFRL3)
  26131. #define BIT_SET_ARFRL3(x, v) (BIT_CLEAR_ARFRL3(x) | BIT_ARFRL3(v))
  26132. /* 2 REG_ARFRH3_V1 (Offset 0x0498) */
  26133. #define BIT_SHIFT_ARFRH3 0
  26134. #define BIT_MASK_ARFRH3 0xffffffffL
  26135. #define BIT_ARFRH3(x) (((x) & BIT_MASK_ARFRH3) << BIT_SHIFT_ARFRH3)
  26136. #define BITS_ARFRH3 (BIT_MASK_ARFRH3 << BIT_SHIFT_ARFRH3)
  26137. #define BIT_CLEAR_ARFRH3(x) ((x) & (~BITS_ARFRH3))
  26138. #define BIT_GET_ARFRH3(x) (((x) >> BIT_SHIFT_ARFRH3) & BIT_MASK_ARFRH3)
  26139. #define BIT_SET_ARFRH3(x, v) (BIT_CLEAR_ARFRH3(x) | BIT_ARFRH3(v))
  26140. #endif
  26141. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26142. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  26143. HALMAC_8881A_SUPPORT)
  26144. /* 2 REG_ARFR4 (Offset 0x049C) */
  26145. #define BIT_SHIFT_ARFR4 0
  26146. #define BIT_MASK_ARFR4 0xffffffffffffffffL
  26147. #define BIT_ARFR4(x) (((x) & BIT_MASK_ARFR4) << BIT_SHIFT_ARFR4)
  26148. #define BITS_ARFR4 (BIT_MASK_ARFR4 << BIT_SHIFT_ARFR4)
  26149. #define BIT_CLEAR_ARFR4(x) ((x) & (~BITS_ARFR4))
  26150. #define BIT_GET_ARFR4(x) (((x) >> BIT_SHIFT_ARFR4) & BIT_MASK_ARFR4)
  26151. #define BIT_SET_ARFR4(x, v) (BIT_CLEAR_ARFR4(x) | BIT_ARFR4(v))
  26152. #endif
  26153. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  26154. HALMAC_8822C_SUPPORT)
  26155. /* 2 REG_ARFR4 (Offset 0x049C) */
  26156. #define BIT_SHIFT_ARFRL4 0
  26157. #define BIT_MASK_ARFRL4 0xffffffffL
  26158. #define BIT_ARFRL4(x) (((x) & BIT_MASK_ARFRL4) << BIT_SHIFT_ARFRL4)
  26159. #define BITS_ARFRL4 (BIT_MASK_ARFRL4 << BIT_SHIFT_ARFRL4)
  26160. #define BIT_CLEAR_ARFRL4(x) ((x) & (~BITS_ARFRL4))
  26161. #define BIT_GET_ARFRL4(x) (((x) >> BIT_SHIFT_ARFRL4) & BIT_MASK_ARFRL4)
  26162. #define BIT_SET_ARFRL4(x, v) (BIT_CLEAR_ARFRL4(x) | BIT_ARFRL4(v))
  26163. /* 2 REG_ARFRH4 (Offset 0x04A0) */
  26164. #define BIT_SHIFT_ARFRH4 0
  26165. #define BIT_MASK_ARFRH4 0xffffffffL
  26166. #define BIT_ARFRH4(x) (((x) & BIT_MASK_ARFRH4) << BIT_SHIFT_ARFRH4)
  26167. #define BITS_ARFRH4 (BIT_MASK_ARFRH4 << BIT_SHIFT_ARFRH4)
  26168. #define BIT_CLEAR_ARFRH4(x) ((x) & (~BITS_ARFRH4))
  26169. #define BIT_GET_ARFRH4(x) (((x) >> BIT_SHIFT_ARFRH4) & BIT_MASK_ARFRH4)
  26170. #define BIT_SET_ARFRH4(x, v) (BIT_CLEAR_ARFRH4(x) | BIT_ARFRH4(v))
  26171. #endif
  26172. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26173. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  26174. HALMAC_8881A_SUPPORT)
  26175. /* 2 REG_ARFR5 (Offset 0x04A4) */
  26176. #define BIT_SHIFT_ARFR5 0
  26177. #define BIT_MASK_ARFR5 0xffffffffffffffffL
  26178. #define BIT_ARFR5(x) (((x) & BIT_MASK_ARFR5) << BIT_SHIFT_ARFR5)
  26179. #define BITS_ARFR5 (BIT_MASK_ARFR5 << BIT_SHIFT_ARFR5)
  26180. #define BIT_CLEAR_ARFR5(x) ((x) & (~BITS_ARFR5))
  26181. #define BIT_GET_ARFR5(x) (((x) >> BIT_SHIFT_ARFR5) & BIT_MASK_ARFR5)
  26182. #define BIT_SET_ARFR5(x, v) (BIT_CLEAR_ARFR5(x) | BIT_ARFR5(v))
  26183. #endif
  26184. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  26185. HALMAC_8822C_SUPPORT)
  26186. /* 2 REG_ARFR5 (Offset 0x04A4) */
  26187. #define BIT_SHIFT_ARFRL5 0
  26188. #define BIT_MASK_ARFRL5 0xffffffffL
  26189. #define BIT_ARFRL5(x) (((x) & BIT_MASK_ARFRL5) << BIT_SHIFT_ARFRL5)
  26190. #define BITS_ARFRL5 (BIT_MASK_ARFRL5 << BIT_SHIFT_ARFRL5)
  26191. #define BIT_CLEAR_ARFRL5(x) ((x) & (~BITS_ARFRL5))
  26192. #define BIT_GET_ARFRL5(x) (((x) >> BIT_SHIFT_ARFRL5) & BIT_MASK_ARFRL5)
  26193. #define BIT_SET_ARFRL5(x, v) (BIT_CLEAR_ARFRL5(x) | BIT_ARFRL5(v))
  26194. /* 2 REG_ARFRH5 (Offset 0x04A8) */
  26195. #define BIT_SHIFT_ARFRH5 0
  26196. #define BIT_MASK_ARFRH5 0xffffffffL
  26197. #define BIT_ARFRH5(x) (((x) & BIT_MASK_ARFRH5) << BIT_SHIFT_ARFRH5)
  26198. #define BITS_ARFRH5 (BIT_MASK_ARFRH5 << BIT_SHIFT_ARFRH5)
  26199. #define BIT_CLEAR_ARFRH5(x) ((x) & (~BITS_ARFRH5))
  26200. #define BIT_GET_ARFRH5(x) (((x) >> BIT_SHIFT_ARFRH5) & BIT_MASK_ARFRH5)
  26201. #define BIT_SET_ARFRH5(x, v) (BIT_CLEAR_ARFRH5(x) | BIT_ARFRH5(v))
  26202. #endif
  26203. #if (HALMAC_8814B_SUPPORT)
  26204. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26205. #define BIT_RPTFIFO_RPTNUM_OPT BIT(31)
  26206. #define BIT_SHIFT_MISSED_RPT_NUM 28
  26207. #define BIT_MASK_MISSED_RPT_NUM 0x7
  26208. #define BIT_MISSED_RPT_NUM(x) \
  26209. (((x) & BIT_MASK_MISSED_RPT_NUM) << BIT_SHIFT_MISSED_RPT_NUM)
  26210. #define BITS_MISSED_RPT_NUM \
  26211. (BIT_MASK_MISSED_RPT_NUM << BIT_SHIFT_MISSED_RPT_NUM)
  26212. #define BIT_CLEAR_MISSED_RPT_NUM(x) ((x) & (~BITS_MISSED_RPT_NUM))
  26213. #define BIT_GET_MISSED_RPT_NUM(x) \
  26214. (((x) >> BIT_SHIFT_MISSED_RPT_NUM) & BIT_MASK_MISSED_RPT_NUM)
  26215. #define BIT_SET_MISSED_RPT_NUM(x, v) \
  26216. (BIT_CLEAR_MISSED_RPT_NUM(x) | BIT_MISSED_RPT_NUM(v))
  26217. #endif
  26218. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26219. HALMAC_8814AMP_SUPPORT)
  26220. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26221. #define BIT_SHCUT_PARSE_DASA BIT(25)
  26222. #endif
  26223. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  26224. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26225. #define BIT_SHIFT_INDEX_15 24
  26226. #define BIT_MASK_INDEX_15 0xff
  26227. #define BIT_INDEX_15(x) (((x) & BIT_MASK_INDEX_15) << BIT_SHIFT_INDEX_15)
  26228. #define BITS_INDEX_15 (BIT_MASK_INDEX_15 << BIT_SHIFT_INDEX_15)
  26229. #define BIT_CLEAR_INDEX_15(x) ((x) & (~BITS_INDEX_15))
  26230. #define BIT_GET_INDEX_15(x) (((x) >> BIT_SHIFT_INDEX_15) & BIT_MASK_INDEX_15)
  26231. #define BIT_SET_INDEX_15(x, v) (BIT_CLEAR_INDEX_15(x) | BIT_INDEX_15(v))
  26232. #endif
  26233. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  26234. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26235. #define BIT_SHIFT_LOC_AMPDU_BURST_CTRL 24
  26236. #define BIT_MASK_LOC_AMPDU_BURST_CTRL 0xff
  26237. #define BIT_LOC_AMPDU_BURST_CTRL(x) \
  26238. (((x) & BIT_MASK_LOC_AMPDU_BURST_CTRL) \
  26239. << BIT_SHIFT_LOC_AMPDU_BURST_CTRL)
  26240. #define BITS_LOC_AMPDU_BURST_CTRL \
  26241. (BIT_MASK_LOC_AMPDU_BURST_CTRL << BIT_SHIFT_LOC_AMPDU_BURST_CTRL)
  26242. #define BIT_CLEAR_LOC_AMPDU_BURST_CTRL(x) ((x) & (~BITS_LOC_AMPDU_BURST_CTRL))
  26243. #define BIT_GET_LOC_AMPDU_BURST_CTRL(x) \
  26244. (((x) >> BIT_SHIFT_LOC_AMPDU_BURST_CTRL) & \
  26245. BIT_MASK_LOC_AMPDU_BURST_CTRL)
  26246. #define BIT_SET_LOC_AMPDU_BURST_CTRL(x, v) \
  26247. (BIT_CLEAR_LOC_AMPDU_BURST_CTRL(x) | BIT_LOC_AMPDU_BURST_CTRL(v))
  26248. #endif
  26249. #if (HALMAC_8192F_SUPPORT)
  26250. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26251. #define BIT_SHIFT_LOC_SWPS_RPT_CTRL 24
  26252. #define BIT_MASK_LOC_SWPS_RPT_CTRL 0xff
  26253. #define BIT_LOC_SWPS_RPT_CTRL(x) \
  26254. (((x) & BIT_MASK_LOC_SWPS_RPT_CTRL) << BIT_SHIFT_LOC_SWPS_RPT_CTRL)
  26255. #define BITS_LOC_SWPS_RPT_CTRL \
  26256. (BIT_MASK_LOC_SWPS_RPT_CTRL << BIT_SHIFT_LOC_SWPS_RPT_CTRL)
  26257. #define BIT_CLEAR_LOC_SWPS_RPT_CTRL(x) ((x) & (~BITS_LOC_SWPS_RPT_CTRL))
  26258. #define BIT_GET_LOC_SWPS_RPT_CTRL(x) \
  26259. (((x) >> BIT_SHIFT_LOC_SWPS_RPT_CTRL) & BIT_MASK_LOC_SWPS_RPT_CTRL)
  26260. #define BIT_SET_LOC_SWPS_RPT_CTRL(x, v) \
  26261. (BIT_CLEAR_LOC_SWPS_RPT_CTRL(x) | BIT_LOC_SWPS_RPT_CTRL(v))
  26262. #endif
  26263. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26264. HALMAC_8814AMP_SUPPORT)
  26265. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26266. #define BIT_SHCUT_BYPASS BIT(24)
  26267. #endif
  26268. #if (HALMAC_8812F_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26269. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26270. #define BIT_SHIFT_MACID_MURATE_OFFSET 24
  26271. #define BIT_MASK_MACID_MURATE_OFFSET 0xff
  26272. #define BIT_MACID_MURATE_OFFSET(x) \
  26273. (((x) & BIT_MASK_MACID_MURATE_OFFSET) << BIT_SHIFT_MACID_MURATE_OFFSET)
  26274. #define BITS_MACID_MURATE_OFFSET \
  26275. (BIT_MASK_MACID_MURATE_OFFSET << BIT_SHIFT_MACID_MURATE_OFFSET)
  26276. #define BIT_CLEAR_MACID_MURATE_OFFSET(x) ((x) & (~BITS_MACID_MURATE_OFFSET))
  26277. #define BIT_GET_MACID_MURATE_OFFSET(x) \
  26278. (((x) >> BIT_SHIFT_MACID_MURATE_OFFSET) & BIT_MASK_MACID_MURATE_OFFSET)
  26279. #define BIT_SET_MACID_MURATE_OFFSET(x, v) \
  26280. (BIT_CLEAR_MACID_MURATE_OFFSET(x) | BIT_MACID_MURATE_OFFSET(v))
  26281. #endif
  26282. #if (HALMAC_8821C_SUPPORT)
  26283. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26284. #define BIT_SHIFT_R_MUTAB_TXRPT_OFFSET 24
  26285. #define BIT_MASK_R_MUTAB_TXRPT_OFFSET 0xff
  26286. #define BIT_R_MUTAB_TXRPT_OFFSET(x) \
  26287. (((x) & BIT_MASK_R_MUTAB_TXRPT_OFFSET) \
  26288. << BIT_SHIFT_R_MUTAB_TXRPT_OFFSET)
  26289. #define BITS_R_MUTAB_TXRPT_OFFSET \
  26290. (BIT_MASK_R_MUTAB_TXRPT_OFFSET << BIT_SHIFT_R_MUTAB_TXRPT_OFFSET)
  26291. #define BIT_CLEAR_R_MUTAB_TXRPT_OFFSET(x) ((x) & (~BITS_R_MUTAB_TXRPT_OFFSET))
  26292. #define BIT_GET_R_MUTAB_TXRPT_OFFSET(x) \
  26293. (((x) >> BIT_SHIFT_R_MUTAB_TXRPT_OFFSET) & \
  26294. BIT_MASK_R_MUTAB_TXRPT_OFFSET)
  26295. #define BIT_SET_R_MUTAB_TXRPT_OFFSET(x, v) \
  26296. (BIT_CLEAR_R_MUTAB_TXRPT_OFFSET(x) | BIT_R_MUTAB_TXRPT_OFFSET(v))
  26297. #endif
  26298. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  26299. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26300. #define BIT_SHIFT_TXRPT_MISS_COUNT 17
  26301. #define BIT_MASK_TXRPT_MISS_COUNT 0x7
  26302. #define BIT_TXRPT_MISS_COUNT(x) \
  26303. (((x) & BIT_MASK_TXRPT_MISS_COUNT) << BIT_SHIFT_TXRPT_MISS_COUNT)
  26304. #define BITS_TXRPT_MISS_COUNT \
  26305. (BIT_MASK_TXRPT_MISS_COUNT << BIT_SHIFT_TXRPT_MISS_COUNT)
  26306. #define BIT_CLEAR_TXRPT_MISS_COUNT(x) ((x) & (~BITS_TXRPT_MISS_COUNT))
  26307. #define BIT_GET_TXRPT_MISS_COUNT(x) \
  26308. (((x) >> BIT_SHIFT_TXRPT_MISS_COUNT) & BIT_MASK_TXRPT_MISS_COUNT)
  26309. #define BIT_SET_TXRPT_MISS_COUNT(x, v) \
  26310. (BIT_CLEAR_TXRPT_MISS_COUNT(x) | BIT_TXRPT_MISS_COUNT(v))
  26311. #endif
  26312. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  26313. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26314. #define BIT_SHIFT_LOC_BCN_RPT 16
  26315. #define BIT_MASK_LOC_BCN_RPT 0xff
  26316. #define BIT_LOC_BCN_RPT(x) \
  26317. (((x) & BIT_MASK_LOC_BCN_RPT) << BIT_SHIFT_LOC_BCN_RPT)
  26318. #define BITS_LOC_BCN_RPT (BIT_MASK_LOC_BCN_RPT << BIT_SHIFT_LOC_BCN_RPT)
  26319. #define BIT_CLEAR_LOC_BCN_RPT(x) ((x) & (~BITS_LOC_BCN_RPT))
  26320. #define BIT_GET_LOC_BCN_RPT(x) \
  26321. (((x) >> BIT_SHIFT_LOC_BCN_RPT) & BIT_MASK_LOC_BCN_RPT)
  26322. #define BIT_SET_LOC_BCN_RPT(x, v) \
  26323. (BIT_CLEAR_LOC_BCN_RPT(x) | BIT_LOC_BCN_RPT(v))
  26324. #define BIT_SHIFT_INDEX_14 16
  26325. #define BIT_MASK_INDEX_14 0xff
  26326. #define BIT_INDEX_14(x) (((x) & BIT_MASK_INDEX_14) << BIT_SHIFT_INDEX_14)
  26327. #define BITS_INDEX_14 (BIT_MASK_INDEX_14 << BIT_SHIFT_INDEX_14)
  26328. #define BIT_CLEAR_INDEX_14(x) ((x) & (~BITS_INDEX_14))
  26329. #define BIT_GET_INDEX_14(x) (((x) >> BIT_SHIFT_INDEX_14) & BIT_MASK_INDEX_14)
  26330. #define BIT_SET_INDEX_14(x, v) (BIT_CLEAR_INDEX_14(x) | BIT_INDEX_14(v))
  26331. #endif
  26332. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT)
  26333. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26334. #define BIT__R_RPTFIFO_1K BIT(16)
  26335. #endif
  26336. #if (HALMAC_8812F_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26337. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26338. #define BIT_RPTFIFO_SIZE_OPT BIT(16)
  26339. #endif
  26340. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  26341. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26342. #define BIT_SHIFT_MACID_SHCUT_OFFSET 16
  26343. #define BIT_MASK_MACID_SHCUT_OFFSET 0xff
  26344. #define BIT_MACID_SHCUT_OFFSET(x) \
  26345. (((x) & BIT_MASK_MACID_SHCUT_OFFSET) << BIT_SHIFT_MACID_SHCUT_OFFSET)
  26346. #define BITS_MACID_SHCUT_OFFSET \
  26347. (BIT_MASK_MACID_SHCUT_OFFSET << BIT_SHIFT_MACID_SHCUT_OFFSET)
  26348. #define BIT_CLEAR_MACID_SHCUT_OFFSET(x) ((x) & (~BITS_MACID_SHCUT_OFFSET))
  26349. #define BIT_GET_MACID_SHCUT_OFFSET(x) \
  26350. (((x) >> BIT_SHIFT_MACID_SHCUT_OFFSET) & BIT_MASK_MACID_SHCUT_OFFSET)
  26351. #define BIT_SET_MACID_SHCUT_OFFSET(x, v) \
  26352. (BIT_CLEAR_MACID_SHCUT_OFFSET(x) | BIT_MACID_SHCUT_OFFSET(v))
  26353. #endif
  26354. #if (HALMAC_8814B_SUPPORT)
  26355. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26356. #define BIT_SHIFT_MACID_CTRL_OFFSET_V1 16
  26357. #define BIT_MASK_MACID_CTRL_OFFSET_V1 0x1ff
  26358. #define BIT_MACID_CTRL_OFFSET_V1(x) \
  26359. (((x) & BIT_MASK_MACID_CTRL_OFFSET_V1) \
  26360. << BIT_SHIFT_MACID_CTRL_OFFSET_V1)
  26361. #define BITS_MACID_CTRL_OFFSET_V1 \
  26362. (BIT_MASK_MACID_CTRL_OFFSET_V1 << BIT_SHIFT_MACID_CTRL_OFFSET_V1)
  26363. #define BIT_CLEAR_MACID_CTRL_OFFSET_V1(x) ((x) & (~BITS_MACID_CTRL_OFFSET_V1))
  26364. #define BIT_GET_MACID_CTRL_OFFSET_V1(x) \
  26365. (((x) >> BIT_SHIFT_MACID_CTRL_OFFSET_V1) & \
  26366. BIT_MASK_MACID_CTRL_OFFSET_V1)
  26367. #define BIT_SET_MACID_CTRL_OFFSET_V1(x, v) \
  26368. (BIT_CLEAR_MACID_CTRL_OFFSET_V1(x) | BIT_MACID_CTRL_OFFSET_V1(v))
  26369. #endif
  26370. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  26371. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26372. #define BIT_SHIFT_LOC_TXRPT 8
  26373. #define BIT_MASK_LOC_TXRPT 0xff
  26374. #define BIT_LOC_TXRPT(x) (((x) & BIT_MASK_LOC_TXRPT) << BIT_SHIFT_LOC_TXRPT)
  26375. #define BITS_LOC_TXRPT (BIT_MASK_LOC_TXRPT << BIT_SHIFT_LOC_TXRPT)
  26376. #define BIT_CLEAR_LOC_TXRPT(x) ((x) & (~BITS_LOC_TXRPT))
  26377. #define BIT_GET_LOC_TXRPT(x) (((x) >> BIT_SHIFT_LOC_TXRPT) & BIT_MASK_LOC_TXRPT)
  26378. #define BIT_SET_LOC_TXRPT(x, v) (BIT_CLEAR_LOC_TXRPT(x) | BIT_LOC_TXRPT(v))
  26379. #define BIT_SHIFT_INDEX_13 8
  26380. #define BIT_MASK_INDEX_13 0xff
  26381. #define BIT_INDEX_13(x) (((x) & BIT_MASK_INDEX_13) << BIT_SHIFT_INDEX_13)
  26382. #define BITS_INDEX_13 (BIT_MASK_INDEX_13 << BIT_SHIFT_INDEX_13)
  26383. #define BIT_CLEAR_INDEX_13(x) ((x) & (~BITS_INDEX_13))
  26384. #define BIT_GET_INDEX_13(x) (((x) >> BIT_SHIFT_INDEX_13) & BIT_MASK_INDEX_13)
  26385. #define BIT_SET_INDEX_13(x, v) (BIT_CLEAR_INDEX_13(x) | BIT_INDEX_13(v))
  26386. #endif
  26387. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  26388. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  26389. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26390. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26391. #define BIT_SHIFT_MACID_CTRL_OFFSET 8
  26392. #define BIT_MASK_MACID_CTRL_OFFSET 0xff
  26393. #define BIT_MACID_CTRL_OFFSET(x) \
  26394. (((x) & BIT_MASK_MACID_CTRL_OFFSET) << BIT_SHIFT_MACID_CTRL_OFFSET)
  26395. #define BITS_MACID_CTRL_OFFSET \
  26396. (BIT_MASK_MACID_CTRL_OFFSET << BIT_SHIFT_MACID_CTRL_OFFSET)
  26397. #define BIT_CLEAR_MACID_CTRL_OFFSET(x) ((x) & (~BITS_MACID_CTRL_OFFSET))
  26398. #define BIT_GET_MACID_CTRL_OFFSET(x) \
  26399. (((x) >> BIT_SHIFT_MACID_CTRL_OFFSET) & BIT_MASK_MACID_CTRL_OFFSET)
  26400. #define BIT_SET_MACID_CTRL_OFFSET(x, v) \
  26401. (BIT_CLEAR_MACID_CTRL_OFFSET(x) | BIT_MACID_CTRL_OFFSET(v))
  26402. #endif
  26403. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  26404. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26405. #define BIT_SHIFT_LOC_SRFF 0
  26406. #define BIT_MASK_LOC_SRFF 0xff
  26407. #define BIT_LOC_SRFF(x) (((x) & BIT_MASK_LOC_SRFF) << BIT_SHIFT_LOC_SRFF)
  26408. #define BITS_LOC_SRFF (BIT_MASK_LOC_SRFF << BIT_SHIFT_LOC_SRFF)
  26409. #define BIT_CLEAR_LOC_SRFF(x) ((x) & (~BITS_LOC_SRFF))
  26410. #define BIT_GET_LOC_SRFF(x) (((x) >> BIT_SHIFT_LOC_SRFF) & BIT_MASK_LOC_SRFF)
  26411. #define BIT_SET_LOC_SRFF(x, v) (BIT_CLEAR_LOC_SRFF(x) | BIT_LOC_SRFF(v))
  26412. #define BIT_SHIFT_INDEX_12 0
  26413. #define BIT_MASK_INDEX_12 0xff
  26414. #define BIT_INDEX_12(x) (((x) & BIT_MASK_INDEX_12) << BIT_SHIFT_INDEX_12)
  26415. #define BITS_INDEX_12 (BIT_MASK_INDEX_12 << BIT_SHIFT_INDEX_12)
  26416. #define BIT_CLEAR_INDEX_12(x) ((x) & (~BITS_INDEX_12))
  26417. #define BIT_GET_INDEX_12(x) (((x) >> BIT_SHIFT_INDEX_12) & BIT_MASK_INDEX_12)
  26418. #define BIT_SET_INDEX_12(x, v) (BIT_CLEAR_INDEX_12(x) | BIT_INDEX_12(v))
  26419. #endif
  26420. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  26421. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26422. #define BIT_SHIFT_RA_TRY_RATE_AGG_LMT 0
  26423. #define BIT_MASK_RA_TRY_RATE_AGG_LMT 0x1f
  26424. #define BIT_RA_TRY_RATE_AGG_LMT(x) \
  26425. (((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT) << BIT_SHIFT_RA_TRY_RATE_AGG_LMT)
  26426. #define BITS_RA_TRY_RATE_AGG_LMT \
  26427. (BIT_MASK_RA_TRY_RATE_AGG_LMT << BIT_SHIFT_RA_TRY_RATE_AGG_LMT)
  26428. #define BIT_CLEAR_RA_TRY_RATE_AGG_LMT(x) ((x) & (~BITS_RA_TRY_RATE_AGG_LMT))
  26429. #define BIT_GET_RA_TRY_RATE_AGG_LMT(x) \
  26430. (((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT) & BIT_MASK_RA_TRY_RATE_AGG_LMT)
  26431. #define BIT_SET_RA_TRY_RATE_AGG_LMT(x, v) \
  26432. (BIT_CLEAR_RA_TRY_RATE_AGG_LMT(x) | BIT_RA_TRY_RATE_AGG_LMT(v))
  26433. #endif
  26434. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  26435. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  26436. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26437. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26438. #define BIT_SHIFT_AMPDU_TXRPT_OFFSET 0
  26439. #define BIT_MASK_AMPDU_TXRPT_OFFSET 0xff
  26440. #define BIT_AMPDU_TXRPT_OFFSET(x) \
  26441. (((x) & BIT_MASK_AMPDU_TXRPT_OFFSET) << BIT_SHIFT_AMPDU_TXRPT_OFFSET)
  26442. #define BITS_AMPDU_TXRPT_OFFSET \
  26443. (BIT_MASK_AMPDU_TXRPT_OFFSET << BIT_SHIFT_AMPDU_TXRPT_OFFSET)
  26444. #define BIT_CLEAR_AMPDU_TXRPT_OFFSET(x) ((x) & (~BITS_AMPDU_TXRPT_OFFSET))
  26445. #define BIT_GET_AMPDU_TXRPT_OFFSET(x) \
  26446. (((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET) & BIT_MASK_AMPDU_TXRPT_OFFSET)
  26447. #define BIT_SET_AMPDU_TXRPT_OFFSET(x, v) \
  26448. (BIT_CLEAR_AMPDU_TXRPT_OFFSET(x) | BIT_AMPDU_TXRPT_OFFSET(v))
  26449. #endif
  26450. #if (HALMAC_8814B_SUPPORT)
  26451. /* 2 REG_TXRPT_START_OFFSET (Offset 0x04AC) */
  26452. #define BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1 0
  26453. #define BIT_MASK_AMPDU_TXRPT_OFFSET_V1 0x1ff
  26454. #define BIT_AMPDU_TXRPT_OFFSET_V1(x) \
  26455. (((x) & BIT_MASK_AMPDU_TXRPT_OFFSET_V1) \
  26456. << BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1)
  26457. #define BITS_AMPDU_TXRPT_OFFSET_V1 \
  26458. (BIT_MASK_AMPDU_TXRPT_OFFSET_V1 << BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1)
  26459. #define BIT_CLEAR_AMPDU_TXRPT_OFFSET_V1(x) ((x) & (~BITS_AMPDU_TXRPT_OFFSET_V1))
  26460. #define BIT_GET_AMPDU_TXRPT_OFFSET_V1(x) \
  26461. (((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1) & \
  26462. BIT_MASK_AMPDU_TXRPT_OFFSET_V1)
  26463. #define BIT_SET_AMPDU_TXRPT_OFFSET_V1(x, v) \
  26464. (BIT_CLEAR_AMPDU_TXRPT_OFFSET_V1(x) | BIT_AMPDU_TXRPT_OFFSET_V1(v))
  26465. #endif
  26466. #if (HALMAC_8812F_SUPPORT)
  26467. /* 2 REG_RRSR_CTS (Offset 0x04B0) */
  26468. #define BIT_SHIFT_RRCTSSR_RSC 21
  26469. #define BIT_MASK_RRCTSSR_RSC 0x3
  26470. #define BIT_RRCTSSR_RSC(x) \
  26471. (((x) & BIT_MASK_RRCTSSR_RSC) << BIT_SHIFT_RRCTSSR_RSC)
  26472. #define BITS_RRCTSSR_RSC (BIT_MASK_RRCTSSR_RSC << BIT_SHIFT_RRCTSSR_RSC)
  26473. #define BIT_CLEAR_RRCTSSR_RSC(x) ((x) & (~BITS_RRCTSSR_RSC))
  26474. #define BIT_GET_RRCTSSR_RSC(x) \
  26475. (((x) >> BIT_SHIFT_RRCTSSR_RSC) & BIT_MASK_RRCTSSR_RSC)
  26476. #define BIT_SET_RRCTSSR_RSC(x, v) \
  26477. (BIT_CLEAR_RRCTSSR_RSC(x) | BIT_RRCTSSR_RSC(v))
  26478. #define BIT_SHIFT_RRCTSSC_BITMAP 0
  26479. #define BIT_MASK_RRCTSSC_BITMAP 0xfffff
  26480. #define BIT_RRCTSSC_BITMAP(x) \
  26481. (((x) & BIT_MASK_RRCTSSC_BITMAP) << BIT_SHIFT_RRCTSSC_BITMAP)
  26482. #define BITS_RRCTSSC_BITMAP \
  26483. (BIT_MASK_RRCTSSC_BITMAP << BIT_SHIFT_RRCTSSC_BITMAP)
  26484. #define BIT_CLEAR_RRCTSSC_BITMAP(x) ((x) & (~BITS_RRCTSSC_BITMAP))
  26485. #define BIT_GET_RRCTSSC_BITMAP(x) \
  26486. (((x) >> BIT_SHIFT_RRCTSSC_BITMAP) & BIT_MASK_RRCTSSC_BITMAP)
  26487. #define BIT_SET_RRCTSSC_BITMAP(x, v) \
  26488. (BIT_CLEAR_RRCTSSC_BITMAP(x) | BIT_RRCTSSC_BITMAP(v))
  26489. #endif
  26490. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26491. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26492. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26493. /* 2 REG_POWER_STAGE1 (Offset 0x04B4) */
  26494. #define BIT_PTA_WL_PRI_MASK_CPU_MGQ BIT(31)
  26495. #define BIT_PTA_WL_PRI_MASK_BCNQ BIT(30)
  26496. #define BIT_PTA_WL_PRI_MASK_HIQ BIT(29)
  26497. #define BIT_PTA_WL_PRI_MASK_MGQ BIT(28)
  26498. #define BIT_PTA_WL_PRI_MASK_BK BIT(27)
  26499. #define BIT_PTA_WL_PRI_MASK_BE BIT(26)
  26500. #define BIT_PTA_WL_PRI_MASK_VI BIT(25)
  26501. #define BIT_PTA_WL_PRI_MASK_VO BIT(24)
  26502. #endif
  26503. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26504. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26505. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26506. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26507. /* 2 REG_POWER_STAGE1 (Offset 0x04B4) */
  26508. #define BIT_SHIFT_POWER_STAGE1 0
  26509. #define BIT_MASK_POWER_STAGE1 0xffffff
  26510. #define BIT_POWER_STAGE1(x) \
  26511. (((x) & BIT_MASK_POWER_STAGE1) << BIT_SHIFT_POWER_STAGE1)
  26512. #define BITS_POWER_STAGE1 (BIT_MASK_POWER_STAGE1 << BIT_SHIFT_POWER_STAGE1)
  26513. #define BIT_CLEAR_POWER_STAGE1(x) ((x) & (~BITS_POWER_STAGE1))
  26514. #define BIT_GET_POWER_STAGE1(x) \
  26515. (((x) >> BIT_SHIFT_POWER_STAGE1) & BIT_MASK_POWER_STAGE1)
  26516. #define BIT_SET_POWER_STAGE1(x, v) \
  26517. (BIT_CLEAR_POWER_STAGE1(x) | BIT_POWER_STAGE1(v))
  26518. #endif
  26519. #if (HALMAC_8192F_SUPPORT)
  26520. /* 2 REG_POWER_STAGE2 (Offset 0x04B8) */
  26521. #define BIT_SHIFT_EVTQ_TXRPT 27
  26522. #define BIT_MASK_EVTQ_TXRPT 0x7
  26523. #define BIT_EVTQ_TXRPT(x) (((x) & BIT_MASK_EVTQ_TXRPT) << BIT_SHIFT_EVTQ_TXRPT)
  26524. #define BITS_EVTQ_TXRPT (BIT_MASK_EVTQ_TXRPT << BIT_SHIFT_EVTQ_TXRPT)
  26525. #define BIT_CLEAR_EVTQ_TXRPT(x) ((x) & (~BITS_EVTQ_TXRPT))
  26526. #define BIT_GET_EVTQ_TXRPT(x) \
  26527. (((x) >> BIT_SHIFT_EVTQ_TXRPT) & BIT_MASK_EVTQ_TXRPT)
  26528. #define BIT_SET_EVTQ_TXRPT(x, v) (BIT_CLEAR_EVTQ_TXRPT(x) | BIT_EVTQ_TXRPT(v))
  26529. #define BIT_PTA_WL_PRI_MASK_EVT BIT(25)
  26530. #endif
  26531. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  26532. /* 2 REG_POWER_STAGE2 (Offset 0x04B8) */
  26533. #define BIT__CTRL_PKT_POW_ADJ BIT(24)
  26534. #endif
  26535. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  26536. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26537. /* 2 REG_POWER_STAGE2 (Offset 0x04B8) */
  26538. #define BIT__R_CTRL_PKT_POW_ADJ BIT(24)
  26539. #endif
  26540. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26541. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26542. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  26543. HALMAC_8822C_SUPPORT)
  26544. /* 2 REG_POWER_STAGE2 (Offset 0x04B8) */
  26545. #define BIT_SHIFT_POWER_STAGE2 0
  26546. #define BIT_MASK_POWER_STAGE2 0xffffff
  26547. #define BIT_POWER_STAGE2(x) \
  26548. (((x) & BIT_MASK_POWER_STAGE2) << BIT_SHIFT_POWER_STAGE2)
  26549. #define BITS_POWER_STAGE2 (BIT_MASK_POWER_STAGE2 << BIT_SHIFT_POWER_STAGE2)
  26550. #define BIT_CLEAR_POWER_STAGE2(x) ((x) & (~BITS_POWER_STAGE2))
  26551. #define BIT_GET_POWER_STAGE2(x) \
  26552. (((x) >> BIT_SHIFT_POWER_STAGE2) & BIT_MASK_POWER_STAGE2)
  26553. #define BIT_SET_POWER_STAGE2(x, v) \
  26554. (BIT_CLEAR_POWER_STAGE2(x) | BIT_POWER_STAGE2(v))
  26555. #endif
  26556. #if (HALMAC_8192F_SUPPORT)
  26557. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26558. #define BIT_SHIFT_EVTQ_HEAD 24
  26559. #define BIT_MASK_EVTQ_HEAD 0xff
  26560. #define BIT_EVTQ_HEAD(x) (((x) & BIT_MASK_EVTQ_HEAD) << BIT_SHIFT_EVTQ_HEAD)
  26561. #define BITS_EVTQ_HEAD (BIT_MASK_EVTQ_HEAD << BIT_SHIFT_EVTQ_HEAD)
  26562. #define BIT_CLEAR_EVTQ_HEAD(x) ((x) & (~BITS_EVTQ_HEAD))
  26563. #define BIT_GET_EVTQ_HEAD(x) (((x) >> BIT_SHIFT_EVTQ_HEAD) & BIT_MASK_EVTQ_HEAD)
  26564. #define BIT_SET_EVTQ_HEAD(x, v) (BIT_CLEAR_EVTQ_HEAD(x) | BIT_EVTQ_HEAD(v))
  26565. #endif
  26566. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  26567. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  26568. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26569. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26570. #define BIT_SHIFT_PAD_NUM_THRES 24
  26571. #define BIT_MASK_PAD_NUM_THRES 0x3f
  26572. #define BIT_PAD_NUM_THRES(x) \
  26573. (((x) & BIT_MASK_PAD_NUM_THRES) << BIT_SHIFT_PAD_NUM_THRES)
  26574. #define BITS_PAD_NUM_THRES (BIT_MASK_PAD_NUM_THRES << BIT_SHIFT_PAD_NUM_THRES)
  26575. #define BIT_CLEAR_PAD_NUM_THRES(x) ((x) & (~BITS_PAD_NUM_THRES))
  26576. #define BIT_GET_PAD_NUM_THRES(x) \
  26577. (((x) >> BIT_SHIFT_PAD_NUM_THRES) & BIT_MASK_PAD_NUM_THRES)
  26578. #define BIT_SET_PAD_NUM_THRES(x, v) \
  26579. (BIT_CLEAR_PAD_NUM_THRES(x) | BIT_PAD_NUM_THRES(v))
  26580. #endif
  26581. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26582. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26583. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26584. HALMAC_8881A_SUPPORT)
  26585. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26586. #define BIT_R_DMA_THIS_QUEUE_BK BIT(23)
  26587. #endif
  26588. #if (HALMAC_8814B_SUPPORT)
  26589. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26590. #define BIT_DMA_THIS_QUEUE_BK BIT(23)
  26591. #endif
  26592. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26593. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26594. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26595. HALMAC_8881A_SUPPORT)
  26596. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26597. #define BIT_R_DMA_THIS_QUEUE_BE BIT(22)
  26598. #endif
  26599. #if (HALMAC_8814B_SUPPORT)
  26600. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26601. #define BIT_DMA_THIS_QUEUE_BE BIT(22)
  26602. #endif
  26603. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26604. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26605. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26606. HALMAC_8881A_SUPPORT)
  26607. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26608. #define BIT_R_DMA_THIS_QUEUE_VI BIT(21)
  26609. #endif
  26610. #if (HALMAC_8814B_SUPPORT)
  26611. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26612. #define BIT_DMA_THIS_QUEUE_VI BIT(21)
  26613. #endif
  26614. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26615. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26616. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26617. HALMAC_8881A_SUPPORT)
  26618. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26619. #define BIT_R_DMA_THIS_QUEUE_VO BIT(20)
  26620. #endif
  26621. #if (HALMAC_8814B_SUPPORT)
  26622. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26623. #define BIT_DMA_THIS_QUEUE_VO BIT(20)
  26624. #endif
  26625. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26626. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26627. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26628. HALMAC_8881A_SUPPORT)
  26629. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26630. #define BIT_SHIFT_R_TOTAL_LEN_TH 8
  26631. #define BIT_MASK_R_TOTAL_LEN_TH 0xfff
  26632. #define BIT_R_TOTAL_LEN_TH(x) \
  26633. (((x) & BIT_MASK_R_TOTAL_LEN_TH) << BIT_SHIFT_R_TOTAL_LEN_TH)
  26634. #define BITS_R_TOTAL_LEN_TH \
  26635. (BIT_MASK_R_TOTAL_LEN_TH << BIT_SHIFT_R_TOTAL_LEN_TH)
  26636. #define BIT_CLEAR_R_TOTAL_LEN_TH(x) ((x) & (~BITS_R_TOTAL_LEN_TH))
  26637. #define BIT_GET_R_TOTAL_LEN_TH(x) \
  26638. (((x) >> BIT_SHIFT_R_TOTAL_LEN_TH) & BIT_MASK_R_TOTAL_LEN_TH)
  26639. #define BIT_SET_R_TOTAL_LEN_TH(x, v) \
  26640. (BIT_CLEAR_R_TOTAL_LEN_TH(x) | BIT_R_TOTAL_LEN_TH(v))
  26641. #endif
  26642. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  26643. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26644. #define BIT_SHIFT_TOTAL_LEN_TH 8
  26645. #define BIT_MASK_TOTAL_LEN_TH 0xfff
  26646. #define BIT_TOTAL_LEN_TH(x) \
  26647. (((x) & BIT_MASK_TOTAL_LEN_TH) << BIT_SHIFT_TOTAL_LEN_TH)
  26648. #define BITS_TOTAL_LEN_TH (BIT_MASK_TOTAL_LEN_TH << BIT_SHIFT_TOTAL_LEN_TH)
  26649. #define BIT_CLEAR_TOTAL_LEN_TH(x) ((x) & (~BITS_TOTAL_LEN_TH))
  26650. #define BIT_GET_TOTAL_LEN_TH(x) \
  26651. (((x) >> BIT_SHIFT_TOTAL_LEN_TH) & BIT_MASK_TOTAL_LEN_TH)
  26652. #define BIT_SET_TOTAL_LEN_TH(x, v) \
  26653. (BIT_CLEAR_TOTAL_LEN_TH(x) | BIT_TOTAL_LEN_TH(v))
  26654. #endif
  26655. #if (HALMAC_8192F_SUPPORT)
  26656. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26657. #define BIT_WEP_PRETX_EN BIT(7)
  26658. #endif
  26659. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  26660. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  26661. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26662. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26663. #define BIT_EN_NEW_EARLY BIT(7)
  26664. #endif
  26665. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26666. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26667. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26668. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26669. /* 2 REG_SW_AMPDU_BURST_MODE_CTRL (Offset 0x04BC) */
  26670. #define BIT_PRE_TX_CMD BIT(6)
  26671. #define BIT_SHIFT_NUM_SCL_EN 4
  26672. #define BIT_MASK_NUM_SCL_EN 0x3
  26673. #define BIT_NUM_SCL_EN(x) (((x) & BIT_MASK_NUM_SCL_EN) << BIT_SHIFT_NUM_SCL_EN)
  26674. #define BITS_NUM_SCL_EN (BIT_MASK_NUM_SCL_EN << BIT_SHIFT_NUM_SCL_EN)
  26675. #define BIT_CLEAR_NUM_SCL_EN(x) ((x) & (~BITS_NUM_SCL_EN))
  26676. #define BIT_GET_NUM_SCL_EN(x) \
  26677. (((x) >> BIT_SHIFT_NUM_SCL_EN) & BIT_MASK_NUM_SCL_EN)
  26678. #define BIT_SET_NUM_SCL_EN(x, v) (BIT_CLEAR_NUM_SCL_EN(x) | BIT_NUM_SCL_EN(v))
  26679. #define BIT_BK_EN BIT(3)
  26680. #define BIT_BE_EN BIT(2)
  26681. #define BIT_VI_EN BIT(1)
  26682. #define BIT_VO_EN BIT(0)
  26683. /* 2 REG_PKT_LIFE_TIME (Offset 0x04C0) */
  26684. #define BIT_SHIFT_PKT_LIFTIME_BEBK 16
  26685. #define BIT_MASK_PKT_LIFTIME_BEBK 0xffff
  26686. #define BIT_PKT_LIFTIME_BEBK(x) \
  26687. (((x) & BIT_MASK_PKT_LIFTIME_BEBK) << BIT_SHIFT_PKT_LIFTIME_BEBK)
  26688. #define BITS_PKT_LIFTIME_BEBK \
  26689. (BIT_MASK_PKT_LIFTIME_BEBK << BIT_SHIFT_PKT_LIFTIME_BEBK)
  26690. #define BIT_CLEAR_PKT_LIFTIME_BEBK(x) ((x) & (~BITS_PKT_LIFTIME_BEBK))
  26691. #define BIT_GET_PKT_LIFTIME_BEBK(x) \
  26692. (((x) >> BIT_SHIFT_PKT_LIFTIME_BEBK) & BIT_MASK_PKT_LIFTIME_BEBK)
  26693. #define BIT_SET_PKT_LIFTIME_BEBK(x, v) \
  26694. (BIT_CLEAR_PKT_LIFTIME_BEBK(x) | BIT_PKT_LIFTIME_BEBK(v))
  26695. #define BIT_SHIFT_PKT_LIFTIME_VOVI 0
  26696. #define BIT_MASK_PKT_LIFTIME_VOVI 0xffff
  26697. #define BIT_PKT_LIFTIME_VOVI(x) \
  26698. (((x) & BIT_MASK_PKT_LIFTIME_VOVI) << BIT_SHIFT_PKT_LIFTIME_VOVI)
  26699. #define BITS_PKT_LIFTIME_VOVI \
  26700. (BIT_MASK_PKT_LIFTIME_VOVI << BIT_SHIFT_PKT_LIFTIME_VOVI)
  26701. #define BIT_CLEAR_PKT_LIFTIME_VOVI(x) ((x) & (~BITS_PKT_LIFTIME_VOVI))
  26702. #define BIT_GET_PKT_LIFTIME_VOVI(x) \
  26703. (((x) >> BIT_SHIFT_PKT_LIFTIME_VOVI) & BIT_MASK_PKT_LIFTIME_VOVI)
  26704. #define BIT_SET_PKT_LIFTIME_VOVI(x, v) \
  26705. (BIT_CLEAR_PKT_LIFTIME_VOVI(x) | BIT_PKT_LIFTIME_VOVI(v))
  26706. /* 2 REG_STBC_SETTING (Offset 0x04C4) */
  26707. #define BIT_SHIFT_CDEND_TXTIME_L 4
  26708. #define BIT_MASK_CDEND_TXTIME_L 0xf
  26709. #define BIT_CDEND_TXTIME_L(x) \
  26710. (((x) & BIT_MASK_CDEND_TXTIME_L) << BIT_SHIFT_CDEND_TXTIME_L)
  26711. #define BITS_CDEND_TXTIME_L \
  26712. (BIT_MASK_CDEND_TXTIME_L << BIT_SHIFT_CDEND_TXTIME_L)
  26713. #define BIT_CLEAR_CDEND_TXTIME_L(x) ((x) & (~BITS_CDEND_TXTIME_L))
  26714. #define BIT_GET_CDEND_TXTIME_L(x) \
  26715. (((x) >> BIT_SHIFT_CDEND_TXTIME_L) & BIT_MASK_CDEND_TXTIME_L)
  26716. #define BIT_SET_CDEND_TXTIME_L(x, v) \
  26717. (BIT_CLEAR_CDEND_TXTIME_L(x) | BIT_CDEND_TXTIME_L(v))
  26718. #define BIT_SHIFT_NESS 2
  26719. #define BIT_MASK_NESS 0x3
  26720. #define BIT_NESS(x) (((x) & BIT_MASK_NESS) << BIT_SHIFT_NESS)
  26721. #define BITS_NESS (BIT_MASK_NESS << BIT_SHIFT_NESS)
  26722. #define BIT_CLEAR_NESS(x) ((x) & (~BITS_NESS))
  26723. #define BIT_GET_NESS(x) (((x) >> BIT_SHIFT_NESS) & BIT_MASK_NESS)
  26724. #define BIT_SET_NESS(x, v) (BIT_CLEAR_NESS(x) | BIT_NESS(v))
  26725. #define BIT_SHIFT_STBC_CFEND 0
  26726. #define BIT_MASK_STBC_CFEND 0x3
  26727. #define BIT_STBC_CFEND(x) (((x) & BIT_MASK_STBC_CFEND) << BIT_SHIFT_STBC_CFEND)
  26728. #define BITS_STBC_CFEND (BIT_MASK_STBC_CFEND << BIT_SHIFT_STBC_CFEND)
  26729. #define BIT_CLEAR_STBC_CFEND(x) ((x) & (~BITS_STBC_CFEND))
  26730. #define BIT_GET_STBC_CFEND(x) \
  26731. (((x) >> BIT_SHIFT_STBC_CFEND) & BIT_MASK_STBC_CFEND)
  26732. #define BIT_SET_STBC_CFEND(x, v) (BIT_CLEAR_STBC_CFEND(x) | BIT_STBC_CFEND(v))
  26733. /* 2 REG_STBC_SETTING2 (Offset 0x04C5) */
  26734. #define BIT_SHIFT_CDEND_TXTIME_H 0
  26735. #define BIT_MASK_CDEND_TXTIME_H 0x1f
  26736. #define BIT_CDEND_TXTIME_H(x) \
  26737. (((x) & BIT_MASK_CDEND_TXTIME_H) << BIT_SHIFT_CDEND_TXTIME_H)
  26738. #define BITS_CDEND_TXTIME_H \
  26739. (BIT_MASK_CDEND_TXTIME_H << BIT_SHIFT_CDEND_TXTIME_H)
  26740. #define BIT_CLEAR_CDEND_TXTIME_H(x) ((x) & (~BITS_CDEND_TXTIME_H))
  26741. #define BIT_GET_CDEND_TXTIME_H(x) \
  26742. (((x) >> BIT_SHIFT_CDEND_TXTIME_H) & BIT_MASK_CDEND_TXTIME_H)
  26743. #define BIT_SET_CDEND_TXTIME_H(x, v) \
  26744. (BIT_CLEAR_CDEND_TXTIME_H(x) | BIT_CDEND_TXTIME_H(v))
  26745. #endif
  26746. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  26747. HALMAC_8822C_SUPPORT)
  26748. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26749. #define BIT_FORCE_RND_PRI BIT(6)
  26750. #endif
  26751. #if (HALMAC_8198F_SUPPORT)
  26752. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26753. #define BIT_R_FORCE_RND_PRI BIT(6)
  26754. #endif
  26755. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26756. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26757. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  26758. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26759. #define BIT_PTA_EDCCA_EN BIT(5)
  26760. #define BIT_PTA_WL_TX_EN BIT(4)
  26761. #endif
  26762. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26763. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26764. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26765. HALMAC_8881A_SUPPORT)
  26766. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26767. #define BIT_R_USE_DATA_BW BIT(3)
  26768. #endif
  26769. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  26770. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26771. #define BIT_USE_DATA_BW BIT(3)
  26772. #endif
  26773. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26774. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26775. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26776. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26777. /* 2 REG_QUEUE_CTRL (Offset 0x04C6) */
  26778. #define BIT_TRI_PKT_INT_MODE1 BIT(2)
  26779. #define BIT_TRI_PKT_INT_MODE0 BIT(1)
  26780. #define BIT_ACQ_MODE_SEL BIT(0)
  26781. /* 2 REG_SINGLE_AMPDU_CTRL (Offset 0x04C7) */
  26782. #define BIT_EN_SINGLE_APMDU BIT(7)
  26783. #endif
  26784. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  26785. /* 2 REG_SINGLE_AMPDU_CTRL (Offset 0x04C7) */
  26786. #define BIT_SHIFT_SNDTX_MAXTIME 0
  26787. #define BIT_MASK_SNDTX_MAXTIME 0x7f
  26788. #define BIT_SNDTX_MAXTIME(x) \
  26789. (((x) & BIT_MASK_SNDTX_MAXTIME) << BIT_SHIFT_SNDTX_MAXTIME)
  26790. #define BITS_SNDTX_MAXTIME (BIT_MASK_SNDTX_MAXTIME << BIT_SHIFT_SNDTX_MAXTIME)
  26791. #define BIT_CLEAR_SNDTX_MAXTIME(x) ((x) & (~BITS_SNDTX_MAXTIME))
  26792. #define BIT_GET_SNDTX_MAXTIME(x) \
  26793. (((x) >> BIT_SHIFT_SNDTX_MAXTIME) & BIT_MASK_SNDTX_MAXTIME)
  26794. #define BIT_SET_SNDTX_MAXTIME(x, v) \
  26795. (BIT_CLEAR_SNDTX_MAXTIME(x) | BIT_SNDTX_MAXTIME(v))
  26796. /* 2 REG_PROT_MODE_CTRL (Offset 0x04C8) */
  26797. #define BIT_SND_SIFS_TXDATA BIT(31)
  26798. #define BIT_TX_SND_MATCH_MACID BIT(30)
  26799. #endif
  26800. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26801. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26802. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  26803. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26804. /* 2 REG_PROT_MODE_CTRL (Offset 0x04C8) */
  26805. #define BIT_SHIFT_RTS_MAX_AGG_NUM 24
  26806. #define BIT_MASK_RTS_MAX_AGG_NUM 0x3f
  26807. #define BIT_RTS_MAX_AGG_NUM(x) \
  26808. (((x) & BIT_MASK_RTS_MAX_AGG_NUM) << BIT_SHIFT_RTS_MAX_AGG_NUM)
  26809. #define BITS_RTS_MAX_AGG_NUM \
  26810. (BIT_MASK_RTS_MAX_AGG_NUM << BIT_SHIFT_RTS_MAX_AGG_NUM)
  26811. #define BIT_CLEAR_RTS_MAX_AGG_NUM(x) ((x) & (~BITS_RTS_MAX_AGG_NUM))
  26812. #define BIT_GET_RTS_MAX_AGG_NUM(x) \
  26813. (((x) >> BIT_SHIFT_RTS_MAX_AGG_NUM) & BIT_MASK_RTS_MAX_AGG_NUM)
  26814. #define BIT_SET_RTS_MAX_AGG_NUM(x, v) \
  26815. (BIT_CLEAR_RTS_MAX_AGG_NUM(x) | BIT_RTS_MAX_AGG_NUM(v))
  26816. #define BIT_SHIFT_MAX_AGG_NUM 16
  26817. #define BIT_MASK_MAX_AGG_NUM 0x3f
  26818. #define BIT_MAX_AGG_NUM(x) \
  26819. (((x) & BIT_MASK_MAX_AGG_NUM) << BIT_SHIFT_MAX_AGG_NUM)
  26820. #define BITS_MAX_AGG_NUM (BIT_MASK_MAX_AGG_NUM << BIT_SHIFT_MAX_AGG_NUM)
  26821. #define BIT_CLEAR_MAX_AGG_NUM(x) ((x) & (~BITS_MAX_AGG_NUM))
  26822. #define BIT_GET_MAX_AGG_NUM(x) \
  26823. (((x) >> BIT_SHIFT_MAX_AGG_NUM) & BIT_MASK_MAX_AGG_NUM)
  26824. #define BIT_SET_MAX_AGG_NUM(x, v) \
  26825. (BIT_CLEAR_MAX_AGG_NUM(x) | BIT_MAX_AGG_NUM(v))
  26826. #define BIT_SHIFT_RTS_TXTIME_TH 8
  26827. #define BIT_MASK_RTS_TXTIME_TH 0xff
  26828. #define BIT_RTS_TXTIME_TH(x) \
  26829. (((x) & BIT_MASK_RTS_TXTIME_TH) << BIT_SHIFT_RTS_TXTIME_TH)
  26830. #define BITS_RTS_TXTIME_TH (BIT_MASK_RTS_TXTIME_TH << BIT_SHIFT_RTS_TXTIME_TH)
  26831. #define BIT_CLEAR_RTS_TXTIME_TH(x) ((x) & (~BITS_RTS_TXTIME_TH))
  26832. #define BIT_GET_RTS_TXTIME_TH(x) \
  26833. (((x) >> BIT_SHIFT_RTS_TXTIME_TH) & BIT_MASK_RTS_TXTIME_TH)
  26834. #define BIT_SET_RTS_TXTIME_TH(x, v) \
  26835. (BIT_CLEAR_RTS_TXTIME_TH(x) | BIT_RTS_TXTIME_TH(v))
  26836. #define BIT_SHIFT_RTS_LEN_TH 0
  26837. #define BIT_MASK_RTS_LEN_TH 0xff
  26838. #define BIT_RTS_LEN_TH(x) (((x) & BIT_MASK_RTS_LEN_TH) << BIT_SHIFT_RTS_LEN_TH)
  26839. #define BITS_RTS_LEN_TH (BIT_MASK_RTS_LEN_TH << BIT_SHIFT_RTS_LEN_TH)
  26840. #define BIT_CLEAR_RTS_LEN_TH(x) ((x) & (~BITS_RTS_LEN_TH))
  26841. #define BIT_GET_RTS_LEN_TH(x) \
  26842. (((x) >> BIT_SHIFT_RTS_LEN_TH) & BIT_MASK_RTS_LEN_TH)
  26843. #define BIT_SET_RTS_LEN_TH(x, v) (BIT_CLEAR_RTS_LEN_TH(x) | BIT_RTS_LEN_TH(v))
  26844. /* 2 REG_BAR_MODE_CTRL (Offset 0x04CC) */
  26845. #define BIT_SHIFT_BAR_RTY_LMT 16
  26846. #define BIT_MASK_BAR_RTY_LMT 0x3
  26847. #define BIT_BAR_RTY_LMT(x) \
  26848. (((x) & BIT_MASK_BAR_RTY_LMT) << BIT_SHIFT_BAR_RTY_LMT)
  26849. #define BITS_BAR_RTY_LMT (BIT_MASK_BAR_RTY_LMT << BIT_SHIFT_BAR_RTY_LMT)
  26850. #define BIT_CLEAR_BAR_RTY_LMT(x) ((x) & (~BITS_BAR_RTY_LMT))
  26851. #define BIT_GET_BAR_RTY_LMT(x) \
  26852. (((x) >> BIT_SHIFT_BAR_RTY_LMT) & BIT_MASK_BAR_RTY_LMT)
  26853. #define BIT_SET_BAR_RTY_LMT(x, v) \
  26854. (BIT_CLEAR_BAR_RTY_LMT(x) | BIT_BAR_RTY_LMT(v))
  26855. #define BIT_SHIFT_BAR_PKT_TXTIME_TH 8
  26856. #define BIT_MASK_BAR_PKT_TXTIME_TH 0xff
  26857. #define BIT_BAR_PKT_TXTIME_TH(x) \
  26858. (((x) & BIT_MASK_BAR_PKT_TXTIME_TH) << BIT_SHIFT_BAR_PKT_TXTIME_TH)
  26859. #define BITS_BAR_PKT_TXTIME_TH \
  26860. (BIT_MASK_BAR_PKT_TXTIME_TH << BIT_SHIFT_BAR_PKT_TXTIME_TH)
  26861. #define BIT_CLEAR_BAR_PKT_TXTIME_TH(x) ((x) & (~BITS_BAR_PKT_TXTIME_TH))
  26862. #define BIT_GET_BAR_PKT_TXTIME_TH(x) \
  26863. (((x) >> BIT_SHIFT_BAR_PKT_TXTIME_TH) & BIT_MASK_BAR_PKT_TXTIME_TH)
  26864. #define BIT_SET_BAR_PKT_TXTIME_TH(x, v) \
  26865. (BIT_CLEAR_BAR_PKT_TXTIME_TH(x) | BIT_BAR_PKT_TXTIME_TH(v))
  26866. #define BIT_BAR_EN_V1 BIT(6)
  26867. #define BIT_SHIFT_BAR_PKTNUM_TH_V1 0
  26868. #define BIT_MASK_BAR_PKTNUM_TH_V1 0x3f
  26869. #define BIT_BAR_PKTNUM_TH_V1(x) \
  26870. (((x) & BIT_MASK_BAR_PKTNUM_TH_V1) << BIT_SHIFT_BAR_PKTNUM_TH_V1)
  26871. #define BITS_BAR_PKTNUM_TH_V1 \
  26872. (BIT_MASK_BAR_PKTNUM_TH_V1 << BIT_SHIFT_BAR_PKTNUM_TH_V1)
  26873. #define BIT_CLEAR_BAR_PKTNUM_TH_V1(x) ((x) & (~BITS_BAR_PKTNUM_TH_V1))
  26874. #define BIT_GET_BAR_PKTNUM_TH_V1(x) \
  26875. (((x) >> BIT_SHIFT_BAR_PKTNUM_TH_V1) & BIT_MASK_BAR_PKTNUM_TH_V1)
  26876. #define BIT_SET_BAR_PKTNUM_TH_V1(x, v) \
  26877. (BIT_CLEAR_BAR_PKTNUM_TH_V1(x) | BIT_BAR_PKTNUM_TH_V1(v))
  26878. #endif
  26879. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26880. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26881. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  26882. HALMAC_8822C_SUPPORT)
  26883. /* 2 REG_RA_TRY_RATE_AGG_LMT (Offset 0x04CF) */
  26884. #define BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1 0
  26885. #define BIT_MASK_RA_TRY_RATE_AGG_LMT_V1 0x3f
  26886. #define BIT_RA_TRY_RATE_AGG_LMT_V1(x) \
  26887. (((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1) \
  26888. << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1)
  26889. #define BITS_RA_TRY_RATE_AGG_LMT_V1 \
  26890. (BIT_MASK_RA_TRY_RATE_AGG_LMT_V1 << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1)
  26891. #define BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1(x) \
  26892. ((x) & (~BITS_RA_TRY_RATE_AGG_LMT_V1))
  26893. #define BIT_GET_RA_TRY_RATE_AGG_LMT_V1(x) \
  26894. (((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1) & \
  26895. BIT_MASK_RA_TRY_RATE_AGG_LMT_V1)
  26896. #define BIT_SET_RA_TRY_RATE_AGG_LMT_V1(x, v) \
  26897. (BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1(x) | BIT_RA_TRY_RATE_AGG_LMT_V1(v))
  26898. #endif
  26899. #if (HALMAC_8814B_SUPPORT)
  26900. /* 2 REG_MACID_SLEEP_CTRL (Offset 0x04D0) */
  26901. #define BIT_SHIFT_DEBUG_PROTOCOL 24
  26902. #define BIT_MASK_DEBUG_PROTOCOL 0xff
  26903. #define BIT_DEBUG_PROTOCOL(x) \
  26904. (((x) & BIT_MASK_DEBUG_PROTOCOL) << BIT_SHIFT_DEBUG_PROTOCOL)
  26905. #define BITS_DEBUG_PROTOCOL \
  26906. (BIT_MASK_DEBUG_PROTOCOL << BIT_SHIFT_DEBUG_PROTOCOL)
  26907. #define BIT_CLEAR_DEBUG_PROTOCOL(x) ((x) & (~BITS_DEBUG_PROTOCOL))
  26908. #define BIT_GET_DEBUG_PROTOCOL(x) \
  26909. (((x) >> BIT_SHIFT_DEBUG_PROTOCOL) & BIT_MASK_DEBUG_PROTOCOL)
  26910. #define BIT_SET_DEBUG_PROTOCOL(x, v) \
  26911. (BIT_CLEAR_DEBUG_PROTOCOL(x) | BIT_DEBUG_PROTOCOL(v))
  26912. #define BIT_SHIFT_BCNQ_PGBNDY_RSEL 16
  26913. #define BIT_MASK_BCNQ_PGBNDY_RSEL 0x7
  26914. #define BIT_BCNQ_PGBNDY_RSEL(x) \
  26915. (((x) & BIT_MASK_BCNQ_PGBNDY_RSEL) << BIT_SHIFT_BCNQ_PGBNDY_RSEL)
  26916. #define BITS_BCNQ_PGBNDY_RSEL \
  26917. (BIT_MASK_BCNQ_PGBNDY_RSEL << BIT_SHIFT_BCNQ_PGBNDY_RSEL)
  26918. #define BIT_CLEAR_BCNQ_PGBNDY_RSEL(x) ((x) & (~BITS_BCNQ_PGBNDY_RSEL))
  26919. #define BIT_GET_BCNQ_PGBNDY_RSEL(x) \
  26920. (((x) >> BIT_SHIFT_BCNQ_PGBNDY_RSEL) & BIT_MASK_BCNQ_PGBNDY_RSEL)
  26921. #define BIT_SET_BCNQ_PGBNDY_RSEL(x, v) \
  26922. (BIT_CLEAR_BCNQ_PGBNDY_RSEL(x) | BIT_BCNQ_PGBNDY_RSEL(v))
  26923. #endif
  26924. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  26925. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  26926. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  26927. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  26928. /* 2 REG_MACID_SLEEP2 (Offset 0x04D0) */
  26929. #define BIT_SHIFT_MACID95_64PKTSLEEP 0
  26930. #define BIT_MASK_MACID95_64PKTSLEEP 0xffffffffL
  26931. #define BIT_MACID95_64PKTSLEEP(x) \
  26932. (((x) & BIT_MASK_MACID95_64PKTSLEEP) << BIT_SHIFT_MACID95_64PKTSLEEP)
  26933. #define BITS_MACID95_64PKTSLEEP \
  26934. (BIT_MASK_MACID95_64PKTSLEEP << BIT_SHIFT_MACID95_64PKTSLEEP)
  26935. #define BIT_CLEAR_MACID95_64PKTSLEEP(x) ((x) & (~BITS_MACID95_64PKTSLEEP))
  26936. #define BIT_GET_MACID95_64PKTSLEEP(x) \
  26937. (((x) >> BIT_SHIFT_MACID95_64PKTSLEEP) & BIT_MASK_MACID95_64PKTSLEEP)
  26938. #define BIT_SET_MACID95_64PKTSLEEP(x, v) \
  26939. (BIT_CLEAR_MACID95_64PKTSLEEP(x) | BIT_MACID95_64PKTSLEEP(v))
  26940. #endif
  26941. #if (HALMAC_8814B_SUPPORT)
  26942. /* 2 REG_MACID_SLEEP_CTRL (Offset 0x04D0) */
  26943. #define BIT_SHIFT_MACID_SLEEP_SEL 0
  26944. #define BIT_MASK_MACID_SLEEP_SEL 0x7
  26945. #define BIT_MACID_SLEEP_SEL(x) \
  26946. (((x) & BIT_MASK_MACID_SLEEP_SEL) << BIT_SHIFT_MACID_SLEEP_SEL)
  26947. #define BITS_MACID_SLEEP_SEL \
  26948. (BIT_MASK_MACID_SLEEP_SEL << BIT_SHIFT_MACID_SLEEP_SEL)
  26949. #define BIT_CLEAR_MACID_SLEEP_SEL(x) ((x) & (~BITS_MACID_SLEEP_SEL))
  26950. #define BIT_GET_MACID_SLEEP_SEL(x) \
  26951. (((x) >> BIT_SHIFT_MACID_SLEEP_SEL) & BIT_MASK_MACID_SLEEP_SEL)
  26952. #define BIT_SET_MACID_SLEEP_SEL(x, v) \
  26953. (BIT_CLEAR_MACID_SLEEP_SEL(x) | BIT_MACID_SLEEP_SEL(v))
  26954. #endif
  26955. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  26956. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  26957. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  26958. HALMAC_8881A_SUPPORT)
  26959. /* 2 REG_MACID_SLEEP (Offset 0x04D4) */
  26960. #define BIT_SHIFT_MACID31_0_PKTSLEEP 0
  26961. #define BIT_MASK_MACID31_0_PKTSLEEP 0xffffffffL
  26962. #define BIT_MACID31_0_PKTSLEEP(x) \
  26963. (((x) & BIT_MASK_MACID31_0_PKTSLEEP) << BIT_SHIFT_MACID31_0_PKTSLEEP)
  26964. #define BITS_MACID31_0_PKTSLEEP \
  26965. (BIT_MASK_MACID31_0_PKTSLEEP << BIT_SHIFT_MACID31_0_PKTSLEEP)
  26966. #define BIT_CLEAR_MACID31_0_PKTSLEEP(x) ((x) & (~BITS_MACID31_0_PKTSLEEP))
  26967. #define BIT_GET_MACID31_0_PKTSLEEP(x) \
  26968. (((x) >> BIT_SHIFT_MACID31_0_PKTSLEEP) & BIT_MASK_MACID31_0_PKTSLEEP)
  26969. #define BIT_SET_MACID31_0_PKTSLEEP(x, v) \
  26970. (BIT_CLEAR_MACID31_0_PKTSLEEP(x) | BIT_MACID31_0_PKTSLEEP(v))
  26971. #endif
  26972. #if (HALMAC_8192F_SUPPORT)
  26973. /* 2 REG_MACID_SLEEP (Offset 0x04D4) */
  26974. #define BIT_SHIFT_MACID31_0PKTSLEEP 0
  26975. #define BIT_MASK_MACID31_0PKTSLEEP 0xffffffffL
  26976. #define BIT_MACID31_0PKTSLEEP(x) \
  26977. (((x) & BIT_MASK_MACID31_0PKTSLEEP) << BIT_SHIFT_MACID31_0PKTSLEEP)
  26978. #define BITS_MACID31_0PKTSLEEP \
  26979. (BIT_MASK_MACID31_0PKTSLEEP << BIT_SHIFT_MACID31_0PKTSLEEP)
  26980. #define BIT_CLEAR_MACID31_0PKTSLEEP(x) ((x) & (~BITS_MACID31_0PKTSLEEP))
  26981. #define BIT_GET_MACID31_0PKTSLEEP(x) \
  26982. (((x) >> BIT_SHIFT_MACID31_0PKTSLEEP) & BIT_MASK_MACID31_0PKTSLEEP)
  26983. #define BIT_SET_MACID31_0PKTSLEEP(x, v) \
  26984. (BIT_CLEAR_MACID31_0PKTSLEEP(x) | BIT_MACID31_0PKTSLEEP(v))
  26985. #endif
  26986. #if (HALMAC_8814B_SUPPORT)
  26987. /* 2 REG_MACID_SLEEP_INFO (Offset 0x04D4) */
  26988. #define BIT_SHIFT_MACID_SLEEP_INFO 0
  26989. #define BIT_MASK_MACID_SLEEP_INFO 0xffffffffL
  26990. #define BIT_MACID_SLEEP_INFO(x) \
  26991. (((x) & BIT_MASK_MACID_SLEEP_INFO) << BIT_SHIFT_MACID_SLEEP_INFO)
  26992. #define BITS_MACID_SLEEP_INFO \
  26993. (BIT_MASK_MACID_SLEEP_INFO << BIT_SHIFT_MACID_SLEEP_INFO)
  26994. #define BIT_CLEAR_MACID_SLEEP_INFO(x) ((x) & (~BITS_MACID_SLEEP_INFO))
  26995. #define BIT_GET_MACID_SLEEP_INFO(x) \
  26996. (((x) >> BIT_SHIFT_MACID_SLEEP_INFO) & BIT_MASK_MACID_SLEEP_INFO)
  26997. #define BIT_SET_MACID_SLEEP_INFO(x, v) \
  26998. (BIT_CLEAR_MACID_SLEEP_INFO(x) | BIT_MACID_SLEEP_INFO(v))
  26999. #define BIT_SHIFT_PTCL_TOTAL_PG_V3 0
  27000. #define BIT_MASK_PTCL_TOTAL_PG_V3 0x1fff
  27001. #define BIT_PTCL_TOTAL_PG_V3(x) \
  27002. (((x) & BIT_MASK_PTCL_TOTAL_PG_V3) << BIT_SHIFT_PTCL_TOTAL_PG_V3)
  27003. #define BITS_PTCL_TOTAL_PG_V3 \
  27004. (BIT_MASK_PTCL_TOTAL_PG_V3 << BIT_SHIFT_PTCL_TOTAL_PG_V3)
  27005. #define BIT_CLEAR_PTCL_TOTAL_PG_V3(x) ((x) & (~BITS_PTCL_TOTAL_PG_V3))
  27006. #define BIT_GET_PTCL_TOTAL_PG_V3(x) \
  27007. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V3) & BIT_MASK_PTCL_TOTAL_PG_V3)
  27008. #define BIT_SET_PTCL_TOTAL_PG_V3(x, v) \
  27009. (BIT_CLEAR_PTCL_TOTAL_PG_V3(x) | BIT_PTCL_TOTAL_PG_V3(v))
  27010. #endif
  27011. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27012. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27013. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27014. HALMAC_8881A_SUPPORT)
  27015. /* 2 REG_HW_SEQ0 (Offset 0x04D8) */
  27016. #define BIT_SHIFT_HW_SSN_SEQ0 0
  27017. #define BIT_MASK_HW_SSN_SEQ0 0xfff
  27018. #define BIT_HW_SSN_SEQ0(x) \
  27019. (((x) & BIT_MASK_HW_SSN_SEQ0) << BIT_SHIFT_HW_SSN_SEQ0)
  27020. #define BITS_HW_SSN_SEQ0 (BIT_MASK_HW_SSN_SEQ0 << BIT_SHIFT_HW_SSN_SEQ0)
  27021. #define BIT_CLEAR_HW_SSN_SEQ0(x) ((x) & (~BITS_HW_SSN_SEQ0))
  27022. #define BIT_GET_HW_SSN_SEQ0(x) \
  27023. (((x) >> BIT_SHIFT_HW_SSN_SEQ0) & BIT_MASK_HW_SSN_SEQ0)
  27024. #define BIT_SET_HW_SSN_SEQ0(x, v) \
  27025. (BIT_CLEAR_HW_SSN_SEQ0(x) | BIT_HW_SSN_SEQ0(v))
  27026. /* 2 REG_HW_SEQ1 (Offset 0x04DA) */
  27027. #define BIT_SHIFT_HW_SSN_SEQ1 0
  27028. #define BIT_MASK_HW_SSN_SEQ1 0xfff
  27029. #define BIT_HW_SSN_SEQ1(x) \
  27030. (((x) & BIT_MASK_HW_SSN_SEQ1) << BIT_SHIFT_HW_SSN_SEQ1)
  27031. #define BITS_HW_SSN_SEQ1 (BIT_MASK_HW_SSN_SEQ1 << BIT_SHIFT_HW_SSN_SEQ1)
  27032. #define BIT_CLEAR_HW_SSN_SEQ1(x) ((x) & (~BITS_HW_SSN_SEQ1))
  27033. #define BIT_GET_HW_SSN_SEQ1(x) \
  27034. (((x) >> BIT_SHIFT_HW_SSN_SEQ1) & BIT_MASK_HW_SSN_SEQ1)
  27035. #define BIT_SET_HW_SSN_SEQ1(x, v) \
  27036. (BIT_CLEAR_HW_SSN_SEQ1(x) | BIT_HW_SSN_SEQ1(v))
  27037. /* 2 REG_HW_SEQ2 (Offset 0x04DC) */
  27038. #define BIT_SHIFT_HW_SSN_SEQ2 0
  27039. #define BIT_MASK_HW_SSN_SEQ2 0xfff
  27040. #define BIT_HW_SSN_SEQ2(x) \
  27041. (((x) & BIT_MASK_HW_SSN_SEQ2) << BIT_SHIFT_HW_SSN_SEQ2)
  27042. #define BITS_HW_SSN_SEQ2 (BIT_MASK_HW_SSN_SEQ2 << BIT_SHIFT_HW_SSN_SEQ2)
  27043. #define BIT_CLEAR_HW_SSN_SEQ2(x) ((x) & (~BITS_HW_SSN_SEQ2))
  27044. #define BIT_GET_HW_SSN_SEQ2(x) \
  27045. (((x) >> BIT_SHIFT_HW_SSN_SEQ2) & BIT_MASK_HW_SSN_SEQ2)
  27046. #define BIT_SET_HW_SSN_SEQ2(x, v) \
  27047. (BIT_CLEAR_HW_SSN_SEQ2(x) | BIT_HW_SSN_SEQ2(v))
  27048. #endif
  27049. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27050. /* 2 REG_HW_SEQ3 (Offset 0x04DE) */
  27051. #define BIT_SHIFT_CSI_HWSSN_SEL 12
  27052. #define BIT_MASK_CSI_HWSSN_SEL 0x3
  27053. #define BIT_CSI_HWSSN_SEL(x) \
  27054. (((x) & BIT_MASK_CSI_HWSSN_SEL) << BIT_SHIFT_CSI_HWSSN_SEL)
  27055. #define BITS_CSI_HWSSN_SEL (BIT_MASK_CSI_HWSSN_SEL << BIT_SHIFT_CSI_HWSSN_SEL)
  27056. #define BIT_CLEAR_CSI_HWSSN_SEL(x) ((x) & (~BITS_CSI_HWSSN_SEL))
  27057. #define BIT_GET_CSI_HWSSN_SEL(x) \
  27058. (((x) >> BIT_SHIFT_CSI_HWSSN_SEL) & BIT_MASK_CSI_HWSSN_SEL)
  27059. #define BIT_SET_CSI_HWSSN_SEL(x, v) \
  27060. (BIT_CLEAR_CSI_HWSSN_SEL(x) | BIT_CSI_HWSSN_SEL(v))
  27061. #endif
  27062. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27063. HALMAC_8822C_SUPPORT)
  27064. /* 2 REG_HW_SEQ3 (Offset 0x04DE) */
  27065. #define BIT_SHIFT_CSI_HWSEQ_SEL 12
  27066. #define BIT_MASK_CSI_HWSEQ_SEL 0x3
  27067. #define BIT_CSI_HWSEQ_SEL(x) \
  27068. (((x) & BIT_MASK_CSI_HWSEQ_SEL) << BIT_SHIFT_CSI_HWSEQ_SEL)
  27069. #define BITS_CSI_HWSEQ_SEL (BIT_MASK_CSI_HWSEQ_SEL << BIT_SHIFT_CSI_HWSEQ_SEL)
  27070. #define BIT_CLEAR_CSI_HWSEQ_SEL(x) ((x) & (~BITS_CSI_HWSEQ_SEL))
  27071. #define BIT_GET_CSI_HWSEQ_SEL(x) \
  27072. (((x) >> BIT_SHIFT_CSI_HWSEQ_SEL) & BIT_MASK_CSI_HWSEQ_SEL)
  27073. #define BIT_SET_CSI_HWSEQ_SEL(x, v) \
  27074. (BIT_CLEAR_CSI_HWSEQ_SEL(x) | BIT_CSI_HWSEQ_SEL(v))
  27075. #endif
  27076. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27077. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27078. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27079. HALMAC_8881A_SUPPORT)
  27080. /* 2 REG_HW_SEQ3 (Offset 0x04DE) */
  27081. #define BIT_SHIFT_HW_SSN_SEQ3 0
  27082. #define BIT_MASK_HW_SSN_SEQ3 0xfff
  27083. #define BIT_HW_SSN_SEQ3(x) \
  27084. (((x) & BIT_MASK_HW_SSN_SEQ3) << BIT_SHIFT_HW_SSN_SEQ3)
  27085. #define BITS_HW_SSN_SEQ3 (BIT_MASK_HW_SSN_SEQ3 << BIT_SHIFT_HW_SSN_SEQ3)
  27086. #define BIT_CLEAR_HW_SSN_SEQ3(x) ((x) & (~BITS_HW_SSN_SEQ3))
  27087. #define BIT_GET_HW_SSN_SEQ3(x) \
  27088. (((x) >> BIT_SHIFT_HW_SSN_SEQ3) & BIT_MASK_HW_SSN_SEQ3)
  27089. #define BIT_SET_HW_SSN_SEQ3(x, v) \
  27090. (BIT_CLEAR_HW_SSN_SEQ3(x) | BIT_HW_SSN_SEQ3(v))
  27091. #endif
  27092. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  27093. /* 2 REG_CSI_SEQ (Offset 0x04DE) */
  27094. #define BIT_SHIFT_HW_CSI_SEQ 0
  27095. #define BIT_MASK_HW_CSI_SEQ 0xfff
  27096. #define BIT_HW_CSI_SEQ(x) (((x) & BIT_MASK_HW_CSI_SEQ) << BIT_SHIFT_HW_CSI_SEQ)
  27097. #define BITS_HW_CSI_SEQ (BIT_MASK_HW_CSI_SEQ << BIT_SHIFT_HW_CSI_SEQ)
  27098. #define BIT_CLEAR_HW_CSI_SEQ(x) ((x) & (~BITS_HW_CSI_SEQ))
  27099. #define BIT_GET_HW_CSI_SEQ(x) \
  27100. (((x) >> BIT_SHIFT_HW_CSI_SEQ) & BIT_MASK_HW_CSI_SEQ)
  27101. #define BIT_SET_HW_CSI_SEQ(x, v) (BIT_CLEAR_HW_CSI_SEQ(x) | BIT_HW_CSI_SEQ(v))
  27102. #endif
  27103. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27104. HALMAC_8814AMP_SUPPORT)
  27105. /* 2 REG_NULL_PKT_STATUS_V1 (Offset 0x04E0) */
  27106. #define BIT_SHIFT_PTCL_TOTAL_PG_V1 2
  27107. #define BIT_MASK_PTCL_TOTAL_PG_V1 0x1fff
  27108. #define BIT_PTCL_TOTAL_PG_V1(x) \
  27109. (((x) & BIT_MASK_PTCL_TOTAL_PG_V1) << BIT_SHIFT_PTCL_TOTAL_PG_V1)
  27110. #define BITS_PTCL_TOTAL_PG_V1 \
  27111. (BIT_MASK_PTCL_TOTAL_PG_V1 << BIT_SHIFT_PTCL_TOTAL_PG_V1)
  27112. #define BIT_CLEAR_PTCL_TOTAL_PG_V1(x) ((x) & (~BITS_PTCL_TOTAL_PG_V1))
  27113. #define BIT_GET_PTCL_TOTAL_PG_V1(x) \
  27114. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V1) & BIT_MASK_PTCL_TOTAL_PG_V1)
  27115. #define BIT_SET_PTCL_TOTAL_PG_V1(x, v) \
  27116. (BIT_CLEAR_PTCL_TOTAL_PG_V1(x) | BIT_PTCL_TOTAL_PG_V1(v))
  27117. #endif
  27118. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27119. HALMAC_8822C_SUPPORT)
  27120. /* 2 REG_NULL_PKT_STATUS_V1 (Offset 0x04E0) */
  27121. #define BIT_SHIFT_PTCL_TOTAL_PG_V2 2
  27122. #define BIT_MASK_PTCL_TOTAL_PG_V2 0x3fff
  27123. #define BIT_PTCL_TOTAL_PG_V2(x) \
  27124. (((x) & BIT_MASK_PTCL_TOTAL_PG_V2) << BIT_SHIFT_PTCL_TOTAL_PG_V2)
  27125. #define BITS_PTCL_TOTAL_PG_V2 \
  27126. (BIT_MASK_PTCL_TOTAL_PG_V2 << BIT_SHIFT_PTCL_TOTAL_PG_V2)
  27127. #define BIT_CLEAR_PTCL_TOTAL_PG_V2(x) ((x) & (~BITS_PTCL_TOTAL_PG_V2))
  27128. #define BIT_GET_PTCL_TOTAL_PG_V2(x) \
  27129. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V2) & BIT_MASK_PTCL_TOTAL_PG_V2)
  27130. #define BIT_SET_PTCL_TOTAL_PG_V2(x, v) \
  27131. (BIT_CLEAR_PTCL_TOTAL_PG_V2(x) | BIT_PTCL_TOTAL_PG_V2(v))
  27132. #endif
  27133. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27134. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27135. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27136. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27137. /* 2 REG_NULL_PKT_STATUS (Offset 0x04E0) */
  27138. #define BIT_TX_NULL_1 BIT(1)
  27139. #define BIT_TX_NULL_0 BIT(0)
  27140. #endif
  27141. #if (HALMAC_8814B_SUPPORT)
  27142. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27143. #define BIT_MUARB_SEARCH_ERR BIT(14)
  27144. #define BIT_MU_BFEN_ERR BIT(12)
  27145. #define BIT_NDPA_DROPNULL_ERR BIT(11)
  27146. #define BIT_NDPA_DROPPKT_ERR BIT(10)
  27147. #define BIT_PTCL_PKYIN_ERR BIT(9)
  27148. #endif
  27149. #if (HALMAC_8192F_SUPPORT)
  27150. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27151. #define BIT_SHIFT_PTCL_TOTAL_PG_V4 8
  27152. #define BIT_MASK_PTCL_TOTAL_PG_V4 0xff
  27153. #define BIT_PTCL_TOTAL_PG_V4(x) \
  27154. (((x) & BIT_MASK_PTCL_TOTAL_PG_V4) << BIT_SHIFT_PTCL_TOTAL_PG_V4)
  27155. #define BITS_PTCL_TOTAL_PG_V4 \
  27156. (BIT_MASK_PTCL_TOTAL_PG_V4 << BIT_SHIFT_PTCL_TOTAL_PG_V4)
  27157. #define BIT_CLEAR_PTCL_TOTAL_PG_V4(x) ((x) & (~BITS_PTCL_TOTAL_PG_V4))
  27158. #define BIT_GET_PTCL_TOTAL_PG_V4(x) \
  27159. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V4) & BIT_MASK_PTCL_TOTAL_PG_V4)
  27160. #define BIT_SET_PTCL_TOTAL_PG_V4(x, v) \
  27161. (BIT_CLEAR_PTCL_TOTAL_PG_V4(x) | BIT_PTCL_TOTAL_PG_V4(v))
  27162. #endif
  27163. #if (HALMAC_8814B_SUPPORT)
  27164. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27165. #define BIT_PTCL_QSELCNL_ERR BIT(8)
  27166. #endif
  27167. #if (HALMAC_8192F_SUPPORT)
  27168. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27169. #define BIT_PTCL_TOTAL_PG_8 BIT(7)
  27170. #endif
  27171. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27172. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27173. HALMAC_8822C_SUPPORT)
  27174. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27175. #define BIT_PTCL_RATE_TABLE_INVALID BIT(7)
  27176. #endif
  27177. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27178. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27179. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27180. HALMAC_8881A_SUPPORT)
  27181. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27182. #define BIT_P2P_OFF_DISTX_EN BIT(6)
  27183. #endif
  27184. #if (HALMAC_8192F_SUPPORT)
  27185. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27186. #define BIT_PTCL_RATE_TABLE_INVALID_V1 BIT(6)
  27187. #endif
  27188. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27189. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27190. HALMAC_8822C_SUPPORT)
  27191. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27192. #define BIT_FTM_T2R_ERROR BIT(6)
  27193. #endif
  27194. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27195. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27196. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27197. HALMAC_8881A_SUPPORT)
  27198. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27199. #define BIT_PTCL_ERR0 BIT(5)
  27200. #endif
  27201. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27202. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27203. #define BIT_TXTIMEOUT_ERR BIT(5)
  27204. #endif
  27205. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27206. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27207. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27208. HALMAC_8881A_SUPPORT)
  27209. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27210. #define BIT_PTCL_ERR1 BIT(4)
  27211. #endif
  27212. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27213. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27214. #define BIT_NULLPAGE_ERR BIT(4)
  27215. #endif
  27216. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27217. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27218. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27219. HALMAC_8881A_SUPPORT)
  27220. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27221. #define BIT_PTCL_ERR2 BIT(3)
  27222. #endif
  27223. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27224. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27225. #define BIT_CONTENTION_ERR BIT(3)
  27226. #endif
  27227. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27228. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27229. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27230. HALMAC_8881A_SUPPORT)
  27231. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27232. #define BIT_PTCL_ERR3 BIT(2)
  27233. #endif
  27234. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27235. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27236. #define BIT_HEADNULL_ERR BIT(2)
  27237. #endif
  27238. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27239. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27240. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27241. HALMAC_8881A_SUPPORT)
  27242. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27243. #define BIT_PTCL_ERR4 BIT(1)
  27244. #endif
  27245. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27246. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27247. #define BIT_OVERFLOW_ERR BIT(1)
  27248. #endif
  27249. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27250. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27251. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27252. HALMAC_8881A_SUPPORT)
  27253. /* 2 REG_PTCL_ERR_STATUS (Offset 0x04E2) */
  27254. #define BIT_PTCL_ERR5 BIT(0)
  27255. #endif
  27256. #if (HALMAC_8192F_SUPPORT || HALMAC_8814B_SUPPORT)
  27257. /* 2 REG_PTCL_ERR_STATUS_V1 (Offset 0x04E2) */
  27258. #define BIT_QUEUE_INDEX_ERR BIT(0)
  27259. #endif
  27260. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27261. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  27262. /* 2 REG_NULL_PKT_STATUS_EXTEND (Offset 0x04E3) */
  27263. #define BIT_CLI3_TX_NULL_1 BIT(7)
  27264. #define BIT_CLI3_TX_NULL_0 BIT(6)
  27265. #define BIT_CLI2_TX_NULL_1 BIT(5)
  27266. #define BIT_CLI2_TX_NULL_0 BIT(4)
  27267. #define BIT_CLI1_TX_NULL_1 BIT(3)
  27268. #define BIT_CLI1_TX_NULL_0 BIT(2)
  27269. #define BIT_CLI0_TX_NULL_1 BIT(1)
  27270. #endif
  27271. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  27272. /* 2 REG_PTCL_PKT_NUM (Offset 0x04E3) */
  27273. #define BIT_SHIFT_PTCL_TOTAL_PG 0
  27274. #define BIT_MASK_PTCL_TOTAL_PG 0xff
  27275. #define BIT_PTCL_TOTAL_PG(x) \
  27276. (((x) & BIT_MASK_PTCL_TOTAL_PG) << BIT_SHIFT_PTCL_TOTAL_PG)
  27277. #define BITS_PTCL_TOTAL_PG (BIT_MASK_PTCL_TOTAL_PG << BIT_SHIFT_PTCL_TOTAL_PG)
  27278. #define BIT_CLEAR_PTCL_TOTAL_PG(x) ((x) & (~BITS_PTCL_TOTAL_PG))
  27279. #define BIT_GET_PTCL_TOTAL_PG(x) \
  27280. (((x) >> BIT_SHIFT_PTCL_TOTAL_PG) & BIT_MASK_PTCL_TOTAL_PG)
  27281. #define BIT_SET_PTCL_TOTAL_PG(x, v) \
  27282. (BIT_CLEAR_PTCL_TOTAL_PG(x) | BIT_PTCL_TOTAL_PG(v))
  27283. #endif
  27284. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27285. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  27286. /* 2 REG_NULL_PKT_STATUS_EXTEND (Offset 0x04E3) */
  27287. #define BIT_CLI0_TX_NULL_0 BIT(0)
  27288. #endif
  27289. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  27290. /* 2 REG_TRXRPT_MISS_CNT (Offset 0x04E3) */
  27291. #define BIT_SHIFT_TRXRPT_MISS_CNT 0
  27292. #define BIT_MASK_TRXRPT_MISS_CNT 0x7
  27293. #define BIT_TRXRPT_MISS_CNT(x) \
  27294. (((x) & BIT_MASK_TRXRPT_MISS_CNT) << BIT_SHIFT_TRXRPT_MISS_CNT)
  27295. #define BITS_TRXRPT_MISS_CNT \
  27296. (BIT_MASK_TRXRPT_MISS_CNT << BIT_SHIFT_TRXRPT_MISS_CNT)
  27297. #define BIT_CLEAR_TRXRPT_MISS_CNT(x) ((x) & (~BITS_TRXRPT_MISS_CNT))
  27298. #define BIT_GET_TRXRPT_MISS_CNT(x) \
  27299. (((x) >> BIT_SHIFT_TRXRPT_MISS_CNT) & BIT_MASK_TRXRPT_MISS_CNT)
  27300. #define BIT_SET_TRXRPT_MISS_CNT(x, v) \
  27301. (BIT_CLEAR_TRXRPT_MISS_CNT(x) | BIT_TRXRPT_MISS_CNT(v))
  27302. #endif
  27303. #if (HALMAC_8198F_SUPPORT)
  27304. /* 2 REG_VIDEO_ENHANCEMENT_FUN (Offset 0x04E4) */
  27305. #define BIT_MAX_PRETX_AGGR_EN BIT(19)
  27306. #define BIT_SHIFT_MAX_PRETX_AGGR_TIME 8
  27307. #define BIT_MASK_MAX_PRETX_AGGR_TIME 0x7ff
  27308. #define BIT_MAX_PRETX_AGGR_TIME(x) \
  27309. (((x) & BIT_MASK_MAX_PRETX_AGGR_TIME) << BIT_SHIFT_MAX_PRETX_AGGR_TIME)
  27310. #define BITS_MAX_PRETX_AGGR_TIME \
  27311. (BIT_MASK_MAX_PRETX_AGGR_TIME << BIT_SHIFT_MAX_PRETX_AGGR_TIME)
  27312. #define BIT_CLEAR_MAX_PRETX_AGGR_TIME(x) ((x) & (~BITS_MAX_PRETX_AGGR_TIME))
  27313. #define BIT_GET_MAX_PRETX_AGGR_TIME(x) \
  27314. (((x) >> BIT_SHIFT_MAX_PRETX_AGGR_TIME) & BIT_MASK_MAX_PRETX_AGGR_TIME)
  27315. #define BIT_SET_MAX_PRETX_AGGR_TIME(x, v) \
  27316. (BIT_CLEAR_MAX_PRETX_AGGR_TIME(x) | BIT_MAX_PRETX_AGGR_TIME(v))
  27317. #endif
  27318. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27319. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  27320. /* 2 REG_NULL_PKT_STATUS_V2 (Offset 0x04E4) */
  27321. #define BIT_HIQ_DROP BIT(7)
  27322. #endif
  27323. #if (HALMAC_8198F_SUPPORT)
  27324. /* 2 REG_VIDEO_ENHANCEMENT_FUN (Offset 0x04E4) */
  27325. #define BIT_HGQ_DEL_EN BIT(7)
  27326. #endif
  27327. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27328. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  27329. /* 2 REG_NULL_PKT_STATUS_V2 (Offset 0x04E4) */
  27330. #define BIT_MGQ_DROP BIT(6)
  27331. #endif
  27332. #if (HALMAC_8198F_SUPPORT)
  27333. /* 2 REG_VIDEO_ENHANCEMENT_FUN (Offset 0x04E4) */
  27334. #define BIT_MGQ_DEL_EN BIT(6)
  27335. #endif
  27336. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27337. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  27338. /* 2 REG_VIDEO_ENHANCEMENT_FUN (Offset 0x04E4) */
  27339. #define BIT_VIDEO_JUST_DROP BIT(1)
  27340. #endif
  27341. #if (HALMAC_8814B_SUPPORT)
  27342. /* 2 REG_NULL_PKT_STATUS_V2 (Offset 0x04E4) */
  27343. #define BIT_TX_NULL_1_V1 BIT(1)
  27344. #endif
  27345. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27346. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  27347. /* 2 REG_VIDEO_ENHANCEMENT_FUN (Offset 0x04E4) */
  27348. #define BIT_VIDEO_ENHANCEMENT_FUN_EN BIT(0)
  27349. #endif
  27350. #if (HALMAC_8814B_SUPPORT)
  27351. /* 2 REG_NULL_PKT_STATUS_V2 (Offset 0x04E4) */
  27352. #define BIT_TX_NULL_0_V1 BIT(0)
  27353. #endif
  27354. #if (HALMAC_8812F_SUPPORT)
  27355. /* 2 REG_PRECNT_CTRL (Offset 0x04E5) */
  27356. #define BIT_SHIFT_COLLISION_DETECT_TIME 12
  27357. #define BIT_MASK_COLLISION_DETECT_TIME 0xf
  27358. #define BIT_COLLISION_DETECT_TIME(x) \
  27359. (((x) & BIT_MASK_COLLISION_DETECT_TIME) \
  27360. << BIT_SHIFT_COLLISION_DETECT_TIME)
  27361. #define BITS_COLLISION_DETECT_TIME \
  27362. (BIT_MASK_COLLISION_DETECT_TIME << BIT_SHIFT_COLLISION_DETECT_TIME)
  27363. #define BIT_CLEAR_COLLISION_DETECT_TIME(x) ((x) & (~BITS_COLLISION_DETECT_TIME))
  27364. #define BIT_GET_COLLISION_DETECT_TIME(x) \
  27365. (((x) >> BIT_SHIFT_COLLISION_DETECT_TIME) & \
  27366. BIT_MASK_COLLISION_DETECT_TIME)
  27367. #define BIT_SET_COLLISION_DETECT_TIME(x, v) \
  27368. (BIT_CLEAR_COLLISION_DETECT_TIME(x) | BIT_COLLISION_DETECT_TIME(v))
  27369. #endif
  27370. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27371. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  27372. /* 2 REG_PRECNT_CTRL (Offset 0x04E5) */
  27373. #define BIT_EN_PRECNT BIT(11)
  27374. #define BIT_SHIFT_PRECNT_TH 0
  27375. #define BIT_MASK_PRECNT_TH 0x7ff
  27376. #define BIT_PRECNT_TH(x) (((x) & BIT_MASK_PRECNT_TH) << BIT_SHIFT_PRECNT_TH)
  27377. #define BITS_PRECNT_TH (BIT_MASK_PRECNT_TH << BIT_SHIFT_PRECNT_TH)
  27378. #define BIT_CLEAR_PRECNT_TH(x) ((x) & (~BITS_PRECNT_TH))
  27379. #define BIT_GET_PRECNT_TH(x) (((x) >> BIT_SHIFT_PRECNT_TH) & BIT_MASK_PRECNT_TH)
  27380. #define BIT_SET_PRECNT_TH(x, v) (BIT_CLEAR_PRECNT_TH(x) | BIT_PRECNT_TH(v))
  27381. #endif
  27382. #if (HALMAC_8814B_SUPPORT)
  27383. /* 2 REG_NULL_PKT_STATUS_EXTEND_V1 (Offset 0x04E7) */
  27384. #define BIT_CLI3_TX_NULL_1_V1 BIT(7)
  27385. #define BIT_CLI3_TX_NULL_0_V1 BIT(6)
  27386. #define BIT_CLI2_TX_NULL_1_V1 BIT(5)
  27387. #define BIT_CLI2_TX_NULL_0_V1 BIT(4)
  27388. #define BIT_CLI1_TX_NULL_1_V1 BIT(3)
  27389. #define BIT_CLI1_TX_NULL_0_V1 BIT(2)
  27390. #define BIT_CLI0_TX_NULL_1_V1 BIT(1)
  27391. #define BIT_CLI0_TX_NULL_0_V1 BIT(0)
  27392. #endif
  27393. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27394. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27395. HALMAC_8822C_SUPPORT)
  27396. /* 2 REG_BT_POLLUTE_PKT_CNT (Offset 0x04E8) */
  27397. #define BIT_SHIFT_BT_POLLUTE_PKT_CNT 0
  27398. #define BIT_MASK_BT_POLLUTE_PKT_CNT 0xffff
  27399. #define BIT_BT_POLLUTE_PKT_CNT(x) \
  27400. (((x) & BIT_MASK_BT_POLLUTE_PKT_CNT) << BIT_SHIFT_BT_POLLUTE_PKT_CNT)
  27401. #define BITS_BT_POLLUTE_PKT_CNT \
  27402. (BIT_MASK_BT_POLLUTE_PKT_CNT << BIT_SHIFT_BT_POLLUTE_PKT_CNT)
  27403. #define BIT_CLEAR_BT_POLLUTE_PKT_CNT(x) ((x) & (~BITS_BT_POLLUTE_PKT_CNT))
  27404. #define BIT_GET_BT_POLLUTE_PKT_CNT(x) \
  27405. (((x) >> BIT_SHIFT_BT_POLLUTE_PKT_CNT) & BIT_MASK_BT_POLLUTE_PKT_CNT)
  27406. #define BIT_SET_BT_POLLUTE_PKT_CNT(x, v) \
  27407. (BIT_CLEAR_BT_POLLUTE_PKT_CNT(x) | BIT_BT_POLLUTE_PKT_CNT(v))
  27408. #endif
  27409. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  27410. /* 2 REG_DROP_NUM (Offset 0x04EC) */
  27411. #define BIT_SHIFT_DROP_PKT_NUM 0
  27412. #define BIT_MASK_DROP_PKT_NUM 0xffff
  27413. #define BIT_DROP_PKT_NUM(x) \
  27414. (((x) & BIT_MASK_DROP_PKT_NUM) << BIT_SHIFT_DROP_PKT_NUM)
  27415. #define BITS_DROP_PKT_NUM (BIT_MASK_DROP_PKT_NUM << BIT_SHIFT_DROP_PKT_NUM)
  27416. #define BIT_CLEAR_DROP_PKT_NUM(x) ((x) & (~BITS_DROP_PKT_NUM))
  27417. #define BIT_GET_DROP_PKT_NUM(x) \
  27418. (((x) >> BIT_SHIFT_DROP_PKT_NUM) & BIT_MASK_DROP_PKT_NUM)
  27419. #define BIT_SET_DROP_PKT_NUM(x, v) \
  27420. (BIT_CLEAR_DROP_PKT_NUM(x) | BIT_DROP_PKT_NUM(v))
  27421. #endif
  27422. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27423. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  27424. /* 2 REG_PTCL_DBG_V1 (Offset 0x04EC) */
  27425. #define BIT_SHIFT_PTCL_DBG 0
  27426. #define BIT_MASK_PTCL_DBG 0xffffffffL
  27427. #define BIT_PTCL_DBG(x) (((x) & BIT_MASK_PTCL_DBG) << BIT_SHIFT_PTCL_DBG)
  27428. #define BITS_PTCL_DBG (BIT_MASK_PTCL_DBG << BIT_SHIFT_PTCL_DBG)
  27429. #define BIT_CLEAR_PTCL_DBG(x) ((x) & (~BITS_PTCL_DBG))
  27430. #define BIT_GET_PTCL_DBG(x) (((x) >> BIT_SHIFT_PTCL_DBG) & BIT_MASK_PTCL_DBG)
  27431. #define BIT_SET_PTCL_DBG(x, v) (BIT_CLEAR_PTCL_DBG(x) | BIT_PTCL_DBG(v))
  27432. #endif
  27433. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  27434. /* 2 REG_PTCL_TX_RPT (Offset 0x04F0) */
  27435. #define BIT_SHIFT_AC_TX_RPT_INFO 0
  27436. #define BIT_MASK_AC_TX_RPT_INFO 0xffffffffffffffffL
  27437. #define BIT_AC_TX_RPT_INFO(x) \
  27438. (((x) & BIT_MASK_AC_TX_RPT_INFO) << BIT_SHIFT_AC_TX_RPT_INFO)
  27439. #define BITS_AC_TX_RPT_INFO \
  27440. (BIT_MASK_AC_TX_RPT_INFO << BIT_SHIFT_AC_TX_RPT_INFO)
  27441. #define BIT_CLEAR_AC_TX_RPT_INFO(x) ((x) & (~BITS_AC_TX_RPT_INFO))
  27442. #define BIT_GET_AC_TX_RPT_INFO(x) \
  27443. (((x) >> BIT_SHIFT_AC_TX_RPT_INFO) & BIT_MASK_AC_TX_RPT_INFO)
  27444. #define BIT_SET_AC_TX_RPT_INFO(x, v) \
  27445. (BIT_CLEAR_AC_TX_RPT_INFO(x) | BIT_AC_TX_RPT_INFO(v))
  27446. #endif
  27447. #if (HALMAC_8192F_SUPPORT)
  27448. /* 2 REG_TX_RPT_INFO_L32 (Offset 0x04F0) */
  27449. #define BIT_SHIFT_AC_TX_RPT_INFO_L32 0
  27450. #define BIT_MASK_AC_TX_RPT_INFO_L32 0xffffffffL
  27451. #define BIT_AC_TX_RPT_INFO_L32(x) \
  27452. (((x) & BIT_MASK_AC_TX_RPT_INFO_L32) << BIT_SHIFT_AC_TX_RPT_INFO_L32)
  27453. #define BITS_AC_TX_RPT_INFO_L32 \
  27454. (BIT_MASK_AC_TX_RPT_INFO_L32 << BIT_SHIFT_AC_TX_RPT_INFO_L32)
  27455. #define BIT_CLEAR_AC_TX_RPT_INFO_L32(x) ((x) & (~BITS_AC_TX_RPT_INFO_L32))
  27456. #define BIT_GET_AC_TX_RPT_INFO_L32(x) \
  27457. (((x) >> BIT_SHIFT_AC_TX_RPT_INFO_L32) & BIT_MASK_AC_TX_RPT_INFO_L32)
  27458. #define BIT_SET_AC_TX_RPT_INFO_L32(x, v) \
  27459. (BIT_CLEAR_AC_TX_RPT_INFO_L32(x) | BIT_AC_TX_RPT_INFO_L32(v))
  27460. #endif
  27461. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27462. /* 2 REG_TXOP_EXTRA_CTRL (Offset 0x04F0) */
  27463. #define BIT_TXOP_EFFICIENCY_EN BIT(0)
  27464. #endif
  27465. #if (HALMAC_8814B_SUPPORT)
  27466. /* 2 REG_BT_POLLUTE_PKTCNT (Offset 0x04F0) */
  27467. #define BIT_SHIFT_BT_POLLUTE_PKTCNT 0
  27468. #define BIT_MASK_BT_POLLUTE_PKTCNT 0xffff
  27469. #define BIT_BT_POLLUTE_PKTCNT(x) \
  27470. (((x) & BIT_MASK_BT_POLLUTE_PKTCNT) << BIT_SHIFT_BT_POLLUTE_PKTCNT)
  27471. #define BITS_BT_POLLUTE_PKTCNT \
  27472. (BIT_MASK_BT_POLLUTE_PKTCNT << BIT_SHIFT_BT_POLLUTE_PKTCNT)
  27473. #define BIT_CLEAR_BT_POLLUTE_PKTCNT(x) ((x) & (~BITS_BT_POLLUTE_PKTCNT))
  27474. #define BIT_GET_BT_POLLUTE_PKTCNT(x) \
  27475. (((x) >> BIT_SHIFT_BT_POLLUTE_PKTCNT) & BIT_MASK_BT_POLLUTE_PKTCNT)
  27476. #define BIT_SET_BT_POLLUTE_PKTCNT(x, v) \
  27477. (BIT_CLEAR_BT_POLLUTE_PKTCNT(x) | BIT_BT_POLLUTE_PKTCNT(v))
  27478. #endif
  27479. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27480. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27481. HALMAC_8822C_SUPPORT)
  27482. /* 2 REG_CPUMGQ_TIMER_CTRL2 (Offset 0x04F4) */
  27483. #define BIT_SHIFT_TRI_HEAD_ADDR 16
  27484. #define BIT_MASK_TRI_HEAD_ADDR 0xfff
  27485. #define BIT_TRI_HEAD_ADDR(x) \
  27486. (((x) & BIT_MASK_TRI_HEAD_ADDR) << BIT_SHIFT_TRI_HEAD_ADDR)
  27487. #define BITS_TRI_HEAD_ADDR (BIT_MASK_TRI_HEAD_ADDR << BIT_SHIFT_TRI_HEAD_ADDR)
  27488. #define BIT_CLEAR_TRI_HEAD_ADDR(x) ((x) & (~BITS_TRI_HEAD_ADDR))
  27489. #define BIT_GET_TRI_HEAD_ADDR(x) \
  27490. (((x) >> BIT_SHIFT_TRI_HEAD_ADDR) & BIT_MASK_TRI_HEAD_ADDR)
  27491. #define BIT_SET_TRI_HEAD_ADDR(x, v) \
  27492. (BIT_CLEAR_TRI_HEAD_ADDR(x) | BIT_TRI_HEAD_ADDR(v))
  27493. #define BIT_DROP_TH_EN BIT(8)
  27494. #endif
  27495. #if (HALMAC_8192F_SUPPORT)
  27496. /* 2 REG_TX_RPT_INFO_H32 (Offset 0x04F4) */
  27497. #define BIT_SHIFT_AC_TX_RPT_INFO_H32 0
  27498. #define BIT_MASK_AC_TX_RPT_INFO_H32 0xffffffffL
  27499. #define BIT_AC_TX_RPT_INFO_H32(x) \
  27500. (((x) & BIT_MASK_AC_TX_RPT_INFO_H32) << BIT_SHIFT_AC_TX_RPT_INFO_H32)
  27501. #define BITS_AC_TX_RPT_INFO_H32 \
  27502. (BIT_MASK_AC_TX_RPT_INFO_H32 << BIT_SHIFT_AC_TX_RPT_INFO_H32)
  27503. #define BIT_CLEAR_AC_TX_RPT_INFO_H32(x) ((x) & (~BITS_AC_TX_RPT_INFO_H32))
  27504. #define BIT_GET_AC_TX_RPT_INFO_H32(x) \
  27505. (((x) >> BIT_SHIFT_AC_TX_RPT_INFO_H32) & BIT_MASK_AC_TX_RPT_INFO_H32)
  27506. #define BIT_SET_AC_TX_RPT_INFO_H32(x, v) \
  27507. (BIT_CLEAR_AC_TX_RPT_INFO_H32(x) | BIT_AC_TX_RPT_INFO_H32(v))
  27508. #endif
  27509. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27510. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27511. HALMAC_8822C_SUPPORT)
  27512. /* 2 REG_CPUMGQ_TIMER_CTRL2 (Offset 0x04F4) */
  27513. #define BIT_SHIFT_DROP_TH 0
  27514. #define BIT_MASK_DROP_TH 0xff
  27515. #define BIT_DROP_TH(x) (((x) & BIT_MASK_DROP_TH) << BIT_SHIFT_DROP_TH)
  27516. #define BITS_DROP_TH (BIT_MASK_DROP_TH << BIT_SHIFT_DROP_TH)
  27517. #define BIT_CLEAR_DROP_TH(x) ((x) & (~BITS_DROP_TH))
  27518. #define BIT_GET_DROP_TH(x) (((x) >> BIT_SHIFT_DROP_TH) & BIT_MASK_DROP_TH)
  27519. #define BIT_SET_DROP_TH(x, v) (BIT_CLEAR_DROP_TH(x) | BIT_DROP_TH(v))
  27520. #endif
  27521. #if (HALMAC_8814B_SUPPORT)
  27522. /* 2 REG_PTCL_DBG_OUT (Offset 0x04F8) */
  27523. #define BIT_SHIFT_PTCL_DBG_OUT 0
  27524. #define BIT_MASK_PTCL_DBG_OUT 0xffffffffL
  27525. #define BIT_PTCL_DBG_OUT(x) \
  27526. (((x) & BIT_MASK_PTCL_DBG_OUT) << BIT_SHIFT_PTCL_DBG_OUT)
  27527. #define BITS_PTCL_DBG_OUT (BIT_MASK_PTCL_DBG_OUT << BIT_SHIFT_PTCL_DBG_OUT)
  27528. #define BIT_CLEAR_PTCL_DBG_OUT(x) ((x) & (~BITS_PTCL_DBG_OUT))
  27529. #define BIT_GET_PTCL_DBG_OUT(x) \
  27530. (((x) >> BIT_SHIFT_PTCL_DBG_OUT) & BIT_MASK_PTCL_DBG_OUT)
  27531. #define BIT_SET_PTCL_DBG_OUT(x, v) \
  27532. (BIT_CLEAR_PTCL_DBG_OUT(x) | BIT_PTCL_DBG_OUT(v))
  27533. #endif
  27534. #if (HALMAC_8192E_SUPPORT)
  27535. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27536. #define BIT_MOREDATA_CTRL2_EN BIT(19)
  27537. #endif
  27538. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27539. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27540. #define BIT_MOREDATA_CTRL2_EN_V2 BIT(19)
  27541. #endif
  27542. #if (HALMAC_8192E_SUPPORT)
  27543. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27544. #define BIT_MOREDATA_CTRL1_EN BIT(18)
  27545. #endif
  27546. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27547. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27548. #define BIT_MOREDATA_CTRL1_EN_V2 BIT(18)
  27549. #endif
  27550. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  27551. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27552. #define BIT_EN_BCN_TRXRPT BIT(17)
  27553. #endif
  27554. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27555. HALMAC_8881A_SUPPORT)
  27556. /* 2 REG_DUMMY_PAGE4 (Offset 0x04FC) */
  27557. #define BIT_PKTIN_MOREDATA_REPLACE_ENABLE BIT(16)
  27558. #endif
  27559. #if (HALMAC_8822B_SUPPORT)
  27560. /* 2 REG_DUMMY_PAGE4_V1 (Offset 0x04FC) */
  27561. #define BIT_BCN_EN_EXTHWSEQ BIT(1)
  27562. #define BIT_BCN_EN_HWSEQ BIT(0)
  27563. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION 0
  27564. #define BIT_MASK_R_MU_STA_GTAB_POSITION 0xffffffffffffffffL
  27565. #define BIT_R_MU_STA_GTAB_POSITION(x) \
  27566. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION) \
  27567. << BIT_SHIFT_R_MU_STA_GTAB_POSITION)
  27568. #define BITS_R_MU_STA_GTAB_POSITION \
  27569. (BIT_MASK_R_MU_STA_GTAB_POSITION << BIT_SHIFT_R_MU_STA_GTAB_POSITION)
  27570. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION(x) \
  27571. ((x) & (~BITS_R_MU_STA_GTAB_POSITION))
  27572. #define BIT_GET_R_MU_STA_GTAB_POSITION(x) \
  27573. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION) & \
  27574. BIT_MASK_R_MU_STA_GTAB_POSITION)
  27575. #define BIT_SET_R_MU_STA_GTAB_POSITION(x, v) \
  27576. (BIT_CLEAR_R_MU_STA_GTAB_POSITION(x) | BIT_R_MU_STA_GTAB_POSITION(v))
  27577. #endif
  27578. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27579. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27580. HALMAC_8822C_SUPPORT)
  27581. /* 2 REG_MOREDATA (Offset 0x04FE) */
  27582. #define BIT_MOREDATA_CTRL2_EN_V1 BIT(3)
  27583. #define BIT_MOREDATA_CTRL1_EN_V1 BIT(2)
  27584. #endif
  27585. #if (HALMAC_8192F_SUPPORT)
  27586. /* 2 REG_DUMMY_PAGE4_1 (Offset 0x04FE) */
  27587. #define BIT_EN_BCN_TRXRPT_V2 BIT(1)
  27588. #endif
  27589. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27590. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27591. HALMAC_8822C_SUPPORT)
  27592. /* 2 REG_MOREDATA (Offset 0x04FE) */
  27593. #define BIT_PKTIN_MOREDATA_REPLACE_ENABLE_V1 BIT(0)
  27594. #endif
  27595. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27596. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27597. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27598. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27599. /* 2 REG_EDCA_VO_PARAM (Offset 0x0500) */
  27600. #define BIT_SHIFT_TXOPLIMIT 16
  27601. #define BIT_MASK_TXOPLIMIT 0x7ff
  27602. #define BIT_TXOPLIMIT(x) (((x) & BIT_MASK_TXOPLIMIT) << BIT_SHIFT_TXOPLIMIT)
  27603. #define BITS_TXOPLIMIT (BIT_MASK_TXOPLIMIT << BIT_SHIFT_TXOPLIMIT)
  27604. #define BIT_CLEAR_TXOPLIMIT(x) ((x) & (~BITS_TXOPLIMIT))
  27605. #define BIT_GET_TXOPLIMIT(x) (((x) >> BIT_SHIFT_TXOPLIMIT) & BIT_MASK_TXOPLIMIT)
  27606. #define BIT_SET_TXOPLIMIT(x, v) (BIT_CLEAR_TXOPLIMIT(x) | BIT_TXOPLIMIT(v))
  27607. #define BIT_SHIFT_CW 8
  27608. #define BIT_MASK_CW 0xff
  27609. #define BIT_CW(x) (((x) & BIT_MASK_CW) << BIT_SHIFT_CW)
  27610. #define BITS_CW (BIT_MASK_CW << BIT_SHIFT_CW)
  27611. #define BIT_CLEAR_CW(x) ((x) & (~BITS_CW))
  27612. #define BIT_GET_CW(x) (((x) >> BIT_SHIFT_CW) & BIT_MASK_CW)
  27613. #define BIT_SET_CW(x, v) (BIT_CLEAR_CW(x) | BIT_CW(v))
  27614. #define BIT_SHIFT_AIFS 0
  27615. #define BIT_MASK_AIFS 0xff
  27616. #define BIT_AIFS(x) (((x) & BIT_MASK_AIFS) << BIT_SHIFT_AIFS)
  27617. #define BITS_AIFS (BIT_MASK_AIFS << BIT_SHIFT_AIFS)
  27618. #define BIT_CLEAR_AIFS(x) ((x) & (~BITS_AIFS))
  27619. #define BIT_GET_AIFS(x) (((x) >> BIT_SHIFT_AIFS) & BIT_MASK_AIFS)
  27620. #define BIT_SET_AIFS(x, v) (BIT_CLEAR_AIFS(x) | BIT_AIFS(v))
  27621. /* 2 REG_BCNTCFG (Offset 0x0510) */
  27622. #define BIT_SHIFT_BCNCW_MAX 12
  27623. #define BIT_MASK_BCNCW_MAX 0xf
  27624. #define BIT_BCNCW_MAX(x) (((x) & BIT_MASK_BCNCW_MAX) << BIT_SHIFT_BCNCW_MAX)
  27625. #define BITS_BCNCW_MAX (BIT_MASK_BCNCW_MAX << BIT_SHIFT_BCNCW_MAX)
  27626. #define BIT_CLEAR_BCNCW_MAX(x) ((x) & (~BITS_BCNCW_MAX))
  27627. #define BIT_GET_BCNCW_MAX(x) (((x) >> BIT_SHIFT_BCNCW_MAX) & BIT_MASK_BCNCW_MAX)
  27628. #define BIT_SET_BCNCW_MAX(x, v) (BIT_CLEAR_BCNCW_MAX(x) | BIT_BCNCW_MAX(v))
  27629. #define BIT_SHIFT_BCNCW_MIN 8
  27630. #define BIT_MASK_BCNCW_MIN 0xf
  27631. #define BIT_BCNCW_MIN(x) (((x) & BIT_MASK_BCNCW_MIN) << BIT_SHIFT_BCNCW_MIN)
  27632. #define BITS_BCNCW_MIN (BIT_MASK_BCNCW_MIN << BIT_SHIFT_BCNCW_MIN)
  27633. #define BIT_CLEAR_BCNCW_MIN(x) ((x) & (~BITS_BCNCW_MIN))
  27634. #define BIT_GET_BCNCW_MIN(x) (((x) >> BIT_SHIFT_BCNCW_MIN) & BIT_MASK_BCNCW_MIN)
  27635. #define BIT_SET_BCNCW_MIN(x, v) (BIT_CLEAR_BCNCW_MIN(x) | BIT_BCNCW_MIN(v))
  27636. #define BIT_SHIFT_BCNIFS 0
  27637. #define BIT_MASK_BCNIFS 0xff
  27638. #define BIT_BCNIFS(x) (((x) & BIT_MASK_BCNIFS) << BIT_SHIFT_BCNIFS)
  27639. #define BITS_BCNIFS (BIT_MASK_BCNIFS << BIT_SHIFT_BCNIFS)
  27640. #define BIT_CLEAR_BCNIFS(x) ((x) & (~BITS_BCNIFS))
  27641. #define BIT_GET_BCNIFS(x) (((x) >> BIT_SHIFT_BCNIFS) & BIT_MASK_BCNIFS)
  27642. #define BIT_SET_BCNIFS(x, v) (BIT_CLEAR_BCNIFS(x) | BIT_BCNIFS(v))
  27643. /* 2 REG_PIFS (Offset 0x0512) */
  27644. #define BIT_SHIFT_PIFS 0
  27645. #define BIT_MASK_PIFS 0xff
  27646. #define BIT_PIFS(x) (((x) & BIT_MASK_PIFS) << BIT_SHIFT_PIFS)
  27647. #define BITS_PIFS (BIT_MASK_PIFS << BIT_SHIFT_PIFS)
  27648. #define BIT_CLEAR_PIFS(x) ((x) & (~BITS_PIFS))
  27649. #define BIT_GET_PIFS(x) (((x) >> BIT_SHIFT_PIFS) & BIT_MASK_PIFS)
  27650. #define BIT_SET_PIFS(x, v) (BIT_CLEAR_PIFS(x) | BIT_PIFS(v))
  27651. /* 2 REG_RDG_PIFS (Offset 0x0513) */
  27652. #define BIT_SHIFT_RDG_PIFS 0
  27653. #define BIT_MASK_RDG_PIFS 0xff
  27654. #define BIT_RDG_PIFS(x) (((x) & BIT_MASK_RDG_PIFS) << BIT_SHIFT_RDG_PIFS)
  27655. #define BITS_RDG_PIFS (BIT_MASK_RDG_PIFS << BIT_SHIFT_RDG_PIFS)
  27656. #define BIT_CLEAR_RDG_PIFS(x) ((x) & (~BITS_RDG_PIFS))
  27657. #define BIT_GET_RDG_PIFS(x) (((x) >> BIT_SHIFT_RDG_PIFS) & BIT_MASK_RDG_PIFS)
  27658. #define BIT_SET_RDG_PIFS(x, v) (BIT_CLEAR_RDG_PIFS(x) | BIT_RDG_PIFS(v))
  27659. /* 2 REG_SIFS (Offset 0x0514) */
  27660. #define BIT_SHIFT_SIFS_OFDM_TRX 24
  27661. #define BIT_MASK_SIFS_OFDM_TRX 0xff
  27662. #define BIT_SIFS_OFDM_TRX(x) \
  27663. (((x) & BIT_MASK_SIFS_OFDM_TRX) << BIT_SHIFT_SIFS_OFDM_TRX)
  27664. #define BITS_SIFS_OFDM_TRX (BIT_MASK_SIFS_OFDM_TRX << BIT_SHIFT_SIFS_OFDM_TRX)
  27665. #define BIT_CLEAR_SIFS_OFDM_TRX(x) ((x) & (~BITS_SIFS_OFDM_TRX))
  27666. #define BIT_GET_SIFS_OFDM_TRX(x) \
  27667. (((x) >> BIT_SHIFT_SIFS_OFDM_TRX) & BIT_MASK_SIFS_OFDM_TRX)
  27668. #define BIT_SET_SIFS_OFDM_TRX(x, v) \
  27669. (BIT_CLEAR_SIFS_OFDM_TRX(x) | BIT_SIFS_OFDM_TRX(v))
  27670. #define BIT_SHIFT_SIFS_CCK_TRX 16
  27671. #define BIT_MASK_SIFS_CCK_TRX 0xff
  27672. #define BIT_SIFS_CCK_TRX(x) \
  27673. (((x) & BIT_MASK_SIFS_CCK_TRX) << BIT_SHIFT_SIFS_CCK_TRX)
  27674. #define BITS_SIFS_CCK_TRX (BIT_MASK_SIFS_CCK_TRX << BIT_SHIFT_SIFS_CCK_TRX)
  27675. #define BIT_CLEAR_SIFS_CCK_TRX(x) ((x) & (~BITS_SIFS_CCK_TRX))
  27676. #define BIT_GET_SIFS_CCK_TRX(x) \
  27677. (((x) >> BIT_SHIFT_SIFS_CCK_TRX) & BIT_MASK_SIFS_CCK_TRX)
  27678. #define BIT_SET_SIFS_CCK_TRX(x, v) \
  27679. (BIT_CLEAR_SIFS_CCK_TRX(x) | BIT_SIFS_CCK_TRX(v))
  27680. #define BIT_SHIFT_SIFS_OFDM_CTX 8
  27681. #define BIT_MASK_SIFS_OFDM_CTX 0xff
  27682. #define BIT_SIFS_OFDM_CTX(x) \
  27683. (((x) & BIT_MASK_SIFS_OFDM_CTX) << BIT_SHIFT_SIFS_OFDM_CTX)
  27684. #define BITS_SIFS_OFDM_CTX (BIT_MASK_SIFS_OFDM_CTX << BIT_SHIFT_SIFS_OFDM_CTX)
  27685. #define BIT_CLEAR_SIFS_OFDM_CTX(x) ((x) & (~BITS_SIFS_OFDM_CTX))
  27686. #define BIT_GET_SIFS_OFDM_CTX(x) \
  27687. (((x) >> BIT_SHIFT_SIFS_OFDM_CTX) & BIT_MASK_SIFS_OFDM_CTX)
  27688. #define BIT_SET_SIFS_OFDM_CTX(x, v) \
  27689. (BIT_CLEAR_SIFS_OFDM_CTX(x) | BIT_SIFS_OFDM_CTX(v))
  27690. #define BIT_SHIFT_SIFS_CCK_CTX 0
  27691. #define BIT_MASK_SIFS_CCK_CTX 0xff
  27692. #define BIT_SIFS_CCK_CTX(x) \
  27693. (((x) & BIT_MASK_SIFS_CCK_CTX) << BIT_SHIFT_SIFS_CCK_CTX)
  27694. #define BITS_SIFS_CCK_CTX (BIT_MASK_SIFS_CCK_CTX << BIT_SHIFT_SIFS_CCK_CTX)
  27695. #define BIT_CLEAR_SIFS_CCK_CTX(x) ((x) & (~BITS_SIFS_CCK_CTX))
  27696. #define BIT_GET_SIFS_CCK_CTX(x) \
  27697. (((x) >> BIT_SHIFT_SIFS_CCK_CTX) & BIT_MASK_SIFS_CCK_CTX)
  27698. #define BIT_SET_SIFS_CCK_CTX(x, v) \
  27699. (BIT_CLEAR_SIFS_CCK_CTX(x) | BIT_SIFS_CCK_CTX(v))
  27700. #endif
  27701. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27702. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27703. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27704. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27705. /* 2 REG_TSFTR_SYN_OFFSET (Offset 0x0518) */
  27706. #define BIT_SHIFT_TSFTR_SNC_OFFSET 0
  27707. #define BIT_MASK_TSFTR_SNC_OFFSET 0xffff
  27708. #define BIT_TSFTR_SNC_OFFSET(x) \
  27709. (((x) & BIT_MASK_TSFTR_SNC_OFFSET) << BIT_SHIFT_TSFTR_SNC_OFFSET)
  27710. #define BITS_TSFTR_SNC_OFFSET \
  27711. (BIT_MASK_TSFTR_SNC_OFFSET << BIT_SHIFT_TSFTR_SNC_OFFSET)
  27712. #define BIT_CLEAR_TSFTR_SNC_OFFSET(x) ((x) & (~BITS_TSFTR_SNC_OFFSET))
  27713. #define BIT_GET_TSFTR_SNC_OFFSET(x) \
  27714. (((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET) & BIT_MASK_TSFTR_SNC_OFFSET)
  27715. #define BIT_SET_TSFTR_SNC_OFFSET(x, v) \
  27716. (BIT_CLEAR_TSFTR_SNC_OFFSET(x) | BIT_TSFTR_SNC_OFFSET(v))
  27717. #endif
  27718. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27719. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27720. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27721. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27722. /* 2 REG_AGGR_BREAK_TIME (Offset 0x051A) */
  27723. #define BIT_SHIFT_AGGR_BK_TIME 0
  27724. #define BIT_MASK_AGGR_BK_TIME 0xff
  27725. #define BIT_AGGR_BK_TIME(x) \
  27726. (((x) & BIT_MASK_AGGR_BK_TIME) << BIT_SHIFT_AGGR_BK_TIME)
  27727. #define BITS_AGGR_BK_TIME (BIT_MASK_AGGR_BK_TIME << BIT_SHIFT_AGGR_BK_TIME)
  27728. #define BIT_CLEAR_AGGR_BK_TIME(x) ((x) & (~BITS_AGGR_BK_TIME))
  27729. #define BIT_GET_AGGR_BK_TIME(x) \
  27730. (((x) >> BIT_SHIFT_AGGR_BK_TIME) & BIT_MASK_AGGR_BK_TIME)
  27731. #define BIT_SET_AGGR_BK_TIME(x, v) \
  27732. (BIT_CLEAR_AGGR_BK_TIME(x) | BIT_AGGR_BK_TIME(v))
  27733. /* 2 REG_SLOT (Offset 0x051B) */
  27734. #define BIT_SHIFT_SLOT 0
  27735. #define BIT_MASK_SLOT 0xff
  27736. #define BIT_SLOT(x) (((x) & BIT_MASK_SLOT) << BIT_SHIFT_SLOT)
  27737. #define BITS_SLOT (BIT_MASK_SLOT << BIT_SHIFT_SLOT)
  27738. #define BIT_CLEAR_SLOT(x) ((x) & (~BITS_SLOT))
  27739. #define BIT_GET_SLOT(x) (((x) >> BIT_SHIFT_SLOT) & BIT_MASK_SLOT)
  27740. #define BIT_SET_SLOT(x, v) (BIT_CLEAR_SLOT(x) | BIT_SLOT(v))
  27741. #endif
  27742. #if (HALMAC_8814B_SUPPORT)
  27743. /* 2 REG_EDCA_CPUMGQ_PARAM (Offset 0x051C) */
  27744. #define BIT_SHIFT_CW_V1 8
  27745. #define BIT_MASK_CW_V1 0xff
  27746. #define BIT_CW_V1(x) (((x) & BIT_MASK_CW_V1) << BIT_SHIFT_CW_V1)
  27747. #define BITS_CW_V1 (BIT_MASK_CW_V1 << BIT_SHIFT_CW_V1)
  27748. #define BIT_CLEAR_CW_V1(x) ((x) & (~BITS_CW_V1))
  27749. #define BIT_GET_CW_V1(x) (((x) >> BIT_SHIFT_CW_V1) & BIT_MASK_CW_V1)
  27750. #define BIT_SET_CW_V1(x, v) (BIT_CLEAR_CW_V1(x) | BIT_CW_V1(v))
  27751. #define BIT_SHIFT_AIFS_V1 0
  27752. #define BIT_MASK_AIFS_V1 0xff
  27753. #define BIT_AIFS_V1(x) (((x) & BIT_MASK_AIFS_V1) << BIT_SHIFT_AIFS_V1)
  27754. #define BITS_AIFS_V1 (BIT_MASK_AIFS_V1 << BIT_SHIFT_AIFS_V1)
  27755. #define BIT_CLEAR_AIFS_V1(x) ((x) & (~BITS_AIFS_V1))
  27756. #define BIT_GET_AIFS_V1(x) (((x) >> BIT_SHIFT_AIFS_V1) & BIT_MASK_AIFS_V1)
  27757. #define BIT_SET_AIFS_V1(x, v) (BIT_CLEAR_AIFS_V1(x) | BIT_AIFS_V1(v))
  27758. #endif
  27759. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  27760. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  27761. /* 2 REG_NOA_OFF_ERLY_TIME (Offset 0x051D) */
  27762. #define BIT_SHIFT__NOA_OFF_ERLY_TIME 0
  27763. #define BIT_MASK__NOA_OFF_ERLY_TIME 0xff
  27764. #define BIT__NOA_OFF_ERLY_TIME(x) \
  27765. (((x) & BIT_MASK__NOA_OFF_ERLY_TIME) << BIT_SHIFT__NOA_OFF_ERLY_TIME)
  27766. #define BITS__NOA_OFF_ERLY_TIME \
  27767. (BIT_MASK__NOA_OFF_ERLY_TIME << BIT_SHIFT__NOA_OFF_ERLY_TIME)
  27768. #define BIT_CLEAR__NOA_OFF_ERLY_TIME(x) ((x) & (~BITS__NOA_OFF_ERLY_TIME))
  27769. #define BIT_GET__NOA_OFF_ERLY_TIME(x) \
  27770. (((x) >> BIT_SHIFT__NOA_OFF_ERLY_TIME) & BIT_MASK__NOA_OFF_ERLY_TIME)
  27771. #define BIT_SET__NOA_OFF_ERLY_TIME(x, v) \
  27772. (BIT_CLEAR__NOA_OFF_ERLY_TIME(x) | BIT__NOA_OFF_ERLY_TIME(v))
  27773. #endif
  27774. #if (HALMAC_8814B_SUPPORT)
  27775. /* 2 REG_CPUMGQ_PAUSE (Offset 0x051E) */
  27776. #define BIT_MAC_STOP_CPUMGQ_V1 BIT(0)
  27777. #endif
  27778. #if (HALMAC_8192F_SUPPORT)
  27779. /* 2 REG_PS_TIMER_CTRL (Offset 0x051F) */
  27780. #define BIT_PS_TIMER_B_EN_V1 BIT(7)
  27781. #define BIT_SHIFT_PS_TIMER_B_TSF_SEL_V1 4
  27782. #define BIT_MASK_PS_TIMER_B_TSF_SEL_V1 0x3
  27783. #define BIT_PS_TIMER_B_TSF_SEL_V1(x) \
  27784. (((x) & BIT_MASK_PS_TIMER_B_TSF_SEL_V1) \
  27785. << BIT_SHIFT_PS_TIMER_B_TSF_SEL_V1)
  27786. #define BITS_PS_TIMER_B_TSF_SEL_V1 \
  27787. (BIT_MASK_PS_TIMER_B_TSF_SEL_V1 << BIT_SHIFT_PS_TIMER_B_TSF_SEL_V1)
  27788. #define BIT_CLEAR_PS_TIMER_B_TSF_SEL_V1(x) ((x) & (~BITS_PS_TIMER_B_TSF_SEL_V1))
  27789. #define BIT_GET_PS_TIMER_B_TSF_SEL_V1(x) \
  27790. (((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL_V1) & \
  27791. BIT_MASK_PS_TIMER_B_TSF_SEL_V1)
  27792. #define BIT_SET_PS_TIMER_B_TSF_SEL_V1(x, v) \
  27793. (BIT_CLEAR_PS_TIMER_B_TSF_SEL_V1(x) | BIT_PS_TIMER_B_TSF_SEL_V1(v))
  27794. #define BIT_PS_TIMER_A_EN_V1 BIT(3)
  27795. #define BIT_SHIFT_PS_TIMER_A_TSF_SEL_V1 0
  27796. #define BIT_MASK_PS_TIMER_A_TSF_SEL_V1 0x3
  27797. #define BIT_PS_TIMER_A_TSF_SEL_V1(x) \
  27798. (((x) & BIT_MASK_PS_TIMER_A_TSF_SEL_V1) \
  27799. << BIT_SHIFT_PS_TIMER_A_TSF_SEL_V1)
  27800. #define BITS_PS_TIMER_A_TSF_SEL_V1 \
  27801. (BIT_MASK_PS_TIMER_A_TSF_SEL_V1 << BIT_SHIFT_PS_TIMER_A_TSF_SEL_V1)
  27802. #define BIT_CLEAR_PS_TIMER_A_TSF_SEL_V1(x) ((x) & (~BITS_PS_TIMER_A_TSF_SEL_V1))
  27803. #define BIT_GET_PS_TIMER_A_TSF_SEL_V1(x) \
  27804. (((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL_V1) & \
  27805. BIT_MASK_PS_TIMER_A_TSF_SEL_V1)
  27806. #define BIT_SET_PS_TIMER_A_TSF_SEL_V1(x, v) \
  27807. (BIT_CLEAR_PS_TIMER_A_TSF_SEL_V1(x) | BIT_PS_TIMER_A_TSF_SEL_V1(v))
  27808. #endif
  27809. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27810. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27811. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27812. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27813. /* 2 REG_TX_PTCL_CTRL (Offset 0x0520) */
  27814. #define BIT_DIS_EDCCA BIT(15)
  27815. #define BIT_DIS_CCA BIT(14)
  27816. #define BIT_LSIG_TXOP_TXCMD_NAV BIT(13)
  27817. #define BIT_SIFS_BK_EN BIT(12)
  27818. #define BIT_SHIFT_TXQ_NAV_MSK 8
  27819. #define BIT_MASK_TXQ_NAV_MSK 0xf
  27820. #define BIT_TXQ_NAV_MSK(x) \
  27821. (((x) & BIT_MASK_TXQ_NAV_MSK) << BIT_SHIFT_TXQ_NAV_MSK)
  27822. #define BITS_TXQ_NAV_MSK (BIT_MASK_TXQ_NAV_MSK << BIT_SHIFT_TXQ_NAV_MSK)
  27823. #define BIT_CLEAR_TXQ_NAV_MSK(x) ((x) & (~BITS_TXQ_NAV_MSK))
  27824. #define BIT_GET_TXQ_NAV_MSK(x) \
  27825. (((x) >> BIT_SHIFT_TXQ_NAV_MSK) & BIT_MASK_TXQ_NAV_MSK)
  27826. #define BIT_SET_TXQ_NAV_MSK(x, v) \
  27827. (BIT_CLEAR_TXQ_NAV_MSK(x) | BIT_TXQ_NAV_MSK(v))
  27828. #define BIT_DIS_CW BIT(7)
  27829. #define BIT_NAV_END_TXOP BIT(6)
  27830. #define BIT_RDG_END_TXOP BIT(5)
  27831. #endif
  27832. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27833. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27834. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27835. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27836. /* 2 REG_TX_PTCL_CTRL (Offset 0x0520) */
  27837. #define BIT_AC_INBCN_HOLD BIT(4)
  27838. #endif
  27839. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27840. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27841. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27842. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27843. /* 2 REG_TX_PTCL_CTRL (Offset 0x0520) */
  27844. #define BIT_MGTQ_TXOP_EN BIT(3)
  27845. #define BIT_MGTQ_RTSMF_EN BIT(2)
  27846. #define BIT_HIQ_RTSMF_EN BIT(1)
  27847. #define BIT_BCN_RTSMF_EN BIT(0)
  27848. #endif
  27849. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  27850. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  27851. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27852. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27853. /* 2 REG_TXPAUSE (Offset 0x0522) */
  27854. #define BIT_STOP_BCN_HI_MGT BIT(7)
  27855. #endif
  27856. #if (HALMAC_8192F_SUPPORT)
  27857. /* 2 REG_TXPAUSE (Offset 0x0522) */
  27858. #define BIT_MAC_STOPCPUMGQ BIT(7)
  27859. #endif
  27860. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27861. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27862. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27863. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27864. /* 2 REG_TXPAUSE (Offset 0x0522) */
  27865. #define BIT_MAC_STOPBCNQ BIT(6)
  27866. #define BIT_MAC_STOPHIQ BIT(5)
  27867. #define BIT_MAC_STOPMGQ BIT(4)
  27868. #define BIT_MAC_STOPBK BIT(3)
  27869. #define BIT_MAC_STOPBE BIT(2)
  27870. #define BIT_MAC_STOPVI BIT(1)
  27871. #define BIT_MAC_STOPVO BIT(0)
  27872. /* 2 REG_DIS_TXREQ_CLR (Offset 0x0523) */
  27873. #define BIT_DIS_BT_CCA BIT(7)
  27874. #endif
  27875. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27876. /* 2 REG_DIS_TXREQ_CLR (Offset 0x0523) */
  27877. #define BIT_DIS_TXREQ_CLR_CPUMGQ BIT(6)
  27878. #endif
  27879. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27880. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27881. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27882. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27883. /* 2 REG_DIS_TXREQ_CLR (Offset 0x0523) */
  27884. #define BIT_DIS_TXREQ_CLR_HI BIT(5)
  27885. #define BIT_DIS_TXREQ_CLR_MGQ BIT(4)
  27886. #define BIT_DIS_TXREQ_CLR_VO BIT(3)
  27887. #define BIT_DIS_TXREQ_CLR_VI BIT(2)
  27888. #define BIT_DIS_TXREQ_CLR_BE BIT(1)
  27889. #define BIT_DIS_TXREQ_CLR_BK BIT(0)
  27890. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27891. #define BIT_EN_CLR_TXREQ_INCCA BIT(15)
  27892. #define BIT_DIS_TX_OVER_BCNQ BIT(14)
  27893. #endif
  27894. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27895. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  27896. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27897. HALMAC_8881A_SUPPORT)
  27898. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27899. #define BIT_EN_BCNERR_INCCCA BIT(13)
  27900. #endif
  27901. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27902. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27903. #define BIT_EN_BCNERR_INCCA BIT(13)
  27904. #define BIT_EN_BCNERR_INEDCCA BIT(12)
  27905. #endif
  27906. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27907. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27908. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27909. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27910. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27911. #define BIT_EDCCA_MSK_CNTDOWN_EN BIT(11)
  27912. #define BIT_DIS_TXOP_CFE BIT(10)
  27913. #define BIT_DIS_LSIG_CFE BIT(9)
  27914. #endif
  27915. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27916. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27917. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27918. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27919. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27920. #define BIT_DIS_STBC_CFE BIT(8)
  27921. #endif
  27922. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27923. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27924. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27925. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27926. /* 2 REG_RD_CTRL (Offset 0x0524) */
  27927. #define BIT_BKQ_RD_INIT_EN BIT(7)
  27928. #define BIT_BEQ_RD_INIT_EN BIT(6)
  27929. #define BIT_VIQ_RD_INIT_EN BIT(5)
  27930. #define BIT_VOQ_RD_INIT_EN BIT(4)
  27931. #define BIT_BKQ_RD_RESP_EN BIT(3)
  27932. #define BIT_BEQ_RD_RESP_EN BIT(2)
  27933. #define BIT_VIQ_RD_RESP_EN BIT(1)
  27934. #define BIT_VOQ_RD_RESP_EN BIT(0)
  27935. /* 2 REG_MBSSID_CTRL (Offset 0x0526) */
  27936. #define BIT_MBID_BCNQ7_EN BIT(7)
  27937. #define BIT_MBID_BCNQ6_EN BIT(6)
  27938. #define BIT_MBID_BCNQ5_EN BIT(5)
  27939. #define BIT_MBID_BCNQ4_EN BIT(4)
  27940. #define BIT_MBID_BCNQ3_EN BIT(3)
  27941. #define BIT_MBID_BCNQ2_EN BIT(2)
  27942. #define BIT_MBID_BCNQ1_EN BIT(1)
  27943. #define BIT_MBID_BCNQ0_EN BIT(0)
  27944. #endif
  27945. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27946. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27947. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27948. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27949. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27950. #define BIT_P2P_CTW_ALLSTASLEEP BIT(7)
  27951. #endif
  27952. #if (HALMAC_8192F_SUPPORT)
  27953. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27954. #define BIT_P2P_DISTX_SEL BIT(6)
  27955. #endif
  27956. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27957. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27958. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27959. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27960. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27961. #define BIT_PWR_MGT_EN BIT(5)
  27962. #endif
  27963. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  27964. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27965. #define BIT_P2P_BCN_AREA_EN BIT(4)
  27966. #define BIT_P2P_CTWND_EN BIT(3)
  27967. #endif
  27968. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27969. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27970. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  27971. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27972. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27973. #define BIT_P2P_NOA1_EN BIT(2)
  27974. #define BIT_P2P_NOA0_EN BIT(1)
  27975. #endif
  27976. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  27977. /* 2 REG_P2PPS_CTRL (Offset 0x0527) */
  27978. #define BIT_P2P_BCN_SEL BIT(0)
  27979. #endif
  27980. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || \
  27981. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  27982. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  27983. HALMAC_8881A_SUPPORT)
  27984. /* 2 REG_PKT_LIFETIME_CTRL (Offset 0x0528) */
  27985. #define BIT_EN_P2P_CTWND1 BIT(23)
  27986. #endif
  27987. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  27988. /* 2 REG_PKT_LIFETIME_CTRL (Offset 0x0528) */
  27989. #define BIT_EN_TBTT_AREA_FOR_BB BIT(23)
  27990. #endif
  27991. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27992. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  27993. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  27994. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  27995. /* 2 REG_PKT_LIFETIME_CTRL (Offset 0x0528) */
  27996. #define BIT_EN_BKF_CLR_TXREQ BIT(22)
  27997. #endif
  27998. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  27999. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28000. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28001. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28002. /* 2 REG_PKT_LIFETIME_CTRL (Offset 0x0528) */
  28003. #define BIT_EN_TSFBIT32_RST_P2P BIT(21)
  28004. #endif
  28005. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28006. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28007. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  28008. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28009. /* 2 REG_PKT_LIFETIME_CTRL (Offset 0x0528) */
  28010. #define BIT_EN_BCN_TX_BTCCA BIT(20)
  28011. #define BIT_DIS_PKT_TX_ATIM BIT(19)
  28012. #define BIT_DIS_BCN_DIS_CTN BIT(18)
  28013. #define BIT_EN_NAVEND_RST_TXOP BIT(17)
  28014. #define BIT_EN_FILTER_CCA BIT(16)
  28015. #define BIT_SHIFT_CCA_FILTER_THRS 8
  28016. #define BIT_MASK_CCA_FILTER_THRS 0xff
  28017. #define BIT_CCA_FILTER_THRS(x) \
  28018. (((x) & BIT_MASK_CCA_FILTER_THRS) << BIT_SHIFT_CCA_FILTER_THRS)
  28019. #define BITS_CCA_FILTER_THRS \
  28020. (BIT_MASK_CCA_FILTER_THRS << BIT_SHIFT_CCA_FILTER_THRS)
  28021. #define BIT_CLEAR_CCA_FILTER_THRS(x) ((x) & (~BITS_CCA_FILTER_THRS))
  28022. #define BIT_GET_CCA_FILTER_THRS(x) \
  28023. (((x) >> BIT_SHIFT_CCA_FILTER_THRS) & BIT_MASK_CCA_FILTER_THRS)
  28024. #define BIT_SET_CCA_FILTER_THRS(x, v) \
  28025. (BIT_CLEAR_CCA_FILTER_THRS(x) | BIT_CCA_FILTER_THRS(v))
  28026. #define BIT_SHIFT_EDCCA_THRS 0
  28027. #define BIT_MASK_EDCCA_THRS 0xff
  28028. #define BIT_EDCCA_THRS(x) (((x) & BIT_MASK_EDCCA_THRS) << BIT_SHIFT_EDCCA_THRS)
  28029. #define BITS_EDCCA_THRS (BIT_MASK_EDCCA_THRS << BIT_SHIFT_EDCCA_THRS)
  28030. #define BIT_CLEAR_EDCCA_THRS(x) ((x) & (~BITS_EDCCA_THRS))
  28031. #define BIT_GET_EDCCA_THRS(x) \
  28032. (((x) >> BIT_SHIFT_EDCCA_THRS) & BIT_MASK_EDCCA_THRS)
  28033. #define BIT_SET_EDCCA_THRS(x, v) (BIT_CLEAR_EDCCA_THRS(x) | BIT_EDCCA_THRS(v))
  28034. /* 2 REG_P2PPS_SPEC_STATE (Offset 0x052B) */
  28035. #define BIT_SPEC_POWER_STATE BIT(7)
  28036. #define BIT_SPEC_CTWINDOW_ON BIT(6)
  28037. #define BIT_SPEC_BEACON_AREA_ON BIT(5)
  28038. #define BIT_SPEC_CTWIN_EARLY_DISTX BIT(4)
  28039. #define BIT_SPEC_NOA1_OFF_PERIOD BIT(3)
  28040. #define BIT_SPEC_FORCE_DOZE1 BIT(2)
  28041. #define BIT_SPEC_NOA0_OFF_PERIOD BIT(1)
  28042. #define BIT_SPEC_FORCE_DOZE0 BIT(0)
  28043. #endif
  28044. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT || \
  28045. HALMAC_8822C_SUPPORT)
  28046. /* 2 REG_TXOP_LIMIT_CTRL (Offset 0x052C) */
  28047. #define BIT_SHIFT_TXOP_TBTT_CNT 24
  28048. #define BIT_MASK_TXOP_TBTT_CNT 0xff
  28049. #define BIT_TXOP_TBTT_CNT(x) \
  28050. (((x) & BIT_MASK_TXOP_TBTT_CNT) << BIT_SHIFT_TXOP_TBTT_CNT)
  28051. #define BITS_TXOP_TBTT_CNT (BIT_MASK_TXOP_TBTT_CNT << BIT_SHIFT_TXOP_TBTT_CNT)
  28052. #define BIT_CLEAR_TXOP_TBTT_CNT(x) ((x) & (~BITS_TXOP_TBTT_CNT))
  28053. #define BIT_GET_TXOP_TBTT_CNT(x) \
  28054. (((x) >> BIT_SHIFT_TXOP_TBTT_CNT) & BIT_MASK_TXOP_TBTT_CNT)
  28055. #define BIT_SET_TXOP_TBTT_CNT(x, v) \
  28056. (BIT_CLEAR_TXOP_TBTT_CNT(x) | BIT_TXOP_TBTT_CNT(v))
  28057. #define BIT_SHIFT_TXOP_TBTT_CNT_SEL 20
  28058. #define BIT_MASK_TXOP_TBTT_CNT_SEL 0xf
  28059. #define BIT_TXOP_TBTT_CNT_SEL(x) \
  28060. (((x) & BIT_MASK_TXOP_TBTT_CNT_SEL) << BIT_SHIFT_TXOP_TBTT_CNT_SEL)
  28061. #define BITS_TXOP_TBTT_CNT_SEL \
  28062. (BIT_MASK_TXOP_TBTT_CNT_SEL << BIT_SHIFT_TXOP_TBTT_CNT_SEL)
  28063. #define BIT_CLEAR_TXOP_TBTT_CNT_SEL(x) ((x) & (~BITS_TXOP_TBTT_CNT_SEL))
  28064. #define BIT_GET_TXOP_TBTT_CNT_SEL(x) \
  28065. (((x) >> BIT_SHIFT_TXOP_TBTT_CNT_SEL) & BIT_MASK_TXOP_TBTT_CNT_SEL)
  28066. #define BIT_SET_TXOP_TBTT_CNT_SEL(x, v) \
  28067. (BIT_CLEAR_TXOP_TBTT_CNT_SEL(x) | BIT_TXOP_TBTT_CNT_SEL(v))
  28068. #define BIT_SHIFT_TXOP_LMT_EN 16
  28069. #define BIT_MASK_TXOP_LMT_EN 0xf
  28070. #define BIT_TXOP_LMT_EN(x) \
  28071. (((x) & BIT_MASK_TXOP_LMT_EN) << BIT_SHIFT_TXOP_LMT_EN)
  28072. #define BITS_TXOP_LMT_EN (BIT_MASK_TXOP_LMT_EN << BIT_SHIFT_TXOP_LMT_EN)
  28073. #define BIT_CLEAR_TXOP_LMT_EN(x) ((x) & (~BITS_TXOP_LMT_EN))
  28074. #define BIT_GET_TXOP_LMT_EN(x) \
  28075. (((x) >> BIT_SHIFT_TXOP_LMT_EN) & BIT_MASK_TXOP_LMT_EN)
  28076. #define BIT_SET_TXOP_LMT_EN(x, v) \
  28077. (BIT_CLEAR_TXOP_LMT_EN(x) | BIT_TXOP_LMT_EN(v))
  28078. #define BIT_SHIFT_TXOP_LMT_TX_TIME 8
  28079. #define BIT_MASK_TXOP_LMT_TX_TIME 0xff
  28080. #define BIT_TXOP_LMT_TX_TIME(x) \
  28081. (((x) & BIT_MASK_TXOP_LMT_TX_TIME) << BIT_SHIFT_TXOP_LMT_TX_TIME)
  28082. #define BITS_TXOP_LMT_TX_TIME \
  28083. (BIT_MASK_TXOP_LMT_TX_TIME << BIT_SHIFT_TXOP_LMT_TX_TIME)
  28084. #define BIT_CLEAR_TXOP_LMT_TX_TIME(x) ((x) & (~BITS_TXOP_LMT_TX_TIME))
  28085. #define BIT_GET_TXOP_LMT_TX_TIME(x) \
  28086. (((x) >> BIT_SHIFT_TXOP_LMT_TX_TIME) & BIT_MASK_TXOP_LMT_TX_TIME)
  28087. #define BIT_SET_TXOP_LMT_TX_TIME(x, v) \
  28088. (BIT_CLEAR_TXOP_LMT_TX_TIME(x) | BIT_TXOP_LMT_TX_TIME(v))
  28089. #define BIT_TXOP_CNT_TRIGGER_RESET BIT(7)
  28090. #endif
  28091. #if (HALMAC_8192F_SUPPORT)
  28092. /* 2 REG_PS_TIMER_A_V2 (Offset 0x052C) */
  28093. #define BIT_SHIFT_PS_TIMER_A_V2 0
  28094. #define BIT_MASK_PS_TIMER_A_V2 0xffffffffL
  28095. #define BIT_PS_TIMER_A_V2(x) \
  28096. (((x) & BIT_MASK_PS_TIMER_A_V2) << BIT_SHIFT_PS_TIMER_A_V2)
  28097. #define BITS_PS_TIMER_A_V2 (BIT_MASK_PS_TIMER_A_V2 << BIT_SHIFT_PS_TIMER_A_V2)
  28098. #define BIT_CLEAR_PS_TIMER_A_V2(x) ((x) & (~BITS_PS_TIMER_A_V2))
  28099. #define BIT_GET_PS_TIMER_A_V2(x) \
  28100. (((x) >> BIT_SHIFT_PS_TIMER_A_V2) & BIT_MASK_PS_TIMER_A_V2)
  28101. #define BIT_SET_PS_TIMER_A_V2(x, v) \
  28102. (BIT_CLEAR_PS_TIMER_A_V2(x) | BIT_PS_TIMER_A_V2(v))
  28103. #endif
  28104. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT || \
  28105. HALMAC_8822C_SUPPORT)
  28106. /* 2 REG_TXOP_LIMIT_CTRL (Offset 0x052C) */
  28107. #define BIT_SHIFT_TXOP_LMT_PKT_NUM 0
  28108. #define BIT_MASK_TXOP_LMT_PKT_NUM 0x3f
  28109. #define BIT_TXOP_LMT_PKT_NUM(x) \
  28110. (((x) & BIT_MASK_TXOP_LMT_PKT_NUM) << BIT_SHIFT_TXOP_LMT_PKT_NUM)
  28111. #define BITS_TXOP_LMT_PKT_NUM \
  28112. (BIT_MASK_TXOP_LMT_PKT_NUM << BIT_SHIFT_TXOP_LMT_PKT_NUM)
  28113. #define BIT_CLEAR_TXOP_LMT_PKT_NUM(x) ((x) & (~BITS_TXOP_LMT_PKT_NUM))
  28114. #define BIT_GET_TXOP_LMT_PKT_NUM(x) \
  28115. (((x) >> BIT_SHIFT_TXOP_LMT_PKT_NUM) & BIT_MASK_TXOP_LMT_PKT_NUM)
  28116. #define BIT_SET_TXOP_LMT_PKT_NUM(x, v) \
  28117. (BIT_CLEAR_TXOP_LMT_PKT_NUM(x) | BIT_TXOP_LMT_PKT_NUM(v))
  28118. #endif
  28119. #if (HALMAC_8192F_SUPPORT)
  28120. /* 2 REG_PS_TIMER_B_V2 (Offset 0x0534) */
  28121. #define BIT_FTM_PTT_TSF_R2T_SEL_V1 BIT(24)
  28122. #endif
  28123. #if (HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28124. /* 2 REG_CCA_TXEN_CNT (Offset 0x0534) */
  28125. #define BIT_ENABLE_STOP_UPDATE_NAV BIT(21)
  28126. #endif
  28127. #if (HALMAC_8192F_SUPPORT)
  28128. /* 2 REG_PS_TIMER_B_V2 (Offset 0x0534) */
  28129. #define BIT_TBTT_DIG BIT(20)
  28130. #define BIT_FTM_PTT_TSF_T2R_SEL_V1 BIT(20)
  28131. #endif
  28132. #if (HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28133. /* 2 REG_CCA_TXEN_CNT (Offset 0x0534) */
  28134. #define BIT_ENABLE_GEN_RANDON_SLOT_TX BIT(20)
  28135. #define BIT_ENABLE_RANDOM_SHIFT_TX BIT(19)
  28136. #define BIT_ENABLE_EDCA_REF_FUNCTION BIT(18)
  28137. #endif
  28138. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28139. /* 2 REG_CCA_TXEN_CNT (Offset 0x0534) */
  28140. #define BIT_CCA_TXEN_CNT_SWITCH BIT(17)
  28141. #endif
  28142. #if (HALMAC_8192F_SUPPORT)
  28143. /* 2 REG_PS_TIMER_B_V2 (Offset 0x0534) */
  28144. #define BIT_FTM_PTT_TSF_SEL_V1 BIT(16)
  28145. #endif
  28146. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28147. /* 2 REG_CCA_TXEN_CNT (Offset 0x0534) */
  28148. #define BIT_CCA_TXEN_CNT_EN BIT(16)
  28149. #define BIT_SHIFT_CCA_TXEN_BIG_CNT 8
  28150. #define BIT_MASK_CCA_TXEN_BIG_CNT 0xff
  28151. #define BIT_CCA_TXEN_BIG_CNT(x) \
  28152. (((x) & BIT_MASK_CCA_TXEN_BIG_CNT) << BIT_SHIFT_CCA_TXEN_BIG_CNT)
  28153. #define BITS_CCA_TXEN_BIG_CNT \
  28154. (BIT_MASK_CCA_TXEN_BIG_CNT << BIT_SHIFT_CCA_TXEN_BIG_CNT)
  28155. #define BIT_CLEAR_CCA_TXEN_BIG_CNT(x) ((x) & (~BITS_CCA_TXEN_BIG_CNT))
  28156. #define BIT_GET_CCA_TXEN_BIG_CNT(x) \
  28157. (((x) >> BIT_SHIFT_CCA_TXEN_BIG_CNT) & BIT_MASK_CCA_TXEN_BIG_CNT)
  28158. #define BIT_SET_CCA_TXEN_BIG_CNT(x, v) \
  28159. (BIT_CLEAR_CCA_TXEN_BIG_CNT(x) | BIT_CCA_TXEN_BIG_CNT(v))
  28160. #endif
  28161. #if (HALMAC_8192F_SUPPORT)
  28162. /* 2 REG_PS_TIMER_B_V2 (Offset 0x0534) */
  28163. #define BIT_SHIFT_PS_TIMER_B_V2 0
  28164. #define BIT_MASK_PS_TIMER_B_V2 0xffffffffL
  28165. #define BIT_PS_TIMER_B_V2(x) \
  28166. (((x) & BIT_MASK_PS_TIMER_B_V2) << BIT_SHIFT_PS_TIMER_B_V2)
  28167. #define BITS_PS_TIMER_B_V2 (BIT_MASK_PS_TIMER_B_V2 << BIT_SHIFT_PS_TIMER_B_V2)
  28168. #define BIT_CLEAR_PS_TIMER_B_V2(x) ((x) & (~BITS_PS_TIMER_B_V2))
  28169. #define BIT_GET_PS_TIMER_B_V2(x) \
  28170. (((x) >> BIT_SHIFT_PS_TIMER_B_V2) & BIT_MASK_PS_TIMER_B_V2)
  28171. #define BIT_SET_PS_TIMER_B_V2(x, v) \
  28172. (BIT_CLEAR_PS_TIMER_B_V2(x) | BIT_PS_TIMER_B_V2(v))
  28173. #endif
  28174. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28175. /* 2 REG_CCA_TXEN_CNT (Offset 0x0534) */
  28176. #define BIT_SHIFT_CCA_TXEN_SMALL_CNT 0
  28177. #define BIT_MASK_CCA_TXEN_SMALL_CNT 0xff
  28178. #define BIT_CCA_TXEN_SMALL_CNT(x) \
  28179. (((x) & BIT_MASK_CCA_TXEN_SMALL_CNT) << BIT_SHIFT_CCA_TXEN_SMALL_CNT)
  28180. #define BITS_CCA_TXEN_SMALL_CNT \
  28181. (BIT_MASK_CCA_TXEN_SMALL_CNT << BIT_SHIFT_CCA_TXEN_SMALL_CNT)
  28182. #define BIT_CLEAR_CCA_TXEN_SMALL_CNT(x) ((x) & (~BITS_CCA_TXEN_SMALL_CNT))
  28183. #define BIT_GET_CCA_TXEN_SMALL_CNT(x) \
  28184. (((x) >> BIT_SHIFT_CCA_TXEN_SMALL_CNT) & BIT_MASK_CCA_TXEN_SMALL_CNT)
  28185. #define BIT_SET_CCA_TXEN_SMALL_CNT(x, v) \
  28186. (BIT_CLEAR_CCA_TXEN_SMALL_CNT(x) | BIT_CCA_TXEN_SMALL_CNT(v))
  28187. #endif
  28188. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28189. /* 2 REG_QUEUE_INCOL_THR (Offset 0x0538) */
  28190. #define BIT_SHIFT_BK_QUEUE_THR 24
  28191. #define BIT_MASK_BK_QUEUE_THR 0xff
  28192. #define BIT_BK_QUEUE_THR(x) \
  28193. (((x) & BIT_MASK_BK_QUEUE_THR) << BIT_SHIFT_BK_QUEUE_THR)
  28194. #define BITS_BK_QUEUE_THR (BIT_MASK_BK_QUEUE_THR << BIT_SHIFT_BK_QUEUE_THR)
  28195. #define BIT_CLEAR_BK_QUEUE_THR(x) ((x) & (~BITS_BK_QUEUE_THR))
  28196. #define BIT_GET_BK_QUEUE_THR(x) \
  28197. (((x) >> BIT_SHIFT_BK_QUEUE_THR) & BIT_MASK_BK_QUEUE_THR)
  28198. #define BIT_SET_BK_QUEUE_THR(x, v) \
  28199. (BIT_CLEAR_BK_QUEUE_THR(x) | BIT_BK_QUEUE_THR(v))
  28200. #endif
  28201. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28202. /* 2 REG_MAX_INTER_COLLISION (Offset 0x0538) */
  28203. #define BIT_SHIFT_MAX_INTER_COLLISION_BK 24
  28204. #define BIT_MASK_MAX_INTER_COLLISION_BK 0xff
  28205. #define BIT_MAX_INTER_COLLISION_BK(x) \
  28206. (((x) & BIT_MASK_MAX_INTER_COLLISION_BK) \
  28207. << BIT_SHIFT_MAX_INTER_COLLISION_BK)
  28208. #define BITS_MAX_INTER_COLLISION_BK \
  28209. (BIT_MASK_MAX_INTER_COLLISION_BK << BIT_SHIFT_MAX_INTER_COLLISION_BK)
  28210. #define BIT_CLEAR_MAX_INTER_COLLISION_BK(x) \
  28211. ((x) & (~BITS_MAX_INTER_COLLISION_BK))
  28212. #define BIT_GET_MAX_INTER_COLLISION_BK(x) \
  28213. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_BK) & \
  28214. BIT_MASK_MAX_INTER_COLLISION_BK)
  28215. #define BIT_SET_MAX_INTER_COLLISION_BK(x, v) \
  28216. (BIT_CLEAR_MAX_INTER_COLLISION_BK(x) | BIT_MAX_INTER_COLLISION_BK(v))
  28217. #endif
  28218. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28219. /* 2 REG_QUEUE_INCOL_THR (Offset 0x0538) */
  28220. #define BIT_SHIFT_BE_QUEUE_THR 16
  28221. #define BIT_MASK_BE_QUEUE_THR 0xff
  28222. #define BIT_BE_QUEUE_THR(x) \
  28223. (((x) & BIT_MASK_BE_QUEUE_THR) << BIT_SHIFT_BE_QUEUE_THR)
  28224. #define BITS_BE_QUEUE_THR (BIT_MASK_BE_QUEUE_THR << BIT_SHIFT_BE_QUEUE_THR)
  28225. #define BIT_CLEAR_BE_QUEUE_THR(x) ((x) & (~BITS_BE_QUEUE_THR))
  28226. #define BIT_GET_BE_QUEUE_THR(x) \
  28227. (((x) >> BIT_SHIFT_BE_QUEUE_THR) & BIT_MASK_BE_QUEUE_THR)
  28228. #define BIT_SET_BE_QUEUE_THR(x, v) \
  28229. (BIT_CLEAR_BE_QUEUE_THR(x) | BIT_BE_QUEUE_THR(v))
  28230. #endif
  28231. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28232. /* 2 REG_MAX_INTER_COLLISION (Offset 0x0538) */
  28233. #define BIT_SHIFT_MAX_INTER_COLLISION_BE 16
  28234. #define BIT_MASK_MAX_INTER_COLLISION_BE 0xff
  28235. #define BIT_MAX_INTER_COLLISION_BE(x) \
  28236. (((x) & BIT_MASK_MAX_INTER_COLLISION_BE) \
  28237. << BIT_SHIFT_MAX_INTER_COLLISION_BE)
  28238. #define BITS_MAX_INTER_COLLISION_BE \
  28239. (BIT_MASK_MAX_INTER_COLLISION_BE << BIT_SHIFT_MAX_INTER_COLLISION_BE)
  28240. #define BIT_CLEAR_MAX_INTER_COLLISION_BE(x) \
  28241. ((x) & (~BITS_MAX_INTER_COLLISION_BE))
  28242. #define BIT_GET_MAX_INTER_COLLISION_BE(x) \
  28243. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_BE) & \
  28244. BIT_MASK_MAX_INTER_COLLISION_BE)
  28245. #define BIT_SET_MAX_INTER_COLLISION_BE(x, v) \
  28246. (BIT_CLEAR_MAX_INTER_COLLISION_BE(x) | BIT_MAX_INTER_COLLISION_BE(v))
  28247. #endif
  28248. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28249. /* 2 REG_QUEUE_INCOL_THR (Offset 0x0538) */
  28250. #define BIT_SHIFT_VI_QUEUE_THR 8
  28251. #define BIT_MASK_VI_QUEUE_THR 0xff
  28252. #define BIT_VI_QUEUE_THR(x) \
  28253. (((x) & BIT_MASK_VI_QUEUE_THR) << BIT_SHIFT_VI_QUEUE_THR)
  28254. #define BITS_VI_QUEUE_THR (BIT_MASK_VI_QUEUE_THR << BIT_SHIFT_VI_QUEUE_THR)
  28255. #define BIT_CLEAR_VI_QUEUE_THR(x) ((x) & (~BITS_VI_QUEUE_THR))
  28256. #define BIT_GET_VI_QUEUE_THR(x) \
  28257. (((x) >> BIT_SHIFT_VI_QUEUE_THR) & BIT_MASK_VI_QUEUE_THR)
  28258. #define BIT_SET_VI_QUEUE_THR(x, v) \
  28259. (BIT_CLEAR_VI_QUEUE_THR(x) | BIT_VI_QUEUE_THR(v))
  28260. #endif
  28261. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28262. /* 2 REG_MAX_INTER_COLLISION (Offset 0x0538) */
  28263. #define BIT_SHIFT_MAX_INTER_COLLISION_VI 8
  28264. #define BIT_MASK_MAX_INTER_COLLISION_VI 0xff
  28265. #define BIT_MAX_INTER_COLLISION_VI(x) \
  28266. (((x) & BIT_MASK_MAX_INTER_COLLISION_VI) \
  28267. << BIT_SHIFT_MAX_INTER_COLLISION_VI)
  28268. #define BITS_MAX_INTER_COLLISION_VI \
  28269. (BIT_MASK_MAX_INTER_COLLISION_VI << BIT_SHIFT_MAX_INTER_COLLISION_VI)
  28270. #define BIT_CLEAR_MAX_INTER_COLLISION_VI(x) \
  28271. ((x) & (~BITS_MAX_INTER_COLLISION_VI))
  28272. #define BIT_GET_MAX_INTER_COLLISION_VI(x) \
  28273. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_VI) & \
  28274. BIT_MASK_MAX_INTER_COLLISION_VI)
  28275. #define BIT_SET_MAX_INTER_COLLISION_VI(x, v) \
  28276. (BIT_CLEAR_MAX_INTER_COLLISION_VI(x) | BIT_MAX_INTER_COLLISION_VI(v))
  28277. #endif
  28278. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28279. /* 2 REG_QUEUE_INCOL_THR (Offset 0x0538) */
  28280. #define BIT_SHIFT_VO_QUEUE_THR 0
  28281. #define BIT_MASK_VO_QUEUE_THR 0xff
  28282. #define BIT_VO_QUEUE_THR(x) \
  28283. (((x) & BIT_MASK_VO_QUEUE_THR) << BIT_SHIFT_VO_QUEUE_THR)
  28284. #define BITS_VO_QUEUE_THR (BIT_MASK_VO_QUEUE_THR << BIT_SHIFT_VO_QUEUE_THR)
  28285. #define BIT_CLEAR_VO_QUEUE_THR(x) ((x) & (~BITS_VO_QUEUE_THR))
  28286. #define BIT_GET_VO_QUEUE_THR(x) \
  28287. (((x) >> BIT_SHIFT_VO_QUEUE_THR) & BIT_MASK_VO_QUEUE_THR)
  28288. #define BIT_SET_VO_QUEUE_THR(x, v) \
  28289. (BIT_CLEAR_VO_QUEUE_THR(x) | BIT_VO_QUEUE_THR(v))
  28290. #endif
  28291. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28292. /* 2 REG_MAX_INTER_COLLISION (Offset 0x0538) */
  28293. #define BIT_SHIFT_MAX_INTER_COLLISION_VO 0
  28294. #define BIT_MASK_MAX_INTER_COLLISION_VO 0xff
  28295. #define BIT_MAX_INTER_COLLISION_VO(x) \
  28296. (((x) & BIT_MASK_MAX_INTER_COLLISION_VO) \
  28297. << BIT_SHIFT_MAX_INTER_COLLISION_VO)
  28298. #define BITS_MAX_INTER_COLLISION_VO \
  28299. (BIT_MASK_MAX_INTER_COLLISION_VO << BIT_SHIFT_MAX_INTER_COLLISION_VO)
  28300. #define BIT_CLEAR_MAX_INTER_COLLISION_VO(x) \
  28301. ((x) & (~BITS_MAX_INTER_COLLISION_VO))
  28302. #define BIT_GET_MAX_INTER_COLLISION_VO(x) \
  28303. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_VO) & \
  28304. BIT_MASK_MAX_INTER_COLLISION_VO)
  28305. #define BIT_SET_MAX_INTER_COLLISION_VO(x, v) \
  28306. (BIT_CLEAR_MAX_INTER_COLLISION_VO(x) | BIT_MAX_INTER_COLLISION_VO(v))
  28307. #endif
  28308. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28309. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28310. #define BIT_QUEUE_INCOL_EN BIT(16)
  28311. #endif
  28312. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28313. /* 2 REG_MAX_INTER_COLLISION_CNT (Offset 0x053C) */
  28314. #define BIT_MAX_INTER_COLLISION_EN BIT(16)
  28315. #endif
  28316. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28317. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28318. #define BIT_SHIFT_BK_TRIGGER_NUM_V1 12
  28319. #define BIT_MASK_BK_TRIGGER_NUM_V1 0xf
  28320. #define BIT_BK_TRIGGER_NUM_V1(x) \
  28321. (((x) & BIT_MASK_BK_TRIGGER_NUM_V1) << BIT_SHIFT_BK_TRIGGER_NUM_V1)
  28322. #define BITS_BK_TRIGGER_NUM_V1 \
  28323. (BIT_MASK_BK_TRIGGER_NUM_V1 << BIT_SHIFT_BK_TRIGGER_NUM_V1)
  28324. #define BIT_CLEAR_BK_TRIGGER_NUM_V1(x) ((x) & (~BITS_BK_TRIGGER_NUM_V1))
  28325. #define BIT_GET_BK_TRIGGER_NUM_V1(x) \
  28326. (((x) >> BIT_SHIFT_BK_TRIGGER_NUM_V1) & BIT_MASK_BK_TRIGGER_NUM_V1)
  28327. #define BIT_SET_BK_TRIGGER_NUM_V1(x, v) \
  28328. (BIT_CLEAR_BK_TRIGGER_NUM_V1(x) | BIT_BK_TRIGGER_NUM_V1(v))
  28329. #endif
  28330. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28331. /* 2 REG_MAX_INTER_COLLISION_CNT (Offset 0x053C) */
  28332. #define BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK 12
  28333. #define BIT_MASK_MAX_INTER_COLLISION_CNT_BK 0xf
  28334. #define BIT_MAX_INTER_COLLISION_CNT_BK(x) \
  28335. (((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_BK) \
  28336. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK)
  28337. #define BITS_MAX_INTER_COLLISION_CNT_BK \
  28338. (BIT_MASK_MAX_INTER_COLLISION_CNT_BK \
  28339. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK)
  28340. #define BIT_CLEAR_MAX_INTER_COLLISION_CNT_BK(x) \
  28341. ((x) & (~BITS_MAX_INTER_COLLISION_CNT_BK))
  28342. #define BIT_GET_MAX_INTER_COLLISION_CNT_BK(x) \
  28343. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK) & \
  28344. BIT_MASK_MAX_INTER_COLLISION_CNT_BK)
  28345. #define BIT_SET_MAX_INTER_COLLISION_CNT_BK(x, v) \
  28346. (BIT_CLEAR_MAX_INTER_COLLISION_CNT_BK(x) | \
  28347. BIT_MAX_INTER_COLLISION_CNT_BK(v))
  28348. #endif
  28349. #if (HALMAC_8822B_SUPPORT)
  28350. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28351. #define BIT_SHIFT_BE_TRIGGER_NUM 12
  28352. #define BIT_MASK_BE_TRIGGER_NUM 0xf
  28353. #define BIT_BE_TRIGGER_NUM(x) \
  28354. (((x) & BIT_MASK_BE_TRIGGER_NUM) << BIT_SHIFT_BE_TRIGGER_NUM)
  28355. #define BITS_BE_TRIGGER_NUM \
  28356. (BIT_MASK_BE_TRIGGER_NUM << BIT_SHIFT_BE_TRIGGER_NUM)
  28357. #define BIT_CLEAR_BE_TRIGGER_NUM(x) ((x) & (~BITS_BE_TRIGGER_NUM))
  28358. #define BIT_GET_BE_TRIGGER_NUM(x) \
  28359. (((x) >> BIT_SHIFT_BE_TRIGGER_NUM) & BIT_MASK_BE_TRIGGER_NUM)
  28360. #define BIT_SET_BE_TRIGGER_NUM(x, v) \
  28361. (BIT_CLEAR_BE_TRIGGER_NUM(x) | BIT_BE_TRIGGER_NUM(v))
  28362. #endif
  28363. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28364. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28365. #define BIT_SHIFT_BE_TRIGGER_NUM_V1 8
  28366. #define BIT_MASK_BE_TRIGGER_NUM_V1 0xf
  28367. #define BIT_BE_TRIGGER_NUM_V1(x) \
  28368. (((x) & BIT_MASK_BE_TRIGGER_NUM_V1) << BIT_SHIFT_BE_TRIGGER_NUM_V1)
  28369. #define BITS_BE_TRIGGER_NUM_V1 \
  28370. (BIT_MASK_BE_TRIGGER_NUM_V1 << BIT_SHIFT_BE_TRIGGER_NUM_V1)
  28371. #define BIT_CLEAR_BE_TRIGGER_NUM_V1(x) ((x) & (~BITS_BE_TRIGGER_NUM_V1))
  28372. #define BIT_GET_BE_TRIGGER_NUM_V1(x) \
  28373. (((x) >> BIT_SHIFT_BE_TRIGGER_NUM_V1) & BIT_MASK_BE_TRIGGER_NUM_V1)
  28374. #define BIT_SET_BE_TRIGGER_NUM_V1(x, v) \
  28375. (BIT_CLEAR_BE_TRIGGER_NUM_V1(x) | BIT_BE_TRIGGER_NUM_V1(v))
  28376. #endif
  28377. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28378. /* 2 REG_MAX_INTER_COLLISION_CNT (Offset 0x053C) */
  28379. #define BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE 8
  28380. #define BIT_MASK_MAX_INTER_COLLISION_CNT_BE 0xf
  28381. #define BIT_MAX_INTER_COLLISION_CNT_BE(x) \
  28382. (((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_BE) \
  28383. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE)
  28384. #define BITS_MAX_INTER_COLLISION_CNT_BE \
  28385. (BIT_MASK_MAX_INTER_COLLISION_CNT_BE \
  28386. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE)
  28387. #define BIT_CLEAR_MAX_INTER_COLLISION_CNT_BE(x) \
  28388. ((x) & (~BITS_MAX_INTER_COLLISION_CNT_BE))
  28389. #define BIT_GET_MAX_INTER_COLLISION_CNT_BE(x) \
  28390. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE) & \
  28391. BIT_MASK_MAX_INTER_COLLISION_CNT_BE)
  28392. #define BIT_SET_MAX_INTER_COLLISION_CNT_BE(x, v) \
  28393. (BIT_CLEAR_MAX_INTER_COLLISION_CNT_BE(x) | \
  28394. BIT_MAX_INTER_COLLISION_CNT_BE(v))
  28395. #endif
  28396. #if (HALMAC_8822B_SUPPORT)
  28397. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28398. #define BIT_SHIFT_BK_TRIGGER_NUM 8
  28399. #define BIT_MASK_BK_TRIGGER_NUM 0xf
  28400. #define BIT_BK_TRIGGER_NUM(x) \
  28401. (((x) & BIT_MASK_BK_TRIGGER_NUM) << BIT_SHIFT_BK_TRIGGER_NUM)
  28402. #define BITS_BK_TRIGGER_NUM \
  28403. (BIT_MASK_BK_TRIGGER_NUM << BIT_SHIFT_BK_TRIGGER_NUM)
  28404. #define BIT_CLEAR_BK_TRIGGER_NUM(x) ((x) & (~BITS_BK_TRIGGER_NUM))
  28405. #define BIT_GET_BK_TRIGGER_NUM(x) \
  28406. (((x) >> BIT_SHIFT_BK_TRIGGER_NUM) & BIT_MASK_BK_TRIGGER_NUM)
  28407. #define BIT_SET_BK_TRIGGER_NUM(x, v) \
  28408. (BIT_CLEAR_BK_TRIGGER_NUM(x) | BIT_BK_TRIGGER_NUM(v))
  28409. #endif
  28410. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28411. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28412. #define BIT_SHIFT_VI_TRIGGER_NUM 4
  28413. #define BIT_MASK_VI_TRIGGER_NUM 0xf
  28414. #define BIT_VI_TRIGGER_NUM(x) \
  28415. (((x) & BIT_MASK_VI_TRIGGER_NUM) << BIT_SHIFT_VI_TRIGGER_NUM)
  28416. #define BITS_VI_TRIGGER_NUM \
  28417. (BIT_MASK_VI_TRIGGER_NUM << BIT_SHIFT_VI_TRIGGER_NUM)
  28418. #define BIT_CLEAR_VI_TRIGGER_NUM(x) ((x) & (~BITS_VI_TRIGGER_NUM))
  28419. #define BIT_GET_VI_TRIGGER_NUM(x) \
  28420. (((x) >> BIT_SHIFT_VI_TRIGGER_NUM) & BIT_MASK_VI_TRIGGER_NUM)
  28421. #define BIT_SET_VI_TRIGGER_NUM(x, v) \
  28422. (BIT_CLEAR_VI_TRIGGER_NUM(x) | BIT_VI_TRIGGER_NUM(v))
  28423. #endif
  28424. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28425. /* 2 REG_MAX_INTER_COLLISION_CNT (Offset 0x053C) */
  28426. #define BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI 4
  28427. #define BIT_MASK_MAX_INTER_COLLISION_CNT_VI 0xf
  28428. #define BIT_MAX_INTER_COLLISION_CNT_VI(x) \
  28429. (((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_VI) \
  28430. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI)
  28431. #define BITS_MAX_INTER_COLLISION_CNT_VI \
  28432. (BIT_MASK_MAX_INTER_COLLISION_CNT_VI \
  28433. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI)
  28434. #define BIT_CLEAR_MAX_INTER_COLLISION_CNT_VI(x) \
  28435. ((x) & (~BITS_MAX_INTER_COLLISION_CNT_VI))
  28436. #define BIT_GET_MAX_INTER_COLLISION_CNT_VI(x) \
  28437. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI) & \
  28438. BIT_MASK_MAX_INTER_COLLISION_CNT_VI)
  28439. #define BIT_SET_MAX_INTER_COLLISION_CNT_VI(x, v) \
  28440. (BIT_CLEAR_MAX_INTER_COLLISION_CNT_VI(x) | \
  28441. BIT_MAX_INTER_COLLISION_CNT_VI(v))
  28442. #endif
  28443. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  28444. /* 2 REG_QUEUE_INCOL_EN (Offset 0x053C) */
  28445. #define BIT_SHIFT_VO_TRIGGER_NUM 0
  28446. #define BIT_MASK_VO_TRIGGER_NUM 0xf
  28447. #define BIT_VO_TRIGGER_NUM(x) \
  28448. (((x) & BIT_MASK_VO_TRIGGER_NUM) << BIT_SHIFT_VO_TRIGGER_NUM)
  28449. #define BITS_VO_TRIGGER_NUM \
  28450. (BIT_MASK_VO_TRIGGER_NUM << BIT_SHIFT_VO_TRIGGER_NUM)
  28451. #define BIT_CLEAR_VO_TRIGGER_NUM(x) ((x) & (~BITS_VO_TRIGGER_NUM))
  28452. #define BIT_GET_VO_TRIGGER_NUM(x) \
  28453. (((x) >> BIT_SHIFT_VO_TRIGGER_NUM) & BIT_MASK_VO_TRIGGER_NUM)
  28454. #define BIT_SET_VO_TRIGGER_NUM(x, v) \
  28455. (BIT_CLEAR_VO_TRIGGER_NUM(x) | BIT_VO_TRIGGER_NUM(v))
  28456. #endif
  28457. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28458. /* 2 REG_MAX_INTER_COLLISION_CNT (Offset 0x053C) */
  28459. #define BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO 0
  28460. #define BIT_MASK_MAX_INTER_COLLISION_CNT_VO 0xf
  28461. #define BIT_MAX_INTER_COLLISION_CNT_VO(x) \
  28462. (((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_VO) \
  28463. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO)
  28464. #define BITS_MAX_INTER_COLLISION_CNT_VO \
  28465. (BIT_MASK_MAX_INTER_COLLISION_CNT_VO \
  28466. << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO)
  28467. #define BIT_CLEAR_MAX_INTER_COLLISION_CNT_VO(x) \
  28468. ((x) & (~BITS_MAX_INTER_COLLISION_CNT_VO))
  28469. #define BIT_GET_MAX_INTER_COLLISION_CNT_VO(x) \
  28470. (((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO) & \
  28471. BIT_MASK_MAX_INTER_COLLISION_CNT_VO)
  28472. #define BIT_SET_MAX_INTER_COLLISION_CNT_VO(x, v) \
  28473. (BIT_CLEAR_MAX_INTER_COLLISION_CNT_VO(x) | \
  28474. BIT_MAX_INTER_COLLISION_CNT_VO(v))
  28475. #endif
  28476. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28477. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28478. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28479. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28480. /* 2 REG_TBTT_PROHIBIT (Offset 0x0540) */
  28481. #define BIT_SHIFT_TBTT_HOLD_TIME_AP 8
  28482. #define BIT_MASK_TBTT_HOLD_TIME_AP 0xfff
  28483. #define BIT_TBTT_HOLD_TIME_AP(x) \
  28484. (((x) & BIT_MASK_TBTT_HOLD_TIME_AP) << BIT_SHIFT_TBTT_HOLD_TIME_AP)
  28485. #define BITS_TBTT_HOLD_TIME_AP \
  28486. (BIT_MASK_TBTT_HOLD_TIME_AP << BIT_SHIFT_TBTT_HOLD_TIME_AP)
  28487. #define BIT_CLEAR_TBTT_HOLD_TIME_AP(x) ((x) & (~BITS_TBTT_HOLD_TIME_AP))
  28488. #define BIT_GET_TBTT_HOLD_TIME_AP(x) \
  28489. (((x) >> BIT_SHIFT_TBTT_HOLD_TIME_AP) & BIT_MASK_TBTT_HOLD_TIME_AP)
  28490. #define BIT_SET_TBTT_HOLD_TIME_AP(x, v) \
  28491. (BIT_CLEAR_TBTT_HOLD_TIME_AP(x) | BIT_TBTT_HOLD_TIME_AP(v))
  28492. #endif
  28493. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28494. /* 2 REG_TBTT_PROHIBIT (Offset 0x0540) */
  28495. #define BIT_SHIFT_TBTT_HOLD_TIME_INFRA 4
  28496. #define BIT_MASK_TBTT_HOLD_TIME_INFRA 0xf
  28497. #define BIT_TBTT_HOLD_TIME_INFRA(x) \
  28498. (((x) & BIT_MASK_TBTT_HOLD_TIME_INFRA) \
  28499. << BIT_SHIFT_TBTT_HOLD_TIME_INFRA)
  28500. #define BITS_TBTT_HOLD_TIME_INFRA \
  28501. (BIT_MASK_TBTT_HOLD_TIME_INFRA << BIT_SHIFT_TBTT_HOLD_TIME_INFRA)
  28502. #define BIT_CLEAR_TBTT_HOLD_TIME_INFRA(x) ((x) & (~BITS_TBTT_HOLD_TIME_INFRA))
  28503. #define BIT_GET_TBTT_HOLD_TIME_INFRA(x) \
  28504. (((x) >> BIT_SHIFT_TBTT_HOLD_TIME_INFRA) & \
  28505. BIT_MASK_TBTT_HOLD_TIME_INFRA)
  28506. #define BIT_SET_TBTT_HOLD_TIME_INFRA(x, v) \
  28507. (BIT_CLEAR_TBTT_HOLD_TIME_INFRA(x) | BIT_TBTT_HOLD_TIME_INFRA(v))
  28508. #endif
  28509. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28510. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28511. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  28512. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28513. /* 2 REG_P2PPS_STATE (Offset 0x0543) */
  28514. #define BIT_POWER_STATE BIT(7)
  28515. #define BIT_CTWINDOW_ON BIT(6)
  28516. #define BIT_BEACON_AREA_ON BIT(5)
  28517. #define BIT_CTWIN_EARLY_DISTX BIT(4)
  28518. #define BIT_NOA1_OFF_PERIOD BIT(3)
  28519. #define BIT_FORCE_DOZE1 BIT(2)
  28520. #define BIT_NOA0_OFF_PERIOD BIT(1)
  28521. #define BIT_FORCE_DOZE0 BIT(0)
  28522. /* 2 REG_RD_NAV_NXT (Offset 0x0544) */
  28523. #define BIT_SHIFT_RD_NAV_PROT_NXT 0
  28524. #define BIT_MASK_RD_NAV_PROT_NXT 0xffff
  28525. #define BIT_RD_NAV_PROT_NXT(x) \
  28526. (((x) & BIT_MASK_RD_NAV_PROT_NXT) << BIT_SHIFT_RD_NAV_PROT_NXT)
  28527. #define BITS_RD_NAV_PROT_NXT \
  28528. (BIT_MASK_RD_NAV_PROT_NXT << BIT_SHIFT_RD_NAV_PROT_NXT)
  28529. #define BIT_CLEAR_RD_NAV_PROT_NXT(x) ((x) & (~BITS_RD_NAV_PROT_NXT))
  28530. #define BIT_GET_RD_NAV_PROT_NXT(x) \
  28531. (((x) >> BIT_SHIFT_RD_NAV_PROT_NXT) & BIT_MASK_RD_NAV_PROT_NXT)
  28532. #define BIT_SET_RD_NAV_PROT_NXT(x, v) \
  28533. (BIT_CLEAR_RD_NAV_PROT_NXT(x) | BIT_RD_NAV_PROT_NXT(v))
  28534. /* 2 REG_NAV_PROT_LEN (Offset 0x0546) */
  28535. #define BIT_SHIFT_NAV_PROT_LEN 0
  28536. #define BIT_MASK_NAV_PROT_LEN 0xffff
  28537. #define BIT_NAV_PROT_LEN(x) \
  28538. (((x) & BIT_MASK_NAV_PROT_LEN) << BIT_SHIFT_NAV_PROT_LEN)
  28539. #define BITS_NAV_PROT_LEN (BIT_MASK_NAV_PROT_LEN << BIT_SHIFT_NAV_PROT_LEN)
  28540. #define BIT_CLEAR_NAV_PROT_LEN(x) ((x) & (~BITS_NAV_PROT_LEN))
  28541. #define BIT_GET_NAV_PROT_LEN(x) \
  28542. (((x) >> BIT_SHIFT_NAV_PROT_LEN) & BIT_MASK_NAV_PROT_LEN)
  28543. #define BIT_SET_NAV_PROT_LEN(x, v) \
  28544. (BIT_CLEAR_NAV_PROT_LEN(x) | BIT_NAV_PROT_LEN(v))
  28545. #endif
  28546. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28547. /* 2 REG_FTM_CTRL (Offset 0x0548) */
  28548. #define BIT_SHIFT_FTM_TSF_R2T_PORT 22
  28549. #define BIT_MASK_FTM_TSF_R2T_PORT 0x7
  28550. #define BIT_FTM_TSF_R2T_PORT(x) \
  28551. (((x) & BIT_MASK_FTM_TSF_R2T_PORT) << BIT_SHIFT_FTM_TSF_R2T_PORT)
  28552. #define BITS_FTM_TSF_R2T_PORT \
  28553. (BIT_MASK_FTM_TSF_R2T_PORT << BIT_SHIFT_FTM_TSF_R2T_PORT)
  28554. #define BIT_CLEAR_FTM_TSF_R2T_PORT(x) ((x) & (~BITS_FTM_TSF_R2T_PORT))
  28555. #define BIT_GET_FTM_TSF_R2T_PORT(x) \
  28556. (((x) >> BIT_SHIFT_FTM_TSF_R2T_PORT) & BIT_MASK_FTM_TSF_R2T_PORT)
  28557. #define BIT_SET_FTM_TSF_R2T_PORT(x, v) \
  28558. (BIT_CLEAR_FTM_TSF_R2T_PORT(x) | BIT_FTM_TSF_R2T_PORT(v))
  28559. #endif
  28560. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28561. /* 2 REG_FTM_PTT (Offset 0x0548) */
  28562. #define BIT_SHIFT_FTM_PTT_TSF_R2T_SEL 22
  28563. #define BIT_MASK_FTM_PTT_TSF_R2T_SEL 0x7
  28564. #define BIT_FTM_PTT_TSF_R2T_SEL(x) \
  28565. (((x) & BIT_MASK_FTM_PTT_TSF_R2T_SEL) << BIT_SHIFT_FTM_PTT_TSF_R2T_SEL)
  28566. #define BITS_FTM_PTT_TSF_R2T_SEL \
  28567. (BIT_MASK_FTM_PTT_TSF_R2T_SEL << BIT_SHIFT_FTM_PTT_TSF_R2T_SEL)
  28568. #define BIT_CLEAR_FTM_PTT_TSF_R2T_SEL(x) ((x) & (~BITS_FTM_PTT_TSF_R2T_SEL))
  28569. #define BIT_GET_FTM_PTT_TSF_R2T_SEL(x) \
  28570. (((x) >> BIT_SHIFT_FTM_PTT_TSF_R2T_SEL) & BIT_MASK_FTM_PTT_TSF_R2T_SEL)
  28571. #define BIT_SET_FTM_PTT_TSF_R2T_SEL(x, v) \
  28572. (BIT_CLEAR_FTM_PTT_TSF_R2T_SEL(x) | BIT_FTM_PTT_TSF_R2T_SEL(v))
  28573. #endif
  28574. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28575. /* 2 REG_FTM_CTRL (Offset 0x0548) */
  28576. #define BIT_SHIFT_FTM_TSF_T2R_PORT 19
  28577. #define BIT_MASK_FTM_TSF_T2R_PORT 0x7
  28578. #define BIT_FTM_TSF_T2R_PORT(x) \
  28579. (((x) & BIT_MASK_FTM_TSF_T2R_PORT) << BIT_SHIFT_FTM_TSF_T2R_PORT)
  28580. #define BITS_FTM_TSF_T2R_PORT \
  28581. (BIT_MASK_FTM_TSF_T2R_PORT << BIT_SHIFT_FTM_TSF_T2R_PORT)
  28582. #define BIT_CLEAR_FTM_TSF_T2R_PORT(x) ((x) & (~BITS_FTM_TSF_T2R_PORT))
  28583. #define BIT_GET_FTM_TSF_T2R_PORT(x) \
  28584. (((x) >> BIT_SHIFT_FTM_TSF_T2R_PORT) & BIT_MASK_FTM_TSF_T2R_PORT)
  28585. #define BIT_SET_FTM_TSF_T2R_PORT(x, v) \
  28586. (BIT_CLEAR_FTM_TSF_T2R_PORT(x) | BIT_FTM_TSF_T2R_PORT(v))
  28587. #endif
  28588. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28589. /* 2 REG_FTM_PTT (Offset 0x0548) */
  28590. #define BIT_SHIFT_FTM_PTT_TSF_T2R_SEL 19
  28591. #define BIT_MASK_FTM_PTT_TSF_T2R_SEL 0x7
  28592. #define BIT_FTM_PTT_TSF_T2R_SEL(x) \
  28593. (((x) & BIT_MASK_FTM_PTT_TSF_T2R_SEL) << BIT_SHIFT_FTM_PTT_TSF_T2R_SEL)
  28594. #define BITS_FTM_PTT_TSF_T2R_SEL \
  28595. (BIT_MASK_FTM_PTT_TSF_T2R_SEL << BIT_SHIFT_FTM_PTT_TSF_T2R_SEL)
  28596. #define BIT_CLEAR_FTM_PTT_TSF_T2R_SEL(x) ((x) & (~BITS_FTM_PTT_TSF_T2R_SEL))
  28597. #define BIT_GET_FTM_PTT_TSF_T2R_SEL(x) \
  28598. (((x) >> BIT_SHIFT_FTM_PTT_TSF_T2R_SEL) & BIT_MASK_FTM_PTT_TSF_T2R_SEL)
  28599. #define BIT_SET_FTM_PTT_TSF_T2R_SEL(x, v) \
  28600. (BIT_CLEAR_FTM_PTT_TSF_T2R_SEL(x) | BIT_FTM_PTT_TSF_T2R_SEL(v))
  28601. #endif
  28602. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28603. /* 2 REG_FTM_CTRL (Offset 0x0548) */
  28604. #define BIT_SHIFT_FTM_PTT_PORT 16
  28605. #define BIT_MASK_FTM_PTT_PORT 0x7
  28606. #define BIT_FTM_PTT_PORT(x) \
  28607. (((x) & BIT_MASK_FTM_PTT_PORT) << BIT_SHIFT_FTM_PTT_PORT)
  28608. #define BITS_FTM_PTT_PORT (BIT_MASK_FTM_PTT_PORT << BIT_SHIFT_FTM_PTT_PORT)
  28609. #define BIT_CLEAR_FTM_PTT_PORT(x) ((x) & (~BITS_FTM_PTT_PORT))
  28610. #define BIT_GET_FTM_PTT_PORT(x) \
  28611. (((x) >> BIT_SHIFT_FTM_PTT_PORT) & BIT_MASK_FTM_PTT_PORT)
  28612. #define BIT_SET_FTM_PTT_PORT(x, v) \
  28613. (BIT_CLEAR_FTM_PTT_PORT(x) | BIT_FTM_PTT_PORT(v))
  28614. #endif
  28615. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28616. /* 2 REG_FTM_PTT (Offset 0x0548) */
  28617. #define BIT_SHIFT_FTM_PTT_TSF_SEL 16
  28618. #define BIT_MASK_FTM_PTT_TSF_SEL 0x7
  28619. #define BIT_FTM_PTT_TSF_SEL(x) \
  28620. (((x) & BIT_MASK_FTM_PTT_TSF_SEL) << BIT_SHIFT_FTM_PTT_TSF_SEL)
  28621. #define BITS_FTM_PTT_TSF_SEL \
  28622. (BIT_MASK_FTM_PTT_TSF_SEL << BIT_SHIFT_FTM_PTT_TSF_SEL)
  28623. #define BIT_CLEAR_FTM_PTT_TSF_SEL(x) ((x) & (~BITS_FTM_PTT_TSF_SEL))
  28624. #define BIT_GET_FTM_PTT_TSF_SEL(x) \
  28625. (((x) >> BIT_SHIFT_FTM_PTT_TSF_SEL) & BIT_MASK_FTM_PTT_TSF_SEL)
  28626. #define BIT_SET_FTM_PTT_TSF_SEL(x, v) \
  28627. (BIT_CLEAR_FTM_PTT_TSF_SEL(x) | BIT_FTM_PTT_TSF_SEL(v))
  28628. #endif
  28629. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28630. /* 2 REG_FTM_CTRL (Offset 0x0548) */
  28631. #define BIT_SHIFT_FTM_PTT 0
  28632. #define BIT_MASK_FTM_PTT 0xffff
  28633. #define BIT_FTM_PTT(x) (((x) & BIT_MASK_FTM_PTT) << BIT_SHIFT_FTM_PTT)
  28634. #define BITS_FTM_PTT (BIT_MASK_FTM_PTT << BIT_SHIFT_FTM_PTT)
  28635. #define BIT_CLEAR_FTM_PTT(x) ((x) & (~BITS_FTM_PTT))
  28636. #define BIT_GET_FTM_PTT(x) (((x) >> BIT_SHIFT_FTM_PTT) & BIT_MASK_FTM_PTT)
  28637. #define BIT_SET_FTM_PTT(x, v) (BIT_CLEAR_FTM_PTT(x) | BIT_FTM_PTT(v))
  28638. #endif
  28639. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28640. /* 2 REG_FTM_PTT (Offset 0x0548) */
  28641. #define BIT_SHIFT_FTM_PTT_VALUE 0
  28642. #define BIT_MASK_FTM_PTT_VALUE 0xffff
  28643. #define BIT_FTM_PTT_VALUE(x) \
  28644. (((x) & BIT_MASK_FTM_PTT_VALUE) << BIT_SHIFT_FTM_PTT_VALUE)
  28645. #define BITS_FTM_PTT_VALUE (BIT_MASK_FTM_PTT_VALUE << BIT_SHIFT_FTM_PTT_VALUE)
  28646. #define BIT_CLEAR_FTM_PTT_VALUE(x) ((x) & (~BITS_FTM_PTT_VALUE))
  28647. #define BIT_GET_FTM_PTT_VALUE(x) \
  28648. (((x) >> BIT_SHIFT_FTM_PTT_VALUE) & BIT_MASK_FTM_PTT_VALUE)
  28649. #define BIT_SET_FTM_PTT_VALUE(x, v) \
  28650. (BIT_CLEAR_FTM_PTT_VALUE(x) | BIT_FTM_PTT_VALUE(v))
  28651. #endif
  28652. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28653. /* 2 REG_FTM_TSF_CNT (Offset 0x054C) */
  28654. #define BIT_SHIFT_FTM_TSF_R2T 16
  28655. #define BIT_MASK_FTM_TSF_R2T 0xffff
  28656. #define BIT_FTM_TSF_R2T(x) \
  28657. (((x) & BIT_MASK_FTM_TSF_R2T) << BIT_SHIFT_FTM_TSF_R2T)
  28658. #define BITS_FTM_TSF_R2T (BIT_MASK_FTM_TSF_R2T << BIT_SHIFT_FTM_TSF_R2T)
  28659. #define BIT_CLEAR_FTM_TSF_R2T(x) ((x) & (~BITS_FTM_TSF_R2T))
  28660. #define BIT_GET_FTM_TSF_R2T(x) \
  28661. (((x) >> BIT_SHIFT_FTM_TSF_R2T) & BIT_MASK_FTM_TSF_R2T)
  28662. #define BIT_SET_FTM_TSF_R2T(x, v) \
  28663. (BIT_CLEAR_FTM_TSF_R2T(x) | BIT_FTM_TSF_R2T(v))
  28664. #endif
  28665. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28666. /* 2 REG_FTM_TSF (Offset 0x054C) */
  28667. #define BIT_SHIFT_FTM_T2_TSF 16
  28668. #define BIT_MASK_FTM_T2_TSF 0xffff
  28669. #define BIT_FTM_T2_TSF(x) (((x) & BIT_MASK_FTM_T2_TSF) << BIT_SHIFT_FTM_T2_TSF)
  28670. #define BITS_FTM_T2_TSF (BIT_MASK_FTM_T2_TSF << BIT_SHIFT_FTM_T2_TSF)
  28671. #define BIT_CLEAR_FTM_T2_TSF(x) ((x) & (~BITS_FTM_T2_TSF))
  28672. #define BIT_GET_FTM_T2_TSF(x) \
  28673. (((x) >> BIT_SHIFT_FTM_T2_TSF) & BIT_MASK_FTM_T2_TSF)
  28674. #define BIT_SET_FTM_T2_TSF(x, v) (BIT_CLEAR_FTM_T2_TSF(x) | BIT_FTM_T2_TSF(v))
  28675. #endif
  28676. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  28677. /* 2 REG_FTM_TSF_CNT (Offset 0x054C) */
  28678. #define BIT_SHIFT_FTM_TSF_T2R 0
  28679. #define BIT_MASK_FTM_TSF_T2R 0xffff
  28680. #define BIT_FTM_TSF_T2R(x) \
  28681. (((x) & BIT_MASK_FTM_TSF_T2R) << BIT_SHIFT_FTM_TSF_T2R)
  28682. #define BITS_FTM_TSF_T2R (BIT_MASK_FTM_TSF_T2R << BIT_SHIFT_FTM_TSF_T2R)
  28683. #define BIT_CLEAR_FTM_TSF_T2R(x) ((x) & (~BITS_FTM_TSF_T2R))
  28684. #define BIT_GET_FTM_TSF_T2R(x) \
  28685. (((x) >> BIT_SHIFT_FTM_TSF_T2R) & BIT_MASK_FTM_TSF_T2R)
  28686. #define BIT_SET_FTM_TSF_T2R(x, v) \
  28687. (BIT_CLEAR_FTM_TSF_T2R(x) | BIT_FTM_TSF_T2R(v))
  28688. #endif
  28689. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  28690. /* 2 REG_FTM_TSF (Offset 0x054C) */
  28691. #define BIT_SHIFT_FTM_T1_TSF 0
  28692. #define BIT_MASK_FTM_T1_TSF 0xffff
  28693. #define BIT_FTM_T1_TSF(x) (((x) & BIT_MASK_FTM_T1_TSF) << BIT_SHIFT_FTM_T1_TSF)
  28694. #define BITS_FTM_T1_TSF (BIT_MASK_FTM_T1_TSF << BIT_SHIFT_FTM_T1_TSF)
  28695. #define BIT_CLEAR_FTM_T1_TSF(x) ((x) & (~BITS_FTM_T1_TSF))
  28696. #define BIT_GET_FTM_T1_TSF(x) \
  28697. (((x) >> BIT_SHIFT_FTM_T1_TSF) & BIT_MASK_FTM_T1_TSF)
  28698. #define BIT_SET_FTM_T1_TSF(x, v) (BIT_CLEAR_FTM_T1_TSF(x) | BIT_FTM_T1_TSF(v))
  28699. #endif
  28700. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28701. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28702. /* 2 REG_BCN_CTRL (Offset 0x0550) */
  28703. #define BIT_P0_EN_TXBCN_RPT BIT(5)
  28704. #endif
  28705. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28706. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28707. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28708. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28709. /* 2 REG_BCN_CTRL (Offset 0x0550) */
  28710. #define BIT_EN_BCN_FUNCTION BIT(3)
  28711. #endif
  28712. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28713. HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  28714. /* 2 REG_BCN_CTRL (Offset 0x0550) */
  28715. #define BIT_EN_TXBCN_RPT BIT(2)
  28716. #endif
  28717. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28718. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28719. /* 2 REG_BCN_CTRL (Offset 0x0550) */
  28720. #define BIT_P0_EN_RXBCN_RPT BIT(2)
  28721. #endif
  28722. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28723. /* 2 REG_BCN_CTRL (Offset 0x0550) */
  28724. #define BIT_DIS_BCNQ_SUB BIT(1)
  28725. /* 2 REG_BCN_CTRL1 (Offset 0x0551) */
  28726. #define BIT_DIS_RX_BSSID_FIT1 BIT(6)
  28727. #endif
  28728. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28729. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28730. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28731. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28732. #define BIT_CLI0_DIS_RX_BSSID_FIT BIT(6)
  28733. #endif
  28734. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28735. /* 2 REG_BCN_CTRL1 (Offset 0x0551) */
  28736. #define BIT_DIS_TSF1_UDT BIT(4)
  28737. #endif
  28738. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28739. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28740. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28741. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28742. #define BIT_CLI0_DIS_TSF_UDT BIT(4)
  28743. #endif
  28744. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28745. /* 2 REG_BCN_CTRL1 (Offset 0x0551) */
  28746. #define BIT_EN_BCN1_FUNCTION BIT(3)
  28747. #endif
  28748. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28749. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28750. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28751. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28752. #define BIT_CLI0_EN_BCN_FUNCTION BIT(3)
  28753. #endif
  28754. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28755. /* 2 REG_BCN_CTRL1 (Offset 0x0551) */
  28756. #define BIT_EN_TXBCN1_RPT BIT(2)
  28757. #endif
  28758. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28759. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28760. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28761. #define BIT_CLI0_EN_RXBCN_RPT BIT(2)
  28762. #endif
  28763. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  28764. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28765. #define BIT_CLI0_EN_BCN_RPT BIT(2)
  28766. #endif
  28767. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28768. /* 2 REG_BCN_CTRL1 (Offset 0x0551) */
  28769. #define BIT_DIS_BCNQ1_SUB BIT(1)
  28770. #endif
  28771. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28772. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28773. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28774. /* 2 REG_BCN_CTRL_CLINT0 (Offset 0x0551) */
  28775. #define BIT_CLI0_ENP2P_CTWINDOW BIT(1)
  28776. #define BIT_CLI0_ENP2P_BCNQ_AREA BIT(0)
  28777. #endif
  28778. #if (HALMAC_8198F_SUPPORT)
  28779. /* 2 REG_MBID_NUM (Offset 0x0552) */
  28780. #define BIT_SHIFT_MBID_BCN_NUM_V2 4
  28781. #define BIT_MASK_MBID_BCN_NUM_V2 0xf
  28782. #define BIT_MBID_BCN_NUM_V2(x) \
  28783. (((x) & BIT_MASK_MBID_BCN_NUM_V2) << BIT_SHIFT_MBID_BCN_NUM_V2)
  28784. #define BITS_MBID_BCN_NUM_V2 \
  28785. (BIT_MASK_MBID_BCN_NUM_V2 << BIT_SHIFT_MBID_BCN_NUM_V2)
  28786. #define BIT_CLEAR_MBID_BCN_NUM_V2(x) ((x) & (~BITS_MBID_BCN_NUM_V2))
  28787. #define BIT_GET_MBID_BCN_NUM_V2(x) \
  28788. (((x) >> BIT_SHIFT_MBID_BCN_NUM_V2) & BIT_MASK_MBID_BCN_NUM_V2)
  28789. #define BIT_SET_MBID_BCN_NUM_V2(x, v) \
  28790. (BIT_CLEAR_MBID_BCN_NUM_V2(x) | BIT_MBID_BCN_NUM_V2(v))
  28791. #endif
  28792. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28793. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28794. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28795. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28796. /* 2 REG_MBID_NUM (Offset 0x0552) */
  28797. #define BIT_EN_PRE_DL_BEACON BIT(3)
  28798. #endif
  28799. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28800. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  28801. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  28802. HALMAC_8881A_SUPPORT)
  28803. /* 2 REG_MBID_NUM (Offset 0x0552) */
  28804. #define BIT_SHIFT_MBID_BCN_NUM 0
  28805. #define BIT_MASK_MBID_BCN_NUM 0x7
  28806. #define BIT_MBID_BCN_NUM(x) \
  28807. (((x) & BIT_MASK_MBID_BCN_NUM) << BIT_SHIFT_MBID_BCN_NUM)
  28808. #define BITS_MBID_BCN_NUM (BIT_MASK_MBID_BCN_NUM << BIT_SHIFT_MBID_BCN_NUM)
  28809. #define BIT_CLEAR_MBID_BCN_NUM(x) ((x) & (~BITS_MBID_BCN_NUM))
  28810. #define BIT_GET_MBID_BCN_NUM(x) \
  28811. (((x) >> BIT_SHIFT_MBID_BCN_NUM) & BIT_MASK_MBID_BCN_NUM)
  28812. #define BIT_SET_MBID_BCN_NUM(x, v) \
  28813. (BIT_CLEAR_MBID_BCN_NUM(x) | BIT_MBID_BCN_NUM(v))
  28814. #endif
  28815. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28816. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28817. #define BIT_P2P_PWR_RST1 BIT(6)
  28818. #define BIT_SCHEDULER_RST BIT(5)
  28819. #endif
  28820. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28821. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28822. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28823. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28824. #define BIT_FREECNT_RST BIT(5)
  28825. #endif
  28826. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28827. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28828. #define BIT_P2P_PWR_RST0 BIT(4)
  28829. #endif
  28830. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28831. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28832. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28833. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28834. #define BIT_TSFTR_CLI3_RST BIT(4)
  28835. #endif
  28836. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28837. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28838. #define BIT_TSFTR1_SYNC_EN BIT(3)
  28839. #endif
  28840. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28841. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28842. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28843. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28844. #define BIT_TSFTR_CLI2_RST BIT(3)
  28845. #endif
  28846. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28847. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28848. #define BIT_TSFTR_SYNC_EN BIT(2)
  28849. #endif
  28850. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28851. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28852. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28853. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28854. #define BIT_TSFTR_CLI1_RST BIT(2)
  28855. #endif
  28856. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28857. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28858. #define BIT_TSFTR1_RST BIT(1)
  28859. #endif
  28860. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28861. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28862. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28863. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28864. #define BIT_TSFTR_CLI0_RST BIT(1)
  28865. #endif
  28866. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28867. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28868. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28869. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28870. /* 2 REG_DUAL_TSF_RST (Offset 0x0553) */
  28871. #define BIT_TSFTR_RST BIT(0)
  28872. #endif
  28873. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28874. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28875. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28876. /* 2 REG_MBSSID_BCN_SPACE (Offset 0x0554) */
  28877. #define BIT_SHIFT_BCN_TIMER_SEL_FWRD 28
  28878. #define BIT_MASK_BCN_TIMER_SEL_FWRD 0x7
  28879. #define BIT_BCN_TIMER_SEL_FWRD(x) \
  28880. (((x) & BIT_MASK_BCN_TIMER_SEL_FWRD) << BIT_SHIFT_BCN_TIMER_SEL_FWRD)
  28881. #define BITS_BCN_TIMER_SEL_FWRD \
  28882. (BIT_MASK_BCN_TIMER_SEL_FWRD << BIT_SHIFT_BCN_TIMER_SEL_FWRD)
  28883. #define BIT_CLEAR_BCN_TIMER_SEL_FWRD(x) ((x) & (~BITS_BCN_TIMER_SEL_FWRD))
  28884. #define BIT_GET_BCN_TIMER_SEL_FWRD(x) \
  28885. (((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD) & BIT_MASK_BCN_TIMER_SEL_FWRD)
  28886. #define BIT_SET_BCN_TIMER_SEL_FWRD(x, v) \
  28887. (BIT_CLEAR_BCN_TIMER_SEL_FWRD(x) | BIT_BCN_TIMER_SEL_FWRD(v))
  28888. #endif
  28889. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  28890. /* 2 REG_MBSSID_BCN_SPACE (Offset 0x0554) */
  28891. #define BIT_SHIFT_BCN_SPACE1 16
  28892. #define BIT_MASK_BCN_SPACE1 0xffff
  28893. #define BIT_BCN_SPACE1(x) (((x) & BIT_MASK_BCN_SPACE1) << BIT_SHIFT_BCN_SPACE1)
  28894. #define BITS_BCN_SPACE1 (BIT_MASK_BCN_SPACE1 << BIT_SHIFT_BCN_SPACE1)
  28895. #define BIT_CLEAR_BCN_SPACE1(x) ((x) & (~BITS_BCN_SPACE1))
  28896. #define BIT_GET_BCN_SPACE1(x) \
  28897. (((x) >> BIT_SHIFT_BCN_SPACE1) & BIT_MASK_BCN_SPACE1)
  28898. #define BIT_SET_BCN_SPACE1(x, v) (BIT_CLEAR_BCN_SPACE1(x) | BIT_BCN_SPACE1(v))
  28899. #endif
  28900. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  28901. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  28902. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28903. /* 2 REG_MBSSID_BCN_SPACE (Offset 0x0554) */
  28904. #define BIT_SHIFT_BCN_SPACE_CLINT0 16
  28905. #define BIT_MASK_BCN_SPACE_CLINT0 0xfff
  28906. #define BIT_BCN_SPACE_CLINT0(x) \
  28907. (((x) & BIT_MASK_BCN_SPACE_CLINT0) << BIT_SHIFT_BCN_SPACE_CLINT0)
  28908. #define BITS_BCN_SPACE_CLINT0 \
  28909. (BIT_MASK_BCN_SPACE_CLINT0 << BIT_SHIFT_BCN_SPACE_CLINT0)
  28910. #define BIT_CLEAR_BCN_SPACE_CLINT0(x) ((x) & (~BITS_BCN_SPACE_CLINT0))
  28911. #define BIT_GET_BCN_SPACE_CLINT0(x) \
  28912. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT0) & BIT_MASK_BCN_SPACE_CLINT0)
  28913. #define BIT_SET_BCN_SPACE_CLINT0(x, v) \
  28914. (BIT_CLEAR_BCN_SPACE_CLINT0(x) | BIT_BCN_SPACE_CLINT0(v))
  28915. #endif
  28916. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28917. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28918. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  28919. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28920. /* 2 REG_MBSSID_BCN_SPACE (Offset 0x0554) */
  28921. #define BIT_SHIFT_BCN_SPACE0 0
  28922. #define BIT_MASK_BCN_SPACE0 0xffff
  28923. #define BIT_BCN_SPACE0(x) (((x) & BIT_MASK_BCN_SPACE0) << BIT_SHIFT_BCN_SPACE0)
  28924. #define BITS_BCN_SPACE0 (BIT_MASK_BCN_SPACE0 << BIT_SHIFT_BCN_SPACE0)
  28925. #define BIT_CLEAR_BCN_SPACE0(x) ((x) & (~BITS_BCN_SPACE0))
  28926. #define BIT_GET_BCN_SPACE0(x) \
  28927. (((x) >> BIT_SHIFT_BCN_SPACE0) & BIT_MASK_BCN_SPACE0)
  28928. #define BIT_SET_BCN_SPACE0(x, v) (BIT_CLEAR_BCN_SPACE0(x) | BIT_BCN_SPACE0(v))
  28929. #endif
  28930. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  28931. /* 2 REG_ATIMWND (Offset 0x055A) */
  28932. #define BIT_SHIFT_ATIMWND 0
  28933. #define BIT_MASK_ATIMWND 0xffff
  28934. #define BIT_ATIMWND(x) (((x) & BIT_MASK_ATIMWND) << BIT_SHIFT_ATIMWND)
  28935. #define BITS_ATIMWND (BIT_MASK_ATIMWND << BIT_SHIFT_ATIMWND)
  28936. #define BIT_CLEAR_ATIMWND(x) ((x) & (~BITS_ATIMWND))
  28937. #define BIT_GET_ATIMWND(x) (((x) >> BIT_SHIFT_ATIMWND) & BIT_MASK_ATIMWND)
  28938. #define BIT_SET_ATIMWND(x, v) (BIT_CLEAR_ATIMWND(x) | BIT_ATIMWND(v))
  28939. #endif
  28940. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  28941. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  28942. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  28943. /* 2 REG_ATIMWND (Offset 0x055A) */
  28944. #define BIT_SHIFT_ATIMWND0 0
  28945. #define BIT_MASK_ATIMWND0 0xffff
  28946. #define BIT_ATIMWND0(x) (((x) & BIT_MASK_ATIMWND0) << BIT_SHIFT_ATIMWND0)
  28947. #define BITS_ATIMWND0 (BIT_MASK_ATIMWND0 << BIT_SHIFT_ATIMWND0)
  28948. #define BIT_CLEAR_ATIMWND0(x) ((x) & (~BITS_ATIMWND0))
  28949. #define BIT_GET_ATIMWND0(x) (((x) >> BIT_SHIFT_ATIMWND0) & BIT_MASK_ATIMWND0)
  28950. #define BIT_SET_ATIMWND0(x, v) (BIT_CLEAR_ATIMWND0(x) | BIT_ATIMWND0(v))
  28951. #endif
  28952. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  28953. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  28954. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  28955. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  28956. /* 2 REG_USTIME_TSF (Offset 0x055C) */
  28957. #define BIT_SHIFT_USTIME_TSF_V1 0
  28958. #define BIT_MASK_USTIME_TSF_V1 0xff
  28959. #define BIT_USTIME_TSF_V1(x) \
  28960. (((x) & BIT_MASK_USTIME_TSF_V1) << BIT_SHIFT_USTIME_TSF_V1)
  28961. #define BITS_USTIME_TSF_V1 (BIT_MASK_USTIME_TSF_V1 << BIT_SHIFT_USTIME_TSF_V1)
  28962. #define BIT_CLEAR_USTIME_TSF_V1(x) ((x) & (~BITS_USTIME_TSF_V1))
  28963. #define BIT_GET_USTIME_TSF_V1(x) \
  28964. (((x) >> BIT_SHIFT_USTIME_TSF_V1) & BIT_MASK_USTIME_TSF_V1)
  28965. #define BIT_SET_USTIME_TSF_V1(x, v) \
  28966. (BIT_CLEAR_USTIME_TSF_V1(x) | BIT_USTIME_TSF_V1(v))
  28967. /* 2 REG_BCN_MAX_ERR (Offset 0x055D) */
  28968. #define BIT_SHIFT_BCN_MAX_ERR 0
  28969. #define BIT_MASK_BCN_MAX_ERR 0xff
  28970. #define BIT_BCN_MAX_ERR(x) \
  28971. (((x) & BIT_MASK_BCN_MAX_ERR) << BIT_SHIFT_BCN_MAX_ERR)
  28972. #define BITS_BCN_MAX_ERR (BIT_MASK_BCN_MAX_ERR << BIT_SHIFT_BCN_MAX_ERR)
  28973. #define BIT_CLEAR_BCN_MAX_ERR(x) ((x) & (~BITS_BCN_MAX_ERR))
  28974. #define BIT_GET_BCN_MAX_ERR(x) \
  28975. (((x) >> BIT_SHIFT_BCN_MAX_ERR) & BIT_MASK_BCN_MAX_ERR)
  28976. #define BIT_SET_BCN_MAX_ERR(x, v) \
  28977. (BIT_CLEAR_BCN_MAX_ERR(x) | BIT_BCN_MAX_ERR(v))
  28978. /* 2 REG_RXTSF_OFFSET_CCK (Offset 0x055E) */
  28979. #define BIT_SHIFT_CCK_RXTSF_OFFSET 0
  28980. #define BIT_MASK_CCK_RXTSF_OFFSET 0xff
  28981. #define BIT_CCK_RXTSF_OFFSET(x) \
  28982. (((x) & BIT_MASK_CCK_RXTSF_OFFSET) << BIT_SHIFT_CCK_RXTSF_OFFSET)
  28983. #define BITS_CCK_RXTSF_OFFSET \
  28984. (BIT_MASK_CCK_RXTSF_OFFSET << BIT_SHIFT_CCK_RXTSF_OFFSET)
  28985. #define BIT_CLEAR_CCK_RXTSF_OFFSET(x) ((x) & (~BITS_CCK_RXTSF_OFFSET))
  28986. #define BIT_GET_CCK_RXTSF_OFFSET(x) \
  28987. (((x) >> BIT_SHIFT_CCK_RXTSF_OFFSET) & BIT_MASK_CCK_RXTSF_OFFSET)
  28988. #define BIT_SET_CCK_RXTSF_OFFSET(x, v) \
  28989. (BIT_CLEAR_CCK_RXTSF_OFFSET(x) | BIT_CCK_RXTSF_OFFSET(v))
  28990. /* 2 REG_RXTSF_OFFSET_OFDM (Offset 0x055F) */
  28991. #define BIT_SHIFT_OFDM_RXTSF_OFFSET 0
  28992. #define BIT_MASK_OFDM_RXTSF_OFFSET 0xff
  28993. #define BIT_OFDM_RXTSF_OFFSET(x) \
  28994. (((x) & BIT_MASK_OFDM_RXTSF_OFFSET) << BIT_SHIFT_OFDM_RXTSF_OFFSET)
  28995. #define BITS_OFDM_RXTSF_OFFSET \
  28996. (BIT_MASK_OFDM_RXTSF_OFFSET << BIT_SHIFT_OFDM_RXTSF_OFFSET)
  28997. #define BIT_CLEAR_OFDM_RXTSF_OFFSET(x) ((x) & (~BITS_OFDM_RXTSF_OFFSET))
  28998. #define BIT_GET_OFDM_RXTSF_OFFSET(x) \
  28999. (((x) >> BIT_SHIFT_OFDM_RXTSF_OFFSET) & BIT_MASK_OFDM_RXTSF_OFFSET)
  29000. #define BIT_SET_OFDM_RXTSF_OFFSET(x, v) \
  29001. (BIT_CLEAR_OFDM_RXTSF_OFFSET(x) | BIT_OFDM_RXTSF_OFFSET(v))
  29002. #endif
  29003. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29004. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  29005. HALMAC_8881A_SUPPORT)
  29006. /* 2 REG_TSFTR (Offset 0x0560) */
  29007. #define BIT_SHIFT_TSF_TIMER 0
  29008. #define BIT_MASK_TSF_TIMER 0xffffffffffffffffL
  29009. #define BIT_TSF_TIMER(x) (((x) & BIT_MASK_TSF_TIMER) << BIT_SHIFT_TSF_TIMER)
  29010. #define BITS_TSF_TIMER (BIT_MASK_TSF_TIMER << BIT_SHIFT_TSF_TIMER)
  29011. #define BIT_CLEAR_TSF_TIMER(x) ((x) & (~BITS_TSF_TIMER))
  29012. #define BIT_GET_TSF_TIMER(x) (((x) >> BIT_SHIFT_TSF_TIMER) & BIT_MASK_TSF_TIMER)
  29013. #define BIT_SET_TSF_TIMER(x, v) (BIT_CLEAR_TSF_TIMER(x) | BIT_TSF_TIMER(v))
  29014. #endif
  29015. #if (HALMAC_8192F_SUPPORT)
  29016. /* 2 REG_TSFTR0_L (Offset 0x0560) */
  29017. #define BIT_SHIFT_TSF0_TIMER_L 0
  29018. #define BIT_MASK_TSF0_TIMER_L 0xffffffffL
  29019. #define BIT_TSF0_TIMER_L(x) \
  29020. (((x) & BIT_MASK_TSF0_TIMER_L) << BIT_SHIFT_TSF0_TIMER_L)
  29021. #define BITS_TSF0_TIMER_L (BIT_MASK_TSF0_TIMER_L << BIT_SHIFT_TSF0_TIMER_L)
  29022. #define BIT_CLEAR_TSF0_TIMER_L(x) ((x) & (~BITS_TSF0_TIMER_L))
  29023. #define BIT_GET_TSF0_TIMER_L(x) \
  29024. (((x) >> BIT_SHIFT_TSF0_TIMER_L) & BIT_MASK_TSF0_TIMER_L)
  29025. #define BIT_SET_TSF0_TIMER_L(x, v) \
  29026. (BIT_CLEAR_TSF0_TIMER_L(x) | BIT_TSF0_TIMER_L(v))
  29027. #endif
  29028. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  29029. /* 2 REG_TSFTR (Offset 0x0560) */
  29030. #define BIT_SHIFT_TSF_TIMER_V1 0
  29031. #define BIT_MASK_TSF_TIMER_V1 0xffffffffL
  29032. #define BIT_TSF_TIMER_V1(x) \
  29033. (((x) & BIT_MASK_TSF_TIMER_V1) << BIT_SHIFT_TSF_TIMER_V1)
  29034. #define BITS_TSF_TIMER_V1 (BIT_MASK_TSF_TIMER_V1 << BIT_SHIFT_TSF_TIMER_V1)
  29035. #define BIT_CLEAR_TSF_TIMER_V1(x) ((x) & (~BITS_TSF_TIMER_V1))
  29036. #define BIT_GET_TSF_TIMER_V1(x) \
  29037. (((x) >> BIT_SHIFT_TSF_TIMER_V1) & BIT_MASK_TSF_TIMER_V1)
  29038. #define BIT_SET_TSF_TIMER_V1(x, v) \
  29039. (BIT_CLEAR_TSF_TIMER_V1(x) | BIT_TSF_TIMER_V1(v))
  29040. #endif
  29041. #if (HALMAC_8192F_SUPPORT)
  29042. /* 2 REG_TSFTR0_H (Offset 0x0564) */
  29043. #define BIT_SHIFT_TSF0_TIMER_H 0
  29044. #define BIT_MASK_TSF0_TIMER_H 0xffffffffL
  29045. #define BIT_TSF0_TIMER_H(x) \
  29046. (((x) & BIT_MASK_TSF0_TIMER_H) << BIT_SHIFT_TSF0_TIMER_H)
  29047. #define BITS_TSF0_TIMER_H (BIT_MASK_TSF0_TIMER_H << BIT_SHIFT_TSF0_TIMER_H)
  29048. #define BIT_CLEAR_TSF0_TIMER_H(x) ((x) & (~BITS_TSF0_TIMER_H))
  29049. #define BIT_GET_TSF0_TIMER_H(x) \
  29050. (((x) >> BIT_SHIFT_TSF0_TIMER_H) & BIT_MASK_TSF0_TIMER_H)
  29051. #define BIT_SET_TSF0_TIMER_H(x, v) \
  29052. (BIT_CLEAR_TSF0_TIMER_H(x) | BIT_TSF0_TIMER_H(v))
  29053. #endif
  29054. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  29055. /* 2 REG_TSFTR_1 (Offset 0x0564) */
  29056. #define BIT_SHIFT_TSF_TIMER_V2 0
  29057. #define BIT_MASK_TSF_TIMER_V2 0xffffffffL
  29058. #define BIT_TSF_TIMER_V2(x) \
  29059. (((x) & BIT_MASK_TSF_TIMER_V2) << BIT_SHIFT_TSF_TIMER_V2)
  29060. #define BITS_TSF_TIMER_V2 (BIT_MASK_TSF_TIMER_V2 << BIT_SHIFT_TSF_TIMER_V2)
  29061. #define BIT_CLEAR_TSF_TIMER_V2(x) ((x) & (~BITS_TSF_TIMER_V2))
  29062. #define BIT_GET_TSF_TIMER_V2(x) \
  29063. (((x) >> BIT_SHIFT_TSF_TIMER_V2) & BIT_MASK_TSF_TIMER_V2)
  29064. #define BIT_SET_TSF_TIMER_V2(x, v) \
  29065. (BIT_CLEAR_TSF_TIMER_V2(x) | BIT_TSF_TIMER_V2(v))
  29066. #endif
  29067. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  29068. /* 2 REG_TSFTR1 (Offset 0x0568) */
  29069. #define BIT_SHIFT_TSF_TIMER1 0
  29070. #define BIT_MASK_TSF_TIMER1 0xffffffffffffffffL
  29071. #define BIT_TSF_TIMER1(x) (((x) & BIT_MASK_TSF_TIMER1) << BIT_SHIFT_TSF_TIMER1)
  29072. #define BITS_TSF_TIMER1 (BIT_MASK_TSF_TIMER1 << BIT_SHIFT_TSF_TIMER1)
  29073. #define BIT_CLEAR_TSF_TIMER1(x) ((x) & (~BITS_TSF_TIMER1))
  29074. #define BIT_GET_TSF_TIMER1(x) \
  29075. (((x) >> BIT_SHIFT_TSF_TIMER1) & BIT_MASK_TSF_TIMER1)
  29076. #define BIT_SET_TSF_TIMER1(x, v) (BIT_CLEAR_TSF_TIMER1(x) | BIT_TSF_TIMER1(v))
  29077. #endif
  29078. #if (HALMAC_8192F_SUPPORT)
  29079. /* 2 REG_TSFTR1_L (Offset 0x0568) */
  29080. #define BIT_SHIFT_TSF1_TIMER_L 0
  29081. #define BIT_MASK_TSF1_TIMER_L 0xffffffffL
  29082. #define BIT_TSF1_TIMER_L(x) \
  29083. (((x) & BIT_MASK_TSF1_TIMER_L) << BIT_SHIFT_TSF1_TIMER_L)
  29084. #define BITS_TSF1_TIMER_L (BIT_MASK_TSF1_TIMER_L << BIT_SHIFT_TSF1_TIMER_L)
  29085. #define BIT_CLEAR_TSF1_TIMER_L(x) ((x) & (~BITS_TSF1_TIMER_L))
  29086. #define BIT_GET_TSF1_TIMER_L(x) \
  29087. (((x) >> BIT_SHIFT_TSF1_TIMER_L) & BIT_MASK_TSF1_TIMER_L)
  29088. #define BIT_SET_TSF1_TIMER_L(x, v) \
  29089. (BIT_CLEAR_TSF1_TIMER_L(x) | BIT_TSF1_TIMER_L(v))
  29090. #endif
  29091. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29092. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  29093. /* 2 REG_FREERUN_CNT (Offset 0x0568) */
  29094. #define BIT_SHIFT_FREERUN_CNT 0
  29095. #define BIT_MASK_FREERUN_CNT 0xffffffffffffffffL
  29096. #define BIT_FREERUN_CNT(x) \
  29097. (((x) & BIT_MASK_FREERUN_CNT) << BIT_SHIFT_FREERUN_CNT)
  29098. #define BITS_FREERUN_CNT (BIT_MASK_FREERUN_CNT << BIT_SHIFT_FREERUN_CNT)
  29099. #define BIT_CLEAR_FREERUN_CNT(x) ((x) & (~BITS_FREERUN_CNT))
  29100. #define BIT_GET_FREERUN_CNT(x) \
  29101. (((x) >> BIT_SHIFT_FREERUN_CNT) & BIT_MASK_FREERUN_CNT)
  29102. #define BIT_SET_FREERUN_CNT(x, v) \
  29103. (BIT_CLEAR_FREERUN_CNT(x) | BIT_FREERUN_CNT(v))
  29104. #endif
  29105. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  29106. /* 2 REG_FREERUN_CNT (Offset 0x0568) */
  29107. #define BIT_SHIFT_FREERUN_CNT_V1 0
  29108. #define BIT_MASK_FREERUN_CNT_V1 0xffffffffL
  29109. #define BIT_FREERUN_CNT_V1(x) \
  29110. (((x) & BIT_MASK_FREERUN_CNT_V1) << BIT_SHIFT_FREERUN_CNT_V1)
  29111. #define BITS_FREERUN_CNT_V1 \
  29112. (BIT_MASK_FREERUN_CNT_V1 << BIT_SHIFT_FREERUN_CNT_V1)
  29113. #define BIT_CLEAR_FREERUN_CNT_V1(x) ((x) & (~BITS_FREERUN_CNT_V1))
  29114. #define BIT_GET_FREERUN_CNT_V1(x) \
  29115. (((x) >> BIT_SHIFT_FREERUN_CNT_V1) & BIT_MASK_FREERUN_CNT_V1)
  29116. #define BIT_SET_FREERUN_CNT_V1(x, v) \
  29117. (BIT_CLEAR_FREERUN_CNT_V1(x) | BIT_FREERUN_CNT_V1(v))
  29118. #endif
  29119. #if (HALMAC_8192F_SUPPORT)
  29120. /* 2 REG_TSFTR1_H (Offset 0x056C) */
  29121. #define BIT_SHIFT_TSF1_TIMER_H 0
  29122. #define BIT_MASK_TSF1_TIMER_H 0xffffffffL
  29123. #define BIT_TSF1_TIMER_H(x) \
  29124. (((x) & BIT_MASK_TSF1_TIMER_H) << BIT_SHIFT_TSF1_TIMER_H)
  29125. #define BITS_TSF1_TIMER_H (BIT_MASK_TSF1_TIMER_H << BIT_SHIFT_TSF1_TIMER_H)
  29126. #define BIT_CLEAR_TSF1_TIMER_H(x) ((x) & (~BITS_TSF1_TIMER_H))
  29127. #define BIT_GET_TSF1_TIMER_H(x) \
  29128. (((x) >> BIT_SHIFT_TSF1_TIMER_H) & BIT_MASK_TSF1_TIMER_H)
  29129. #define BIT_SET_TSF1_TIMER_H(x, v) \
  29130. (BIT_CLEAR_TSF1_TIMER_H(x) | BIT_TSF1_TIMER_H(v))
  29131. #endif
  29132. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  29133. /* 2 REG_FREERUN_CNT_1 (Offset 0x056C) */
  29134. #define BIT_SHIFT_FREERUN_CNT_V2 0
  29135. #define BIT_MASK_FREERUN_CNT_V2 0xffffffffL
  29136. #define BIT_FREERUN_CNT_V2(x) \
  29137. (((x) & BIT_MASK_FREERUN_CNT_V2) << BIT_SHIFT_FREERUN_CNT_V2)
  29138. #define BITS_FREERUN_CNT_V2 \
  29139. (BIT_MASK_FREERUN_CNT_V2 << BIT_SHIFT_FREERUN_CNT_V2)
  29140. #define BIT_CLEAR_FREERUN_CNT_V2(x) ((x) & (~BITS_FREERUN_CNT_V2))
  29141. #define BIT_GET_FREERUN_CNT_V2(x) \
  29142. (((x) >> BIT_SHIFT_FREERUN_CNT_V2) & BIT_MASK_FREERUN_CNT_V2)
  29143. #define BIT_SET_FREERUN_CNT_V2(x, v) \
  29144. (BIT_CLEAR_FREERUN_CNT_V2(x) | BIT_FREERUN_CNT_V2(v))
  29145. #endif
  29146. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  29147. /* 2 REG_ATIMWND1 (Offset 0x0570) */
  29148. #define BIT_SHIFT_ATIMWND1 0
  29149. #define BIT_MASK_ATIMWND1 0xffff
  29150. #define BIT_ATIMWND1(x) (((x) & BIT_MASK_ATIMWND1) << BIT_SHIFT_ATIMWND1)
  29151. #define BITS_ATIMWND1 (BIT_MASK_ATIMWND1 << BIT_SHIFT_ATIMWND1)
  29152. #define BIT_CLEAR_ATIMWND1(x) ((x) & (~BITS_ATIMWND1))
  29153. #define BIT_GET_ATIMWND1(x) (((x) >> BIT_SHIFT_ATIMWND1) & BIT_MASK_ATIMWND1)
  29154. #define BIT_SET_ATIMWND1(x, v) (BIT_CLEAR_ATIMWND1(x) | BIT_ATIMWND1(v))
  29155. #endif
  29156. #if (HALMAC_8192F_SUPPORT)
  29157. /* 2 REG_ATIMWND1_V1 (Offset 0x0570) */
  29158. #define BIT_SHIFT_ATIMWND1_V2 0
  29159. #define BIT_MASK_ATIMWND1_V2 0xffff
  29160. #define BIT_ATIMWND1_V2(x) \
  29161. (((x) & BIT_MASK_ATIMWND1_V2) << BIT_SHIFT_ATIMWND1_V2)
  29162. #define BITS_ATIMWND1_V2 (BIT_MASK_ATIMWND1_V2 << BIT_SHIFT_ATIMWND1_V2)
  29163. #define BIT_CLEAR_ATIMWND1_V2(x) ((x) & (~BITS_ATIMWND1_V2))
  29164. #define BIT_GET_ATIMWND1_V2(x) \
  29165. (((x) >> BIT_SHIFT_ATIMWND1_V2) & BIT_MASK_ATIMWND1_V2)
  29166. #define BIT_SET_ATIMWND1_V2(x, v) \
  29167. (BIT_CLEAR_ATIMWND1_V2(x) | BIT_ATIMWND1_V2(v))
  29168. #endif
  29169. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29170. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29171. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29172. /* 2 REG_ATIMWND1_V1 (Offset 0x0570) */
  29173. #define BIT_SHIFT_ATIMWND1_V1 0
  29174. #define BIT_MASK_ATIMWND1_V1 0xff
  29175. #define BIT_ATIMWND1_V1(x) \
  29176. (((x) & BIT_MASK_ATIMWND1_V1) << BIT_SHIFT_ATIMWND1_V1)
  29177. #define BITS_ATIMWND1_V1 (BIT_MASK_ATIMWND1_V1 << BIT_SHIFT_ATIMWND1_V1)
  29178. #define BIT_CLEAR_ATIMWND1_V1(x) ((x) & (~BITS_ATIMWND1_V1))
  29179. #define BIT_GET_ATIMWND1_V1(x) \
  29180. (((x) >> BIT_SHIFT_ATIMWND1_V1) & BIT_MASK_ATIMWND1_V1)
  29181. #define BIT_SET_ATIMWND1_V1(x, v) \
  29182. (BIT_CLEAR_ATIMWND1_V1(x) | BIT_ATIMWND1_V1(v))
  29183. /* 2 REG_TBTT_PROHIBIT_INFRA (Offset 0x0571) */
  29184. #define BIT_SHIFT_TBTT_PROHIBIT_INFRA 0
  29185. #define BIT_MASK_TBTT_PROHIBIT_INFRA 0xff
  29186. #define BIT_TBTT_PROHIBIT_INFRA(x) \
  29187. (((x) & BIT_MASK_TBTT_PROHIBIT_INFRA) << BIT_SHIFT_TBTT_PROHIBIT_INFRA)
  29188. #define BITS_TBTT_PROHIBIT_INFRA \
  29189. (BIT_MASK_TBTT_PROHIBIT_INFRA << BIT_SHIFT_TBTT_PROHIBIT_INFRA)
  29190. #define BIT_CLEAR_TBTT_PROHIBIT_INFRA(x) ((x) & (~BITS_TBTT_PROHIBIT_INFRA))
  29191. #define BIT_GET_TBTT_PROHIBIT_INFRA(x) \
  29192. (((x) >> BIT_SHIFT_TBTT_PROHIBIT_INFRA) & BIT_MASK_TBTT_PROHIBIT_INFRA)
  29193. #define BIT_SET_TBTT_PROHIBIT_INFRA(x, v) \
  29194. (BIT_CLEAR_TBTT_PROHIBIT_INFRA(x) | BIT_TBTT_PROHIBIT_INFRA(v))
  29195. #endif
  29196. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29197. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29198. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  29199. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  29200. /* 2 REG_BCNIVLCUNT (Offset 0x0573) */
  29201. #define BIT_SHIFT_BCNIVLCUNT 0
  29202. #define BIT_MASK_BCNIVLCUNT 0x7f
  29203. #define BIT_BCNIVLCUNT(x) (((x) & BIT_MASK_BCNIVLCUNT) << BIT_SHIFT_BCNIVLCUNT)
  29204. #define BITS_BCNIVLCUNT (BIT_MASK_BCNIVLCUNT << BIT_SHIFT_BCNIVLCUNT)
  29205. #define BIT_CLEAR_BCNIVLCUNT(x) ((x) & (~BITS_BCNIVLCUNT))
  29206. #define BIT_GET_BCNIVLCUNT(x) \
  29207. (((x) >> BIT_SHIFT_BCNIVLCUNT) & BIT_MASK_BCNIVLCUNT)
  29208. #define BIT_SET_BCNIVLCUNT(x, v) (BIT_CLEAR_BCNIVLCUNT(x) | BIT_BCNIVLCUNT(v))
  29209. /* 2 REG_BCNDROPCTRL (Offset 0x0574) */
  29210. #define BIT_BEACON_DROP_EN BIT(7)
  29211. #define BIT_SHIFT_BEACON_DROP_IVL 0
  29212. #define BIT_MASK_BEACON_DROP_IVL 0x7f
  29213. #define BIT_BEACON_DROP_IVL(x) \
  29214. (((x) & BIT_MASK_BEACON_DROP_IVL) << BIT_SHIFT_BEACON_DROP_IVL)
  29215. #define BITS_BEACON_DROP_IVL \
  29216. (BIT_MASK_BEACON_DROP_IVL << BIT_SHIFT_BEACON_DROP_IVL)
  29217. #define BIT_CLEAR_BEACON_DROP_IVL(x) ((x) & (~BITS_BEACON_DROP_IVL))
  29218. #define BIT_GET_BEACON_DROP_IVL(x) \
  29219. (((x) >> BIT_SHIFT_BEACON_DROP_IVL) & BIT_MASK_BEACON_DROP_IVL)
  29220. #define BIT_SET_BEACON_DROP_IVL(x, v) \
  29221. (BIT_CLEAR_BEACON_DROP_IVL(x) | BIT_BEACON_DROP_IVL(v))
  29222. /* 2 REG_HGQ_TIMEOUT_PERIOD (Offset 0x0575) */
  29223. #define BIT_SHIFT_HGQ_TIMEOUT_PERIOD 0
  29224. #define BIT_MASK_HGQ_TIMEOUT_PERIOD 0xff
  29225. #define BIT_HGQ_TIMEOUT_PERIOD(x) \
  29226. (((x) & BIT_MASK_HGQ_TIMEOUT_PERIOD) << BIT_SHIFT_HGQ_TIMEOUT_PERIOD)
  29227. #define BITS_HGQ_TIMEOUT_PERIOD \
  29228. (BIT_MASK_HGQ_TIMEOUT_PERIOD << BIT_SHIFT_HGQ_TIMEOUT_PERIOD)
  29229. #define BIT_CLEAR_HGQ_TIMEOUT_PERIOD(x) ((x) & (~BITS_HGQ_TIMEOUT_PERIOD))
  29230. #define BIT_GET_HGQ_TIMEOUT_PERIOD(x) \
  29231. (((x) >> BIT_SHIFT_HGQ_TIMEOUT_PERIOD) & BIT_MASK_HGQ_TIMEOUT_PERIOD)
  29232. #define BIT_SET_HGQ_TIMEOUT_PERIOD(x, v) \
  29233. (BIT_CLEAR_HGQ_TIMEOUT_PERIOD(x) | BIT_HGQ_TIMEOUT_PERIOD(v))
  29234. #endif
  29235. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29236. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29237. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  29238. HALMAC_8822C_SUPPORT)
  29239. /* 2 REG_TXCMD_TIMEOUT_PERIOD (Offset 0x0576) */
  29240. #define BIT_SHIFT_TXCMD_TIMEOUT_PERIOD 0
  29241. #define BIT_MASK_TXCMD_TIMEOUT_PERIOD 0xff
  29242. #define BIT_TXCMD_TIMEOUT_PERIOD(x) \
  29243. (((x) & BIT_MASK_TXCMD_TIMEOUT_PERIOD) \
  29244. << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD)
  29245. #define BITS_TXCMD_TIMEOUT_PERIOD \
  29246. (BIT_MASK_TXCMD_TIMEOUT_PERIOD << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD)
  29247. #define BIT_CLEAR_TXCMD_TIMEOUT_PERIOD(x) ((x) & (~BITS_TXCMD_TIMEOUT_PERIOD))
  29248. #define BIT_GET_TXCMD_TIMEOUT_PERIOD(x) \
  29249. (((x) >> BIT_SHIFT_TXCMD_TIMEOUT_PERIOD) & \
  29250. BIT_MASK_TXCMD_TIMEOUT_PERIOD)
  29251. #define BIT_SET_TXCMD_TIMEOUT_PERIOD(x, v) \
  29252. (BIT_CLEAR_TXCMD_TIMEOUT_PERIOD(x) | BIT_TXCMD_TIMEOUT_PERIOD(v))
  29253. #define BIT_SHIFT_EARLY_128US 0
  29254. #define BIT_MASK_EARLY_128US 0x7
  29255. #define BIT_EARLY_128US(x) \
  29256. (((x) & BIT_MASK_EARLY_128US) << BIT_SHIFT_EARLY_128US)
  29257. #define BITS_EARLY_128US (BIT_MASK_EARLY_128US << BIT_SHIFT_EARLY_128US)
  29258. #define BIT_CLEAR_EARLY_128US(x) ((x) & (~BITS_EARLY_128US))
  29259. #define BIT_GET_EARLY_128US(x) \
  29260. (((x) >> BIT_SHIFT_EARLY_128US) & BIT_MASK_EARLY_128US)
  29261. #define BIT_SET_EARLY_128US(x, v) \
  29262. (BIT_CLEAR_EARLY_128US(x) | BIT_EARLY_128US(v))
  29263. #endif
  29264. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29265. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29266. #define BIT_DIS_MARK_TSF_US BIT(7)
  29267. #endif
  29268. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  29269. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29270. #define BIT_DIS_MARK_TSF_US_V2 BIT(7)
  29271. #endif
  29272. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29273. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29274. #define BIT_EN_TSFAUTO_SYNC BIT(6)
  29275. #endif
  29276. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  29277. HALMAC_8822C_SUPPORT)
  29278. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29279. #define BIT_AUTO_SYNC_BY_TBTT BIT(6)
  29280. #endif
  29281. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29282. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29283. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29284. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29285. #define BIT_DIS_TRX_CAL_BCN BIT(5)
  29286. #define BIT_DIS_TX_CAL_TBTT BIT(4)
  29287. #define BIT_EN_FREECNT BIT(3)
  29288. #define BIT_BCN_AGGRESSION BIT(2)
  29289. #endif
  29290. #if (HALMAC_8814B_SUPPORT)
  29291. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29292. #define BIT_DIS_SECONDARY_CCA_80M BIT(2)
  29293. #define BIT_DIS_SECONDARY_CCA_40M BIT(1)
  29294. #endif
  29295. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29296. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29297. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29298. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29299. #define BIT_SHIFT_DIS_SECONDARY_CCA 0
  29300. #define BIT_MASK_DIS_SECONDARY_CCA 0x3
  29301. #define BIT_DIS_SECONDARY_CCA(x) \
  29302. (((x) & BIT_MASK_DIS_SECONDARY_CCA) << BIT_SHIFT_DIS_SECONDARY_CCA)
  29303. #define BITS_DIS_SECONDARY_CCA \
  29304. (BIT_MASK_DIS_SECONDARY_CCA << BIT_SHIFT_DIS_SECONDARY_CCA)
  29305. #define BIT_CLEAR_DIS_SECONDARY_CCA(x) ((x) & (~BITS_DIS_SECONDARY_CCA))
  29306. #define BIT_GET_DIS_SECONDARY_CCA(x) \
  29307. (((x) >> BIT_SHIFT_DIS_SECONDARY_CCA) & BIT_MASK_DIS_SECONDARY_CCA)
  29308. #define BIT_SET_DIS_SECONDARY_CCA(x, v) \
  29309. (BIT_CLEAR_DIS_SECONDARY_CCA(x) | BIT_DIS_SECONDARY_CCA(v))
  29310. #endif
  29311. #if (HALMAC_8814B_SUPPORT)
  29312. /* 2 REG_MISC_CTRL (Offset 0x0577) */
  29313. #define BIT_DIS_SECONDARY_CCA_20M BIT(0)
  29314. #endif
  29315. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29316. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29317. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29318. /* 2 REG_BCN_CTRL_CLINT1 (Offset 0x0578) */
  29319. #define BIT_CLI1_DIS_RX_BSSID_FIT BIT(6)
  29320. #define BIT_CLI1_DIS_TSF_UDT BIT(4)
  29321. #define BIT_CLI1_EN_BCN_FUNCTION BIT(3)
  29322. #endif
  29323. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29324. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29325. /* 2 REG_BCN_CTRL_CLINT1 (Offset 0x0578) */
  29326. #define BIT_CLI1_EN_RXBCN_RPT BIT(2)
  29327. #endif
  29328. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  29329. /* 2 REG_BCN_CTRL_CLINT1 (Offset 0x0578) */
  29330. #define BIT_CLI1_EN_BCN_RPT BIT(2)
  29331. #endif
  29332. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29333. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29334. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29335. /* 2 REG_BCN_CTRL_CLINT1 (Offset 0x0578) */
  29336. #define BIT_CLI1_ENP2P_CTWINDOW BIT(1)
  29337. #endif
  29338. #if (HALMAC_8192F_SUPPORT)
  29339. /* 2 REG_TSFTR2_L (Offset 0x0578) */
  29340. #define BIT_SHIFT_TSF2_TIMER_L 0
  29341. #define BIT_MASK_TSF2_TIMER_L 0xffffffffL
  29342. #define BIT_TSF2_TIMER_L(x) \
  29343. (((x) & BIT_MASK_TSF2_TIMER_L) << BIT_SHIFT_TSF2_TIMER_L)
  29344. #define BITS_TSF2_TIMER_L (BIT_MASK_TSF2_TIMER_L << BIT_SHIFT_TSF2_TIMER_L)
  29345. #define BIT_CLEAR_TSF2_TIMER_L(x) ((x) & (~BITS_TSF2_TIMER_L))
  29346. #define BIT_GET_TSF2_TIMER_L(x) \
  29347. (((x) >> BIT_SHIFT_TSF2_TIMER_L) & BIT_MASK_TSF2_TIMER_L)
  29348. #define BIT_SET_TSF2_TIMER_L(x, v) \
  29349. (BIT_CLEAR_TSF2_TIMER_L(x) | BIT_TSF2_TIMER_L(v))
  29350. #endif
  29351. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29352. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29353. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29354. /* 2 REG_BCN_CTRL_CLINT1 (Offset 0x0578) */
  29355. #define BIT_CLI1_ENP2P_BCNQ_AREA BIT(0)
  29356. /* 2 REG_BCN_CTRL_CLINT2 (Offset 0x0579) */
  29357. #define BIT_CLI2_DIS_RX_BSSID_FIT BIT(6)
  29358. #define BIT_CLI2_DIS_TSF_UDT BIT(4)
  29359. #define BIT_CLI2_EN_BCN_FUNCTION BIT(3)
  29360. #endif
  29361. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29362. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29363. /* 2 REG_BCN_CTRL_CLINT2 (Offset 0x0579) */
  29364. #define BIT_CLI2_EN_RXBCN_RPT BIT(2)
  29365. #endif
  29366. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  29367. /* 2 REG_BCN_CTRL_CLINT2 (Offset 0x0579) */
  29368. #define BIT_CLI2_EN_BCN_RPT BIT(2)
  29369. #endif
  29370. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29371. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29372. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29373. /* 2 REG_BCN_CTRL_CLINT2 (Offset 0x0579) */
  29374. #define BIT_CLI2_ENP2P_CTWINDOW BIT(1)
  29375. #define BIT_CLI2_ENP2P_BCNQ_AREA BIT(0)
  29376. /* 2 REG_BCN_CTRL_CLINT3 (Offset 0x057A) */
  29377. #define BIT_CLI3_DIS_RX_BSSID_FIT BIT(6)
  29378. #define BIT_CLI3_DIS_TSF_UDT BIT(4)
  29379. #define BIT_CLI3_EN_BCN_FUNCTION BIT(3)
  29380. #endif
  29381. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29382. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29383. /* 2 REG_BCN_CTRL_CLINT3 (Offset 0x057A) */
  29384. #define BIT_CLI3_EN_RXBCN_RPT BIT(2)
  29385. #endif
  29386. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  29387. /* 2 REG_BCN_CTRL_CLINT3 (Offset 0x057A) */
  29388. #define BIT_CLI3_EN_BCN_RPT BIT(2)
  29389. #endif
  29390. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29391. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29392. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29393. /* 2 REG_BCN_CTRL_CLINT3 (Offset 0x057A) */
  29394. #define BIT_CLI3_ENP2P_CTWINDOW BIT(1)
  29395. #define BIT_CLI3_ENP2P_BCNQ_AREA BIT(0)
  29396. #endif
  29397. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29398. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29399. /* 2 REG_EXTEND_CTRL (Offset 0x057B) */
  29400. #define BIT_EN_TSFBIT32_RST_P2P2 BIT(5)
  29401. #define BIT_EN_TSFBIT32_RST_P2P1 BIT(4)
  29402. #define BIT_SHIFT_PORT_SEL 0
  29403. #define BIT_MASK_PORT_SEL 0x7
  29404. #define BIT_PORT_SEL(x) (((x) & BIT_MASK_PORT_SEL) << BIT_SHIFT_PORT_SEL)
  29405. #define BITS_PORT_SEL (BIT_MASK_PORT_SEL << BIT_SHIFT_PORT_SEL)
  29406. #define BIT_CLEAR_PORT_SEL(x) ((x) & (~BITS_PORT_SEL))
  29407. #define BIT_GET_PORT_SEL(x) (((x) >> BIT_SHIFT_PORT_SEL) & BIT_MASK_PORT_SEL)
  29408. #define BIT_SET_PORT_SEL(x, v) (BIT_CLEAR_PORT_SEL(x) | BIT_PORT_SEL(v))
  29409. #endif
  29410. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29411. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29412. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29413. /* 2 REG_P2PPS1_SPEC_STATE (Offset 0x057C) */
  29414. #define BIT_P2P1_SPEC_POWER_STATE BIT(7)
  29415. #endif
  29416. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29417. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  29418. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29419. /* 2 REG_P2PPS1_SPEC_STATE (Offset 0x057C) */
  29420. #define BIT_P2P1_SPEC_CTWINDOW_ON BIT(6)
  29421. #endif
  29422. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29423. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29424. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29425. /* 2 REG_P2PPS1_SPEC_STATE (Offset 0x057C) */
  29426. #define BIT_P2P1_SPEC_BCN_AREA_ON BIT(5)
  29427. #endif
  29428. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29429. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  29430. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29431. /* 2 REG_P2PPS1_SPEC_STATE (Offset 0x057C) */
  29432. #define BIT_P2P1_SPEC_CTWIN_EARLY_DISTX BIT(4)
  29433. #define BIT_P2P1_SPEC_NOA1_OFF_PERIOD BIT(3)
  29434. #define BIT_P2P1_SPEC_FORCE_DOZE1 BIT(2)
  29435. #define BIT_P2P1_SPEC_NOA0_OFF_PERIOD BIT(1)
  29436. #endif
  29437. #if (HALMAC_8192F_SUPPORT)
  29438. /* 2 REG_TSFTR2_H (Offset 0x057C) */
  29439. #define BIT_SHIFT_TSF2_TIMER_H 0
  29440. #define BIT_MASK_TSF2_TIMER_H 0xffffffffL
  29441. #define BIT_TSF2_TIMER_H(x) \
  29442. (((x) & BIT_MASK_TSF2_TIMER_H) << BIT_SHIFT_TSF2_TIMER_H)
  29443. #define BITS_TSF2_TIMER_H (BIT_MASK_TSF2_TIMER_H << BIT_SHIFT_TSF2_TIMER_H)
  29444. #define BIT_CLEAR_TSF2_TIMER_H(x) ((x) & (~BITS_TSF2_TIMER_H))
  29445. #define BIT_GET_TSF2_TIMER_H(x) \
  29446. (((x) >> BIT_SHIFT_TSF2_TIMER_H) & BIT_MASK_TSF2_TIMER_H)
  29447. #define BIT_SET_TSF2_TIMER_H(x, v) \
  29448. (BIT_CLEAR_TSF2_TIMER_H(x) | BIT_TSF2_TIMER_H(v))
  29449. #endif
  29450. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29451. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  29452. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29453. /* 2 REG_P2PPS1_SPEC_STATE (Offset 0x057C) */
  29454. #define BIT_P2P1_SPEC_FORCE_DOZE0 BIT(0)
  29455. /* 2 REG_P2PPS1_STATE (Offset 0x057D) */
  29456. #define BIT_P2P1_POWER_STATE BIT(7)
  29457. #define BIT_P2P1_CTWINDOW_ON BIT(6)
  29458. #define BIT_P2P1_BEACON_AREA_ON BIT(5)
  29459. #define BIT_P2P1_CTWIN_EARLY_DISTX BIT(4)
  29460. #define BIT_P2P1_NOA1_OFF_PERIOD BIT(3)
  29461. #define BIT_P2P1_FORCE_DOZE1 BIT(2)
  29462. #define BIT_P2P1_NOA0_OFF_PERIOD BIT(1)
  29463. #define BIT_P2P1_FORCE_DOZE0 BIT(0)
  29464. #endif
  29465. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29466. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29467. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29468. /* 2 REG_P2PPS2_SPEC_STATE (Offset 0x057E) */
  29469. #define BIT_P2P2_SPEC_POWER_STATE BIT(7)
  29470. #endif
  29471. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29472. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  29473. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29474. /* 2 REG_P2PPS2_SPEC_STATE (Offset 0x057E) */
  29475. #define BIT_P2P2_SPEC_CTWINDOW_ON BIT(6)
  29476. #endif
  29477. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29478. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  29479. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29480. /* 2 REG_P2PPS2_SPEC_STATE (Offset 0x057E) */
  29481. #define BIT_P2P2_SPEC_BCN_AREA_ON BIT(5)
  29482. #endif
  29483. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  29484. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  29485. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29486. /* 2 REG_P2PPS2_SPEC_STATE (Offset 0x057E) */
  29487. #define BIT_P2P2_SPEC_CTWIN_EARLY_DISTX BIT(4)
  29488. #define BIT_P2P2_SPEC_NOA1_OFF_PERIOD BIT(3)
  29489. #define BIT_P2P2_SPEC_FORCE_DOZE1 BIT(2)
  29490. #define BIT_P2P2_SPEC_NOA0_OFF_PERIOD BIT(1)
  29491. #define BIT_P2P2_SPEC_FORCE_DOZE0 BIT(0)
  29492. /* 2 REG_P2PPS2_STATE (Offset 0x057F) */
  29493. #define BIT_P2P2_POWER_STATE BIT(7)
  29494. #define BIT_P2P2_CTWINDOW_ON BIT(6)
  29495. #define BIT_P2P2_BEACON_AREA_ON BIT(5)
  29496. #define BIT_P2P2_CTWIN_EARLY_DISTX BIT(4)
  29497. #define BIT_P2P2_NOA1_OFF_PERIOD BIT(3)
  29498. #define BIT_P2P2_FORCE_DOZE1 BIT(2)
  29499. #define BIT_P2P2_NOA0_OFF_PERIOD BIT(1)
  29500. #define BIT_P2P2_FORCE_DOZE0 BIT(0)
  29501. #endif
  29502. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  29503. /* 2 REG_PS_TIMER (Offset 0x0580) */
  29504. #define BIT_SHIFT_PSTIMER 5
  29505. #define BIT_MASK_PSTIMER 0x7ffffff
  29506. #define BIT_PSTIMER(x) (((x) & BIT_MASK_PSTIMER) << BIT_SHIFT_PSTIMER)
  29507. #define BITS_PSTIMER (BIT_MASK_PSTIMER << BIT_SHIFT_PSTIMER)
  29508. #define BIT_CLEAR_PSTIMER(x) ((x) & (~BITS_PSTIMER))
  29509. #define BIT_GET_PSTIMER(x) (((x) >> BIT_SHIFT_PSTIMER) & BIT_MASK_PSTIMER)
  29510. #define BIT_SET_PSTIMER(x, v) (BIT_CLEAR_PSTIMER(x) | BIT_PSTIMER(v))
  29511. #endif
  29512. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29513. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29514. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29515. /* 2 REG_PS_TIMER0 (Offset 0x0580) */
  29516. #define BIT_SHIFT_PSTIMER0_INT 5
  29517. #define BIT_MASK_PSTIMER0_INT 0x7ffffff
  29518. #define BIT_PSTIMER0_INT(x) \
  29519. (((x) & BIT_MASK_PSTIMER0_INT) << BIT_SHIFT_PSTIMER0_INT)
  29520. #define BITS_PSTIMER0_INT (BIT_MASK_PSTIMER0_INT << BIT_SHIFT_PSTIMER0_INT)
  29521. #define BIT_CLEAR_PSTIMER0_INT(x) ((x) & (~BITS_PSTIMER0_INT))
  29522. #define BIT_GET_PSTIMER0_INT(x) \
  29523. (((x) >> BIT_SHIFT_PSTIMER0_INT) & BIT_MASK_PSTIMER0_INT)
  29524. #define BIT_SET_PSTIMER0_INT(x, v) \
  29525. (BIT_CLEAR_PSTIMER0_INT(x) | BIT_PSTIMER0_INT(v))
  29526. #endif
  29527. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  29528. /* 2 REG_TIMER0 (Offset 0x0584) */
  29529. #define BIT_SHIFT_TIMER0_INT 5
  29530. #define BIT_MASK_TIMER0_INT 0x7ffffff
  29531. #define BIT_TIMER0_INT(x) (((x) & BIT_MASK_TIMER0_INT) << BIT_SHIFT_TIMER0_INT)
  29532. #define BITS_TIMER0_INT (BIT_MASK_TIMER0_INT << BIT_SHIFT_TIMER0_INT)
  29533. #define BIT_CLEAR_TIMER0_INT(x) ((x) & (~BITS_TIMER0_INT))
  29534. #define BIT_GET_TIMER0_INT(x) \
  29535. (((x) >> BIT_SHIFT_TIMER0_INT) & BIT_MASK_TIMER0_INT)
  29536. #define BIT_SET_TIMER0_INT(x, v) (BIT_CLEAR_TIMER0_INT(x) | BIT_TIMER0_INT(v))
  29537. #endif
  29538. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29539. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29540. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29541. /* 2 REG_PS_TIMER1 (Offset 0x0584) */
  29542. #define BIT_SHIFT_PSTIMER1_INT 5
  29543. #define BIT_MASK_PSTIMER1_INT 0x7ffffff
  29544. #define BIT_PSTIMER1_INT(x) \
  29545. (((x) & BIT_MASK_PSTIMER1_INT) << BIT_SHIFT_PSTIMER1_INT)
  29546. #define BITS_PSTIMER1_INT (BIT_MASK_PSTIMER1_INT << BIT_SHIFT_PSTIMER1_INT)
  29547. #define BIT_CLEAR_PSTIMER1_INT(x) ((x) & (~BITS_PSTIMER1_INT))
  29548. #define BIT_GET_PSTIMER1_INT(x) \
  29549. (((x) >> BIT_SHIFT_PSTIMER1_INT) & BIT_MASK_PSTIMER1_INT)
  29550. #define BIT_SET_PSTIMER1_INT(x, v) \
  29551. (BIT_CLEAR_PSTIMER1_INT(x) | BIT_PSTIMER1_INT(v))
  29552. /* 2 REG_PS_TIMER2 (Offset 0x0588) */
  29553. #define BIT_SHIFT_INFO_INDEX_OFFSET 16
  29554. #define BIT_MASK_INFO_INDEX_OFFSET 0x1fff
  29555. #define BIT_INFO_INDEX_OFFSET(x) \
  29556. (((x) & BIT_MASK_INFO_INDEX_OFFSET) << BIT_SHIFT_INFO_INDEX_OFFSET)
  29557. #define BITS_INFO_INDEX_OFFSET \
  29558. (BIT_MASK_INFO_INDEX_OFFSET << BIT_SHIFT_INFO_INDEX_OFFSET)
  29559. #define BIT_CLEAR_INFO_INDEX_OFFSET(x) ((x) & (~BITS_INFO_INDEX_OFFSET))
  29560. #define BIT_GET_INFO_INDEX_OFFSET(x) \
  29561. (((x) >> BIT_SHIFT_INFO_INDEX_OFFSET) & BIT_MASK_INFO_INDEX_OFFSET)
  29562. #define BIT_SET_INFO_INDEX_OFFSET(x, v) \
  29563. (BIT_CLEAR_INFO_INDEX_OFFSET(x) | BIT_INFO_INDEX_OFFSET(v))
  29564. #endif
  29565. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  29566. /* 2 REG_TIMER1 (Offset 0x0588) */
  29567. #define BIT_SHIFT_TIMER1_INT 5
  29568. #define BIT_MASK_TIMER1_INT 0x7ffffff
  29569. #define BIT_TIMER1_INT(x) (((x) & BIT_MASK_TIMER1_INT) << BIT_SHIFT_TIMER1_INT)
  29570. #define BITS_TIMER1_INT (BIT_MASK_TIMER1_INT << BIT_SHIFT_TIMER1_INT)
  29571. #define BIT_CLEAR_TIMER1_INT(x) ((x) & (~BITS_TIMER1_INT))
  29572. #define BIT_GET_TIMER1_INT(x) \
  29573. (((x) >> BIT_SHIFT_TIMER1_INT) & BIT_MASK_TIMER1_INT)
  29574. #define BIT_SET_TIMER1_INT(x, v) (BIT_CLEAR_TIMER1_INT(x) | BIT_TIMER1_INT(v))
  29575. #endif
  29576. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  29577. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29578. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  29579. /* 2 REG_PS_TIMER2 (Offset 0x0588) */
  29580. #define BIT_SHIFT_PSTIMER2_INT 5
  29581. #define BIT_MASK_PSTIMER2_INT 0x7ffffff
  29582. #define BIT_PSTIMER2_INT(x) \
  29583. (((x) & BIT_MASK_PSTIMER2_INT) << BIT_SHIFT_PSTIMER2_INT)
  29584. #define BITS_PSTIMER2_INT (BIT_MASK_PSTIMER2_INT << BIT_SHIFT_PSTIMER2_INT)
  29585. #define BIT_CLEAR_PSTIMER2_INT(x) ((x) & (~BITS_PSTIMER2_INT))
  29586. #define BIT_GET_PSTIMER2_INT(x) \
  29587. (((x) >> BIT_SHIFT_PSTIMER2_INT) & BIT_MASK_PSTIMER2_INT)
  29588. #define BIT_SET_PSTIMER2_INT(x, v) \
  29589. (BIT_CLEAR_PSTIMER2_INT(x) | BIT_PSTIMER2_INT(v))
  29590. #endif
  29591. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29592. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29593. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  29594. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  29595. /* 2 REG_TBTT_CTN_AREA (Offset 0x058C) */
  29596. #define BIT_SHIFT_TBTT_CTN_AREA 0
  29597. #define BIT_MASK_TBTT_CTN_AREA 0xff
  29598. #define BIT_TBTT_CTN_AREA(x) \
  29599. (((x) & BIT_MASK_TBTT_CTN_AREA) << BIT_SHIFT_TBTT_CTN_AREA)
  29600. #define BITS_TBTT_CTN_AREA (BIT_MASK_TBTT_CTN_AREA << BIT_SHIFT_TBTT_CTN_AREA)
  29601. #define BIT_CLEAR_TBTT_CTN_AREA(x) ((x) & (~BITS_TBTT_CTN_AREA))
  29602. #define BIT_GET_TBTT_CTN_AREA(x) \
  29603. (((x) >> BIT_SHIFT_TBTT_CTN_AREA) & BIT_MASK_TBTT_CTN_AREA)
  29604. #define BIT_SET_TBTT_CTN_AREA(x, v) \
  29605. (BIT_CLEAR_TBTT_CTN_AREA(x) | BIT_TBTT_CTN_AREA(v))
  29606. /* 2 REG_FORCE_BCN_IFS (Offset 0x058E) */
  29607. #define BIT_SHIFT_FORCE_BCN_IFS 0
  29608. #define BIT_MASK_FORCE_BCN_IFS 0xff
  29609. #define BIT_FORCE_BCN_IFS(x) \
  29610. (((x) & BIT_MASK_FORCE_BCN_IFS) << BIT_SHIFT_FORCE_BCN_IFS)
  29611. #define BITS_FORCE_BCN_IFS (BIT_MASK_FORCE_BCN_IFS << BIT_SHIFT_FORCE_BCN_IFS)
  29612. #define BIT_CLEAR_FORCE_BCN_IFS(x) ((x) & (~BITS_FORCE_BCN_IFS))
  29613. #define BIT_GET_FORCE_BCN_IFS(x) \
  29614. (((x) >> BIT_SHIFT_FORCE_BCN_IFS) & BIT_MASK_FORCE_BCN_IFS)
  29615. #define BIT_SET_FORCE_BCN_IFS(x, v) \
  29616. (BIT_CLEAR_FORCE_BCN_IFS(x) | BIT_FORCE_BCN_IFS(v))
  29617. #endif
  29618. #if (HALMAC_8192F_SUPPORT)
  29619. /* 2 REG_DRVERLYINT_V1 (Offset 0x058F) */
  29620. #define BIT_SHIFT_PRE_BCN_DMATIM 0
  29621. #define BIT_MASK_PRE_BCN_DMATIM 0xff
  29622. #define BIT_PRE_BCN_DMATIM(x) \
  29623. (((x) & BIT_MASK_PRE_BCN_DMATIM) << BIT_SHIFT_PRE_BCN_DMATIM)
  29624. #define BITS_PRE_BCN_DMATIM \
  29625. (BIT_MASK_PRE_BCN_DMATIM << BIT_SHIFT_PRE_BCN_DMATIM)
  29626. #define BIT_CLEAR_PRE_BCN_DMATIM(x) ((x) & (~BITS_PRE_BCN_DMATIM))
  29627. #define BIT_GET_PRE_BCN_DMATIM(x) \
  29628. (((x) >> BIT_SHIFT_PRE_BCN_DMATIM) & BIT_MASK_PRE_BCN_DMATIM)
  29629. #define BIT_SET_PRE_BCN_DMATIM(x, v) \
  29630. (BIT_CLEAR_PRE_BCN_DMATIM(x) | BIT_PRE_BCN_DMATIM(v))
  29631. #endif
  29632. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29633. /* 2 REG_TXOP_MIN (Offset 0x0590) */
  29634. #define BIT_NAV_BLK_HGQ BIT(15)
  29635. #endif
  29636. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  29637. /* 2 REG_TXOP_MIN (Offset 0x0590) */
  29638. #define BIT_HIQ_NAV_BREAK_EN BIT(15)
  29639. #endif
  29640. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29641. /* 2 REG_TXOP_MIN (Offset 0x0590) */
  29642. #define BIT_NAV_BLK_MGQ BIT(14)
  29643. #endif
  29644. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  29645. /* 2 REG_TXOP_MIN (Offset 0x0590) */
  29646. #define BIT_MGQ_NAV_BREAK_EN BIT(14)
  29647. #endif
  29648. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29649. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29650. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  29651. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  29652. /* 2 REG_TXOP_MIN (Offset 0x0590) */
  29653. #define BIT_SHIFT_TXOP_MIN 0
  29654. #define BIT_MASK_TXOP_MIN 0x3fff
  29655. #define BIT_TXOP_MIN(x) (((x) & BIT_MASK_TXOP_MIN) << BIT_SHIFT_TXOP_MIN)
  29656. #define BITS_TXOP_MIN (BIT_MASK_TXOP_MIN << BIT_SHIFT_TXOP_MIN)
  29657. #define BIT_CLEAR_TXOP_MIN(x) ((x) & (~BITS_TXOP_MIN))
  29658. #define BIT_GET_TXOP_MIN(x) (((x) >> BIT_SHIFT_TXOP_MIN) & BIT_MASK_TXOP_MIN)
  29659. #define BIT_SET_TXOP_MIN(x, v) (BIT_CLEAR_TXOP_MIN(x) | BIT_TXOP_MIN(v))
  29660. /* 2 REG_PRE_BKF_TIME (Offset 0x0592) */
  29661. #define BIT_SHIFT_PRE_BKF_TIME 0
  29662. #define BIT_MASK_PRE_BKF_TIME 0xff
  29663. #define BIT_PRE_BKF_TIME(x) \
  29664. (((x) & BIT_MASK_PRE_BKF_TIME) << BIT_SHIFT_PRE_BKF_TIME)
  29665. #define BITS_PRE_BKF_TIME (BIT_MASK_PRE_BKF_TIME << BIT_SHIFT_PRE_BKF_TIME)
  29666. #define BIT_CLEAR_PRE_BKF_TIME(x) ((x) & (~BITS_PRE_BKF_TIME))
  29667. #define BIT_GET_PRE_BKF_TIME(x) \
  29668. (((x) >> BIT_SHIFT_PRE_BKF_TIME) & BIT_MASK_PRE_BKF_TIME)
  29669. #define BIT_SET_PRE_BKF_TIME(x, v) \
  29670. (BIT_CLEAR_PRE_BKF_TIME(x) | BIT_PRE_BKF_TIME(v))
  29671. #endif
  29672. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  29673. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29674. #define BIT_NOPKT_END_RTSMF BIT(7)
  29675. #endif
  29676. #if (HALMAC_8814B_SUPPORT)
  29677. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29678. #define BIT_TBTT_RETRY BIT(4)
  29679. #endif
  29680. #if (HALMAC_8192F_SUPPORT)
  29681. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29682. #define BIT_SHIFT_PRETX_US 3
  29683. #define BIT_MASK_PRETX_US 0xf
  29684. #define BIT_PRETX_US(x) (((x) & BIT_MASK_PRETX_US) << BIT_SHIFT_PRETX_US)
  29685. #define BITS_PRETX_US (BIT_MASK_PRETX_US << BIT_SHIFT_PRETX_US)
  29686. #define BIT_CLEAR_PRETX_US(x) ((x) & (~BITS_PRETX_US))
  29687. #define BIT_GET_PRETX_US(x) (((x) >> BIT_SHIFT_PRETX_US) & BIT_MASK_PRETX_US)
  29688. #define BIT_SET_PRETX_US(x, v) (BIT_CLEAR_PRETX_US(x) | BIT_PRETX_US(v))
  29689. #endif
  29690. #if (HALMAC_8198F_SUPPORT)
  29691. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29692. #define BIT_TXOP_FAIL_BREAK BIT(3)
  29693. #endif
  29694. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  29695. HALMAC_8822C_SUPPORT)
  29696. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29697. #define BIT_TXFAIL_BREACK_TXOP_EN BIT(3)
  29698. #endif
  29699. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29700. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29701. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  29702. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  29703. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29704. #define BIT_DTIM_BYPASS BIT(2)
  29705. #endif
  29706. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29707. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  29708. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  29709. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  29710. /* 2 REG_CROSS_TXOP_CTRL (Offset 0x0593) */
  29711. #define BIT_RTS_NAV_TXOP BIT(1)
  29712. #define BIT_NOT_CROSS_TXOP BIT(0)
  29713. #endif
  29714. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29715. /* 2 REG_TBTT_INT_SHIFT_CLI0 (Offset 0x0594) */
  29716. #define BIT_TBTT_INT_SHIFT_DIR_CLI0 BIT(7)
  29717. #endif
  29718. #if (HALMAC_8192F_SUPPORT)
  29719. /* 2 REG_FREERUN_CNT_L (Offset 0x0594) */
  29720. #define BIT_SHIFT_FREERUN_CNT_L 0
  29721. #define BIT_MASK_FREERUN_CNT_L 0xffffffffL
  29722. #define BIT_FREERUN_CNT_L(x) \
  29723. (((x) & BIT_MASK_FREERUN_CNT_L) << BIT_SHIFT_FREERUN_CNT_L)
  29724. #define BITS_FREERUN_CNT_L (BIT_MASK_FREERUN_CNT_L << BIT_SHIFT_FREERUN_CNT_L)
  29725. #define BIT_CLEAR_FREERUN_CNT_L(x) ((x) & (~BITS_FREERUN_CNT_L))
  29726. #define BIT_GET_FREERUN_CNT_L(x) \
  29727. (((x) >> BIT_SHIFT_FREERUN_CNT_L) & BIT_MASK_FREERUN_CNT_L)
  29728. #define BIT_SET_FREERUN_CNT_L(x, v) \
  29729. (BIT_CLEAR_FREERUN_CNT_L(x) | BIT_FREERUN_CNT_L(v))
  29730. #endif
  29731. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29732. /* 2 REG_TBTT_INT_SHIFT_CLI0 (Offset 0x0594) */
  29733. #define BIT_SHIFT_TBTT_INT_SHIFT_CLI0 0
  29734. #define BIT_MASK_TBTT_INT_SHIFT_CLI0 0x7f
  29735. #define BIT_TBTT_INT_SHIFT_CLI0(x) \
  29736. (((x) & BIT_MASK_TBTT_INT_SHIFT_CLI0) << BIT_SHIFT_TBTT_INT_SHIFT_CLI0)
  29737. #define BITS_TBTT_INT_SHIFT_CLI0 \
  29738. (BIT_MASK_TBTT_INT_SHIFT_CLI0 << BIT_SHIFT_TBTT_INT_SHIFT_CLI0)
  29739. #define BIT_CLEAR_TBTT_INT_SHIFT_CLI0(x) ((x) & (~BITS_TBTT_INT_SHIFT_CLI0))
  29740. #define BIT_GET_TBTT_INT_SHIFT_CLI0(x) \
  29741. (((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI0) & BIT_MASK_TBTT_INT_SHIFT_CLI0)
  29742. #define BIT_SET_TBTT_INT_SHIFT_CLI0(x, v) \
  29743. (BIT_CLEAR_TBTT_INT_SHIFT_CLI0(x) | BIT_TBTT_INT_SHIFT_CLI0(v))
  29744. /* 2 REG_TBTT_INT_SHIFT_CLI1 (Offset 0x0595) */
  29745. #define BIT_TBTT_INT_SHIFT_DIR_CLI1 BIT(7)
  29746. #define BIT_SHIFT_TBTT_INT_SHIFT_CLI1 0
  29747. #define BIT_MASK_TBTT_INT_SHIFT_CLI1 0x7f
  29748. #define BIT_TBTT_INT_SHIFT_CLI1(x) \
  29749. (((x) & BIT_MASK_TBTT_INT_SHIFT_CLI1) << BIT_SHIFT_TBTT_INT_SHIFT_CLI1)
  29750. #define BITS_TBTT_INT_SHIFT_CLI1 \
  29751. (BIT_MASK_TBTT_INT_SHIFT_CLI1 << BIT_SHIFT_TBTT_INT_SHIFT_CLI1)
  29752. #define BIT_CLEAR_TBTT_INT_SHIFT_CLI1(x) ((x) & (~BITS_TBTT_INT_SHIFT_CLI1))
  29753. #define BIT_GET_TBTT_INT_SHIFT_CLI1(x) \
  29754. (((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI1) & BIT_MASK_TBTT_INT_SHIFT_CLI1)
  29755. #define BIT_SET_TBTT_INT_SHIFT_CLI1(x, v) \
  29756. (BIT_CLEAR_TBTT_INT_SHIFT_CLI1(x) | BIT_TBTT_INT_SHIFT_CLI1(v))
  29757. /* 2 REG_TBTT_INT_SHIFT_CLI2 (Offset 0x0596) */
  29758. #define BIT_TBTT_INT_SHIFT_DIR_CLI2 BIT(7)
  29759. #define BIT_SHIFT_TBTT_INT_SHIFT_CLI2 0
  29760. #define BIT_MASK_TBTT_INT_SHIFT_CLI2 0x7f
  29761. #define BIT_TBTT_INT_SHIFT_CLI2(x) \
  29762. (((x) & BIT_MASK_TBTT_INT_SHIFT_CLI2) << BIT_SHIFT_TBTT_INT_SHIFT_CLI2)
  29763. #define BITS_TBTT_INT_SHIFT_CLI2 \
  29764. (BIT_MASK_TBTT_INT_SHIFT_CLI2 << BIT_SHIFT_TBTT_INT_SHIFT_CLI2)
  29765. #define BIT_CLEAR_TBTT_INT_SHIFT_CLI2(x) ((x) & (~BITS_TBTT_INT_SHIFT_CLI2))
  29766. #define BIT_GET_TBTT_INT_SHIFT_CLI2(x) \
  29767. (((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI2) & BIT_MASK_TBTT_INT_SHIFT_CLI2)
  29768. #define BIT_SET_TBTT_INT_SHIFT_CLI2(x, v) \
  29769. (BIT_CLEAR_TBTT_INT_SHIFT_CLI2(x) | BIT_TBTT_INT_SHIFT_CLI2(v))
  29770. /* 2 REG_TBTT_INT_SHIFT_CLI3 (Offset 0x0597) */
  29771. #define BIT_TBTT_INT_SHIFT_DIR_CLI3 BIT(7)
  29772. #define BIT_SHIFT_TBTT_INT_SHIFT_CLI3 0
  29773. #define BIT_MASK_TBTT_INT_SHIFT_CLI3 0x7f
  29774. #define BIT_TBTT_INT_SHIFT_CLI3(x) \
  29775. (((x) & BIT_MASK_TBTT_INT_SHIFT_CLI3) << BIT_SHIFT_TBTT_INT_SHIFT_CLI3)
  29776. #define BITS_TBTT_INT_SHIFT_CLI3 \
  29777. (BIT_MASK_TBTT_INT_SHIFT_CLI3 << BIT_SHIFT_TBTT_INT_SHIFT_CLI3)
  29778. #define BIT_CLEAR_TBTT_INT_SHIFT_CLI3(x) ((x) & (~BITS_TBTT_INT_SHIFT_CLI3))
  29779. #define BIT_GET_TBTT_INT_SHIFT_CLI3(x) \
  29780. (((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI3) & BIT_MASK_TBTT_INT_SHIFT_CLI3)
  29781. #define BIT_SET_TBTT_INT_SHIFT_CLI3(x, v) \
  29782. (BIT_CLEAR_TBTT_INT_SHIFT_CLI3(x) | BIT_TBTT_INT_SHIFT_CLI3(v))
  29783. #endif
  29784. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  29785. /* 2 REG_RX_TBTT_SHIFT_V1 (Offset 0x0598) */
  29786. #define BIT_RX_TBTT_SHIFT_RW_FLAG_V1 BIT(31)
  29787. #endif
  29788. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29789. /* 2 REG_TBTT_INT_SHIFT_ENABLE (Offset 0x0598) */
  29790. #define BIT_BCNERR_CNT_EN BIT(20)
  29791. #endif
  29792. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  29793. /* 2 REG_RX_TBTT_SHIFT_V1 (Offset 0x0598) */
  29794. #define BIT_SHIFT_RX_TBTT_SHIFT_OFFSET_V1 16
  29795. #define BIT_MASK_RX_TBTT_SHIFT_OFFSET_V1 0xfff
  29796. #define BIT_RX_TBTT_SHIFT_OFFSET_V1(x) \
  29797. (((x) & BIT_MASK_RX_TBTT_SHIFT_OFFSET_V1) \
  29798. << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET_V1)
  29799. #define BITS_RX_TBTT_SHIFT_OFFSET_V1 \
  29800. (BIT_MASK_RX_TBTT_SHIFT_OFFSET_V1 << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET_V1)
  29801. #define BIT_CLEAR_RX_TBTT_SHIFT_OFFSET_V1(x) \
  29802. ((x) & (~BITS_RX_TBTT_SHIFT_OFFSET_V1))
  29803. #define BIT_GET_RX_TBTT_SHIFT_OFFSET_V1(x) \
  29804. (((x) >> BIT_SHIFT_RX_TBTT_SHIFT_OFFSET_V1) & \
  29805. BIT_MASK_RX_TBTT_SHIFT_OFFSET_V1)
  29806. #define BIT_SET_RX_TBTT_SHIFT_OFFSET_V1(x, v) \
  29807. (BIT_CLEAR_RX_TBTT_SHIFT_OFFSET_V1(x) | BIT_RX_TBTT_SHIFT_OFFSET_V1(v))
  29808. #endif
  29809. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29810. /* 2 REG_TBTT_INT_SHIFT_ENABLE (Offset 0x0598) */
  29811. #define BIT_CHANGE_POW_BCN_AREA BIT(9)
  29812. #endif
  29813. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  29814. /* 2 REG_RX_TBTT_SHIFT_V1 (Offset 0x0598) */
  29815. #define BIT_SHIFT_RX_TBTT_SHIFT_SEL_V1 8
  29816. #define BIT_MASK_RX_TBTT_SHIFT_SEL_V1 0x7
  29817. #define BIT_RX_TBTT_SHIFT_SEL_V1(x) \
  29818. (((x) & BIT_MASK_RX_TBTT_SHIFT_SEL_V1) \
  29819. << BIT_SHIFT_RX_TBTT_SHIFT_SEL_V1)
  29820. #define BITS_RX_TBTT_SHIFT_SEL_V1 \
  29821. (BIT_MASK_RX_TBTT_SHIFT_SEL_V1 << BIT_SHIFT_RX_TBTT_SHIFT_SEL_V1)
  29822. #define BIT_CLEAR_RX_TBTT_SHIFT_SEL_V1(x) ((x) & (~BITS_RX_TBTT_SHIFT_SEL_V1))
  29823. #define BIT_GET_RX_TBTT_SHIFT_SEL_V1(x) \
  29824. (((x) >> BIT_SHIFT_RX_TBTT_SHIFT_SEL_V1) & \
  29825. BIT_MASK_RX_TBTT_SHIFT_SEL_V1)
  29826. #define BIT_SET_RX_TBTT_SHIFT_SEL_V1(x, v) \
  29827. (BIT_CLEAR_RX_TBTT_SHIFT_SEL_V1(x) | BIT_RX_TBTT_SHIFT_SEL_V1(v))
  29828. #endif
  29829. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29830. /* 2 REG_TBTT_INT_SHIFT_ENABLE (Offset 0x0598) */
  29831. #define BIT_EN_TBTT_RTY BIT(1)
  29832. #endif
  29833. #if (HALMAC_8192F_SUPPORT)
  29834. /* 2 REG_FREERUN_CNT_H (Offset 0x0598) */
  29835. #define BIT_SHIFT_FREERUN_CNT_H 0
  29836. #define BIT_MASK_FREERUN_CNT_H 0xffffffffL
  29837. #define BIT_FREERUN_CNT_H(x) \
  29838. (((x) & BIT_MASK_FREERUN_CNT_H) << BIT_SHIFT_FREERUN_CNT_H)
  29839. #define BITS_FREERUN_CNT_H (BIT_MASK_FREERUN_CNT_H << BIT_SHIFT_FREERUN_CNT_H)
  29840. #define BIT_CLEAR_FREERUN_CNT_H(x) ((x) & (~BITS_FREERUN_CNT_H))
  29841. #define BIT_GET_FREERUN_CNT_H(x) \
  29842. (((x) >> BIT_SHIFT_FREERUN_CNT_H) & BIT_MASK_FREERUN_CNT_H)
  29843. #define BIT_SET_FREERUN_CNT_H(x, v) \
  29844. (BIT_CLEAR_FREERUN_CNT_H(x) | BIT_FREERUN_CNT_H(v))
  29845. #endif
  29846. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  29847. /* 2 REG_TBTT_INT_SHIFT_ENABLE (Offset 0x0598) */
  29848. #define BIT_TBTT_INT_SHIFT_ENABLE BIT(0)
  29849. #define BIT_SHIFT_BCN_ELY_ADJ 0
  29850. #define BIT_MASK_BCN_ELY_ADJ 0xffff
  29851. #define BIT_BCN_ELY_ADJ(x) \
  29852. (((x) & BIT_MASK_BCN_ELY_ADJ) << BIT_SHIFT_BCN_ELY_ADJ)
  29853. #define BITS_BCN_ELY_ADJ (BIT_MASK_BCN_ELY_ADJ << BIT_SHIFT_BCN_ELY_ADJ)
  29854. #define BIT_CLEAR_BCN_ELY_ADJ(x) ((x) & (~BITS_BCN_ELY_ADJ))
  29855. #define BIT_GET_BCN_ELY_ADJ(x) \
  29856. (((x) >> BIT_SHIFT_BCN_ELY_ADJ) & BIT_MASK_BCN_ELY_ADJ)
  29857. #define BIT_SET_BCN_ELY_ADJ(x, v) \
  29858. (BIT_CLEAR_BCN_ELY_ADJ(x) | BIT_BCN_ELY_ADJ(v))
  29859. #endif
  29860. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29861. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29862. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29863. HALMAC_8881A_SUPPORT)
  29864. /* 2 REG_ATIMWND2 (Offset 0x05A0) */
  29865. #define BIT_SHIFT_ATIMWND2 0
  29866. #define BIT_MASK_ATIMWND2 0xff
  29867. #define BIT_ATIMWND2(x) (((x) & BIT_MASK_ATIMWND2) << BIT_SHIFT_ATIMWND2)
  29868. #define BITS_ATIMWND2 (BIT_MASK_ATIMWND2 << BIT_SHIFT_ATIMWND2)
  29869. #define BIT_CLEAR_ATIMWND2(x) ((x) & (~BITS_ATIMWND2))
  29870. #define BIT_GET_ATIMWND2(x) (((x) >> BIT_SHIFT_ATIMWND2) & BIT_MASK_ATIMWND2)
  29871. #define BIT_SET_ATIMWND2(x, v) (BIT_CLEAR_ATIMWND2(x) | BIT_ATIMWND2(v))
  29872. #endif
  29873. #if (HALMAC_8198F_SUPPORT)
  29874. /* 2 REG_ATIMWND_GROUP1 (Offset 0x05A0) */
  29875. #define BIT_SHIFT_ATIMWND_GROUP1 0
  29876. #define BIT_MASK_ATIMWND_GROUP1 0xff
  29877. #define BIT_ATIMWND_GROUP1(x) \
  29878. (((x) & BIT_MASK_ATIMWND_GROUP1) << BIT_SHIFT_ATIMWND_GROUP1)
  29879. #define BITS_ATIMWND_GROUP1 \
  29880. (BIT_MASK_ATIMWND_GROUP1 << BIT_SHIFT_ATIMWND_GROUP1)
  29881. #define BIT_CLEAR_ATIMWND_GROUP1(x) ((x) & (~BITS_ATIMWND_GROUP1))
  29882. #define BIT_GET_ATIMWND_GROUP1(x) \
  29883. (((x) >> BIT_SHIFT_ATIMWND_GROUP1) & BIT_MASK_ATIMWND_GROUP1)
  29884. #define BIT_SET_ATIMWND_GROUP1(x, v) \
  29885. (BIT_CLEAR_ATIMWND_GROUP1(x) | BIT_ATIMWND_GROUP1(v))
  29886. #endif
  29887. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29888. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29889. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29890. HALMAC_8881A_SUPPORT)
  29891. /* 2 REG_ATIMWND3 (Offset 0x05A1) */
  29892. #define BIT_SHIFT_ATIMWND3 0
  29893. #define BIT_MASK_ATIMWND3 0xff
  29894. #define BIT_ATIMWND3(x) (((x) & BIT_MASK_ATIMWND3) << BIT_SHIFT_ATIMWND3)
  29895. #define BITS_ATIMWND3 (BIT_MASK_ATIMWND3 << BIT_SHIFT_ATIMWND3)
  29896. #define BIT_CLEAR_ATIMWND3(x) ((x) & (~BITS_ATIMWND3))
  29897. #define BIT_GET_ATIMWND3(x) (((x) >> BIT_SHIFT_ATIMWND3) & BIT_MASK_ATIMWND3)
  29898. #define BIT_SET_ATIMWND3(x, v) (BIT_CLEAR_ATIMWND3(x) | BIT_ATIMWND3(v))
  29899. #endif
  29900. #if (HALMAC_8198F_SUPPORT)
  29901. /* 2 REG_ATIMWND_GROUP2 (Offset 0x05A1) */
  29902. #define BIT_SHIFT_ATIMWND_GROUP2 0
  29903. #define BIT_MASK_ATIMWND_GROUP2 0xff
  29904. #define BIT_ATIMWND_GROUP2(x) \
  29905. (((x) & BIT_MASK_ATIMWND_GROUP2) << BIT_SHIFT_ATIMWND_GROUP2)
  29906. #define BITS_ATIMWND_GROUP2 \
  29907. (BIT_MASK_ATIMWND_GROUP2 << BIT_SHIFT_ATIMWND_GROUP2)
  29908. #define BIT_CLEAR_ATIMWND_GROUP2(x) ((x) & (~BITS_ATIMWND_GROUP2))
  29909. #define BIT_GET_ATIMWND_GROUP2(x) \
  29910. (((x) >> BIT_SHIFT_ATIMWND_GROUP2) & BIT_MASK_ATIMWND_GROUP2)
  29911. #define BIT_SET_ATIMWND_GROUP2(x, v) \
  29912. (BIT_CLEAR_ATIMWND_GROUP2(x) | BIT_ATIMWND_GROUP2(v))
  29913. #endif
  29914. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29915. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29916. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29917. HALMAC_8881A_SUPPORT)
  29918. /* 2 REG_ATIMWND4 (Offset 0x05A2) */
  29919. #define BIT_SHIFT_ATIMWND4 0
  29920. #define BIT_MASK_ATIMWND4 0xff
  29921. #define BIT_ATIMWND4(x) (((x) & BIT_MASK_ATIMWND4) << BIT_SHIFT_ATIMWND4)
  29922. #define BITS_ATIMWND4 (BIT_MASK_ATIMWND4 << BIT_SHIFT_ATIMWND4)
  29923. #define BIT_CLEAR_ATIMWND4(x) ((x) & (~BITS_ATIMWND4))
  29924. #define BIT_GET_ATIMWND4(x) (((x) >> BIT_SHIFT_ATIMWND4) & BIT_MASK_ATIMWND4)
  29925. #define BIT_SET_ATIMWND4(x, v) (BIT_CLEAR_ATIMWND4(x) | BIT_ATIMWND4(v))
  29926. #endif
  29927. #if (HALMAC_8198F_SUPPORT)
  29928. /* 2 REG_ATIMWND_GROUP3 (Offset 0x05A2) */
  29929. #define BIT_SHIFT_ATIMWND_GROUP3 0
  29930. #define BIT_MASK_ATIMWND_GROUP3 0xff
  29931. #define BIT_ATIMWND_GROUP3(x) \
  29932. (((x) & BIT_MASK_ATIMWND_GROUP3) << BIT_SHIFT_ATIMWND_GROUP3)
  29933. #define BITS_ATIMWND_GROUP3 \
  29934. (BIT_MASK_ATIMWND_GROUP3 << BIT_SHIFT_ATIMWND_GROUP3)
  29935. #define BIT_CLEAR_ATIMWND_GROUP3(x) ((x) & (~BITS_ATIMWND_GROUP3))
  29936. #define BIT_GET_ATIMWND_GROUP3(x) \
  29937. (((x) >> BIT_SHIFT_ATIMWND_GROUP3) & BIT_MASK_ATIMWND_GROUP3)
  29938. #define BIT_SET_ATIMWND_GROUP3(x, v) \
  29939. (BIT_CLEAR_ATIMWND_GROUP3(x) | BIT_ATIMWND_GROUP3(v))
  29940. #endif
  29941. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29942. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29943. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29944. HALMAC_8881A_SUPPORT)
  29945. /* 2 REG_ATIMWND5 (Offset 0x05A3) */
  29946. #define BIT_SHIFT_ATIMWND5 0
  29947. #define BIT_MASK_ATIMWND5 0xff
  29948. #define BIT_ATIMWND5(x) (((x) & BIT_MASK_ATIMWND5) << BIT_SHIFT_ATIMWND5)
  29949. #define BITS_ATIMWND5 (BIT_MASK_ATIMWND5 << BIT_SHIFT_ATIMWND5)
  29950. #define BIT_CLEAR_ATIMWND5(x) ((x) & (~BITS_ATIMWND5))
  29951. #define BIT_GET_ATIMWND5(x) (((x) >> BIT_SHIFT_ATIMWND5) & BIT_MASK_ATIMWND5)
  29952. #define BIT_SET_ATIMWND5(x, v) (BIT_CLEAR_ATIMWND5(x) | BIT_ATIMWND5(v))
  29953. #endif
  29954. #if (HALMAC_8198F_SUPPORT)
  29955. /* 2 REG_ATIMWND_GROUP4 (Offset 0x05A3) */
  29956. #define BIT_SHIFT_ATIMWND_GROUP4 0
  29957. #define BIT_MASK_ATIMWND_GROUP4 0xff
  29958. #define BIT_ATIMWND_GROUP4(x) \
  29959. (((x) & BIT_MASK_ATIMWND_GROUP4) << BIT_SHIFT_ATIMWND_GROUP4)
  29960. #define BITS_ATIMWND_GROUP4 \
  29961. (BIT_MASK_ATIMWND_GROUP4 << BIT_SHIFT_ATIMWND_GROUP4)
  29962. #define BIT_CLEAR_ATIMWND_GROUP4(x) ((x) & (~BITS_ATIMWND_GROUP4))
  29963. #define BIT_GET_ATIMWND_GROUP4(x) \
  29964. (((x) >> BIT_SHIFT_ATIMWND_GROUP4) & BIT_MASK_ATIMWND_GROUP4)
  29965. #define BIT_SET_ATIMWND_GROUP4(x, v) \
  29966. (BIT_CLEAR_ATIMWND_GROUP4(x) | BIT_ATIMWND_GROUP4(v))
  29967. #endif
  29968. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29969. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29970. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29971. HALMAC_8881A_SUPPORT)
  29972. /* 2 REG_ATIMWND6 (Offset 0x05A4) */
  29973. #define BIT_SHIFT_ATIMWND6 0
  29974. #define BIT_MASK_ATIMWND6 0xff
  29975. #define BIT_ATIMWND6(x) (((x) & BIT_MASK_ATIMWND6) << BIT_SHIFT_ATIMWND6)
  29976. #define BITS_ATIMWND6 (BIT_MASK_ATIMWND6 << BIT_SHIFT_ATIMWND6)
  29977. #define BIT_CLEAR_ATIMWND6(x) ((x) & (~BITS_ATIMWND6))
  29978. #define BIT_GET_ATIMWND6(x) (((x) >> BIT_SHIFT_ATIMWND6) & BIT_MASK_ATIMWND6)
  29979. #define BIT_SET_ATIMWND6(x, v) (BIT_CLEAR_ATIMWND6(x) | BIT_ATIMWND6(v))
  29980. #endif
  29981. #if (HALMAC_8198F_SUPPORT)
  29982. /* 2 REG_DTIM_COUNT_GROUP1 (Offset 0x05A4) */
  29983. #define BIT_SHIFT_DTIM_COUNT_GROUP1 0
  29984. #define BIT_MASK_DTIM_COUNT_GROUP1 0xff
  29985. #define BIT_DTIM_COUNT_GROUP1(x) \
  29986. (((x) & BIT_MASK_DTIM_COUNT_GROUP1) << BIT_SHIFT_DTIM_COUNT_GROUP1)
  29987. #define BITS_DTIM_COUNT_GROUP1 \
  29988. (BIT_MASK_DTIM_COUNT_GROUP1 << BIT_SHIFT_DTIM_COUNT_GROUP1)
  29989. #define BIT_CLEAR_DTIM_COUNT_GROUP1(x) ((x) & (~BITS_DTIM_COUNT_GROUP1))
  29990. #define BIT_GET_DTIM_COUNT_GROUP1(x) \
  29991. (((x) >> BIT_SHIFT_DTIM_COUNT_GROUP1) & BIT_MASK_DTIM_COUNT_GROUP1)
  29992. #define BIT_SET_DTIM_COUNT_GROUP1(x, v) \
  29993. (BIT_CLEAR_DTIM_COUNT_GROUP1(x) | BIT_DTIM_COUNT_GROUP1(v))
  29994. #endif
  29995. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  29996. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  29997. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  29998. HALMAC_8881A_SUPPORT)
  29999. /* 2 REG_ATIMWND7 (Offset 0x05A5) */
  30000. #define BIT_SHIFT_ATIMWND7 0
  30001. #define BIT_MASK_ATIMWND7 0xff
  30002. #define BIT_ATIMWND7(x) (((x) & BIT_MASK_ATIMWND7) << BIT_SHIFT_ATIMWND7)
  30003. #define BITS_ATIMWND7 (BIT_MASK_ATIMWND7 << BIT_SHIFT_ATIMWND7)
  30004. #define BIT_CLEAR_ATIMWND7(x) ((x) & (~BITS_ATIMWND7))
  30005. #define BIT_GET_ATIMWND7(x) (((x) >> BIT_SHIFT_ATIMWND7) & BIT_MASK_ATIMWND7)
  30006. #define BIT_SET_ATIMWND7(x, v) (BIT_CLEAR_ATIMWND7(x) | BIT_ATIMWND7(v))
  30007. #endif
  30008. #if (HALMAC_8198F_SUPPORT)
  30009. /* 2 REG_DTIM_COUNT_GROUP2 (Offset 0x05A5) */
  30010. #define BIT_SHIFT_DTIM_COUNT_GROUP2 0
  30011. #define BIT_MASK_DTIM_COUNT_GROUP2 0xff
  30012. #define BIT_DTIM_COUNT_GROUP2(x) \
  30013. (((x) & BIT_MASK_DTIM_COUNT_GROUP2) << BIT_SHIFT_DTIM_COUNT_GROUP2)
  30014. #define BITS_DTIM_COUNT_GROUP2 \
  30015. (BIT_MASK_DTIM_COUNT_GROUP2 << BIT_SHIFT_DTIM_COUNT_GROUP2)
  30016. #define BIT_CLEAR_DTIM_COUNT_GROUP2(x) ((x) & (~BITS_DTIM_COUNT_GROUP2))
  30017. #define BIT_GET_DTIM_COUNT_GROUP2(x) \
  30018. (((x) >> BIT_SHIFT_DTIM_COUNT_GROUP2) & BIT_MASK_DTIM_COUNT_GROUP2)
  30019. #define BIT_SET_DTIM_COUNT_GROUP2(x, v) \
  30020. (BIT_CLEAR_DTIM_COUNT_GROUP2(x) | BIT_DTIM_COUNT_GROUP2(v))
  30021. /* 2 REG_DTIM_COUNT_GROUP3 (Offset 0x05A6) */
  30022. #define BIT_SHIFT_DTIM_COUNT_GROUP3 0
  30023. #define BIT_MASK_DTIM_COUNT_GROUP3 0xff
  30024. #define BIT_DTIM_COUNT_GROUP3(x) \
  30025. (((x) & BIT_MASK_DTIM_COUNT_GROUP3) << BIT_SHIFT_DTIM_COUNT_GROUP3)
  30026. #define BITS_DTIM_COUNT_GROUP3 \
  30027. (BIT_MASK_DTIM_COUNT_GROUP3 << BIT_SHIFT_DTIM_COUNT_GROUP3)
  30028. #define BIT_CLEAR_DTIM_COUNT_GROUP3(x) ((x) & (~BITS_DTIM_COUNT_GROUP3))
  30029. #define BIT_GET_DTIM_COUNT_GROUP3(x) \
  30030. (((x) >> BIT_SHIFT_DTIM_COUNT_GROUP3) & BIT_MASK_DTIM_COUNT_GROUP3)
  30031. #define BIT_SET_DTIM_COUNT_GROUP3(x, v) \
  30032. (BIT_CLEAR_DTIM_COUNT_GROUP3(x) | BIT_DTIM_COUNT_GROUP3(v))
  30033. #endif
  30034. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30035. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30036. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  30037. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30038. /* 2 REG_HIQ_NO_LMT_EN (Offset 0x05A7) */
  30039. #define BIT_HIQ_NO_LMT_EN_VAP7 BIT(7)
  30040. #define BIT_HIQ_NO_LMT_EN_VAP6 BIT(6)
  30041. #define BIT_HIQ_NO_LMT_EN_VAP5 BIT(5)
  30042. #define BIT_HIQ_NO_LMT_EN_VAP4 BIT(4)
  30043. #define BIT_HIQ_NO_LMT_EN_VAP3 BIT(3)
  30044. #define BIT_HIQ_NO_LMT_EN_VAP2 BIT(2)
  30045. #define BIT_HIQ_NO_LMT_EN_VAP1 BIT(1)
  30046. #endif
  30047. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30048. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30049. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  30050. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30051. /* 2 REG_HIQ_NO_LMT_EN (Offset 0x05A7) */
  30052. #define BIT_HIQ_NO_LMT_EN_ROOT BIT(0)
  30053. #endif
  30054. #if (HALMAC_8198F_SUPPORT)
  30055. /* 2 REG_DTIM_COUNT_GROUP4 (Offset 0x05A7) */
  30056. #define BIT_SHIFT_DTIM_COUNT_GROUP4 0
  30057. #define BIT_MASK_DTIM_COUNT_GROUP4 0xff
  30058. #define BIT_DTIM_COUNT_GROUP4(x) \
  30059. (((x) & BIT_MASK_DTIM_COUNT_GROUP4) << BIT_SHIFT_DTIM_COUNT_GROUP4)
  30060. #define BITS_DTIM_COUNT_GROUP4 \
  30061. (BIT_MASK_DTIM_COUNT_GROUP4 << BIT_SHIFT_DTIM_COUNT_GROUP4)
  30062. #define BIT_CLEAR_DTIM_COUNT_GROUP4(x) ((x) & (~BITS_DTIM_COUNT_GROUP4))
  30063. #define BIT_GET_DTIM_COUNT_GROUP4(x) \
  30064. (((x) >> BIT_SHIFT_DTIM_COUNT_GROUP4) & BIT_MASK_DTIM_COUNT_GROUP4)
  30065. #define BIT_SET_DTIM_COUNT_GROUP4(x, v) \
  30066. (BIT_CLEAR_DTIM_COUNT_GROUP4(x) | BIT_DTIM_COUNT_GROUP4(v))
  30067. /* 2 REG_HIQ_NO_LMT_EN_V2 (Offset 0x05A8) */
  30068. #define BIT_SHIFT_ATIM_CFG_SEL 24
  30069. #define BIT_MASK_ATIM_CFG_SEL 0x3
  30070. #define BIT_ATIM_CFG_SEL(x) \
  30071. (((x) & BIT_MASK_ATIM_CFG_SEL) << BIT_SHIFT_ATIM_CFG_SEL)
  30072. #define BITS_ATIM_CFG_SEL (BIT_MASK_ATIM_CFG_SEL << BIT_SHIFT_ATIM_CFG_SEL)
  30073. #define BIT_CLEAR_ATIM_CFG_SEL(x) ((x) & (~BITS_ATIM_CFG_SEL))
  30074. #define BIT_GET_ATIM_CFG_SEL(x) \
  30075. (((x) >> BIT_SHIFT_ATIM_CFG_SEL) & BIT_MASK_ATIM_CFG_SEL)
  30076. #define BIT_SET_ATIM_CFG_SEL(x, v) \
  30077. (BIT_CLEAR_ATIM_CFG_SEL(x) | BIT_ATIM_CFG_SEL(v))
  30078. #define BIT_SHIFT_DIS_ATIM 16
  30079. #define BIT_MASK_DIS_ATIM 0xffff
  30080. #define BIT_DIS_ATIM(x) (((x) & BIT_MASK_DIS_ATIM) << BIT_SHIFT_DIS_ATIM)
  30081. #define BITS_DIS_ATIM (BIT_MASK_DIS_ATIM << BIT_SHIFT_DIS_ATIM)
  30082. #define BIT_CLEAR_DIS_ATIM(x) ((x) & (~BITS_DIS_ATIM))
  30083. #define BIT_GET_DIS_ATIM(x) (((x) >> BIT_SHIFT_DIS_ATIM) & BIT_MASK_DIS_ATIM)
  30084. #define BIT_SET_DIS_ATIM(x, v) (BIT_CLEAR_DIS_ATIM(x) | BIT_DIS_ATIM(v))
  30085. #define BIT_SHIFT_ATIM_URGENT_V1 16
  30086. #define BIT_MASK_ATIM_URGENT_V1 0xff
  30087. #define BIT_ATIM_URGENT_V1(x) \
  30088. (((x) & BIT_MASK_ATIM_URGENT_V1) << BIT_SHIFT_ATIM_URGENT_V1)
  30089. #define BITS_ATIM_URGENT_V1 \
  30090. (BIT_MASK_ATIM_URGENT_V1 << BIT_SHIFT_ATIM_URGENT_V1)
  30091. #define BIT_CLEAR_ATIM_URGENT_V1(x) ((x) & (~BITS_ATIM_URGENT_V1))
  30092. #define BIT_GET_ATIM_URGENT_V1(x) \
  30093. (((x) >> BIT_SHIFT_ATIM_URGENT_V1) & BIT_MASK_ATIM_URGENT_V1)
  30094. #define BIT_SET_ATIM_URGENT_V1(x, v) \
  30095. (BIT_CLEAR_ATIM_URGENT_V1(x) | BIT_ATIM_URGENT_V1(v))
  30096. #define BIT_SHIFT_BCNERR_PORT_SEL_V1 16
  30097. #define BIT_MASK_BCNERR_PORT_SEL_V1 0xf
  30098. #define BIT_BCNERR_PORT_SEL_V1(x) \
  30099. (((x) & BIT_MASK_BCNERR_PORT_SEL_V1) << BIT_SHIFT_BCNERR_PORT_SEL_V1)
  30100. #define BITS_BCNERR_PORT_SEL_V1 \
  30101. (BIT_MASK_BCNERR_PORT_SEL_V1 << BIT_SHIFT_BCNERR_PORT_SEL_V1)
  30102. #define BIT_CLEAR_BCNERR_PORT_SEL_V1(x) ((x) & (~BITS_BCNERR_PORT_SEL_V1))
  30103. #define BIT_GET_BCNERR_PORT_SEL_V1(x) \
  30104. (((x) >> BIT_SHIFT_BCNERR_PORT_SEL_V1) & BIT_MASK_BCNERR_PORT_SEL_V1)
  30105. #define BIT_SET_BCNERR_PORT_SEL_V1(x, v) \
  30106. (BIT_CLEAR_BCNERR_PORT_SEL_V1(x) | BIT_BCNERR_PORT_SEL_V1(v))
  30107. #define BIT_DIS_NDPA_NAV_CHK BIT(8)
  30108. #endif
  30109. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30110. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  30111. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  30112. HALMAC_8881A_SUPPORT)
  30113. /* 2 REG_DTIM_COUNTER_ROOT (Offset 0x05A8) */
  30114. #define BIT_SHIFT_DTIM_COUNT_ROOT 0
  30115. #define BIT_MASK_DTIM_COUNT_ROOT 0xff
  30116. #define BIT_DTIM_COUNT_ROOT(x) \
  30117. (((x) & BIT_MASK_DTIM_COUNT_ROOT) << BIT_SHIFT_DTIM_COUNT_ROOT)
  30118. #define BITS_DTIM_COUNT_ROOT \
  30119. (BIT_MASK_DTIM_COUNT_ROOT << BIT_SHIFT_DTIM_COUNT_ROOT)
  30120. #define BIT_CLEAR_DTIM_COUNT_ROOT(x) ((x) & (~BITS_DTIM_COUNT_ROOT))
  30121. #define BIT_GET_DTIM_COUNT_ROOT(x) \
  30122. (((x) >> BIT_SHIFT_DTIM_COUNT_ROOT) & BIT_MASK_DTIM_COUNT_ROOT)
  30123. #define BIT_SET_DTIM_COUNT_ROOT(x, v) \
  30124. (BIT_CLEAR_DTIM_COUNT_ROOT(x) | BIT_DTIM_COUNT_ROOT(v))
  30125. #endif
  30126. #if (HALMAC_8198F_SUPPORT)
  30127. /* 2 REG_HIQ_NO_LMT_EN_V2 (Offset 0x05A8) */
  30128. #define BIT_SHIFT_MBID_BCNQ_EN 0
  30129. #define BIT_MASK_MBID_BCNQ_EN 0xffff
  30130. #define BIT_MBID_BCNQ_EN(x) \
  30131. (((x) & BIT_MASK_MBID_BCNQ_EN) << BIT_SHIFT_MBID_BCNQ_EN)
  30132. #define BITS_MBID_BCNQ_EN (BIT_MASK_MBID_BCNQ_EN << BIT_SHIFT_MBID_BCNQ_EN)
  30133. #define BIT_CLEAR_MBID_BCNQ_EN(x) ((x) & (~BITS_MBID_BCNQ_EN))
  30134. #define BIT_GET_MBID_BCNQ_EN(x) \
  30135. (((x) >> BIT_SHIFT_MBID_BCNQ_EN) & BIT_MASK_MBID_BCNQ_EN)
  30136. #define BIT_SET_MBID_BCNQ_EN(x, v) \
  30137. (BIT_CLEAR_MBID_BCNQ_EN(x) | BIT_MBID_BCNQ_EN(v))
  30138. #endif
  30139. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30140. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  30141. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  30142. HALMAC_8881A_SUPPORT)
  30143. /* 2 REG_DTIM_COUNTER_VAP1 (Offset 0x05A9) */
  30144. #define BIT_SHIFT_DTIM_COUNT_VAP1 0
  30145. #define BIT_MASK_DTIM_COUNT_VAP1 0xff
  30146. #define BIT_DTIM_COUNT_VAP1(x) \
  30147. (((x) & BIT_MASK_DTIM_COUNT_VAP1) << BIT_SHIFT_DTIM_COUNT_VAP1)
  30148. #define BITS_DTIM_COUNT_VAP1 \
  30149. (BIT_MASK_DTIM_COUNT_VAP1 << BIT_SHIFT_DTIM_COUNT_VAP1)
  30150. #define BIT_CLEAR_DTIM_COUNT_VAP1(x) ((x) & (~BITS_DTIM_COUNT_VAP1))
  30151. #define BIT_GET_DTIM_COUNT_VAP1(x) \
  30152. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP1) & BIT_MASK_DTIM_COUNT_VAP1)
  30153. #define BIT_SET_DTIM_COUNT_VAP1(x, v) \
  30154. (BIT_CLEAR_DTIM_COUNT_VAP1(x) | BIT_DTIM_COUNT_VAP1(v))
  30155. /* 2 REG_DTIM_COUNTER_VAP2 (Offset 0x05AA) */
  30156. #define BIT_SHIFT_DTIM_COUNT_VAP2 0
  30157. #define BIT_MASK_DTIM_COUNT_VAP2 0xff
  30158. #define BIT_DTIM_COUNT_VAP2(x) \
  30159. (((x) & BIT_MASK_DTIM_COUNT_VAP2) << BIT_SHIFT_DTIM_COUNT_VAP2)
  30160. #define BITS_DTIM_COUNT_VAP2 \
  30161. (BIT_MASK_DTIM_COUNT_VAP2 << BIT_SHIFT_DTIM_COUNT_VAP2)
  30162. #define BIT_CLEAR_DTIM_COUNT_VAP2(x) ((x) & (~BITS_DTIM_COUNT_VAP2))
  30163. #define BIT_GET_DTIM_COUNT_VAP2(x) \
  30164. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP2) & BIT_MASK_DTIM_COUNT_VAP2)
  30165. #define BIT_SET_DTIM_COUNT_VAP2(x, v) \
  30166. (BIT_CLEAR_DTIM_COUNT_VAP2(x) | BIT_DTIM_COUNT_VAP2(v))
  30167. /* 2 REG_DTIM_COUNTER_VAP3 (Offset 0x05AB) */
  30168. #define BIT_SHIFT_DTIM_COUNT_VAP3 0
  30169. #define BIT_MASK_DTIM_COUNT_VAP3 0xff
  30170. #define BIT_DTIM_COUNT_VAP3(x) \
  30171. (((x) & BIT_MASK_DTIM_COUNT_VAP3) << BIT_SHIFT_DTIM_COUNT_VAP3)
  30172. #define BITS_DTIM_COUNT_VAP3 \
  30173. (BIT_MASK_DTIM_COUNT_VAP3 << BIT_SHIFT_DTIM_COUNT_VAP3)
  30174. #define BIT_CLEAR_DTIM_COUNT_VAP3(x) ((x) & (~BITS_DTIM_COUNT_VAP3))
  30175. #define BIT_GET_DTIM_COUNT_VAP3(x) \
  30176. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP3) & BIT_MASK_DTIM_COUNT_VAP3)
  30177. #define BIT_SET_DTIM_COUNT_VAP3(x, v) \
  30178. (BIT_CLEAR_DTIM_COUNT_VAP3(x) | BIT_DTIM_COUNT_VAP3(v))
  30179. /* 2 REG_DTIM_COUNTER_VAP4 (Offset 0x05AC) */
  30180. #define BIT_SHIFT_DTIM_COUNT_VAP4 0
  30181. #define BIT_MASK_DTIM_COUNT_VAP4 0xff
  30182. #define BIT_DTIM_COUNT_VAP4(x) \
  30183. (((x) & BIT_MASK_DTIM_COUNT_VAP4) << BIT_SHIFT_DTIM_COUNT_VAP4)
  30184. #define BITS_DTIM_COUNT_VAP4 \
  30185. (BIT_MASK_DTIM_COUNT_VAP4 << BIT_SHIFT_DTIM_COUNT_VAP4)
  30186. #define BIT_CLEAR_DTIM_COUNT_VAP4(x) ((x) & (~BITS_DTIM_COUNT_VAP4))
  30187. #define BIT_GET_DTIM_COUNT_VAP4(x) \
  30188. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP4) & BIT_MASK_DTIM_COUNT_VAP4)
  30189. #define BIT_SET_DTIM_COUNT_VAP4(x, v) \
  30190. (BIT_CLEAR_DTIM_COUNT_VAP4(x) | BIT_DTIM_COUNT_VAP4(v))
  30191. /* 2 REG_DTIM_COUNTER_VAP5 (Offset 0x05AD) */
  30192. #define BIT_SHIFT_DTIM_COUNT_VAP5 0
  30193. #define BIT_MASK_DTIM_COUNT_VAP5 0xff
  30194. #define BIT_DTIM_COUNT_VAP5(x) \
  30195. (((x) & BIT_MASK_DTIM_COUNT_VAP5) << BIT_SHIFT_DTIM_COUNT_VAP5)
  30196. #define BITS_DTIM_COUNT_VAP5 \
  30197. (BIT_MASK_DTIM_COUNT_VAP5 << BIT_SHIFT_DTIM_COUNT_VAP5)
  30198. #define BIT_CLEAR_DTIM_COUNT_VAP5(x) ((x) & (~BITS_DTIM_COUNT_VAP5))
  30199. #define BIT_GET_DTIM_COUNT_VAP5(x) \
  30200. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP5) & BIT_MASK_DTIM_COUNT_VAP5)
  30201. #define BIT_SET_DTIM_COUNT_VAP5(x, v) \
  30202. (BIT_CLEAR_DTIM_COUNT_VAP5(x) | BIT_DTIM_COUNT_VAP5(v))
  30203. /* 2 REG_DTIM_COUNTER_VAP6 (Offset 0x05AE) */
  30204. #define BIT_SHIFT_DTIM_COUNT_VAP6 0
  30205. #define BIT_MASK_DTIM_COUNT_VAP6 0xff
  30206. #define BIT_DTIM_COUNT_VAP6(x) \
  30207. (((x) & BIT_MASK_DTIM_COUNT_VAP6) << BIT_SHIFT_DTIM_COUNT_VAP6)
  30208. #define BITS_DTIM_COUNT_VAP6 \
  30209. (BIT_MASK_DTIM_COUNT_VAP6 << BIT_SHIFT_DTIM_COUNT_VAP6)
  30210. #define BIT_CLEAR_DTIM_COUNT_VAP6(x) ((x) & (~BITS_DTIM_COUNT_VAP6))
  30211. #define BIT_GET_DTIM_COUNT_VAP6(x) \
  30212. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP6) & BIT_MASK_DTIM_COUNT_VAP6)
  30213. #define BIT_SET_DTIM_COUNT_VAP6(x, v) \
  30214. (BIT_CLEAR_DTIM_COUNT_VAP6(x) | BIT_DTIM_COUNT_VAP6(v))
  30215. /* 2 REG_DTIM_COUNTER_VAP7 (Offset 0x05AF) */
  30216. #define BIT_SHIFT_DTIM_COUNT_VAP7 0
  30217. #define BIT_MASK_DTIM_COUNT_VAP7 0xff
  30218. #define BIT_DTIM_COUNT_VAP7(x) \
  30219. (((x) & BIT_MASK_DTIM_COUNT_VAP7) << BIT_SHIFT_DTIM_COUNT_VAP7)
  30220. #define BITS_DTIM_COUNT_VAP7 \
  30221. (BIT_MASK_DTIM_COUNT_VAP7 << BIT_SHIFT_DTIM_COUNT_VAP7)
  30222. #define BIT_CLEAR_DTIM_COUNT_VAP7(x) ((x) & (~BITS_DTIM_COUNT_VAP7))
  30223. #define BIT_GET_DTIM_COUNT_VAP7(x) \
  30224. (((x) >> BIT_SHIFT_DTIM_COUNT_VAP7) & BIT_MASK_DTIM_COUNT_VAP7)
  30225. #define BIT_SET_DTIM_COUNT_VAP7(x, v) \
  30226. (BIT_CLEAR_DTIM_COUNT_VAP7(x) | BIT_DTIM_COUNT_VAP7(v))
  30227. /* 2 REG_DIS_ATIM (Offset 0x05B0) */
  30228. #define BIT_MBIDCAM_VALID BIT(23)
  30229. #endif
  30230. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30231. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  30232. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  30233. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30234. /* 2 REG_DIS_ATIM (Offset 0x05B0) */
  30235. #define BIT_DIS_ATIM_VAP7 BIT(7)
  30236. #define BIT_DIS_ATIM_VAP6 BIT(6)
  30237. #define BIT_DIS_ATIM_VAP5 BIT(5)
  30238. #define BIT_DIS_ATIM_VAP4 BIT(4)
  30239. #define BIT_DIS_ATIM_VAP3 BIT(3)
  30240. #define BIT_DIS_ATIM_VAP2 BIT(2)
  30241. #define BIT_DIS_ATIM_VAP1 BIT(1)
  30242. #endif
  30243. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30244. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  30245. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  30246. HALMAC_8881A_SUPPORT)
  30247. /* 2 REG_DIS_ATIM (Offset 0x05B0) */
  30248. #define BIT_DIS_ATIM_ROOT BIT(0)
  30249. #endif
  30250. #if (HALMAC_8192F_SUPPORT)
  30251. /* 2 REG_EARLY_128US (Offset 0x05B1) */
  30252. #define BIT_SHIFT_EARLY_128US_2ST 3
  30253. #define BIT_MASK_EARLY_128US_2ST 0x7
  30254. #define BIT_EARLY_128US_2ST(x) \
  30255. (((x) & BIT_MASK_EARLY_128US_2ST) << BIT_SHIFT_EARLY_128US_2ST)
  30256. #define BITS_EARLY_128US_2ST \
  30257. (BIT_MASK_EARLY_128US_2ST << BIT_SHIFT_EARLY_128US_2ST)
  30258. #define BIT_CLEAR_EARLY_128US_2ST(x) ((x) & (~BITS_EARLY_128US_2ST))
  30259. #define BIT_GET_EARLY_128US_2ST(x) \
  30260. (((x) >> BIT_SHIFT_EARLY_128US_2ST) & BIT_MASK_EARLY_128US_2ST)
  30261. #define BIT_SET_EARLY_128US_2ST(x, v) \
  30262. (BIT_CLEAR_EARLY_128US_2ST(x) | BIT_EARLY_128US_2ST(v))
  30263. #endif
  30264. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30265. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30266. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30267. /* 2 REG_EARLY_128US (Offset 0x05B1) */
  30268. #define BIT_SHIFT_TSFT_SEL_TIMER1 3
  30269. #define BIT_MASK_TSFT_SEL_TIMER1 0x7
  30270. #define BIT_TSFT_SEL_TIMER1(x) \
  30271. (((x) & BIT_MASK_TSFT_SEL_TIMER1) << BIT_SHIFT_TSFT_SEL_TIMER1)
  30272. #define BITS_TSFT_SEL_TIMER1 \
  30273. (BIT_MASK_TSFT_SEL_TIMER1 << BIT_SHIFT_TSFT_SEL_TIMER1)
  30274. #define BIT_CLEAR_TSFT_SEL_TIMER1(x) ((x) & (~BITS_TSFT_SEL_TIMER1))
  30275. #define BIT_GET_TSFT_SEL_TIMER1(x) \
  30276. (((x) >> BIT_SHIFT_TSFT_SEL_TIMER1) & BIT_MASK_TSFT_SEL_TIMER1)
  30277. #define BIT_SET_TSFT_SEL_TIMER1(x, v) \
  30278. (BIT_CLEAR_TSFT_SEL_TIMER1(x) | BIT_TSFT_SEL_TIMER1(v))
  30279. #endif
  30280. #if (HALMAC_8192F_SUPPORT)
  30281. /* 2 REG_TBTT_HOLD_PREDICT_P1 (Offset 0x05B2) */
  30282. #define BIT_DIS_BCN_3RD BIT(7)
  30283. #endif
  30284. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30285. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30286. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30287. /* 2 REG_P2PPS1_CTRL (Offset 0x05B2) */
  30288. #define BIT_P2P1_CTW_ALLSTASLEEP BIT(7)
  30289. #endif
  30290. #if (HALMAC_8192F_SUPPORT)
  30291. /* 2 REG_TBTT_HOLD_PREDICT_P1 (Offset 0x05B2) */
  30292. #define BIT_DIS_BCN_2ST BIT(6)
  30293. #endif
  30294. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30295. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  30296. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30297. /* 2 REG_P2PPS1_CTRL (Offset 0x05B2) */
  30298. #define BIT_P2P1_OFF_DISTX_EN BIT(6)
  30299. #endif
  30300. #if (HALMAC_8192F_SUPPORT)
  30301. /* 2 REG_TBTT_HOLD_PREDICT_P1 (Offset 0x05B2) */
  30302. #define BIT_DIS_BCN_1ST BIT(5)
  30303. #endif
  30304. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30305. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30306. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30307. /* 2 REG_P2PPS1_CTRL (Offset 0x05B2) */
  30308. #define BIT_P2P1_PWR_MGT_EN BIT(5)
  30309. #define BIT_P2P1_NOA1_EN BIT(2)
  30310. #define BIT_P2P1_NOA0_EN BIT(1)
  30311. #endif
  30312. #if (HALMAC_8192F_SUPPORT)
  30313. /* 2 REG_TBTT_HOLD_PREDICT_P1 (Offset 0x05B2) */
  30314. #define BIT_SHIFT_TBTT_HOLD_PREDICT_P1 0
  30315. #define BIT_MASK_TBTT_HOLD_PREDICT_P1 0x1f
  30316. #define BIT_TBTT_HOLD_PREDICT_P1(x) \
  30317. (((x) & BIT_MASK_TBTT_HOLD_PREDICT_P1) \
  30318. << BIT_SHIFT_TBTT_HOLD_PREDICT_P1)
  30319. #define BITS_TBTT_HOLD_PREDICT_P1 \
  30320. (BIT_MASK_TBTT_HOLD_PREDICT_P1 << BIT_SHIFT_TBTT_HOLD_PREDICT_P1)
  30321. #define BIT_CLEAR_TBTT_HOLD_PREDICT_P1(x) ((x) & (~BITS_TBTT_HOLD_PREDICT_P1))
  30322. #define BIT_GET_TBTT_HOLD_PREDICT_P1(x) \
  30323. (((x) >> BIT_SHIFT_TBTT_HOLD_PREDICT_P1) & \
  30324. BIT_MASK_TBTT_HOLD_PREDICT_P1)
  30325. #define BIT_SET_TBTT_HOLD_PREDICT_P1(x, v) \
  30326. (BIT_CLEAR_TBTT_HOLD_PREDICT_P1(x) | BIT_TBTT_HOLD_PREDICT_P1(v))
  30327. /* 2 REG_MULTI_BCN_CS (Offset 0x05B3) */
  30328. #define BIT_EN_FREECNT_V2 BIT(13)
  30329. #define BIT_RESET_FREECNT_P BIT(12)
  30330. #define BIT_TSFTR3_SYNC_EN BIT(7)
  30331. #endif
  30332. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30333. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30334. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30335. /* 2 REG_P2PPS2_CTRL (Offset 0x05B3) */
  30336. #define BIT_P2P2_CTW_ALLSTASLEEP BIT(7)
  30337. #endif
  30338. #if (HALMAC_8192F_SUPPORT)
  30339. /* 2 REG_MULTI_BCN_CS (Offset 0x05B3) */
  30340. #define BIT_SHIFT_P1_TSFT_SHIFT 6
  30341. #define BIT_MASK_P1_TSFT_SHIFT 0x3f
  30342. #define BIT_P1_TSFT_SHIFT(x) \
  30343. (((x) & BIT_MASK_P1_TSFT_SHIFT) << BIT_SHIFT_P1_TSFT_SHIFT)
  30344. #define BITS_P1_TSFT_SHIFT (BIT_MASK_P1_TSFT_SHIFT << BIT_SHIFT_P1_TSFT_SHIFT)
  30345. #define BIT_CLEAR_P1_TSFT_SHIFT(x) ((x) & (~BITS_P1_TSFT_SHIFT))
  30346. #define BIT_GET_P1_TSFT_SHIFT(x) \
  30347. (((x) >> BIT_SHIFT_P1_TSFT_SHIFT) & BIT_MASK_P1_TSFT_SHIFT)
  30348. #define BIT_SET_P1_TSFT_SHIFT(x, v) \
  30349. (BIT_CLEAR_P1_TSFT_SHIFT(x) | BIT_P1_TSFT_SHIFT(v))
  30350. #endif
  30351. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30352. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  30353. HALMAC_8822C_SUPPORT)
  30354. /* 2 REG_P2PPS2_CTRL (Offset 0x05B3) */
  30355. #define BIT_P2P2_OFF_DISTX_EN BIT(6)
  30356. #endif
  30357. #if (HALMAC_8192F_SUPPORT)
  30358. /* 2 REG_MULTI_BCN_CS (Offset 0x05B3) */
  30359. #define BIT_TSFTR2_SYNC_EN BIT(5)
  30360. #endif
  30361. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30362. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30363. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30364. /* 2 REG_P2PPS2_CTRL (Offset 0x05B3) */
  30365. #define BIT_P2P2_PWR_MGT_EN BIT(5)
  30366. #endif
  30367. #if (HALMAC_8192F_SUPPORT)
  30368. /* 2 REG_MULTI_BCN_CS (Offset 0x05B3) */
  30369. #define BIT_TSFTR2_RST BIT(4)
  30370. #endif
  30371. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30372. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30373. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30374. /* 2 REG_P2PPS2_CTRL (Offset 0x05B3) */
  30375. #define BIT_P2P2_NOA1_EN BIT(2)
  30376. #define BIT_P2P2_NOA0_EN BIT(1)
  30377. #endif
  30378. #if (HALMAC_8192F_SUPPORT)
  30379. /* 2 REG_MULTI_BCN_CS (Offset 0x05B3) */
  30380. #define BIT_SHIFT_MULTI_BCN_CS 0
  30381. #define BIT_MASK_MULTI_BCN_CS 0xf
  30382. #define BIT_MULTI_BCN_CS(x) \
  30383. (((x) & BIT_MASK_MULTI_BCN_CS) << BIT_SHIFT_MULTI_BCN_CS)
  30384. #define BITS_MULTI_BCN_CS (BIT_MASK_MULTI_BCN_CS << BIT_SHIFT_MULTI_BCN_CS)
  30385. #define BIT_CLEAR_MULTI_BCN_CS(x) ((x) & (~BITS_MULTI_BCN_CS))
  30386. #define BIT_GET_MULTI_BCN_CS(x) \
  30387. (((x) >> BIT_SHIFT_MULTI_BCN_CS) & BIT_MASK_MULTI_BCN_CS)
  30388. #define BIT_SET_MULTI_BCN_CS(x, v) \
  30389. (BIT_CLEAR_MULTI_BCN_CS(x) | BIT_MULTI_BCN_CS(v))
  30390. #define BIT_SHIFT_P0_TSFT_SHIFT 0
  30391. #define BIT_MASK_P0_TSFT_SHIFT 0x3f
  30392. #define BIT_P0_TSFT_SHIFT(x) \
  30393. (((x) & BIT_MASK_P0_TSFT_SHIFT) << BIT_SHIFT_P0_TSFT_SHIFT)
  30394. #define BITS_P0_TSFT_SHIFT (BIT_MASK_P0_TSFT_SHIFT << BIT_SHIFT_P0_TSFT_SHIFT)
  30395. #define BIT_CLEAR_P0_TSFT_SHIFT(x) ((x) & (~BITS_P0_TSFT_SHIFT))
  30396. #define BIT_GET_P0_TSFT_SHIFT(x) \
  30397. (((x) >> BIT_SHIFT_P0_TSFT_SHIFT) & BIT_MASK_P0_TSFT_SHIFT)
  30398. #define BIT_SET_P0_TSFT_SHIFT(x, v) \
  30399. (BIT_CLEAR_P0_TSFT_SHIFT(x) | BIT_P0_TSFT_SHIFT(v))
  30400. #define BIT_DIS_NDPA_NAV_CHK_V1 BIT(0)
  30401. #endif
  30402. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30403. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30404. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30405. /* 2 REG_TIMER0_SRC_SEL (Offset 0x05B4) */
  30406. #define BIT_SHIFT_SYNC_CLI_SEL 4
  30407. #define BIT_MASK_SYNC_CLI_SEL 0x7
  30408. #define BIT_SYNC_CLI_SEL(x) \
  30409. (((x) & BIT_MASK_SYNC_CLI_SEL) << BIT_SHIFT_SYNC_CLI_SEL)
  30410. #define BITS_SYNC_CLI_SEL (BIT_MASK_SYNC_CLI_SEL << BIT_SHIFT_SYNC_CLI_SEL)
  30411. #define BIT_CLEAR_SYNC_CLI_SEL(x) ((x) & (~BITS_SYNC_CLI_SEL))
  30412. #define BIT_GET_SYNC_CLI_SEL(x) \
  30413. (((x) >> BIT_SHIFT_SYNC_CLI_SEL) & BIT_MASK_SYNC_CLI_SEL)
  30414. #define BIT_SET_SYNC_CLI_SEL(x, v) \
  30415. (BIT_CLEAR_SYNC_CLI_SEL(x) | BIT_SYNC_CLI_SEL(v))
  30416. #define BIT_SHIFT_TSFT_SEL_TIMER0 0
  30417. #define BIT_MASK_TSFT_SEL_TIMER0 0x7
  30418. #define BIT_TSFT_SEL_TIMER0(x) \
  30419. (((x) & BIT_MASK_TSFT_SEL_TIMER0) << BIT_SHIFT_TSFT_SEL_TIMER0)
  30420. #define BITS_TSFT_SEL_TIMER0 \
  30421. (BIT_MASK_TSFT_SEL_TIMER0 << BIT_SHIFT_TSFT_SEL_TIMER0)
  30422. #define BIT_CLEAR_TSFT_SEL_TIMER0(x) ((x) & (~BITS_TSFT_SEL_TIMER0))
  30423. #define BIT_GET_TSFT_SEL_TIMER0(x) \
  30424. (((x) >> BIT_SHIFT_TSFT_SEL_TIMER0) & BIT_MASK_TSFT_SEL_TIMER0)
  30425. #define BIT_SET_TSFT_SEL_TIMER0(x, v) \
  30426. (BIT_CLEAR_TSFT_SEL_TIMER0(x) | BIT_TSFT_SEL_TIMER0(v))
  30427. /* 2 REG_NOA_UNIT_SEL (Offset 0x05B5) */
  30428. #define BIT_SHIFT_NOA_UNIT2_SEL 8
  30429. #define BIT_MASK_NOA_UNIT2_SEL 0x7
  30430. #define BIT_NOA_UNIT2_SEL(x) \
  30431. (((x) & BIT_MASK_NOA_UNIT2_SEL) << BIT_SHIFT_NOA_UNIT2_SEL)
  30432. #define BITS_NOA_UNIT2_SEL (BIT_MASK_NOA_UNIT2_SEL << BIT_SHIFT_NOA_UNIT2_SEL)
  30433. #define BIT_CLEAR_NOA_UNIT2_SEL(x) ((x) & (~BITS_NOA_UNIT2_SEL))
  30434. #define BIT_GET_NOA_UNIT2_SEL(x) \
  30435. (((x) >> BIT_SHIFT_NOA_UNIT2_SEL) & BIT_MASK_NOA_UNIT2_SEL)
  30436. #define BIT_SET_NOA_UNIT2_SEL(x, v) \
  30437. (BIT_CLEAR_NOA_UNIT2_SEL(x) | BIT_NOA_UNIT2_SEL(v))
  30438. #define BIT_SHIFT_NOA_UNIT1_SEL 4
  30439. #define BIT_MASK_NOA_UNIT1_SEL 0x7
  30440. #define BIT_NOA_UNIT1_SEL(x) \
  30441. (((x) & BIT_MASK_NOA_UNIT1_SEL) << BIT_SHIFT_NOA_UNIT1_SEL)
  30442. #define BITS_NOA_UNIT1_SEL (BIT_MASK_NOA_UNIT1_SEL << BIT_SHIFT_NOA_UNIT1_SEL)
  30443. #define BIT_CLEAR_NOA_UNIT1_SEL(x) ((x) & (~BITS_NOA_UNIT1_SEL))
  30444. #define BIT_GET_NOA_UNIT1_SEL(x) \
  30445. (((x) >> BIT_SHIFT_NOA_UNIT1_SEL) & BIT_MASK_NOA_UNIT1_SEL)
  30446. #define BIT_SET_NOA_UNIT1_SEL(x, v) \
  30447. (BIT_CLEAR_NOA_UNIT1_SEL(x) | BIT_NOA_UNIT1_SEL(v))
  30448. #define BIT_SHIFT_NOA_UNIT0_SEL 0
  30449. #define BIT_MASK_NOA_UNIT0_SEL 0x7
  30450. #define BIT_NOA_UNIT0_SEL(x) \
  30451. (((x) & BIT_MASK_NOA_UNIT0_SEL) << BIT_SHIFT_NOA_UNIT0_SEL)
  30452. #define BITS_NOA_UNIT0_SEL (BIT_MASK_NOA_UNIT0_SEL << BIT_SHIFT_NOA_UNIT0_SEL)
  30453. #define BIT_CLEAR_NOA_UNIT0_SEL(x) ((x) & (~BITS_NOA_UNIT0_SEL))
  30454. #define BIT_GET_NOA_UNIT0_SEL(x) \
  30455. (((x) >> BIT_SHIFT_NOA_UNIT0_SEL) & BIT_MASK_NOA_UNIT0_SEL)
  30456. #define BIT_SET_NOA_UNIT0_SEL(x, v) \
  30457. (BIT_CLEAR_NOA_UNIT0_SEL(x) | BIT_NOA_UNIT0_SEL(v))
  30458. #endif
  30459. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  30460. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  30461. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  30462. HALMAC_8822C_SUPPORT)
  30463. /* 2 REG_P2POFF_DIS_TXTIME (Offset 0x05B7) */
  30464. #define BIT_SHIFT_P2POFF_DIS_TXTIME 0
  30465. #define BIT_MASK_P2POFF_DIS_TXTIME 0xff
  30466. #define BIT_P2POFF_DIS_TXTIME(x) \
  30467. (((x) & BIT_MASK_P2POFF_DIS_TXTIME) << BIT_SHIFT_P2POFF_DIS_TXTIME)
  30468. #define BITS_P2POFF_DIS_TXTIME \
  30469. (BIT_MASK_P2POFF_DIS_TXTIME << BIT_SHIFT_P2POFF_DIS_TXTIME)
  30470. #define BIT_CLEAR_P2POFF_DIS_TXTIME(x) ((x) & (~BITS_P2POFF_DIS_TXTIME))
  30471. #define BIT_GET_P2POFF_DIS_TXTIME(x) \
  30472. (((x) >> BIT_SHIFT_P2POFF_DIS_TXTIME) & BIT_MASK_P2POFF_DIS_TXTIME)
  30473. #define BIT_SET_P2POFF_DIS_TXTIME(x, v) \
  30474. (BIT_CLEAR_P2POFF_DIS_TXTIME(x) | BIT_P2POFF_DIS_TXTIME(v))
  30475. #endif
  30476. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30477. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30478. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30479. /* 2 REG_MBSSID_BCN_SPACE2 (Offset 0x05B8) */
  30480. #define BIT_SHIFT_BCN_SPACE_CLINT2 16
  30481. #define BIT_MASK_BCN_SPACE_CLINT2 0xfff
  30482. #define BIT_BCN_SPACE_CLINT2(x) \
  30483. (((x) & BIT_MASK_BCN_SPACE_CLINT2) << BIT_SHIFT_BCN_SPACE_CLINT2)
  30484. #define BITS_BCN_SPACE_CLINT2 \
  30485. (BIT_MASK_BCN_SPACE_CLINT2 << BIT_SHIFT_BCN_SPACE_CLINT2)
  30486. #define BIT_CLEAR_BCN_SPACE_CLINT2(x) ((x) & (~BITS_BCN_SPACE_CLINT2))
  30487. #define BIT_GET_BCN_SPACE_CLINT2(x) \
  30488. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT2) & BIT_MASK_BCN_SPACE_CLINT2)
  30489. #define BIT_SET_BCN_SPACE_CLINT2(x, v) \
  30490. (BIT_CLEAR_BCN_SPACE_CLINT2(x) | BIT_BCN_SPACE_CLINT2(v))
  30491. #define BIT_SHIFT_BCN_SPACE_CLINT1 0
  30492. #define BIT_MASK_BCN_SPACE_CLINT1 0xfff
  30493. #define BIT_BCN_SPACE_CLINT1(x) \
  30494. (((x) & BIT_MASK_BCN_SPACE_CLINT1) << BIT_SHIFT_BCN_SPACE_CLINT1)
  30495. #define BITS_BCN_SPACE_CLINT1 \
  30496. (BIT_MASK_BCN_SPACE_CLINT1 << BIT_SHIFT_BCN_SPACE_CLINT1)
  30497. #define BIT_CLEAR_BCN_SPACE_CLINT1(x) ((x) & (~BITS_BCN_SPACE_CLINT1))
  30498. #define BIT_GET_BCN_SPACE_CLINT1(x) \
  30499. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT1) & BIT_MASK_BCN_SPACE_CLINT1)
  30500. #define BIT_SET_BCN_SPACE_CLINT1(x, v) \
  30501. (BIT_CLEAR_BCN_SPACE_CLINT1(x) | BIT_BCN_SPACE_CLINT1(v))
  30502. /* 2 REG_MBSSID_BCN_SPACE3 (Offset 0x05BC) */
  30503. #define BIT_SHIFT_SUB_BCN_SPACE 16
  30504. #define BIT_MASK_SUB_BCN_SPACE 0xff
  30505. #define BIT_SUB_BCN_SPACE(x) \
  30506. (((x) & BIT_MASK_SUB_BCN_SPACE) << BIT_SHIFT_SUB_BCN_SPACE)
  30507. #define BITS_SUB_BCN_SPACE (BIT_MASK_SUB_BCN_SPACE << BIT_SHIFT_SUB_BCN_SPACE)
  30508. #define BIT_CLEAR_SUB_BCN_SPACE(x) ((x) & (~BITS_SUB_BCN_SPACE))
  30509. #define BIT_GET_SUB_BCN_SPACE(x) \
  30510. (((x) >> BIT_SHIFT_SUB_BCN_SPACE) & BIT_MASK_SUB_BCN_SPACE)
  30511. #define BIT_SET_SUB_BCN_SPACE(x, v) \
  30512. (BIT_CLEAR_SUB_BCN_SPACE(x) | BIT_SUB_BCN_SPACE(v))
  30513. #define BIT_SHIFT_BCN_SPACE_CLINT3 0
  30514. #define BIT_MASK_BCN_SPACE_CLINT3 0xfff
  30515. #define BIT_BCN_SPACE_CLINT3(x) \
  30516. (((x) & BIT_MASK_BCN_SPACE_CLINT3) << BIT_SHIFT_BCN_SPACE_CLINT3)
  30517. #define BITS_BCN_SPACE_CLINT3 \
  30518. (BIT_MASK_BCN_SPACE_CLINT3 << BIT_SHIFT_BCN_SPACE_CLINT3)
  30519. #define BIT_CLEAR_BCN_SPACE_CLINT3(x) ((x) & (~BITS_BCN_SPACE_CLINT3))
  30520. #define BIT_GET_BCN_SPACE_CLINT3(x) \
  30521. (((x) >> BIT_SHIFT_BCN_SPACE_CLINT3) & BIT_MASK_BCN_SPACE_CLINT3)
  30522. #define BIT_SET_BCN_SPACE_CLINT3(x, v) \
  30523. (BIT_CLEAR_BCN_SPACE_CLINT3(x) | BIT_BCN_SPACE_CLINT3(v))
  30524. #endif
  30525. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30526. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30527. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  30528. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30529. /* 2 REG_ACMHWCTRL (Offset 0x05C0) */
  30530. #define BIT_BEQ_ACM_STATUS BIT(7)
  30531. #define BIT_VIQ_ACM_STATUS BIT(6)
  30532. #define BIT_VOQ_ACM_STATUS BIT(5)
  30533. #define BIT_BEQ_ACM_EN BIT(3)
  30534. #define BIT_VIQ_ACM_EN BIT(2)
  30535. #define BIT_VOQ_ACM_EN BIT(1)
  30536. #define BIT_ACMHWEN BIT(0)
  30537. /* 2 REG_ACMRSTCTRL (Offset 0x05C1) */
  30538. #define BIT_BE_ACM_RESET_USED_TIME BIT(2)
  30539. #define BIT_VI_ACM_RESET_USED_TIME BIT(1)
  30540. #define BIT_VO_ACM_RESET_USED_TIME BIT(0)
  30541. /* 2 REG_ACMAVG (Offset 0x05C2) */
  30542. #define BIT_SHIFT_AVGPERIOD 0
  30543. #define BIT_MASK_AVGPERIOD 0xffff
  30544. #define BIT_AVGPERIOD(x) (((x) & BIT_MASK_AVGPERIOD) << BIT_SHIFT_AVGPERIOD)
  30545. #define BITS_AVGPERIOD (BIT_MASK_AVGPERIOD << BIT_SHIFT_AVGPERIOD)
  30546. #define BIT_CLEAR_AVGPERIOD(x) ((x) & (~BITS_AVGPERIOD))
  30547. #define BIT_GET_AVGPERIOD(x) (((x) >> BIT_SHIFT_AVGPERIOD) & BIT_MASK_AVGPERIOD)
  30548. #define BIT_SET_AVGPERIOD(x, v) (BIT_CLEAR_AVGPERIOD(x) | BIT_AVGPERIOD(v))
  30549. /* 2 REG_VO_ADMTIME (Offset 0x05C4) */
  30550. #define BIT_SHIFT_VO_ADMITTED_TIME 0
  30551. #define BIT_MASK_VO_ADMITTED_TIME 0xffff
  30552. #define BIT_VO_ADMITTED_TIME(x) \
  30553. (((x) & BIT_MASK_VO_ADMITTED_TIME) << BIT_SHIFT_VO_ADMITTED_TIME)
  30554. #define BITS_VO_ADMITTED_TIME \
  30555. (BIT_MASK_VO_ADMITTED_TIME << BIT_SHIFT_VO_ADMITTED_TIME)
  30556. #define BIT_CLEAR_VO_ADMITTED_TIME(x) ((x) & (~BITS_VO_ADMITTED_TIME))
  30557. #define BIT_GET_VO_ADMITTED_TIME(x) \
  30558. (((x) >> BIT_SHIFT_VO_ADMITTED_TIME) & BIT_MASK_VO_ADMITTED_TIME)
  30559. #define BIT_SET_VO_ADMITTED_TIME(x, v) \
  30560. (BIT_CLEAR_VO_ADMITTED_TIME(x) | BIT_VO_ADMITTED_TIME(v))
  30561. /* 2 REG_VI_ADMTIME (Offset 0x05C6) */
  30562. #define BIT_SHIFT_VI_ADMITTED_TIME 0
  30563. #define BIT_MASK_VI_ADMITTED_TIME 0xffff
  30564. #define BIT_VI_ADMITTED_TIME(x) \
  30565. (((x) & BIT_MASK_VI_ADMITTED_TIME) << BIT_SHIFT_VI_ADMITTED_TIME)
  30566. #define BITS_VI_ADMITTED_TIME \
  30567. (BIT_MASK_VI_ADMITTED_TIME << BIT_SHIFT_VI_ADMITTED_TIME)
  30568. #define BIT_CLEAR_VI_ADMITTED_TIME(x) ((x) & (~BITS_VI_ADMITTED_TIME))
  30569. #define BIT_GET_VI_ADMITTED_TIME(x) \
  30570. (((x) >> BIT_SHIFT_VI_ADMITTED_TIME) & BIT_MASK_VI_ADMITTED_TIME)
  30571. #define BIT_SET_VI_ADMITTED_TIME(x, v) \
  30572. (BIT_CLEAR_VI_ADMITTED_TIME(x) | BIT_VI_ADMITTED_TIME(v))
  30573. #endif
  30574. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  30575. /* 2 REG_BE_ADMTIME (Offset 0x05C8) */
  30576. #define BIT_PRETX_ERRHDL_EN BIT(15)
  30577. #endif
  30578. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30579. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30580. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  30581. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30582. /* 2 REG_BE_ADMTIME (Offset 0x05C8) */
  30583. #define BIT_SHIFT_BE_ADMITTED_TIME 0
  30584. #define BIT_MASK_BE_ADMITTED_TIME 0xffff
  30585. #define BIT_BE_ADMITTED_TIME(x) \
  30586. (((x) & BIT_MASK_BE_ADMITTED_TIME) << BIT_SHIFT_BE_ADMITTED_TIME)
  30587. #define BITS_BE_ADMITTED_TIME \
  30588. (BIT_MASK_BE_ADMITTED_TIME << BIT_SHIFT_BE_ADMITTED_TIME)
  30589. #define BIT_CLEAR_BE_ADMITTED_TIME(x) ((x) & (~BITS_BE_ADMITTED_TIME))
  30590. #define BIT_GET_BE_ADMITTED_TIME(x) \
  30591. (((x) >> BIT_SHIFT_BE_ADMITTED_TIME) & BIT_MASK_BE_ADMITTED_TIME)
  30592. #define BIT_SET_BE_ADMITTED_TIME(x, v) \
  30593. (BIT_CLEAR_BE_ADMITTED_TIME(x) | BIT_BE_ADMITTED_TIME(v))
  30594. #endif
  30595. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT)
  30596. /* 2 REG_BE_ADMTIME (Offset 0x05C8) */
  30597. #define BIT_SHIFT_MHDR_NAV_OFFSET 0
  30598. #define BIT_MASK_MHDR_NAV_OFFSET 0xff
  30599. #define BIT_MHDR_NAV_OFFSET(x) \
  30600. (((x) & BIT_MASK_MHDR_NAV_OFFSET) << BIT_SHIFT_MHDR_NAV_OFFSET)
  30601. #define BITS_MHDR_NAV_OFFSET \
  30602. (BIT_MASK_MHDR_NAV_OFFSET << BIT_SHIFT_MHDR_NAV_OFFSET)
  30603. #define BIT_CLEAR_MHDR_NAV_OFFSET(x) ((x) & (~BITS_MHDR_NAV_OFFSET))
  30604. #define BIT_GET_MHDR_NAV_OFFSET(x) \
  30605. (((x) >> BIT_SHIFT_MHDR_NAV_OFFSET) & BIT_MASK_MHDR_NAV_OFFSET)
  30606. #define BIT_SET_MHDR_NAV_OFFSET(x, v) \
  30607. (BIT_CLEAR_MHDR_NAV_OFFSET(x) | BIT_MHDR_NAV_OFFSET(v))
  30608. #endif
  30609. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  30610. /* 2 REG_MAC_HEADER_NAV_OFFSET (Offset 0x05CA) */
  30611. #define BIT_SHIFT_MAC_HEADER_NAV_OFFSET 0
  30612. #define BIT_MASK_MAC_HEADER_NAV_OFFSET 0xff
  30613. #define BIT_MAC_HEADER_NAV_OFFSET(x) \
  30614. (((x) & BIT_MASK_MAC_HEADER_NAV_OFFSET) \
  30615. << BIT_SHIFT_MAC_HEADER_NAV_OFFSET)
  30616. #define BITS_MAC_HEADER_NAV_OFFSET \
  30617. (BIT_MASK_MAC_HEADER_NAV_OFFSET << BIT_SHIFT_MAC_HEADER_NAV_OFFSET)
  30618. #define BIT_CLEAR_MAC_HEADER_NAV_OFFSET(x) ((x) & (~BITS_MAC_HEADER_NAV_OFFSET))
  30619. #define BIT_GET_MAC_HEADER_NAV_OFFSET(x) \
  30620. (((x) >> BIT_SHIFT_MAC_HEADER_NAV_OFFSET) & \
  30621. BIT_MASK_MAC_HEADER_NAV_OFFSET)
  30622. #define BIT_SET_MAC_HEADER_NAV_OFFSET(x, v) \
  30623. (BIT_CLEAR_MAC_HEADER_NAV_OFFSET(x) | BIT_MAC_HEADER_NAV_OFFSET(v))
  30624. #endif
  30625. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  30626. /* 2 REG_DIS_NDPA_NAV_CHECK (Offset 0x05CB) */
  30627. #define BIT_CHG_POWER_BCN_AREA_V1 BIT(1)
  30628. #endif
  30629. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  30630. /* 2 REG_DIS_NDPA_NAV_CHECK (Offset 0x05CB) */
  30631. #define BIT_DIS_NDPA_NAV_CHECK BIT(0)
  30632. #endif
  30633. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  30634. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  30635. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  30636. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  30637. /* 2 REG_EDCA_RANDOM_GEN (Offset 0x05CC) */
  30638. #define BIT_SHIFT_RANDOM_GEN 0
  30639. #define BIT_MASK_RANDOM_GEN 0xffffff
  30640. #define BIT_RANDOM_GEN(x) (((x) & BIT_MASK_RANDOM_GEN) << BIT_SHIFT_RANDOM_GEN)
  30641. #define BITS_RANDOM_GEN (BIT_MASK_RANDOM_GEN << BIT_SHIFT_RANDOM_GEN)
  30642. #define BIT_CLEAR_RANDOM_GEN(x) ((x) & (~BITS_RANDOM_GEN))
  30643. #define BIT_GET_RANDOM_GEN(x) \
  30644. (((x) >> BIT_SHIFT_RANDOM_GEN) & BIT_MASK_RANDOM_GEN)
  30645. #define BIT_SET_RANDOM_GEN(x, v) (BIT_CLEAR_RANDOM_GEN(x) | BIT_RANDOM_GEN(v))
  30646. #define BIT_SHIFT_TXCMD_SEG_SEL 0
  30647. #define BIT_MASK_TXCMD_SEG_SEL 0xf
  30648. #define BIT_TXCMD_SEG_SEL(x) \
  30649. (((x) & BIT_MASK_TXCMD_SEG_SEL) << BIT_SHIFT_TXCMD_SEG_SEL)
  30650. #define BITS_TXCMD_SEG_SEL (BIT_MASK_TXCMD_SEG_SEL << BIT_SHIFT_TXCMD_SEG_SEL)
  30651. #define BIT_CLEAR_TXCMD_SEG_SEL(x) ((x) & (~BITS_TXCMD_SEG_SEL))
  30652. #define BIT_GET_TXCMD_SEG_SEL(x) \
  30653. (((x) >> BIT_SHIFT_TXCMD_SEG_SEL) & BIT_MASK_TXCMD_SEG_SEL)
  30654. #define BIT_SET_TXCMD_SEG_SEL(x, v) \
  30655. (BIT_CLEAR_TXCMD_SEG_SEL(x) | BIT_TXCMD_SEG_SEL(v))
  30656. #endif
  30657. #if (HALMAC_8192F_SUPPORT)
  30658. /* 2 REG_TXCMD_NOA_SEL (Offset 0x05CF) */
  30659. #define BIT_SHIFT_EVTQ_EARLY 5
  30660. #define BIT_MASK_EVTQ_EARLY 0x7
  30661. #define BIT_EVTQ_EARLY(x) (((x) & BIT_MASK_EVTQ_EARLY) << BIT_SHIFT_EVTQ_EARLY)
  30662. #define BITS_EVTQ_EARLY (BIT_MASK_EVTQ_EARLY << BIT_SHIFT_EVTQ_EARLY)
  30663. #define BIT_CLEAR_EVTQ_EARLY(x) ((x) & (~BITS_EVTQ_EARLY))
  30664. #define BIT_GET_EVTQ_EARLY(x) \
  30665. (((x) >> BIT_SHIFT_EVTQ_EARLY) & BIT_MASK_EVTQ_EARLY)
  30666. #define BIT_SET_EVTQ_EARLY(x, v) (BIT_CLEAR_EVTQ_EARLY(x) | BIT_EVTQ_EARLY(v))
  30667. #endif
  30668. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  30669. /* 2 REG_TXCMD_NOA_SEL (Offset 0x05CF) */
  30670. #define BIT_NOA_SEL BIT(4)
  30671. #endif
  30672. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30673. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  30674. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  30675. /* 2 REG_TXCMD_NOA_SEL (Offset 0x05CF) */
  30676. #define BIT_SHIFT_NOA_SEL_V2 4
  30677. #define BIT_MASK_NOA_SEL_V2 0x7
  30678. #define BIT_NOA_SEL_V2(x) (((x) & BIT_MASK_NOA_SEL_V2) << BIT_SHIFT_NOA_SEL_V2)
  30679. #define BITS_NOA_SEL_V2 (BIT_MASK_NOA_SEL_V2 << BIT_SHIFT_NOA_SEL_V2)
  30680. #define BIT_CLEAR_NOA_SEL_V2(x) ((x) & (~BITS_NOA_SEL_V2))
  30681. #define BIT_GET_NOA_SEL_V2(x) \
  30682. (((x) >> BIT_SHIFT_NOA_SEL_V2) & BIT_MASK_NOA_SEL_V2)
  30683. #define BIT_SET_NOA_SEL_V2(x, v) (BIT_CLEAR_NOA_SEL_V2(x) | BIT_NOA_SEL_V2(v))
  30684. #endif
  30685. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  30686. /* 2 REG_32K_CLK_SEL (Offset 0x05D0) */
  30687. #define BIT_R_BCNERR_CNT_EN BIT(20)
  30688. #endif
  30689. #if (HALMAC_8192F_SUPPORT)
  30690. /* 2 REG_DRVERLYINT2 (Offset 0x05D0) */
  30691. #define BIT_SHIFT_TSF_DIFF_P1P2 16
  30692. #define BIT_MASK_TSF_DIFF_P1P2 0xffff
  30693. #define BIT_TSF_DIFF_P1P2(x) \
  30694. (((x) & BIT_MASK_TSF_DIFF_P1P2) << BIT_SHIFT_TSF_DIFF_P1P2)
  30695. #define BITS_TSF_DIFF_P1P2 (BIT_MASK_TSF_DIFF_P1P2 << BIT_SHIFT_TSF_DIFF_P1P2)
  30696. #define BIT_CLEAR_TSF_DIFF_P1P2(x) ((x) & (~BITS_TSF_DIFF_P1P2))
  30697. #define BIT_GET_TSF_DIFF_P1P2(x) \
  30698. (((x) >> BIT_SHIFT_TSF_DIFF_P1P2) & BIT_MASK_TSF_DIFF_P1P2)
  30699. #define BIT_SET_TSF_DIFF_P1P2(x, v) \
  30700. (BIT_CLEAR_TSF_DIFF_P1P2(x) | BIT_TSF_DIFF_P1P2(v))
  30701. #endif
  30702. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  30703. /* 2 REG_32K_CLK_SEL (Offset 0x05D0) */
  30704. #define BIT_SHIFT_R_BCNERR_PORT_SEL 16
  30705. #define BIT_MASK_R_BCNERR_PORT_SEL 0x7
  30706. #define BIT_R_BCNERR_PORT_SEL(x) \
  30707. (((x) & BIT_MASK_R_BCNERR_PORT_SEL) << BIT_SHIFT_R_BCNERR_PORT_SEL)
  30708. #define BITS_R_BCNERR_PORT_SEL \
  30709. (BIT_MASK_R_BCNERR_PORT_SEL << BIT_SHIFT_R_BCNERR_PORT_SEL)
  30710. #define BIT_CLEAR_R_BCNERR_PORT_SEL(x) ((x) & (~BITS_R_BCNERR_PORT_SEL))
  30711. #define BIT_GET_R_BCNERR_PORT_SEL(x) \
  30712. (((x) >> BIT_SHIFT_R_BCNERR_PORT_SEL) & BIT_MASK_R_BCNERR_PORT_SEL)
  30713. #define BIT_SET_R_BCNERR_PORT_SEL(x, v) \
  30714. (BIT_CLEAR_R_BCNERR_PORT_SEL(x) | BIT_R_BCNERR_PORT_SEL(v))
  30715. #endif
  30716. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  30717. /* 2 REG_DRVERLYINT2 (Offset 0x05D0) */
  30718. #define BIT_SHIFT_TXPAUSE1 8
  30719. #define BIT_MASK_TXPAUSE1 0xff
  30720. #define BIT_TXPAUSE1(x) (((x) & BIT_MASK_TXPAUSE1) << BIT_SHIFT_TXPAUSE1)
  30721. #define BITS_TXPAUSE1 (BIT_MASK_TXPAUSE1 << BIT_SHIFT_TXPAUSE1)
  30722. #define BIT_CLEAR_TXPAUSE1(x) ((x) & (~BITS_TXPAUSE1))
  30723. #define BIT_GET_TXPAUSE1(x) (((x) >> BIT_SHIFT_TXPAUSE1) & BIT_MASK_TXPAUSE1)
  30724. #define BIT_SET_TXPAUSE1(x, v) (BIT_CLEAR_TXPAUSE1(x) | BIT_TXPAUSE1(v))
  30725. #endif
  30726. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  30727. /* 2 REG_32K_CLK_SEL (Offset 0x05D0) */
  30728. #define BIT_SHIFT_R_TXPAUSE1 8
  30729. #define BIT_MASK_R_TXPAUSE1 0xff
  30730. #define BIT_R_TXPAUSE1(x) (((x) & BIT_MASK_R_TXPAUSE1) << BIT_SHIFT_R_TXPAUSE1)
  30731. #define BITS_R_TXPAUSE1 (BIT_MASK_R_TXPAUSE1 << BIT_SHIFT_R_TXPAUSE1)
  30732. #define BIT_CLEAR_R_TXPAUSE1(x) ((x) & (~BITS_R_TXPAUSE1))
  30733. #define BIT_GET_R_TXPAUSE1(x) \
  30734. (((x) >> BIT_SHIFT_R_TXPAUSE1) & BIT_MASK_R_TXPAUSE1)
  30735. #define BIT_SET_R_TXPAUSE1(x, v) (BIT_CLEAR_R_TXPAUSE1(x) | BIT_R_TXPAUSE1(v))
  30736. #define BIT_SLEEP_32K_EN_V1 BIT(2)
  30737. #endif
  30738. #if (HALMAC_8192F_SUPPORT)
  30739. /* 2 REG_DRVERLYINT2 (Offset 0x05D0) */
  30740. #define BIT_SHIFT_DRVERLYITV2 0
  30741. #define BIT_MASK_DRVERLYITV2 0xff
  30742. #define BIT_DRVERLYITV2(x) \
  30743. (((x) & BIT_MASK_DRVERLYITV2) << BIT_SHIFT_DRVERLYITV2)
  30744. #define BITS_DRVERLYITV2 (BIT_MASK_DRVERLYITV2 << BIT_SHIFT_DRVERLYITV2)
  30745. #define BIT_CLEAR_DRVERLYITV2(x) ((x) & (~BITS_DRVERLYITV2))
  30746. #define BIT_GET_DRVERLYITV2(x) \
  30747. (((x) >> BIT_SHIFT_DRVERLYITV2) & BIT_MASK_DRVERLYITV2)
  30748. #define BIT_SET_DRVERLYITV2(x, v) \
  30749. (BIT_CLEAR_DRVERLYITV2(x) | BIT_DRVERLYITV2(v))
  30750. /* 2 REG_NAN_SETTING (Offset 0x05D4) */
  30751. #define BIT_EN_MULTI_BCN BIT(31)
  30752. #define BIT_ENP2P_DW_AREA BIT(30)
  30753. #define BIT_SHIFT_TBTT_PROHIBIT_HOLD_P2 18
  30754. #define BIT_MASK_TBTT_PROHIBIT_HOLD_P2 0xfff
  30755. #define BIT_TBTT_PROHIBIT_HOLD_P2(x) \
  30756. (((x) & BIT_MASK_TBTT_PROHIBIT_HOLD_P2) \
  30757. << BIT_SHIFT_TBTT_PROHIBIT_HOLD_P2)
  30758. #define BITS_TBTT_PROHIBIT_HOLD_P2 \
  30759. (BIT_MASK_TBTT_PROHIBIT_HOLD_P2 << BIT_SHIFT_TBTT_PROHIBIT_HOLD_P2)
  30760. #define BIT_CLEAR_TBTT_PROHIBIT_HOLD_P2(x) ((x) & (~BITS_TBTT_PROHIBIT_HOLD_P2))
  30761. #define BIT_GET_TBTT_PROHIBIT_HOLD_P2(x) \
  30762. (((x) >> BIT_SHIFT_TBTT_PROHIBIT_HOLD_P2) & \
  30763. BIT_MASK_TBTT_PROHIBIT_HOLD_P2)
  30764. #define BIT_SET_TBTT_PROHIBIT_HOLD_P2(x, v) \
  30765. (BIT_CLEAR_TBTT_PROHIBIT_HOLD_P2(x) | BIT_TBTT_PROHIBIT_HOLD_P2(v))
  30766. #define BIT_SHIFT_BCN_PORT_PRI 16
  30767. #define BIT_MASK_BCN_PORT_PRI 0x3
  30768. #define BIT_BCN_PORT_PRI(x) \
  30769. (((x) & BIT_MASK_BCN_PORT_PRI) << BIT_SHIFT_BCN_PORT_PRI)
  30770. #define BITS_BCN_PORT_PRI (BIT_MASK_BCN_PORT_PRI << BIT_SHIFT_BCN_PORT_PRI)
  30771. #define BIT_CLEAR_BCN_PORT_PRI(x) ((x) & (~BITS_BCN_PORT_PRI))
  30772. #define BIT_GET_BCN_PORT_PRI(x) \
  30773. (((x) >> BIT_SHIFT_BCN_PORT_PRI) & BIT_MASK_BCN_PORT_PRI)
  30774. #define BIT_SET_BCN_PORT_PRI(x, v) \
  30775. (BIT_CLEAR_BCN_PORT_PRI(x) | BIT_BCN_PORT_PRI(v))
  30776. #endif
  30777. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30778. HALMAC_8822C_SUPPORT)
  30779. /* 2 REG_EARLYINT_ADJUST (Offset 0x05D4) */
  30780. #define BIT_SHIFT_RXBCN_TIMER 16
  30781. #define BIT_MASK_RXBCN_TIMER 0xffff
  30782. #define BIT_RXBCN_TIMER(x) \
  30783. (((x) & BIT_MASK_RXBCN_TIMER) << BIT_SHIFT_RXBCN_TIMER)
  30784. #define BITS_RXBCN_TIMER (BIT_MASK_RXBCN_TIMER << BIT_SHIFT_RXBCN_TIMER)
  30785. #define BIT_CLEAR_RXBCN_TIMER(x) ((x) & (~BITS_RXBCN_TIMER))
  30786. #define BIT_GET_RXBCN_TIMER(x) \
  30787. (((x) >> BIT_SHIFT_RXBCN_TIMER) & BIT_MASK_RXBCN_TIMER)
  30788. #define BIT_SET_RXBCN_TIMER(x, v) \
  30789. (BIT_CLEAR_RXBCN_TIMER(x) | BIT_RXBCN_TIMER(v))
  30790. #endif
  30791. #if (HALMAC_8192F_SUPPORT)
  30792. /* 2 REG_NAN_SETTING (Offset 0x05D4) */
  30793. #define BIT_SHIFT_DRVERLYITV1 8
  30794. #define BIT_MASK_DRVERLYITV1 0xff
  30795. #define BIT_DRVERLYITV1(x) \
  30796. (((x) & BIT_MASK_DRVERLYITV1) << BIT_SHIFT_DRVERLYITV1)
  30797. #define BITS_DRVERLYITV1 (BIT_MASK_DRVERLYITV1 << BIT_SHIFT_DRVERLYITV1)
  30798. #define BIT_CLEAR_DRVERLYITV1(x) ((x) & (~BITS_DRVERLYITV1))
  30799. #define BIT_GET_DRVERLYITV1(x) \
  30800. (((x) >> BIT_SHIFT_DRVERLYITV1) & BIT_MASK_DRVERLYITV1)
  30801. #define BIT_SET_DRVERLYITV1(x, v) \
  30802. (BIT_CLEAR_DRVERLYITV1(x) | BIT_DRVERLYITV1(v))
  30803. #define BIT_DIS_RX_BSSID_FIT2 BIT(6)
  30804. #define BIT_DIS_TSF2_UDT BIT(4)
  30805. #define BIT_EN_BCN2_FUNCTION BIT(3)
  30806. #endif
  30807. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  30808. /* 2 REG_EARLYINT_ADJUST (Offset 0x05D4) */
  30809. #define BIT_SHIFT_R_ERLYINTADJ 0
  30810. #define BIT_MASK_R_ERLYINTADJ 0xffff
  30811. #define BIT_R_ERLYINTADJ(x) \
  30812. (((x) & BIT_MASK_R_ERLYINTADJ) << BIT_SHIFT_R_ERLYINTADJ)
  30813. #define BITS_R_ERLYINTADJ (BIT_MASK_R_ERLYINTADJ << BIT_SHIFT_R_ERLYINTADJ)
  30814. #define BIT_CLEAR_R_ERLYINTADJ(x) ((x) & (~BITS_R_ERLYINTADJ))
  30815. #define BIT_GET_R_ERLYINTADJ(x) \
  30816. (((x) >> BIT_SHIFT_R_ERLYINTADJ) & BIT_MASK_R_ERLYINTADJ)
  30817. #define BIT_SET_R_ERLYINTADJ(x, v) \
  30818. (BIT_CLEAR_R_ERLYINTADJ(x) | BIT_R_ERLYINTADJ(v))
  30819. #endif
  30820. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30821. HALMAC_8822C_SUPPORT)
  30822. /* 2 REG_BCNERR_CNT (Offset 0x05D8) */
  30823. #define BIT_SHIFT_BCNERR_CNT_OTHERS 24
  30824. #define BIT_MASK_BCNERR_CNT_OTHERS 0xff
  30825. #define BIT_BCNERR_CNT_OTHERS(x) \
  30826. (((x) & BIT_MASK_BCNERR_CNT_OTHERS) << BIT_SHIFT_BCNERR_CNT_OTHERS)
  30827. #define BITS_BCNERR_CNT_OTHERS \
  30828. (BIT_MASK_BCNERR_CNT_OTHERS << BIT_SHIFT_BCNERR_CNT_OTHERS)
  30829. #define BIT_CLEAR_BCNERR_CNT_OTHERS(x) ((x) & (~BITS_BCNERR_CNT_OTHERS))
  30830. #define BIT_GET_BCNERR_CNT_OTHERS(x) \
  30831. (((x) >> BIT_SHIFT_BCNERR_CNT_OTHERS) & BIT_MASK_BCNERR_CNT_OTHERS)
  30832. #define BIT_SET_BCNERR_CNT_OTHERS(x, v) \
  30833. (BIT_CLEAR_BCNERR_CNT_OTHERS(x) | BIT_BCNERR_CNT_OTHERS(v))
  30834. #endif
  30835. #if (HALMAC_8192F_SUPPORT)
  30836. /* 2 REG_NAN_BCNSPACE (Offset 0x05D8) */
  30837. #define BIT_SHIFT_BCN_SPACE4 16
  30838. #define BIT_MASK_BCN_SPACE4 0xffff
  30839. #define BIT_BCN_SPACE4(x) (((x) & BIT_MASK_BCN_SPACE4) << BIT_SHIFT_BCN_SPACE4)
  30840. #define BITS_BCN_SPACE4 (BIT_MASK_BCN_SPACE4 << BIT_SHIFT_BCN_SPACE4)
  30841. #define BIT_CLEAR_BCN_SPACE4(x) ((x) & (~BITS_BCN_SPACE4))
  30842. #define BIT_GET_BCN_SPACE4(x) \
  30843. (((x) >> BIT_SHIFT_BCN_SPACE4) & BIT_MASK_BCN_SPACE4)
  30844. #define BIT_SET_BCN_SPACE4(x, v) (BIT_CLEAR_BCN_SPACE4(x) | BIT_BCN_SPACE4(v))
  30845. #endif
  30846. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30847. HALMAC_8822C_SUPPORT)
  30848. /* 2 REG_BCNERR_CNT (Offset 0x05D8) */
  30849. #define BIT_SHIFT_BCNERR_CNT_INVALID 16
  30850. #define BIT_MASK_BCNERR_CNT_INVALID 0xff
  30851. #define BIT_BCNERR_CNT_INVALID(x) \
  30852. (((x) & BIT_MASK_BCNERR_CNT_INVALID) << BIT_SHIFT_BCNERR_CNT_INVALID)
  30853. #define BITS_BCNERR_CNT_INVALID \
  30854. (BIT_MASK_BCNERR_CNT_INVALID << BIT_SHIFT_BCNERR_CNT_INVALID)
  30855. #define BIT_CLEAR_BCNERR_CNT_INVALID(x) ((x) & (~BITS_BCNERR_CNT_INVALID))
  30856. #define BIT_GET_BCNERR_CNT_INVALID(x) \
  30857. (((x) >> BIT_SHIFT_BCNERR_CNT_INVALID) & BIT_MASK_BCNERR_CNT_INVALID)
  30858. #define BIT_SET_BCNERR_CNT_INVALID(x, v) \
  30859. (BIT_CLEAR_BCNERR_CNT_INVALID(x) | BIT_BCNERR_CNT_INVALID(v))
  30860. #define BIT_SHIFT_BCNERR_CNT_MAC 8
  30861. #define BIT_MASK_BCNERR_CNT_MAC 0xff
  30862. #define BIT_BCNERR_CNT_MAC(x) \
  30863. (((x) & BIT_MASK_BCNERR_CNT_MAC) << BIT_SHIFT_BCNERR_CNT_MAC)
  30864. #define BITS_BCNERR_CNT_MAC \
  30865. (BIT_MASK_BCNERR_CNT_MAC << BIT_SHIFT_BCNERR_CNT_MAC)
  30866. #define BIT_CLEAR_BCNERR_CNT_MAC(x) ((x) & (~BITS_BCNERR_CNT_MAC))
  30867. #define BIT_GET_BCNERR_CNT_MAC(x) \
  30868. (((x) >> BIT_SHIFT_BCNERR_CNT_MAC) & BIT_MASK_BCNERR_CNT_MAC)
  30869. #define BIT_SET_BCNERR_CNT_MAC(x, v) \
  30870. (BIT_CLEAR_BCNERR_CNT_MAC(x) | BIT_BCNERR_CNT_MAC(v))
  30871. #endif
  30872. #if (HALMAC_8192F_SUPPORT)
  30873. /* 2 REG_NAN_BCNSPACE (Offset 0x05D8) */
  30874. #define BIT_SHIFT_BCN_SPACE3 0
  30875. #define BIT_MASK_BCN_SPACE3 0xffff
  30876. #define BIT_BCN_SPACE3(x) (((x) & BIT_MASK_BCN_SPACE3) << BIT_SHIFT_BCN_SPACE3)
  30877. #define BITS_BCN_SPACE3 (BIT_MASK_BCN_SPACE3 << BIT_SHIFT_BCN_SPACE3)
  30878. #define BIT_CLEAR_BCN_SPACE3(x) ((x) & (~BITS_BCN_SPACE3))
  30879. #define BIT_GET_BCN_SPACE3(x) \
  30880. (((x) >> BIT_SHIFT_BCN_SPACE3) & BIT_MASK_BCN_SPACE3)
  30881. #define BIT_SET_BCN_SPACE3(x, v) (BIT_CLEAR_BCN_SPACE3(x) | BIT_BCN_SPACE3(v))
  30882. #endif
  30883. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  30884. HALMAC_8822C_SUPPORT)
  30885. /* 2 REG_BCNERR_CNT (Offset 0x05D8) */
  30886. #define BIT_SHIFT_BCNERR_CNT_CCA 0
  30887. #define BIT_MASK_BCNERR_CNT_CCA 0xff
  30888. #define BIT_BCNERR_CNT_CCA(x) \
  30889. (((x) & BIT_MASK_BCNERR_CNT_CCA) << BIT_SHIFT_BCNERR_CNT_CCA)
  30890. #define BITS_BCNERR_CNT_CCA \
  30891. (BIT_MASK_BCNERR_CNT_CCA << BIT_SHIFT_BCNERR_CNT_CCA)
  30892. #define BIT_CLEAR_BCNERR_CNT_CCA(x) ((x) & (~BITS_BCNERR_CNT_CCA))
  30893. #define BIT_GET_BCNERR_CNT_CCA(x) \
  30894. (((x) >> BIT_SHIFT_BCNERR_CNT_CCA) & BIT_MASK_BCNERR_CNT_CCA)
  30895. #define BIT_SET_BCNERR_CNT_CCA(x, v) \
  30896. (BIT_CLEAR_BCNERR_CNT_CCA(x) | BIT_BCNERR_CNT_CCA(v))
  30897. #endif
  30898. #if (HALMAC_8192F_SUPPORT)
  30899. /* 2 REG_NAN_SETTING1 (Offset 0x05DC) */
  30900. #define BIT_SHIFT_SYNCBCN_RXNUM 27
  30901. #define BIT_MASK_SYNCBCN_RXNUM 0x1f
  30902. #define BIT_SYNCBCN_RXNUM(x) \
  30903. (((x) & BIT_MASK_SYNCBCN_RXNUM) << BIT_SHIFT_SYNCBCN_RXNUM)
  30904. #define BITS_SYNCBCN_RXNUM (BIT_MASK_SYNCBCN_RXNUM << BIT_SHIFT_SYNCBCN_RXNUM)
  30905. #define BIT_CLEAR_SYNCBCN_RXNUM(x) ((x) & (~BITS_SYNCBCN_RXNUM))
  30906. #define BIT_GET_SYNCBCN_RXNUM(x) \
  30907. (((x) >> BIT_SHIFT_SYNCBCN_RXNUM) & BIT_MASK_SYNCBCN_RXNUM)
  30908. #define BIT_SET_SYNCBCN_RXNUM(x, v) \
  30909. (BIT_CLEAR_SYNCBCN_RXNUM(x) | BIT_SYNCBCN_RXNUM(v))
  30910. #define BIT_DW_END_EARLY BIT(26)
  30911. #define BIT_SHIFT_NAN_ROLE 24
  30912. #define BIT_MASK_NAN_ROLE 0x3
  30913. #define BIT_NAN_ROLE(x) (((x) & BIT_MASK_NAN_ROLE) << BIT_SHIFT_NAN_ROLE)
  30914. #define BITS_NAN_ROLE (BIT_MASK_NAN_ROLE << BIT_SHIFT_NAN_ROLE)
  30915. #define BIT_CLEAR_NAN_ROLE(x) ((x) & (~BITS_NAN_ROLE))
  30916. #define BIT_GET_NAN_ROLE(x) (((x) >> BIT_SHIFT_NAN_ROLE) & BIT_MASK_NAN_ROLE)
  30917. #define BIT_SET_NAN_ROLE(x, v) (BIT_CLEAR_NAN_ROLE(x) | BIT_NAN_ROLE(v))
  30918. #define BIT_SHIFT_MSLOT_EVTQ 16
  30919. #define BIT_MASK_MSLOT_EVTQ 0xff
  30920. #define BIT_MSLOT_EVTQ(x) (((x) & BIT_MASK_MSLOT_EVTQ) << BIT_SHIFT_MSLOT_EVTQ)
  30921. #define BITS_MSLOT_EVTQ (BIT_MASK_MSLOT_EVTQ << BIT_SHIFT_MSLOT_EVTQ)
  30922. #define BIT_CLEAR_MSLOT_EVTQ(x) ((x) & (~BITS_MSLOT_EVTQ))
  30923. #define BIT_GET_MSLOT_EVTQ(x) \
  30924. (((x) >> BIT_SHIFT_MSLOT_EVTQ) & BIT_MASK_MSLOT_EVTQ)
  30925. #define BIT_SET_MSLOT_EVTQ(x, v) (BIT_CLEAR_MSLOT_EVTQ(x) | BIT_MSLOT_EVTQ(v))
  30926. #define BIT_SHIFT_MDW_EVTQ 8
  30927. #define BIT_MASK_MDW_EVTQ 0xff
  30928. #define BIT_MDW_EVTQ(x) (((x) & BIT_MASK_MDW_EVTQ) << BIT_SHIFT_MDW_EVTQ)
  30929. #define BITS_MDW_EVTQ (BIT_MASK_MDW_EVTQ << BIT_SHIFT_MDW_EVTQ)
  30930. #define BIT_CLEAR_MDW_EVTQ(x) ((x) & (~BITS_MDW_EVTQ))
  30931. #define BIT_GET_MDW_EVTQ(x) (((x) >> BIT_SHIFT_MDW_EVTQ) & BIT_MASK_MDW_EVTQ)
  30932. #define BIT_SET_MDW_EVTQ(x, v) (BIT_CLEAR_MDW_EVTQ(x) | BIT_MDW_EVTQ(v))
  30933. #define BIT_SHIFT_HC 0
  30934. #define BIT_MASK_HC 0xff
  30935. #define BIT_HC(x) (((x) & BIT_MASK_HC) << BIT_SHIFT_HC)
  30936. #define BITS_HC (BIT_MASK_HC << BIT_SHIFT_HC)
  30937. #define BIT_CLEAR_HC(x) ((x) & (~BITS_HC))
  30938. #define BIT_GET_HC(x) (((x) >> BIT_SHIFT_HC) & BIT_MASK_HC)
  30939. #define BIT_SET_HC(x, v) (BIT_CLEAR_HC(x) | BIT_HC(v))
  30940. #endif
  30941. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  30942. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  30943. HALMAC_8881A_SUPPORT)
  30944. /* 2 REG_NOA_PARAM (Offset 0x05E0) */
  30945. #define BIT_SHIFT_NOA_COUNT (96 & CPU_OPT_WIDTH)
  30946. #define BIT_MASK_NOA_COUNT 0xff
  30947. #define BIT_NOA_COUNT(x) (((x) & BIT_MASK_NOA_COUNT) << BIT_SHIFT_NOA_COUNT)
  30948. #define BITS_NOA_COUNT (BIT_MASK_NOA_COUNT << BIT_SHIFT_NOA_COUNT)
  30949. #define BIT_CLEAR_NOA_COUNT(x) ((x) & (~BITS_NOA_COUNT))
  30950. #define BIT_GET_NOA_COUNT(x) (((x) >> BIT_SHIFT_NOA_COUNT) & BIT_MASK_NOA_COUNT)
  30951. #define BIT_SET_NOA_COUNT(x, v) (BIT_CLEAR_NOA_COUNT(x) | BIT_NOA_COUNT(v))
  30952. #endif
  30953. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  30954. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  30955. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  30956. /* 2 REG_NOA_PARAM (Offset 0x05E0) */
  30957. #define BIT_SHIFT_NOA_DURATION 0
  30958. #define BIT_MASK_NOA_DURATION 0xffffffffL
  30959. #define BIT_NOA_DURATION(x) \
  30960. (((x) & BIT_MASK_NOA_DURATION) << BIT_SHIFT_NOA_DURATION)
  30961. #define BITS_NOA_DURATION (BIT_MASK_NOA_DURATION << BIT_SHIFT_NOA_DURATION)
  30962. #define BIT_CLEAR_NOA_DURATION(x) ((x) & (~BITS_NOA_DURATION))
  30963. #define BIT_GET_NOA_DURATION(x) \
  30964. (((x) >> BIT_SHIFT_NOA_DURATION) & BIT_MASK_NOA_DURATION)
  30965. #define BIT_SET_NOA_DURATION(x, v) \
  30966. (BIT_CLEAR_NOA_DURATION(x) | BIT_NOA_DURATION(v))
  30967. #endif
  30968. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || \
  30969. HALMAC_8822C_SUPPORT)
  30970. /* 2 REG_NOA_PARAM (Offset 0x05E0) */
  30971. #define BIT_SHIFT_NOA_DURATION_V1 0
  30972. #define BIT_MASK_NOA_DURATION_V1 0xffffffffL
  30973. #define BIT_NOA_DURATION_V1(x) \
  30974. (((x) & BIT_MASK_NOA_DURATION_V1) << BIT_SHIFT_NOA_DURATION_V1)
  30975. #define BITS_NOA_DURATION_V1 \
  30976. (BIT_MASK_NOA_DURATION_V1 << BIT_SHIFT_NOA_DURATION_V1)
  30977. #define BIT_CLEAR_NOA_DURATION_V1(x) ((x) & (~BITS_NOA_DURATION_V1))
  30978. #define BIT_GET_NOA_DURATION_V1(x) \
  30979. (((x) >> BIT_SHIFT_NOA_DURATION_V1) & BIT_MASK_NOA_DURATION_V1)
  30980. #define BIT_SET_NOA_DURATION_V1(x, v) \
  30981. (BIT_CLEAR_NOA_DURATION_V1(x) | BIT_NOA_DURATION_V1(v))
  30982. /* 2 REG_NOA_PARAM_1 (Offset 0x05E4) */
  30983. #define BIT_SHIFT_NOA_INTERVAL_V1 0
  30984. #define BIT_MASK_NOA_INTERVAL_V1 0xffffffffL
  30985. #define BIT_NOA_INTERVAL_V1(x) \
  30986. (((x) & BIT_MASK_NOA_INTERVAL_V1) << BIT_SHIFT_NOA_INTERVAL_V1)
  30987. #define BITS_NOA_INTERVAL_V1 \
  30988. (BIT_MASK_NOA_INTERVAL_V1 << BIT_SHIFT_NOA_INTERVAL_V1)
  30989. #define BIT_CLEAR_NOA_INTERVAL_V1(x) ((x) & (~BITS_NOA_INTERVAL_V1))
  30990. #define BIT_GET_NOA_INTERVAL_V1(x) \
  30991. (((x) >> BIT_SHIFT_NOA_INTERVAL_V1) & BIT_MASK_NOA_INTERVAL_V1)
  30992. #define BIT_SET_NOA_INTERVAL_V1(x, v) \
  30993. (BIT_CLEAR_NOA_INTERVAL_V1(x) | BIT_NOA_INTERVAL_V1(v))
  30994. /* 2 REG_NOA_PARAM_2 (Offset 0x05E8) */
  30995. #define BIT_SHIFT_NOA_START_TIME_V1 0
  30996. #define BIT_MASK_NOA_START_TIME_V1 0xffffffffL
  30997. #define BIT_NOA_START_TIME_V1(x) \
  30998. (((x) & BIT_MASK_NOA_START_TIME_V1) << BIT_SHIFT_NOA_START_TIME_V1)
  30999. #define BITS_NOA_START_TIME_V1 \
  31000. (BIT_MASK_NOA_START_TIME_V1 << BIT_SHIFT_NOA_START_TIME_V1)
  31001. #define BIT_CLEAR_NOA_START_TIME_V1(x) ((x) & (~BITS_NOA_START_TIME_V1))
  31002. #define BIT_GET_NOA_START_TIME_V1(x) \
  31003. (((x) >> BIT_SHIFT_NOA_START_TIME_V1) & BIT_MASK_NOA_START_TIME_V1)
  31004. #define BIT_SET_NOA_START_TIME_V1(x, v) \
  31005. (BIT_CLEAR_NOA_START_TIME_V1(x) | BIT_NOA_START_TIME_V1(v))
  31006. #endif
  31007. #if (HALMAC_8814B_SUPPORT)
  31008. /* 2 REG_MU_DBG_INFO (Offset 0x05E8) */
  31009. #define BIT_SHIFT_MU_DBG_INFO 0
  31010. #define BIT_MASK_MU_DBG_INFO 0xffffffffL
  31011. #define BIT_MU_DBG_INFO(x) \
  31012. (((x) & BIT_MASK_MU_DBG_INFO) << BIT_SHIFT_MU_DBG_INFO)
  31013. #define BITS_MU_DBG_INFO (BIT_MASK_MU_DBG_INFO << BIT_SHIFT_MU_DBG_INFO)
  31014. #define BIT_CLEAR_MU_DBG_INFO(x) ((x) & (~BITS_MU_DBG_INFO))
  31015. #define BIT_GET_MU_DBG_INFO(x) \
  31016. (((x) >> BIT_SHIFT_MU_DBG_INFO) & BIT_MASK_MU_DBG_INFO)
  31017. #define BIT_SET_MU_DBG_INFO(x, v) \
  31018. (BIT_CLEAR_MU_DBG_INFO(x) | BIT_MU_DBG_INFO(v))
  31019. #endif
  31020. #if (HALMAC_8192F_SUPPORT)
  31021. /* 2 REG_NOA_PARAM_3 (Offset 0x05EC) */
  31022. #define BIT_SHIFT_NOA_COUNT_V3 0
  31023. #define BIT_MASK_NOA_COUNT_V3 0xff
  31024. #define BIT_NOA_COUNT_V3(x) \
  31025. (((x) & BIT_MASK_NOA_COUNT_V3) << BIT_SHIFT_NOA_COUNT_V3)
  31026. #define BITS_NOA_COUNT_V3 (BIT_MASK_NOA_COUNT_V3 << BIT_SHIFT_NOA_COUNT_V3)
  31027. #define BIT_CLEAR_NOA_COUNT_V3(x) ((x) & (~BITS_NOA_COUNT_V3))
  31028. #define BIT_GET_NOA_COUNT_V3(x) \
  31029. (((x) >> BIT_SHIFT_NOA_COUNT_V3) & BIT_MASK_NOA_COUNT_V3)
  31030. #define BIT_SET_NOA_COUNT_V3(x, v) \
  31031. (BIT_CLEAR_NOA_COUNT_V3(x) | BIT_NOA_COUNT_V3(v))
  31032. #endif
  31033. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  31034. /* 2 REG_NOA_PARAM_3 (Offset 0x05EC) */
  31035. #define BIT_SHIFT_NOA_COUNT_V1 0
  31036. #define BIT_MASK_NOA_COUNT_V1 0xffffffffL
  31037. #define BIT_NOA_COUNT_V1(x) \
  31038. (((x) & BIT_MASK_NOA_COUNT_V1) << BIT_SHIFT_NOA_COUNT_V1)
  31039. #define BITS_NOA_COUNT_V1 (BIT_MASK_NOA_COUNT_V1 << BIT_SHIFT_NOA_COUNT_V1)
  31040. #define BIT_CLEAR_NOA_COUNT_V1(x) ((x) & (~BITS_NOA_COUNT_V1))
  31041. #define BIT_GET_NOA_COUNT_V1(x) \
  31042. (((x) >> BIT_SHIFT_NOA_COUNT_V1) & BIT_MASK_NOA_COUNT_V1)
  31043. #define BIT_SET_NOA_COUNT_V1(x, v) \
  31044. (BIT_CLEAR_NOA_COUNT_V1(x) | BIT_NOA_COUNT_V1(v))
  31045. #endif
  31046. #if (HALMAC_8814B_SUPPORT)
  31047. /* 2 REG_MU_DBG_INFO_1 (Offset 0x05EC) */
  31048. #define BIT_SHIFT_MU_DBG_INFO_1 0
  31049. #define BIT_MASK_MU_DBG_INFO_1 0xffffffffL
  31050. #define BIT_MU_DBG_INFO_1(x) \
  31051. (((x) & BIT_MASK_MU_DBG_INFO_1) << BIT_SHIFT_MU_DBG_INFO_1)
  31052. #define BITS_MU_DBG_INFO_1 (BIT_MASK_MU_DBG_INFO_1 << BIT_SHIFT_MU_DBG_INFO_1)
  31053. #define BIT_CLEAR_MU_DBG_INFO_1(x) ((x) & (~BITS_MU_DBG_INFO_1))
  31054. #define BIT_GET_MU_DBG_INFO_1(x) \
  31055. (((x) >> BIT_SHIFT_MU_DBG_INFO_1) & BIT_MASK_MU_DBG_INFO_1)
  31056. #define BIT_SET_MU_DBG_INFO_1(x, v) \
  31057. (BIT_CLEAR_MU_DBG_INFO_1(x) | BIT_MU_DBG_INFO_1(v))
  31058. #endif
  31059. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  31060. /* 2 REG_NOA_SUBIE (Offset 0x05ED) */
  31061. #define BIT_MORE_NOA_DESC BIT(19)
  31062. #define BIT_NOA_DESC1_VALID BIT(18)
  31063. #define BIT_NOA_DESC0_VALID BIT(17)
  31064. #define BIT_NOA_HEAD_VALID BIT(16)
  31065. #define BIT_NOA_OPP_PS BIT(15)
  31066. #define BIT_SHIFT_NOA_CTW 8
  31067. #define BIT_MASK_NOA_CTW 0x7f
  31068. #define BIT_NOA_CTW(x) (((x) & BIT_MASK_NOA_CTW) << BIT_SHIFT_NOA_CTW)
  31069. #define BITS_NOA_CTW (BIT_MASK_NOA_CTW << BIT_SHIFT_NOA_CTW)
  31070. #define BIT_CLEAR_NOA_CTW(x) ((x) & (~BITS_NOA_CTW))
  31071. #define BIT_GET_NOA_CTW(x) (((x) >> BIT_SHIFT_NOA_CTW) & BIT_MASK_NOA_CTW)
  31072. #define BIT_SET_NOA_CTW(x, v) (BIT_CLEAR_NOA_CTW(x) | BIT_NOA_CTW(v))
  31073. #define BIT_SHIFT_NOA_INDEX 0
  31074. #define BIT_MASK_NOA_INDEX 0xff
  31075. #define BIT_NOA_INDEX(x) (((x) & BIT_MASK_NOA_INDEX) << BIT_SHIFT_NOA_INDEX)
  31076. #define BITS_NOA_INDEX (BIT_MASK_NOA_INDEX << BIT_SHIFT_NOA_INDEX)
  31077. #define BIT_CLEAR_NOA_INDEX(x) ((x) & (~BITS_NOA_INDEX))
  31078. #define BIT_GET_NOA_INDEX(x) (((x) >> BIT_SHIFT_NOA_INDEX) & BIT_MASK_NOA_INDEX)
  31079. #define BIT_SET_NOA_INDEX(x, v) (BIT_CLEAR_NOA_INDEX(x) | BIT_NOA_INDEX(v))
  31080. #endif
  31081. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31082. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  31083. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31084. /* 2 REG_P2P_RST (Offset 0x05F0) */
  31085. #define BIT_P2P2_PWR_RST1 BIT(5)
  31086. #define BIT_P2P2_PWR_RST0 BIT(4)
  31087. #define BIT_P2P1_PWR_RST1 BIT(3)
  31088. #define BIT_P2P1_PWR_RST0 BIT(2)
  31089. #define BIT_P2P_PWR_RST1_V1 BIT(1)
  31090. #define BIT_P2P_PWR_RST0_V1 BIT(0)
  31091. #endif
  31092. #if (HALMAC_8814B_SUPPORT)
  31093. /* 2 REG_SCH_DBG_SEL (Offset 0x05F0) */
  31094. #define BIT_SHIFT_SCH_DBG_SEL 0
  31095. #define BIT_MASK_SCH_DBG_SEL 0xff
  31096. #define BIT_SCH_DBG_SEL(x) \
  31097. (((x) & BIT_MASK_SCH_DBG_SEL) << BIT_SHIFT_SCH_DBG_SEL)
  31098. #define BITS_SCH_DBG_SEL (BIT_MASK_SCH_DBG_SEL << BIT_SHIFT_SCH_DBG_SEL)
  31099. #define BIT_CLEAR_SCH_DBG_SEL(x) ((x) & (~BITS_SCH_DBG_SEL))
  31100. #define BIT_GET_SCH_DBG_SEL(x) \
  31101. (((x) >> BIT_SHIFT_SCH_DBG_SEL) & BIT_MASK_SCH_DBG_SEL)
  31102. #define BIT_SET_SCH_DBG_SEL(x, v) \
  31103. (BIT_CLEAR_SCH_DBG_SEL(x) | BIT_SCH_DBG_SEL(v))
  31104. #endif
  31105. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31106. HALMAC_8822C_SUPPORT)
  31107. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31108. #define BIT_MAC_STOP_CPUMGQ BIT(16)
  31109. #endif
  31110. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  31111. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31112. #define BIT_SYNC_TSF_NOW BIT(2)
  31113. #endif
  31114. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31115. HALMAC_8822C_SUPPORT)
  31116. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31117. #define BIT_SYNC_CLI_ONCE_RIGHT_NOW BIT(2)
  31118. #endif
  31119. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31120. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31121. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31122. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31123. #define BIT_EN_P2P_CTWINDOW BIT(1)
  31124. #endif
  31125. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31126. HALMAC_8814AMP_SUPPORT)
  31127. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31128. #define BIT_SYNC_CLI BIT(1)
  31129. #endif
  31130. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31131. HALMAC_8822C_SUPPORT)
  31132. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31133. #define BIT_SYNC_CLI_ONCE_BY_TBTT BIT(1)
  31134. #endif
  31135. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31136. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31137. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31138. /* 2 REG_SCHEDULER_RST (Offset 0x05F1) */
  31139. #define BIT_SCHEDULER_RST_V1 BIT(0)
  31140. #define BIT_EN_P2P_BCNQ_AREA BIT(0)
  31141. #endif
  31142. #if (HALMAC_8814B_SUPPORT)
  31143. /* 2 REG_MU_DBG_ERR_FLAG (Offset 0x05F2) */
  31144. #define BIT_BCN_PORTID_ERR BIT(2)
  31145. #define BIT_SHIFT_MU_DBG_ERR_FLAG 0
  31146. #define BIT_MASK_MU_DBG_ERR_FLAG 0x3
  31147. #define BIT_MU_DBG_ERR_FLAG(x) \
  31148. (((x) & BIT_MASK_MU_DBG_ERR_FLAG) << BIT_SHIFT_MU_DBG_ERR_FLAG)
  31149. #define BITS_MU_DBG_ERR_FLAG \
  31150. (BIT_MASK_MU_DBG_ERR_FLAG << BIT_SHIFT_MU_DBG_ERR_FLAG)
  31151. #define BIT_CLEAR_MU_DBG_ERR_FLAG(x) ((x) & (~BITS_MU_DBG_ERR_FLAG))
  31152. #define BIT_GET_MU_DBG_ERR_FLAG(x) \
  31153. (((x) >> BIT_SHIFT_MU_DBG_ERR_FLAG) & BIT_MASK_MU_DBG_ERR_FLAG)
  31154. #define BIT_SET_MU_DBG_ERR_FLAG(x, v) \
  31155. (BIT_CLEAR_MU_DBG_ERR_FLAG(x) | BIT_MU_DBG_ERR_FLAG(v))
  31156. /* 2 REG_TX_ERR_RECOVERY_RST (Offset 0x05F3) */
  31157. #define BIT_SHIFT_ERR_RECOVER_CNT 4
  31158. #define BIT_MASK_ERR_RECOVER_CNT 0xf
  31159. #define BIT_ERR_RECOVER_CNT(x) \
  31160. (((x) & BIT_MASK_ERR_RECOVER_CNT) << BIT_SHIFT_ERR_RECOVER_CNT)
  31161. #define BITS_ERR_RECOVER_CNT \
  31162. (BIT_MASK_ERR_RECOVER_CNT << BIT_SHIFT_ERR_RECOVER_CNT)
  31163. #define BIT_CLEAR_ERR_RECOVER_CNT(x) ((x) & (~BITS_ERR_RECOVER_CNT))
  31164. #define BIT_GET_ERR_RECOVER_CNT(x) \
  31165. (((x) >> BIT_SHIFT_ERR_RECOVER_CNT) & BIT_MASK_ERR_RECOVER_CNT)
  31166. #define BIT_SET_ERR_RECOVER_CNT(x, v) \
  31167. (BIT_CLEAR_ERR_RECOVER_CNT(x) | BIT_ERR_RECOVER_CNT(v))
  31168. #define BIT_RX_HANG_ERR BIT(2)
  31169. #define BIT_TX_HANG_ERR BIT(1)
  31170. #define BIT_TX_ERR_RECOVERY_RST BIT(0)
  31171. #endif
  31172. #if (HALMAC_8192F_SUPPORT)
  31173. /* 2 REG_SCH_DBG (Offset 0x05F4) */
  31174. #define BIT_SHIFT_SCH_DBG 0
  31175. #define BIT_MASK_SCH_DBG 0xffffffffL
  31176. #define BIT_SCH_DBG(x) (((x) & BIT_MASK_SCH_DBG) << BIT_SHIFT_SCH_DBG)
  31177. #define BITS_SCH_DBG (BIT_MASK_SCH_DBG << BIT_SHIFT_SCH_DBG)
  31178. #define BIT_CLEAR_SCH_DBG(x) ((x) & (~BITS_SCH_DBG))
  31179. #define BIT_GET_SCH_DBG(x) (((x) >> BIT_SHIFT_SCH_DBG) & BIT_MASK_SCH_DBG)
  31180. #define BIT_SET_SCH_DBG(x, v) (BIT_CLEAR_SCH_DBG(x) | BIT_SCH_DBG(v))
  31181. #endif
  31182. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31183. /* 2 REG_SCH_DBG_VALUE (Offset 0x05F4) */
  31184. #define BIT_SHIFT_SCH_DBG_VALUE 0
  31185. #define BIT_MASK_SCH_DBG_VALUE 0xffffffffL
  31186. #define BIT_SCH_DBG_VALUE(x) \
  31187. (((x) & BIT_MASK_SCH_DBG_VALUE) << BIT_SHIFT_SCH_DBG_VALUE)
  31188. #define BITS_SCH_DBG_VALUE (BIT_MASK_SCH_DBG_VALUE << BIT_SHIFT_SCH_DBG_VALUE)
  31189. #define BIT_CLEAR_SCH_DBG_VALUE(x) ((x) & (~BITS_SCH_DBG_VALUE))
  31190. #define BIT_GET_SCH_DBG_VALUE(x) \
  31191. (((x) >> BIT_SHIFT_SCH_DBG_VALUE) & BIT_MASK_SCH_DBG_VALUE)
  31192. #define BIT_SET_SCH_DBG_VALUE(x, v) \
  31193. (BIT_CLEAR_SCH_DBG_VALUE(x) | BIT_SCH_DBG_VALUE(v))
  31194. #endif
  31195. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31196. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31197. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31198. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31199. /* 2 REG_SCH_TXCMD (Offset 0x05F8) */
  31200. #define BIT_DIS_RX_BSSID_FIT BIT(6)
  31201. #define BIT_DIS_TSF_UDT BIT(4)
  31202. #define BIT_SHIFT_SCH_TXCMD 0
  31203. #define BIT_MASK_SCH_TXCMD 0xffffffffL
  31204. #define BIT_SCH_TXCMD(x) (((x) & BIT_MASK_SCH_TXCMD) << BIT_SHIFT_SCH_TXCMD)
  31205. #define BITS_SCH_TXCMD (BIT_MASK_SCH_TXCMD << BIT_SHIFT_SCH_TXCMD)
  31206. #define BIT_CLEAR_SCH_TXCMD(x) ((x) & (~BITS_SCH_TXCMD))
  31207. #define BIT_GET_SCH_TXCMD(x) (((x) >> BIT_SHIFT_SCH_TXCMD) & BIT_MASK_SCH_TXCMD)
  31208. #define BIT_SET_SCH_TXCMD(x, v) (BIT_CLEAR_SCH_TXCMD(x) | BIT_SCH_TXCMD(v))
  31209. #define BIT_SHIFT_TBTT_PROHIBIT_SETUP 0
  31210. #define BIT_MASK_TBTT_PROHIBIT_SETUP 0xf
  31211. #define BIT_TBTT_PROHIBIT_SETUP(x) \
  31212. (((x) & BIT_MASK_TBTT_PROHIBIT_SETUP) << BIT_SHIFT_TBTT_PROHIBIT_SETUP)
  31213. #define BITS_TBTT_PROHIBIT_SETUP \
  31214. (BIT_MASK_TBTT_PROHIBIT_SETUP << BIT_SHIFT_TBTT_PROHIBIT_SETUP)
  31215. #define BIT_CLEAR_TBTT_PROHIBIT_SETUP(x) ((x) & (~BITS_TBTT_PROHIBIT_SETUP))
  31216. #define BIT_GET_TBTT_PROHIBIT_SETUP(x) \
  31217. (((x) >> BIT_SHIFT_TBTT_PROHIBIT_SETUP) & BIT_MASK_TBTT_PROHIBIT_SETUP)
  31218. #define BIT_SET_TBTT_PROHIBIT_SETUP(x, v) \
  31219. (BIT_CLEAR_TBTT_PROHIBIT_SETUP(x) | BIT_TBTT_PROHIBIT_SETUP(v))
  31220. #define BIT_SHIFT_DRVERLYITV 0
  31221. #define BIT_MASK_DRVERLYITV 0xff
  31222. #define BIT_DRVERLYITV(x) (((x) & BIT_MASK_DRVERLYITV) << BIT_SHIFT_DRVERLYITV)
  31223. #define BITS_DRVERLYITV (BIT_MASK_DRVERLYITV << BIT_SHIFT_DRVERLYITV)
  31224. #define BIT_CLEAR_DRVERLYITV(x) ((x) & (~BITS_DRVERLYITV))
  31225. #define BIT_GET_DRVERLYITV(x) \
  31226. (((x) >> BIT_SHIFT_DRVERLYITV) & BIT_MASK_DRVERLYITV)
  31227. #define BIT_SET_DRVERLYITV(x, v) (BIT_CLEAR_DRVERLYITV(x) | BIT_DRVERLYITV(v))
  31228. #define BIT_SHIFT_BCNDMATIM 0
  31229. #define BIT_MASK_BCNDMATIM 0xff
  31230. #define BIT_BCNDMATIM(x) (((x) & BIT_MASK_BCNDMATIM) << BIT_SHIFT_BCNDMATIM)
  31231. #define BITS_BCNDMATIM (BIT_MASK_BCNDMATIM << BIT_SHIFT_BCNDMATIM)
  31232. #define BIT_CLEAR_BCNDMATIM(x) ((x) & (~BITS_BCNDMATIM))
  31233. #define BIT_GET_BCNDMATIM(x) (((x) >> BIT_SHIFT_BCNDMATIM) & BIT_MASK_BCNDMATIM)
  31234. #define BIT_SET_BCNDMATIM(x, v) (BIT_CLEAR_BCNDMATIM(x) | BIT_BCNDMATIM(v))
  31235. #define BIT_SHIFT_CTWND 0
  31236. #define BIT_MASK_CTWND 0xff
  31237. #define BIT_CTWND(x) (((x) & BIT_MASK_CTWND) << BIT_SHIFT_CTWND)
  31238. #define BITS_CTWND (BIT_MASK_CTWND << BIT_SHIFT_CTWND)
  31239. #define BIT_CLEAR_CTWND(x) ((x) & (~BITS_CTWND))
  31240. #define BIT_GET_CTWND(x) (((x) >> BIT_SHIFT_CTWND) & BIT_MASK_CTWND)
  31241. #define BIT_SET_CTWND(x, v) (BIT_CLEAR_CTWND(x) | BIT_CTWND(v))
  31242. #endif
  31243. #if (HALMAC_8821C_SUPPORT)
  31244. /* 2 REG_PAGE5_DUMMY (Offset 0x05FC) */
  31245. #define BIT_ECO_TXOP_BREAK_FORCE_CFEND BIT(0)
  31246. #endif
  31247. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  31248. /* 2 REG_WMAC_CR (Offset 0x0600) */
  31249. #define BIT_APSDOFF_STATUS BIT(7)
  31250. #endif
  31251. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31252. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  31253. /* 2 REG_WMAC_CR (Offset 0x0600) */
  31254. #define BIT_APSDOFF BIT(6)
  31255. #endif
  31256. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  31257. /* 2 REG_WMAC_CR (Offset 0x0600) */
  31258. #define BIT_STANDBY_STATUS BIT(5)
  31259. #endif
  31260. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31261. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31262. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31263. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31264. /* 2 REG_WMAC_CR (Offset 0x0600) */
  31265. #define BIT_IC_MACPHY_M BIT(0)
  31266. #endif
  31267. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31268. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31269. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31270. /* 2 REG_WMAC_FWPKT_CR (Offset 0x0601) */
  31271. #define BIT_FWEN BIT(7)
  31272. #endif
  31273. #if (HALMAC_8198F_SUPPORT)
  31274. /* 2 REG_WMAC_FWPKT_CR (Offset 0x0601) */
  31275. #define BIT_FWRX_EN BIT(7)
  31276. #endif
  31277. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31278. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31279. HALMAC_8822C_SUPPORT)
  31280. /* 2 REG_WMAC_FWPKT_CR (Offset 0x0601) */
  31281. #define BIT_PHYSTS_PKT_CTRL BIT(6)
  31282. #endif
  31283. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  31284. /* 2 REG_WMAC_FWPKT_CR (Offset 0x0601) */
  31285. #define BIT_FWFULL_TO_RXFF_EN BIT(5)
  31286. #endif
  31287. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31288. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31289. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31290. /* 2 REG_WMAC_FWPKT_CR (Offset 0x0601) */
  31291. #define BIT_APPHDR_MIDSRCH_FAIL BIT(4)
  31292. #define BIT_FWPARSING_EN BIT(3)
  31293. #define BIT_SHIFT_APPEND_MHDR_LEN 0
  31294. #define BIT_MASK_APPEND_MHDR_LEN 0x7
  31295. #define BIT_APPEND_MHDR_LEN(x) \
  31296. (((x) & BIT_MASK_APPEND_MHDR_LEN) << BIT_SHIFT_APPEND_MHDR_LEN)
  31297. #define BITS_APPEND_MHDR_LEN \
  31298. (BIT_MASK_APPEND_MHDR_LEN << BIT_SHIFT_APPEND_MHDR_LEN)
  31299. #define BIT_CLEAR_APPEND_MHDR_LEN(x) ((x) & (~BITS_APPEND_MHDR_LEN))
  31300. #define BIT_GET_APPEND_MHDR_LEN(x) \
  31301. (((x) >> BIT_SHIFT_APPEND_MHDR_LEN) & BIT_MASK_APPEND_MHDR_LEN)
  31302. #define BIT_SET_APPEND_MHDR_LEN(x, v) \
  31303. (BIT_CLEAR_APPEND_MHDR_LEN(x) | BIT_APPEND_MHDR_LEN(v))
  31304. #endif
  31305. #if (HALMAC_8198F_SUPPORT)
  31306. /* 2 REG_BWOPMODE (Offset 0x0603) */
  31307. #define BIT_WMAC_20MHZBW BIT(2)
  31308. #define BIT_WMAC_M11J BIT(0)
  31309. #endif
  31310. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31311. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31312. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31313. /* 2 REG_TCR (Offset 0x0604) */
  31314. #define BIT_WMAC_EN_RTS_ADDR BIT(31)
  31315. #define BIT_WMAC_DISABLE_CCK BIT(30)
  31316. #define BIT_WMAC_RAW_LEN BIT(29)
  31317. #define BIT_WMAC_NOTX_IN_RXNDP BIT(28)
  31318. #define BIT_WMAC_EN_EOF BIT(27)
  31319. #endif
  31320. #if (HALMAC_8192F_SUPPORT)
  31321. /* 2 REG_TCR (Offset 0x0604) */
  31322. #define BIT_WMAC_TCRPWRMGT_HWCTL_V1 BIT(26)
  31323. #endif
  31324. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31325. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31326. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31327. /* 2 REG_TCR (Offset 0x0604) */
  31328. #define BIT_WMAC_BF_SEL BIT(26)
  31329. #endif
  31330. #if (HALMAC_8192F_SUPPORT)
  31331. /* 2 REG_TCR (Offset 0x0604) */
  31332. #define BIT_BF_SEL BIT(25)
  31333. #endif
  31334. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31335. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  31336. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31337. /* 2 REG_TCR (Offset 0x0604) */
  31338. #define BIT_WMAC_ANTMODE_SEL BIT(25)
  31339. #endif
  31340. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT)
  31341. /* 2 REG_TCR (Offset 0x0604) */
  31342. #define BIT_RXLEN_SEL BIT(24)
  31343. #endif
  31344. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31345. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31346. HALMAC_8822C_SUPPORT)
  31347. /* 2 REG_TCR (Offset 0x0604) */
  31348. #define BIT_WMAC_TCRPWRMGT_HWCTL BIT(24)
  31349. #endif
  31350. #if (HALMAC_8814B_SUPPORT)
  31351. /* 2 REG_TCR (Offset 0x0604) */
  31352. #define BIT_WMAC_TCRPWRMGT_HWCTL_EN BIT(24)
  31353. #endif
  31354. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31355. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31356. HALMAC_8822C_SUPPORT)
  31357. /* 2 REG_TCR (Offset 0x0604) */
  31358. #define BIT_WMAC_SMOOTH_VAL BIT(23)
  31359. #endif
  31360. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31361. /* 2 REG_TCR (Offset 0x0604) */
  31362. #define BIT_WMAC_EN_SCRAM_INC BIT(22)
  31363. #endif
  31364. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31365. HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31366. /* 2 REG_TCR (Offset 0x0604) */
  31367. #define BIT_UNDERFLOWEN_CMPLEN_SEL BIT(21)
  31368. #endif
  31369. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  31370. /* 2 REG_TCR (Offset 0x0604) */
  31371. #define BIT_SHIFT_TSFT_CMP 20
  31372. #define BIT_MASK_TSFT_CMP 0xf
  31373. #define BIT_TSFT_CMP(x) (((x) & BIT_MASK_TSFT_CMP) << BIT_SHIFT_TSFT_CMP)
  31374. #define BITS_TSFT_CMP (BIT_MASK_TSFT_CMP << BIT_SHIFT_TSFT_CMP)
  31375. #define BIT_CLEAR_TSFT_CMP(x) ((x) & (~BITS_TSFT_CMP))
  31376. #define BIT_GET_TSFT_CMP(x) (((x) >> BIT_SHIFT_TSFT_CMP) & BIT_MASK_TSFT_CMP)
  31377. #define BIT_SET_TSFT_CMP(x, v) (BIT_CLEAR_TSFT_CMP(x) | BIT_TSFT_CMP(v))
  31378. #endif
  31379. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31380. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31381. HALMAC_8822C_SUPPORT)
  31382. /* 2 REG_TCR (Offset 0x0604) */
  31383. #define BIT_FETCH_MPDU_AFTER_WSEC_RDY BIT(20)
  31384. #endif
  31385. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31386. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31387. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31388. /* 2 REG_TCR (Offset 0x0604) */
  31389. #define BIT_WMAC_TCR_EN_20MST BIT(19)
  31390. #define BIT_WMAC_DIS_SIGTA BIT(18)
  31391. #define BIT_WMAC_DIS_A2B0 BIT(17)
  31392. #endif
  31393. #if (HALMAC_8192F_SUPPORT)
  31394. /* 2 REG_TCR (Offset 0x0604) */
  31395. #define BIT_SHIFT_TSFT_CMP_CCK 16
  31396. #define BIT_MASK_TSFT_CMP_CCK 0xf
  31397. #define BIT_TSFT_CMP_CCK(x) \
  31398. (((x) & BIT_MASK_TSFT_CMP_CCK) << BIT_SHIFT_TSFT_CMP_CCK)
  31399. #define BITS_TSFT_CMP_CCK (BIT_MASK_TSFT_CMP_CCK << BIT_SHIFT_TSFT_CMP_CCK)
  31400. #define BIT_CLEAR_TSFT_CMP_CCK(x) ((x) & (~BITS_TSFT_CMP_CCK))
  31401. #define BIT_GET_TSFT_CMP_CCK(x) \
  31402. (((x) >> BIT_SHIFT_TSFT_CMP_CCK) & BIT_MASK_TSFT_CMP_CCK)
  31403. #define BIT_SET_TSFT_CMP_CCK(x, v) \
  31404. (BIT_CLEAR_TSFT_CMP_CCK(x) | BIT_TSFT_CMP_CCK(v))
  31405. #endif
  31406. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31407. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  31408. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31409. /* 2 REG_TCR (Offset 0x0604) */
  31410. #define BIT_WMAC_MSK_SIGBCRC BIT(16)
  31411. #endif
  31412. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31413. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31414. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31415. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31416. /* 2 REG_TCR (Offset 0x0604) */
  31417. #define BIT_WMAC_TCR_ERRSTEN_3 BIT(15)
  31418. #define BIT_WMAC_TCR_ERRSTEN_2 BIT(14)
  31419. #define BIT_WMAC_TCR_ERRSTEN_1 BIT(13)
  31420. #define BIT_WMAC_TCR_ERRSTEN_0 BIT(12)
  31421. #define BIT_WMAC_TCR_TXSK_PERPKT BIT(11)
  31422. #endif
  31423. #if (HALMAC_8192F_SUPPORT)
  31424. /* 2 REG_TCR (Offset 0x0604) */
  31425. #define BIT__TXSK_PERPKT BIT(11)
  31426. #endif
  31427. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31428. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31429. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31430. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31431. /* 2 REG_TCR (Offset 0x0604) */
  31432. #define BIT_ICV BIT(10)
  31433. #endif
  31434. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31435. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31436. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  31437. HALMAC_8881A_SUPPORT)
  31438. /* 2 REG_TCR (Offset 0x0604) */
  31439. #define BIT_CFEND_FORMAT BIT(9)
  31440. #endif
  31441. #if (HALMAC_8192F_SUPPORT)
  31442. /* 2 REG_TCR (Offset 0x0604) */
  31443. #define BIT_CFENDFORM BIT(9)
  31444. #endif
  31445. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31446. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31447. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31448. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31449. /* 2 REG_TCR (Offset 0x0604) */
  31450. #define BIT_CRC BIT(8)
  31451. #endif
  31452. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31453. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  31454. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  31455. /* 2 REG_TCR (Offset 0x0604) */
  31456. #define BIT_PWRBIT_OW_EN BIT(7)
  31457. #endif
  31458. #if (HALMAC_8192F_SUPPORT)
  31459. /* 2 REG_TCR (Offset 0x0604) */
  31460. #define BIT_PWRMGT_CTL BIT(7)
  31461. #endif
  31462. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31463. /* 2 REG_TCR (Offset 0x0604) */
  31464. #define BIT_WMAC_TCRPWRMGT_HWDATA_EN BIT(7)
  31465. #endif
  31466. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31467. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31468. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31469. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31470. /* 2 REG_TCR (Offset 0x0604) */
  31471. #define BIT_PWR_ST BIT(6)
  31472. #endif
  31473. #if (HALMAC_8192F_SUPPORT)
  31474. /* 2 REG_TCR (Offset 0x0604) */
  31475. #define BIT_PWRMGT_VAL BIT(6)
  31476. #endif
  31477. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31478. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31479. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31480. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31481. /* 2 REG_TCR (Offset 0x0604) */
  31482. #define BIT_WMAC_TCR_UPD_TIMIE BIT(5)
  31483. #endif
  31484. #if (HALMAC_8192F_SUPPORT)
  31485. /* 2 REG_TCR (Offset 0x0604) */
  31486. #define BIT_UPD_TIMIE BIT(5)
  31487. #endif
  31488. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31489. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31490. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31491. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31492. /* 2 REG_TCR (Offset 0x0604) */
  31493. #define BIT_WMAC_TCR_UPD_HGQMD BIT(4)
  31494. #endif
  31495. #if (HALMAC_8192F_SUPPORT)
  31496. /* 2 REG_TCR (Offset 0x0604) */
  31497. #define BIT_UPD_HGQMD BIT(4)
  31498. #endif
  31499. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31500. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31501. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31502. HALMAC_8822C_SUPPORT)
  31503. /* 2 REG_TCR (Offset 0x0604) */
  31504. #define BIT_VHTSIGA1_TXPS BIT(3)
  31505. #endif
  31506. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31507. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31508. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31509. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31510. /* 2 REG_TCR (Offset 0x0604) */
  31511. #define BIT_PAD_SEL BIT(2)
  31512. #define BIT_DIS_GCLK BIT(1)
  31513. #endif
  31514. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  31515. /* 2 REG_TCR (Offset 0x0604) */
  31516. #define BIT_TSFRST BIT(0)
  31517. #endif
  31518. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31519. /* 2 REG_TCR (Offset 0x0604) */
  31520. #define BIT_WMAC_TCRPWRMGT_HWACT_EN BIT(0)
  31521. #endif
  31522. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  31523. /* 2 REG_TCR (Offset 0x0604) */
  31524. #define BIT_R_WMAC_TCR_LSIG BIT(0)
  31525. #endif
  31526. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31527. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31528. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31529. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31530. /* 2 REG_RCR (Offset 0x0608) */
  31531. #define BIT_APP_FCS BIT(31)
  31532. #define BIT_APP_MIC BIT(30)
  31533. #define BIT_APP_ICV BIT(29)
  31534. #define BIT_APP_PHYSTS BIT(28)
  31535. #define BIT_APP_BASSN BIT(27)
  31536. #endif
  31537. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31538. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31539. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31540. HALMAC_8822C_SUPPORT)
  31541. /* 2 REG_RCR (Offset 0x0608) */
  31542. #define BIT_VHT_DACK BIT(26)
  31543. #endif
  31544. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31545. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31546. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31547. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31548. /* 2 REG_RCR (Offset 0x0608) */
  31549. #define BIT_TCPOFLD_EN BIT(25)
  31550. #endif
  31551. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31552. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31553. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31554. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31555. /* 2 REG_RCR (Offset 0x0608) */
  31556. #define BIT_ENMBID BIT(24)
  31557. #endif
  31558. #if (HALMAC_8814B_SUPPORT)
  31559. /* 2 REG_RCR (Offset 0x0608) */
  31560. #define BIT_ENADDRCAM BIT(24)
  31561. #endif
  31562. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31563. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31564. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31565. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31566. /* 2 REG_RCR (Offset 0x0608) */
  31567. #define BIT_LSIGEN BIT(23)
  31568. #define BIT_MFBEN BIT(22)
  31569. #define BIT_DISCHKPPDLLEN BIT(21)
  31570. #define BIT_PKTCTL_DLEN BIT(20)
  31571. #endif
  31572. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  31573. HALMAC_8822C_SUPPORT)
  31574. /* 2 REG_RCR (Offset 0x0608) */
  31575. #define BIT_DISGCLK BIT(19)
  31576. #endif
  31577. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31578. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31579. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31580. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31581. /* 2 REG_RCR (Offset 0x0608) */
  31582. #define BIT_TIM_PARSER_EN BIT(18)
  31583. #endif
  31584. #if (HALMAC_8192F_SUPPORT)
  31585. /* 2 REG_RCR (Offset 0x0608) */
  31586. #define BIT_TIMPSR_EN BIT(18)
  31587. #endif
  31588. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31589. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31590. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31591. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31592. /* 2 REG_RCR (Offset 0x0608) */
  31593. #define BIT_BC_MD_EN BIT(17)
  31594. #endif
  31595. #if (HALMAC_8192F_SUPPORT)
  31596. /* 2 REG_RCR (Offset 0x0608) */
  31597. #define BIT_BCMDINT_EN BIT(17)
  31598. #endif
  31599. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31600. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31601. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31602. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31603. /* 2 REG_RCR (Offset 0x0608) */
  31604. #define BIT_UC_MD_EN BIT(16)
  31605. #endif
  31606. #if (HALMAC_8192F_SUPPORT)
  31607. /* 2 REG_RCR (Offset 0x0608) */
  31608. #define BIT_UCMDINT_EN BIT(16)
  31609. #endif
  31610. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31611. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31612. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31613. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31614. /* 2 REG_RCR (Offset 0x0608) */
  31615. #define BIT_RXSK_PERPKT BIT(15)
  31616. #endif
  31617. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31618. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31619. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31620. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31621. /* 2 REG_RCR (Offset 0x0608) */
  31622. #define BIT_HTC_LOC_CTRL BIT(14)
  31623. #endif
  31624. #if (HALMAC_8192F_SUPPORT)
  31625. /* 2 REG_RCR (Offset 0x0608) */
  31626. #define BIT_HTCBFMC BIT(14)
  31627. #endif
  31628. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  31629. /* 2 REG_RCR (Offset 0x0608) */
  31630. #define BIT_AMF BIT(13)
  31631. #endif
  31632. #if (HALMAC_8198F_SUPPORT)
  31633. /* 2 REG_RCR (Offset 0x0608) */
  31634. #define BIT_CHK_PREVTCA2 BIT(13)
  31635. #endif
  31636. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  31637. /* 2 REG_RCR (Offset 0x0608) */
  31638. #define BIT_ACK_WITH_CBSSID_DATA_OPTION BIT(13)
  31639. #endif
  31640. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  31641. /* 2 REG_RCR (Offset 0x0608) */
  31642. #define BIT_ACF BIT(12)
  31643. #endif
  31644. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  31645. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31646. /* 2 REG_RCR (Offset 0x0608) */
  31647. #define BIT_RPFM_CAM_ENABLE BIT(12)
  31648. #endif
  31649. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  31650. /* 2 REG_RCR (Offset 0x0608) */
  31651. #define BIT_ADF BIT(11)
  31652. #endif
  31653. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  31654. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31655. HALMAC_8822C_SUPPORT)
  31656. /* 2 REG_RCR (Offset 0x0608) */
  31657. #define BIT_TA_BCN BIT(11)
  31658. #endif
  31659. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31660. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31661. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31662. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31663. /* 2 REG_RCR (Offset 0x0608) */
  31664. #define BIT_DISDECMYPKT BIT(10)
  31665. #endif
  31666. #if (HALMAC_8192F_SUPPORT)
  31667. /* 2 REG_RCR (Offset 0x0608) */
  31668. #define BIT_DISDECNMYPKT BIT(10)
  31669. #endif
  31670. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31671. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31672. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31673. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31674. /* 2 REG_RCR (Offset 0x0608) */
  31675. #define BIT_AICV BIT(9)
  31676. #define BIT_ACRC32 BIT(8)
  31677. #endif
  31678. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31679. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31680. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31681. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31682. /* 2 REG_RCR (Offset 0x0608) */
  31683. #define BIT_CBSSID_BCN BIT(7)
  31684. #endif
  31685. #if (HALMAC_8192F_SUPPORT)
  31686. /* 2 REG_RCR (Offset 0x0608) */
  31687. #define BIT_CBSSID_MGNT BIT(7)
  31688. #endif
  31689. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31690. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31691. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31692. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31693. /* 2 REG_RCR (Offset 0x0608) */
  31694. #define BIT_CBSSID_DATA BIT(6)
  31695. #define BIT_APWRMGT BIT(5)
  31696. #define BIT_ADD3 BIT(4)
  31697. #define BIT_AB BIT(3)
  31698. #define BIT_AM BIT(2)
  31699. #define BIT_APM BIT(1)
  31700. #define BIT_AAP BIT(0)
  31701. #define BIT_SHIFT_RXPKTLMT 0
  31702. #define BIT_MASK_RXPKTLMT 0x3f
  31703. #define BIT_RXPKTLMT(x) (((x) & BIT_MASK_RXPKTLMT) << BIT_SHIFT_RXPKTLMT)
  31704. #define BITS_RXPKTLMT (BIT_MASK_RXPKTLMT << BIT_SHIFT_RXPKTLMT)
  31705. #define BIT_CLEAR_RXPKTLMT(x) ((x) & (~BITS_RXPKTLMT))
  31706. #define BIT_GET_RXPKTLMT(x) (((x) >> BIT_SHIFT_RXPKTLMT) & BIT_MASK_RXPKTLMT)
  31707. #define BIT_SET_RXPKTLMT(x, v) (BIT_CLEAR_RXPKTLMT(x) | BIT_RXPKTLMT(v))
  31708. /* 2 REG_RX_DLK_TIME (Offset 0x060D) */
  31709. #define BIT_SHIFT_RX_DLK_TIME 0
  31710. #define BIT_MASK_RX_DLK_TIME 0xff
  31711. #define BIT_RX_DLK_TIME(x) \
  31712. (((x) & BIT_MASK_RX_DLK_TIME) << BIT_SHIFT_RX_DLK_TIME)
  31713. #define BITS_RX_DLK_TIME (BIT_MASK_RX_DLK_TIME << BIT_SHIFT_RX_DLK_TIME)
  31714. #define BIT_CLEAR_RX_DLK_TIME(x) ((x) & (~BITS_RX_DLK_TIME))
  31715. #define BIT_GET_RX_DLK_TIME(x) \
  31716. (((x) >> BIT_SHIFT_RX_DLK_TIME) & BIT_MASK_RX_DLK_TIME)
  31717. #define BIT_SET_RX_DLK_TIME(x, v) \
  31718. (BIT_CLEAR_RX_DLK_TIME(x) | BIT_RX_DLK_TIME(v))
  31719. #endif
  31720. #if (HALMAC_8192F_SUPPORT)
  31721. /* 2 REG_SDIO_RXINT_LEN_TH (Offset 0x1025060E) */
  31722. #define BIT_SHIFT_SDIO_RXINT_LEN_TH 0
  31723. #define BIT_MASK_SDIO_RXINT_LEN_TH 0xff
  31724. #define BIT_SDIO_RXINT_LEN_TH(x) \
  31725. (((x) & BIT_MASK_SDIO_RXINT_LEN_TH) << BIT_SHIFT_SDIO_RXINT_LEN_TH)
  31726. #define BITS_SDIO_RXINT_LEN_TH \
  31727. (BIT_MASK_SDIO_RXINT_LEN_TH << BIT_SHIFT_SDIO_RXINT_LEN_TH)
  31728. #define BIT_CLEAR_SDIO_RXINT_LEN_TH(x) ((x) & (~BITS_SDIO_RXINT_LEN_TH))
  31729. #define BIT_GET_SDIO_RXINT_LEN_TH(x) \
  31730. (((x) >> BIT_SHIFT_SDIO_RXINT_LEN_TH) & BIT_MASK_SDIO_RXINT_LEN_TH)
  31731. #define BIT_SET_SDIO_RXINT_LEN_TH(x, v) \
  31732. (BIT_CLEAR_SDIO_RXINT_LEN_TH(x) | BIT_SDIO_RXINT_LEN_TH(v))
  31733. #endif
  31734. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  31735. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31736. #define BIT_APP_PHYSTS_PER_SUBMPDU BIT(7)
  31737. #endif
  31738. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31739. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31740. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31741. #define BIT_PHYSTS_PER_PKT_MODE BIT(7)
  31742. #endif
  31743. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  31744. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31745. #define BIT_APP_MH_SHIFT_VAL BIT(6)
  31746. #define BIT_WMAC_ENSHIFT BIT(5)
  31747. #endif
  31748. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31749. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31750. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31751. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31752. #define BIT_SHIFT_BITMAP_SSNBK_COUNTER 2
  31753. #define BIT_MASK_BITMAP_SSNBK_COUNTER 0x3f
  31754. #define BIT_BITMAP_SSNBK_COUNTER(x) \
  31755. (((x) & BIT_MASK_BITMAP_SSNBK_COUNTER) \
  31756. << BIT_SHIFT_BITMAP_SSNBK_COUNTER)
  31757. #define BITS_BITMAP_SSNBK_COUNTER \
  31758. (BIT_MASK_BITMAP_SSNBK_COUNTER << BIT_SHIFT_BITMAP_SSNBK_COUNTER)
  31759. #define BIT_CLEAR_BITMAP_SSNBK_COUNTER(x) ((x) & (~BITS_BITMAP_SSNBK_COUNTER))
  31760. #define BIT_GET_BITMAP_SSNBK_COUNTER(x) \
  31761. (((x) >> BIT_SHIFT_BITMAP_SSNBK_COUNTER) & \
  31762. BIT_MASK_BITMAP_SSNBK_COUNTER)
  31763. #define BIT_SET_BITMAP_SSNBK_COUNTER(x, v) \
  31764. (BIT_CLEAR_BITMAP_SSNBK_COUNTER(x) | BIT_BITMAP_SSNBK_COUNTER(v))
  31765. #define BIT_BITMAP_EN BIT(1)
  31766. #endif
  31767. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  31768. HALMAC_8881A_SUPPORT)
  31769. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31770. #define BIT_SHIFT_DRVINFO_SZ 0
  31771. #define BIT_MASK_DRVINFO_SZ 0xff
  31772. #define BIT_DRVINFO_SZ(x) (((x) & BIT_MASK_DRVINFO_SZ) << BIT_SHIFT_DRVINFO_SZ)
  31773. #define BITS_DRVINFO_SZ (BIT_MASK_DRVINFO_SZ << BIT_SHIFT_DRVINFO_SZ)
  31774. #define BIT_CLEAR_DRVINFO_SZ(x) ((x) & (~BITS_DRVINFO_SZ))
  31775. #define BIT_GET_DRVINFO_SZ(x) \
  31776. (((x) >> BIT_SHIFT_DRVINFO_SZ) & BIT_MASK_DRVINFO_SZ)
  31777. #define BIT_SET_DRVINFO_SZ(x, v) (BIT_CLEAR_DRVINFO_SZ(x) | BIT_DRVINFO_SZ(v))
  31778. #endif
  31779. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31780. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31781. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  31782. /* 2 REG_RX_DRVINFO_SZ (Offset 0x060F) */
  31783. #define BIT_SHIFT_DRVINFO_SZ_V1 0
  31784. #define BIT_MASK_DRVINFO_SZ_V1 0xf
  31785. #define BIT_DRVINFO_SZ_V1(x) \
  31786. (((x) & BIT_MASK_DRVINFO_SZ_V1) << BIT_SHIFT_DRVINFO_SZ_V1)
  31787. #define BITS_DRVINFO_SZ_V1 (BIT_MASK_DRVINFO_SZ_V1 << BIT_SHIFT_DRVINFO_SZ_V1)
  31788. #define BIT_CLEAR_DRVINFO_SZ_V1(x) ((x) & (~BITS_DRVINFO_SZ_V1))
  31789. #define BIT_GET_DRVINFO_SZ_V1(x) \
  31790. (((x) >> BIT_SHIFT_DRVINFO_SZ_V1) & BIT_MASK_DRVINFO_SZ_V1)
  31791. #define BIT_SET_DRVINFO_SZ_V1(x, v) \
  31792. (BIT_CLEAR_DRVINFO_SZ_V1(x) | BIT_DRVINFO_SZ_V1(v))
  31793. #endif
  31794. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31795. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  31796. HALMAC_8881A_SUPPORT)
  31797. /* 2 REG_MACID (Offset 0x0610) */
  31798. #define BIT_SHIFT_MACID 0
  31799. #define BIT_MASK_MACID 0xffffffffffffL
  31800. #define BIT_MACID(x) (((x) & BIT_MASK_MACID) << BIT_SHIFT_MACID)
  31801. #define BITS_MACID (BIT_MASK_MACID << BIT_SHIFT_MACID)
  31802. #define BIT_CLEAR_MACID(x) ((x) & (~BITS_MACID))
  31803. #define BIT_GET_MACID(x) (((x) >> BIT_SHIFT_MACID) & BIT_MASK_MACID)
  31804. #define BIT_SET_MACID(x, v) (BIT_CLEAR_MACID(x) | BIT_MACID(v))
  31805. #endif
  31806. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  31807. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  31808. /* 2 REG_MACID (Offset 0x0610) */
  31809. #define BIT_SHIFT_MACID_V1 0
  31810. #define BIT_MASK_MACID_V1 0xffffffffL
  31811. #define BIT_MACID_V1(x) (((x) & BIT_MASK_MACID_V1) << BIT_SHIFT_MACID_V1)
  31812. #define BITS_MACID_V1 (BIT_MASK_MACID_V1 << BIT_SHIFT_MACID_V1)
  31813. #define BIT_CLEAR_MACID_V1(x) ((x) & (~BITS_MACID_V1))
  31814. #define BIT_GET_MACID_V1(x) (((x) >> BIT_SHIFT_MACID_V1) & BIT_MASK_MACID_V1)
  31815. #define BIT_SET_MACID_V1(x, v) (BIT_CLEAR_MACID_V1(x) | BIT_MACID_V1(v))
  31816. #endif
  31817. #if (HALMAC_8192F_SUPPORT)
  31818. /* 2 REG_MACID_H (Offset 0x0614) */
  31819. #define BIT_SHIFT_MACID_H 0
  31820. #define BIT_MASK_MACID_H 0xffff
  31821. #define BIT_MACID_H(x) (((x) & BIT_MASK_MACID_H) << BIT_SHIFT_MACID_H)
  31822. #define BITS_MACID_H (BIT_MASK_MACID_H << BIT_SHIFT_MACID_H)
  31823. #define BIT_CLEAR_MACID_H(x) ((x) & (~BITS_MACID_H))
  31824. #define BIT_GET_MACID_H(x) (((x) >> BIT_SHIFT_MACID_H) & BIT_MASK_MACID_H)
  31825. #define BIT_SET_MACID_H(x, v) (BIT_CLEAR_MACID_H(x) | BIT_MACID_H(v))
  31826. #endif
  31827. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31828. HALMAC_8822C_SUPPORT)
  31829. /* 2 REG_MACID_H (Offset 0x0614) */
  31830. #define BIT_SHIFT_MACID_H_V1 0
  31831. #define BIT_MASK_MACID_H_V1 0xffff
  31832. #define BIT_MACID_H_V1(x) (((x) & BIT_MASK_MACID_H_V1) << BIT_SHIFT_MACID_H_V1)
  31833. #define BITS_MACID_H_V1 (BIT_MASK_MACID_H_V1 << BIT_SHIFT_MACID_H_V1)
  31834. #define BIT_CLEAR_MACID_H_V1(x) ((x) & (~BITS_MACID_H_V1))
  31835. #define BIT_GET_MACID_H_V1(x) \
  31836. (((x) >> BIT_SHIFT_MACID_H_V1) & BIT_MASK_MACID_H_V1)
  31837. #define BIT_SET_MACID_H_V1(x, v) (BIT_CLEAR_MACID_H_V1(x) | BIT_MACID_H_V1(v))
  31838. #define BIT_SHIFT_BSSID_H_V1 0
  31839. #define BIT_MASK_BSSID_H_V1 0xffff
  31840. #define BIT_BSSID_H_V1(x) (((x) & BIT_MASK_BSSID_H_V1) << BIT_SHIFT_BSSID_H_V1)
  31841. #define BITS_BSSID_H_V1 (BIT_MASK_BSSID_H_V1 << BIT_SHIFT_BSSID_H_V1)
  31842. #define BIT_CLEAR_BSSID_H_V1(x) ((x) & (~BITS_BSSID_H_V1))
  31843. #define BIT_GET_BSSID_H_V1(x) \
  31844. (((x) >> BIT_SHIFT_BSSID_H_V1) & BIT_MASK_BSSID_H_V1)
  31845. #define BIT_SET_BSSID_H_V1(x, v) (BIT_CLEAR_BSSID_H_V1(x) | BIT_BSSID_H_V1(v))
  31846. #endif
  31847. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31848. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  31849. HALMAC_8881A_SUPPORT)
  31850. /* 2 REG_BSSID (Offset 0x0618) */
  31851. #define BIT_SHIFT_BSSID 0
  31852. #define BIT_MASK_BSSID 0xffffffffffffL
  31853. #define BIT_BSSID(x) (((x) & BIT_MASK_BSSID) << BIT_SHIFT_BSSID)
  31854. #define BITS_BSSID (BIT_MASK_BSSID << BIT_SHIFT_BSSID)
  31855. #define BIT_CLEAR_BSSID(x) ((x) & (~BITS_BSSID))
  31856. #define BIT_GET_BSSID(x) (((x) >> BIT_SHIFT_BSSID) & BIT_MASK_BSSID)
  31857. #define BIT_SET_BSSID(x, v) (BIT_CLEAR_BSSID(x) | BIT_BSSID(v))
  31858. #endif
  31859. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  31860. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  31861. /* 2 REG_BSSID (Offset 0x0618) */
  31862. #define BIT_SHIFT_BSSID_V1 0
  31863. #define BIT_MASK_BSSID_V1 0xffffffffL
  31864. #define BIT_BSSID_V1(x) (((x) & BIT_MASK_BSSID_V1) << BIT_SHIFT_BSSID_V1)
  31865. #define BITS_BSSID_V1 (BIT_MASK_BSSID_V1 << BIT_SHIFT_BSSID_V1)
  31866. #define BIT_CLEAR_BSSID_V1(x) ((x) & (~BITS_BSSID_V1))
  31867. #define BIT_GET_BSSID_V1(x) (((x) >> BIT_SHIFT_BSSID_V1) & BIT_MASK_BSSID_V1)
  31868. #define BIT_SET_BSSID_V1(x, v) (BIT_CLEAR_BSSID_V1(x) | BIT_BSSID_V1(v))
  31869. #endif
  31870. #if (HALMAC_8192F_SUPPORT)
  31871. /* 2 REG_BSSID_H (Offset 0x061C) */
  31872. #define BIT_SHIFT_BSSID_H 0
  31873. #define BIT_MASK_BSSID_H 0xffff
  31874. #define BIT_BSSID_H(x) (((x) & BIT_MASK_BSSID_H) << BIT_SHIFT_BSSID_H)
  31875. #define BITS_BSSID_H (BIT_MASK_BSSID_H << BIT_SHIFT_BSSID_H)
  31876. #define BIT_CLEAR_BSSID_H(x) ((x) & (~BITS_BSSID_H))
  31877. #define BIT_GET_BSSID_H(x) (((x) >> BIT_SHIFT_BSSID_H) & BIT_MASK_BSSID_H)
  31878. #define BIT_SET_BSSID_H(x, v) (BIT_CLEAR_BSSID_H(x) | BIT_BSSID_H(v))
  31879. #endif
  31880. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  31881. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  31882. HALMAC_8881A_SUPPORT)
  31883. /* 2 REG_MAR (Offset 0x0620) */
  31884. #define BIT_SHIFT_MAR 0
  31885. #define BIT_MASK_MAR 0xffffffffffffffffL
  31886. #define BIT_MAR(x) (((x) & BIT_MASK_MAR) << BIT_SHIFT_MAR)
  31887. #define BITS_MAR (BIT_MASK_MAR << BIT_SHIFT_MAR)
  31888. #define BIT_CLEAR_MAR(x) ((x) & (~BITS_MAR))
  31889. #define BIT_GET_MAR(x) (((x) >> BIT_SHIFT_MAR) & BIT_MASK_MAR)
  31890. #define BIT_SET_MAR(x, v) (BIT_CLEAR_MAR(x) | BIT_MAR(v))
  31891. #endif
  31892. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  31893. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  31894. /* 2 REG_MAR (Offset 0x0620) */
  31895. #define BIT_SHIFT_MAR_V1 0
  31896. #define BIT_MASK_MAR_V1 0xffffffffL
  31897. #define BIT_MAR_V1(x) (((x) & BIT_MASK_MAR_V1) << BIT_SHIFT_MAR_V1)
  31898. #define BITS_MAR_V1 (BIT_MASK_MAR_V1 << BIT_SHIFT_MAR_V1)
  31899. #define BIT_CLEAR_MAR_V1(x) ((x) & (~BITS_MAR_V1))
  31900. #define BIT_GET_MAR_V1(x) (((x) >> BIT_SHIFT_MAR_V1) & BIT_MASK_MAR_V1)
  31901. #define BIT_SET_MAR_V1(x, v) (BIT_CLEAR_MAR_V1(x) | BIT_MAR_V1(v))
  31902. #endif
  31903. #if (HALMAC_8192F_SUPPORT)
  31904. /* 2 REG_MAR_H (Offset 0x0624) */
  31905. #define BIT_SHIFT_MAR_H 0
  31906. #define BIT_MASK_MAR_H 0xffffffffL
  31907. #define BIT_MAR_H(x) (((x) & BIT_MASK_MAR_H) << BIT_SHIFT_MAR_H)
  31908. #define BITS_MAR_H (BIT_MASK_MAR_H << BIT_SHIFT_MAR_H)
  31909. #define BIT_CLEAR_MAR_H(x) ((x) & (~BITS_MAR_H))
  31910. #define BIT_GET_MAR_H(x) (((x) >> BIT_SHIFT_MAR_H) & BIT_MASK_MAR_H)
  31911. #define BIT_SET_MAR_H(x, v) (BIT_CLEAR_MAR_H(x) | BIT_MAR_H(v))
  31912. #endif
  31913. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  31914. HALMAC_8822C_SUPPORT)
  31915. /* 2 REG_MAR_H (Offset 0x0624) */
  31916. #define BIT_SHIFT_MAR_H_V1 0
  31917. #define BIT_MASK_MAR_H_V1 0xffffffffL
  31918. #define BIT_MAR_H_V1(x) (((x) & BIT_MASK_MAR_H_V1) << BIT_SHIFT_MAR_H_V1)
  31919. #define BITS_MAR_H_V1 (BIT_MASK_MAR_H_V1 << BIT_SHIFT_MAR_H_V1)
  31920. #define BIT_CLEAR_MAR_H_V1(x) ((x) & (~BITS_MAR_H_V1))
  31921. #define BIT_GET_MAR_H_V1(x) (((x) >> BIT_SHIFT_MAR_H_V1) & BIT_MASK_MAR_H_V1)
  31922. #define BIT_SET_MAR_H_V1(x, v) (BIT_CLEAR_MAR_H_V1(x) | BIT_MAR_H_V1(v))
  31923. #endif
  31924. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  31925. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  31926. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  31927. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  31928. /* 2 REG_MBIDCAMCFG_1 (Offset 0x0628) */
  31929. #define BIT_MBIDCAM_POLL BIT(31)
  31930. #define BIT_MBIDCAM_WT_EN BIT(30)
  31931. #define BIT_LSIC_TXOP_EN BIT(17)
  31932. #define BIT_SHIFT_MBIDCAM_RWDATA_L 0
  31933. #define BIT_MASK_MBIDCAM_RWDATA_L 0xffffffffL
  31934. #define BIT_MBIDCAM_RWDATA_L(x) \
  31935. (((x) & BIT_MASK_MBIDCAM_RWDATA_L) << BIT_SHIFT_MBIDCAM_RWDATA_L)
  31936. #define BITS_MBIDCAM_RWDATA_L \
  31937. (BIT_MASK_MBIDCAM_RWDATA_L << BIT_SHIFT_MBIDCAM_RWDATA_L)
  31938. #define BIT_CLEAR_MBIDCAM_RWDATA_L(x) ((x) & (~BITS_MBIDCAM_RWDATA_L))
  31939. #define BIT_GET_MBIDCAM_RWDATA_L(x) \
  31940. (((x) >> BIT_SHIFT_MBIDCAM_RWDATA_L) & BIT_MASK_MBIDCAM_RWDATA_L)
  31941. #define BIT_SET_MBIDCAM_RWDATA_L(x, v) \
  31942. (BIT_CLEAR_MBIDCAM_RWDATA_L(x) | BIT_MBIDCAM_RWDATA_L(v))
  31943. #define BIT_SHIFT_MBIDCAM_RWDATA_H 0
  31944. #define BIT_MASK_MBIDCAM_RWDATA_H 0xffff
  31945. #define BIT_MBIDCAM_RWDATA_H(x) \
  31946. (((x) & BIT_MASK_MBIDCAM_RWDATA_H) << BIT_SHIFT_MBIDCAM_RWDATA_H)
  31947. #define BITS_MBIDCAM_RWDATA_H \
  31948. (BIT_MASK_MBIDCAM_RWDATA_H << BIT_SHIFT_MBIDCAM_RWDATA_H)
  31949. #define BIT_CLEAR_MBIDCAM_RWDATA_H(x) ((x) & (~BITS_MBIDCAM_RWDATA_H))
  31950. #define BIT_GET_MBIDCAM_RWDATA_H(x) \
  31951. (((x) >> BIT_SHIFT_MBIDCAM_RWDATA_H) & BIT_MASK_MBIDCAM_RWDATA_H)
  31952. #define BIT_SET_MBIDCAM_RWDATA_H(x, v) \
  31953. (BIT_CLEAR_MBIDCAM_RWDATA_H(x) | BIT_MBIDCAM_RWDATA_H(v))
  31954. #endif
  31955. #if (HALMAC_8192F_SUPPORT)
  31956. /* 2 REG_MBIDCAM_CFG (Offset 0x062C) */
  31957. #define BIT_MBIDCAM_RST_V1 BIT(29)
  31958. #endif
  31959. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  31960. /* 2 REG_MBIDCAMCFG_2 (Offset 0x062C) */
  31961. #define BIT_SHIFT_MBIDCAM_ADDR_V1 24
  31962. #define BIT_MASK_MBIDCAM_ADDR_V1 0x3f
  31963. #define BIT_MBIDCAM_ADDR_V1(x) \
  31964. (((x) & BIT_MASK_MBIDCAM_ADDR_V1) << BIT_SHIFT_MBIDCAM_ADDR_V1)
  31965. #define BITS_MBIDCAM_ADDR_V1 \
  31966. (BIT_MASK_MBIDCAM_ADDR_V1 << BIT_SHIFT_MBIDCAM_ADDR_V1)
  31967. #define BIT_CLEAR_MBIDCAM_ADDR_V1(x) ((x) & (~BITS_MBIDCAM_ADDR_V1))
  31968. #define BIT_GET_MBIDCAM_ADDR_V1(x) \
  31969. (((x) >> BIT_SHIFT_MBIDCAM_ADDR_V1) & BIT_MASK_MBIDCAM_ADDR_V1)
  31970. #define BIT_SET_MBIDCAM_ADDR_V1(x, v) \
  31971. (BIT_CLEAR_MBIDCAM_ADDR_V1(x) | BIT_MBIDCAM_ADDR_V1(v))
  31972. #endif
  31973. #if (HALMAC_8198F_SUPPORT)
  31974. /* 2 REG_MBIDCAMCFG_2 (Offset 0x062C) */
  31975. #define BIT_SHIFT_MBIDCAM_ADDR_V2 23
  31976. #define BIT_MASK_MBIDCAM_ADDR_V2 0x7f
  31977. #define BIT_MBIDCAM_ADDR_V2(x) \
  31978. (((x) & BIT_MASK_MBIDCAM_ADDR_V2) << BIT_SHIFT_MBIDCAM_ADDR_V2)
  31979. #define BITS_MBIDCAM_ADDR_V2 \
  31980. (BIT_MASK_MBIDCAM_ADDR_V2 << BIT_SHIFT_MBIDCAM_ADDR_V2)
  31981. #define BIT_CLEAR_MBIDCAM_ADDR_V2(x) ((x) & (~BITS_MBIDCAM_ADDR_V2))
  31982. #define BIT_GET_MBIDCAM_ADDR_V2(x) \
  31983. (((x) >> BIT_SHIFT_MBIDCAM_ADDR_V2) & BIT_MASK_MBIDCAM_ADDR_V2)
  31984. #define BIT_SET_MBIDCAM_ADDR_V2(x, v) \
  31985. (BIT_CLEAR_MBIDCAM_ADDR_V2(x) | BIT_MBIDCAM_ADDR_V2(v))
  31986. #define BIT_MBIDCAM_RST BIT(19)
  31987. #define BIT_MBIDCAM_VALID_V1 BIT(18)
  31988. #endif
  31989. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  31990. /* 2 REG_MBIDCAMCFG_2 (Offset 0x062C) */
  31991. #define BIT_REPEAT_MODE_EN BIT(16)
  31992. #endif
  31993. #if (HALMAC_8814B_SUPPORT)
  31994. /* 2 REG_WMAC_DEBUG_SEL (Offset 0x062C) */
  31995. #define BIT_SHIFT_WMAC_ARB_DBG_SEL 3
  31996. #define BIT_MASK_WMAC_ARB_DBG_SEL 0x3
  31997. #define BIT_WMAC_ARB_DBG_SEL(x) \
  31998. (((x) & BIT_MASK_WMAC_ARB_DBG_SEL) << BIT_SHIFT_WMAC_ARB_DBG_SEL)
  31999. #define BITS_WMAC_ARB_DBG_SEL \
  32000. (BIT_MASK_WMAC_ARB_DBG_SEL << BIT_SHIFT_WMAC_ARB_DBG_SEL)
  32001. #define BIT_CLEAR_WMAC_ARB_DBG_SEL(x) ((x) & (~BITS_WMAC_ARB_DBG_SEL))
  32002. #define BIT_GET_WMAC_ARB_DBG_SEL(x) \
  32003. (((x) >> BIT_SHIFT_WMAC_ARB_DBG_SEL) & BIT_MASK_WMAC_ARB_DBG_SEL)
  32004. #define BIT_SET_WMAC_ARB_DBG_SEL(x, v) \
  32005. (BIT_CLEAR_WMAC_ARB_DBG_SEL(x) | BIT_WMAC_ARB_DBG_SEL(v))
  32006. #define BIT_WMAC_EXT_DBG_SEL BIT(2)
  32007. #define BIT_SHIFT_WMAC_MU_DBGSEL_V1 0
  32008. #define BIT_MASK_WMAC_MU_DBGSEL_V1 0x3
  32009. #define BIT_WMAC_MU_DBGSEL_V1(x) \
  32010. (((x) & BIT_MASK_WMAC_MU_DBGSEL_V1) << BIT_SHIFT_WMAC_MU_DBGSEL_V1)
  32011. #define BITS_WMAC_MU_DBGSEL_V1 \
  32012. (BIT_MASK_WMAC_MU_DBGSEL_V1 << BIT_SHIFT_WMAC_MU_DBGSEL_V1)
  32013. #define BIT_CLEAR_WMAC_MU_DBGSEL_V1(x) ((x) & (~BITS_WMAC_MU_DBGSEL_V1))
  32014. #define BIT_GET_WMAC_MU_DBGSEL_V1(x) \
  32015. (((x) >> BIT_SHIFT_WMAC_MU_DBGSEL_V1) & BIT_MASK_WMAC_MU_DBGSEL_V1)
  32016. #define BIT_SET_WMAC_MU_DBGSEL_V1(x, v) \
  32017. (BIT_CLEAR_WMAC_MU_DBGSEL_V1(x) | BIT_WMAC_MU_DBGSEL_V1(v))
  32018. #endif
  32019. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  32020. /* 2 REG_MCU_TEST_1 (Offset 0x0630) */
  32021. #define BIT_SHIFT_MCU_RSVD 0
  32022. #define BIT_MASK_MCU_RSVD 0xffffffffL
  32023. #define BIT_MCU_RSVD(x) (((x) & BIT_MASK_MCU_RSVD) << BIT_SHIFT_MCU_RSVD)
  32024. #define BITS_MCU_RSVD (BIT_MASK_MCU_RSVD << BIT_SHIFT_MCU_RSVD)
  32025. #define BIT_CLEAR_MCU_RSVD(x) ((x) & (~BITS_MCU_RSVD))
  32026. #define BIT_GET_MCU_RSVD(x) (((x) >> BIT_SHIFT_MCU_RSVD) & BIT_MASK_MCU_RSVD)
  32027. #define BIT_SET_MCU_RSVD(x, v) (BIT_CLEAR_MCU_RSVD(x) | BIT_MCU_RSVD(v))
  32028. #endif
  32029. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32030. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  32031. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32032. /* 2 REG_WMAC_TCR_TSFT_OFS (Offset 0x0630) */
  32033. #define BIT_SHIFT_WMAC_TCR_TSFT_OFS 0
  32034. #define BIT_MASK_WMAC_TCR_TSFT_OFS 0xffff
  32035. #define BIT_WMAC_TCR_TSFT_OFS(x) \
  32036. (((x) & BIT_MASK_WMAC_TCR_TSFT_OFS) << BIT_SHIFT_WMAC_TCR_TSFT_OFS)
  32037. #define BITS_WMAC_TCR_TSFT_OFS \
  32038. (BIT_MASK_WMAC_TCR_TSFT_OFS << BIT_SHIFT_WMAC_TCR_TSFT_OFS)
  32039. #define BIT_CLEAR_WMAC_TCR_TSFT_OFS(x) ((x) & (~BITS_WMAC_TCR_TSFT_OFS))
  32040. #define BIT_GET_WMAC_TCR_TSFT_OFS(x) \
  32041. (((x) >> BIT_SHIFT_WMAC_TCR_TSFT_OFS) & BIT_MASK_WMAC_TCR_TSFT_OFS)
  32042. #define BIT_SET_WMAC_TCR_TSFT_OFS(x, v) \
  32043. (BIT_CLEAR_WMAC_TCR_TSFT_OFS(x) | BIT_WMAC_TCR_TSFT_OFS(v))
  32044. #endif
  32045. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  32046. /* 2 REG_UDF_THSD (Offset 0x0632) */
  32047. #define BIT_UDF_THSD_V1 BIT(7)
  32048. #endif
  32049. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32050. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  32051. /* 2 REG_UDF_THSD (Offset 0x0632) */
  32052. #define BIT_SHIFT_UDF_THSD 0
  32053. #define BIT_MASK_UDF_THSD 0xff
  32054. #define BIT_UDF_THSD(x) (((x) & BIT_MASK_UDF_THSD) << BIT_SHIFT_UDF_THSD)
  32055. #define BITS_UDF_THSD (BIT_MASK_UDF_THSD << BIT_SHIFT_UDF_THSD)
  32056. #define BIT_CLEAR_UDF_THSD(x) ((x) & (~BITS_UDF_THSD))
  32057. #define BIT_GET_UDF_THSD(x) (((x) >> BIT_SHIFT_UDF_THSD) & BIT_MASK_UDF_THSD)
  32058. #define BIT_SET_UDF_THSD(x, v) (BIT_CLEAR_UDF_THSD(x) | BIT_UDF_THSD(v))
  32059. #endif
  32060. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  32061. /* 2 REG_UDF_THSD (Offset 0x0632) */
  32062. #define BIT_SHIFT_UDF_THSD_VALUE 0
  32063. #define BIT_MASK_UDF_THSD_VALUE 0x7f
  32064. #define BIT_UDF_THSD_VALUE(x) \
  32065. (((x) & BIT_MASK_UDF_THSD_VALUE) << BIT_SHIFT_UDF_THSD_VALUE)
  32066. #define BITS_UDF_THSD_VALUE \
  32067. (BIT_MASK_UDF_THSD_VALUE << BIT_SHIFT_UDF_THSD_VALUE)
  32068. #define BIT_CLEAR_UDF_THSD_VALUE(x) ((x) & (~BITS_UDF_THSD_VALUE))
  32069. #define BIT_GET_UDF_THSD_VALUE(x) \
  32070. (((x) >> BIT_SHIFT_UDF_THSD_VALUE) & BIT_MASK_UDF_THSD_VALUE)
  32071. #define BIT_SET_UDF_THSD_VALUE(x, v) \
  32072. (BIT_CLEAR_UDF_THSD_VALUE(x) | BIT_UDF_THSD_VALUE(v))
  32073. #endif
  32074. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32075. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  32076. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32077. /* 2 REG_ZLD_NUM (Offset 0x0633) */
  32078. #define BIT_SHIFT_ZLD_NUM 0
  32079. #define BIT_MASK_ZLD_NUM 0xff
  32080. #define BIT_ZLD_NUM(x) (((x) & BIT_MASK_ZLD_NUM) << BIT_SHIFT_ZLD_NUM)
  32081. #define BITS_ZLD_NUM (BIT_MASK_ZLD_NUM << BIT_SHIFT_ZLD_NUM)
  32082. #define BIT_CLEAR_ZLD_NUM(x) ((x) & (~BITS_ZLD_NUM))
  32083. #define BIT_GET_ZLD_NUM(x) (((x) >> BIT_SHIFT_ZLD_NUM) & BIT_MASK_ZLD_NUM)
  32084. #define BIT_SET_ZLD_NUM(x, v) (BIT_CLEAR_ZLD_NUM(x) | BIT_ZLD_NUM(v))
  32085. #endif
  32086. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  32087. /* 2 REG_MCU_TEST_2 (Offset 0x0634) */
  32088. #define BIT_SHIFT_MCU_RSVD_2 0
  32089. #define BIT_MASK_MCU_RSVD_2 0xffffffffL
  32090. #define BIT_MCU_RSVD_2(x) (((x) & BIT_MASK_MCU_RSVD_2) << BIT_SHIFT_MCU_RSVD_2)
  32091. #define BITS_MCU_RSVD_2 (BIT_MASK_MCU_RSVD_2 << BIT_SHIFT_MCU_RSVD_2)
  32092. #define BIT_CLEAR_MCU_RSVD_2(x) ((x) & (~BITS_MCU_RSVD_2))
  32093. #define BIT_GET_MCU_RSVD_2(x) \
  32094. (((x) >> BIT_SHIFT_MCU_RSVD_2) & BIT_MASK_MCU_RSVD_2)
  32095. #define BIT_SET_MCU_RSVD_2(x, v) (BIT_CLEAR_MCU_RSVD_2(x) | BIT_MCU_RSVD_2(v))
  32096. #define BIT_SHIFT_WKFCAM_NUM 0
  32097. #define BIT_MASK_WKFCAM_NUM 0x7f
  32098. #define BIT_WKFCAM_NUM(x) (((x) & BIT_MASK_WKFCAM_NUM) << BIT_SHIFT_WKFCAM_NUM)
  32099. #define BITS_WKFCAM_NUM (BIT_MASK_WKFCAM_NUM << BIT_SHIFT_WKFCAM_NUM)
  32100. #define BIT_CLEAR_WKFCAM_NUM(x) ((x) & (~BITS_WKFCAM_NUM))
  32101. #define BIT_GET_WKFCAM_NUM(x) \
  32102. (((x) >> BIT_SHIFT_WKFCAM_NUM) & BIT_MASK_WKFCAM_NUM)
  32103. #define BIT_SET_WKFCAM_NUM(x, v) (BIT_CLEAR_WKFCAM_NUM(x) | BIT_WKFCAM_NUM(v))
  32104. #endif
  32105. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32106. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  32107. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32108. /* 2 REG_STMP_THSD (Offset 0x0634) */
  32109. #define BIT_SHIFT_STMP_THSD 0
  32110. #define BIT_MASK_STMP_THSD 0xff
  32111. #define BIT_STMP_THSD(x) (((x) & BIT_MASK_STMP_THSD) << BIT_SHIFT_STMP_THSD)
  32112. #define BITS_STMP_THSD (BIT_MASK_STMP_THSD << BIT_SHIFT_STMP_THSD)
  32113. #define BIT_CLEAR_STMP_THSD(x) ((x) & (~BITS_STMP_THSD))
  32114. #define BIT_GET_STMP_THSD(x) (((x) >> BIT_SHIFT_STMP_THSD) & BIT_MASK_STMP_THSD)
  32115. #define BIT_SET_STMP_THSD(x, v) (BIT_CLEAR_STMP_THSD(x) | BIT_STMP_THSD(v))
  32116. /* 2 REG_WMAC_TXTIMEOUT (Offset 0x0635) */
  32117. #define BIT_SHIFT_WMAC_TXTIMEOUT 0
  32118. #define BIT_MASK_WMAC_TXTIMEOUT 0xff
  32119. #define BIT_WMAC_TXTIMEOUT(x) \
  32120. (((x) & BIT_MASK_WMAC_TXTIMEOUT) << BIT_SHIFT_WMAC_TXTIMEOUT)
  32121. #define BITS_WMAC_TXTIMEOUT \
  32122. (BIT_MASK_WMAC_TXTIMEOUT << BIT_SHIFT_WMAC_TXTIMEOUT)
  32123. #define BIT_CLEAR_WMAC_TXTIMEOUT(x) ((x) & (~BITS_WMAC_TXTIMEOUT))
  32124. #define BIT_GET_WMAC_TXTIMEOUT(x) \
  32125. (((x) >> BIT_SHIFT_WMAC_TXTIMEOUT) & BIT_MASK_WMAC_TXTIMEOUT)
  32126. #define BIT_SET_WMAC_TXTIMEOUT(x, v) \
  32127. (BIT_CLEAR_WMAC_TXTIMEOUT(x) | BIT_WMAC_TXTIMEOUT(v))
  32128. #endif
  32129. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32130. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32131. HALMAC_8822B_SUPPORT)
  32132. /* 2 REG_MCU_TEST_2_V1 (Offset 0x0636) */
  32133. #define BIT_SHIFT_MCU_RSVD_2_V1 0
  32134. #define BIT_MASK_MCU_RSVD_2_V1 0xffff
  32135. #define BIT_MCU_RSVD_2_V1(x) \
  32136. (((x) & BIT_MASK_MCU_RSVD_2_V1) << BIT_SHIFT_MCU_RSVD_2_V1)
  32137. #define BITS_MCU_RSVD_2_V1 (BIT_MASK_MCU_RSVD_2_V1 << BIT_SHIFT_MCU_RSVD_2_V1)
  32138. #define BIT_CLEAR_MCU_RSVD_2_V1(x) ((x) & (~BITS_MCU_RSVD_2_V1))
  32139. #define BIT_GET_MCU_RSVD_2_V1(x) \
  32140. (((x) >> BIT_SHIFT_MCU_RSVD_2_V1) & BIT_MASK_MCU_RSVD_2_V1)
  32141. #define BIT_SET_MCU_RSVD_2_V1(x, v) \
  32142. (BIT_CLEAR_MCU_RSVD_2_V1(x) | BIT_MCU_RSVD_2_V1(v))
  32143. #endif
  32144. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32145. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814B_SUPPORT || \
  32146. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32147. /* 2 REG_USTIME_EDCA (Offset 0x0638) */
  32148. #define BIT_SHIFT_USTIME_EDCA 0
  32149. #define BIT_MASK_USTIME_EDCA 0xff
  32150. #define BIT_USTIME_EDCA(x) \
  32151. (((x) & BIT_MASK_USTIME_EDCA) << BIT_SHIFT_USTIME_EDCA)
  32152. #define BITS_USTIME_EDCA (BIT_MASK_USTIME_EDCA << BIT_SHIFT_USTIME_EDCA)
  32153. #define BIT_CLEAR_USTIME_EDCA(x) ((x) & (~BITS_USTIME_EDCA))
  32154. #define BIT_GET_USTIME_EDCA(x) \
  32155. (((x) >> BIT_SHIFT_USTIME_EDCA) & BIT_MASK_USTIME_EDCA)
  32156. #define BIT_SET_USTIME_EDCA(x, v) \
  32157. (BIT_CLEAR_USTIME_EDCA(x) | BIT_USTIME_EDCA(v))
  32158. #endif
  32159. #if (HALMAC_8192F_SUPPORT)
  32160. /* 2 REG_USTIME_EDCA (Offset 0x0638) */
  32161. #define BIT_SHIFT_USTIME 0
  32162. #define BIT_MASK_USTIME 0xff
  32163. #define BIT_USTIME(x) (((x) & BIT_MASK_USTIME) << BIT_SHIFT_USTIME)
  32164. #define BITS_USTIME (BIT_MASK_USTIME << BIT_SHIFT_USTIME)
  32165. #define BIT_CLEAR_USTIME(x) ((x) & (~BITS_USTIME))
  32166. #define BIT_GET_USTIME(x) (((x) >> BIT_SHIFT_USTIME) & BIT_MASK_USTIME)
  32167. #define BIT_SET_USTIME(x, v) (BIT_CLEAR_USTIME(x) | BIT_USTIME(v))
  32168. #endif
  32169. #if (HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  32170. /* 2 REG_USTIME_EDCA (Offset 0x0638) */
  32171. #define BIT_SHIFT_USTIME_EDCA_V1 0
  32172. #define BIT_MASK_USTIME_EDCA_V1 0x1ff
  32173. #define BIT_USTIME_EDCA_V1(x) \
  32174. (((x) & BIT_MASK_USTIME_EDCA_V1) << BIT_SHIFT_USTIME_EDCA_V1)
  32175. #define BITS_USTIME_EDCA_V1 \
  32176. (BIT_MASK_USTIME_EDCA_V1 << BIT_SHIFT_USTIME_EDCA_V1)
  32177. #define BIT_CLEAR_USTIME_EDCA_V1(x) ((x) & (~BITS_USTIME_EDCA_V1))
  32178. #define BIT_GET_USTIME_EDCA_V1(x) \
  32179. (((x) >> BIT_SHIFT_USTIME_EDCA_V1) & BIT_MASK_USTIME_EDCA_V1)
  32180. #define BIT_SET_USTIME_EDCA_V1(x, v) \
  32181. (BIT_CLEAR_USTIME_EDCA_V1(x) | BIT_USTIME_EDCA_V1(v))
  32182. #endif
  32183. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32184. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  32185. /* 2 REG_ACKTO_CCK (Offset 0x0639) */
  32186. #define BIT_SHIFT_ACKTO_CCK 0
  32187. #define BIT_MASK_ACKTO_CCK 0xff
  32188. #define BIT_ACKTO_CCK(x) (((x) & BIT_MASK_ACKTO_CCK) << BIT_SHIFT_ACKTO_CCK)
  32189. #define BITS_ACKTO_CCK (BIT_MASK_ACKTO_CCK << BIT_SHIFT_ACKTO_CCK)
  32190. #define BIT_CLEAR_ACKTO_CCK(x) ((x) & (~BITS_ACKTO_CCK))
  32191. #define BIT_GET_ACKTO_CCK(x) (((x) >> BIT_SHIFT_ACKTO_CCK) & BIT_MASK_ACKTO_CCK)
  32192. #define BIT_SET_ACKTO_CCK(x, v) (BIT_CLEAR_ACKTO_CCK(x) | BIT_ACKTO_CCK(v))
  32193. #endif
  32194. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32195. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32196. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32197. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32198. /* 2 REG_MAC_SPEC_SIFS (Offset 0x063A) */
  32199. #define BIT_SHIFT_SPEC_SIFS_OFDM 8
  32200. #define BIT_MASK_SPEC_SIFS_OFDM 0xff
  32201. #define BIT_SPEC_SIFS_OFDM(x) \
  32202. (((x) & BIT_MASK_SPEC_SIFS_OFDM) << BIT_SHIFT_SPEC_SIFS_OFDM)
  32203. #define BITS_SPEC_SIFS_OFDM \
  32204. (BIT_MASK_SPEC_SIFS_OFDM << BIT_SHIFT_SPEC_SIFS_OFDM)
  32205. #define BIT_CLEAR_SPEC_SIFS_OFDM(x) ((x) & (~BITS_SPEC_SIFS_OFDM))
  32206. #define BIT_GET_SPEC_SIFS_OFDM(x) \
  32207. (((x) >> BIT_SHIFT_SPEC_SIFS_OFDM) & BIT_MASK_SPEC_SIFS_OFDM)
  32208. #define BIT_SET_SPEC_SIFS_OFDM(x, v) \
  32209. (BIT_CLEAR_SPEC_SIFS_OFDM(x) | BIT_SPEC_SIFS_OFDM(v))
  32210. #define BIT_SHIFT_SPEC_SIFS_CCK 0
  32211. #define BIT_MASK_SPEC_SIFS_CCK 0xff
  32212. #define BIT_SPEC_SIFS_CCK(x) \
  32213. (((x) & BIT_MASK_SPEC_SIFS_CCK) << BIT_SHIFT_SPEC_SIFS_CCK)
  32214. #define BITS_SPEC_SIFS_CCK (BIT_MASK_SPEC_SIFS_CCK << BIT_SHIFT_SPEC_SIFS_CCK)
  32215. #define BIT_CLEAR_SPEC_SIFS_CCK(x) ((x) & (~BITS_SPEC_SIFS_CCK))
  32216. #define BIT_GET_SPEC_SIFS_CCK(x) \
  32217. (((x) >> BIT_SHIFT_SPEC_SIFS_CCK) & BIT_MASK_SPEC_SIFS_CCK)
  32218. #define BIT_SET_SPEC_SIFS_CCK(x, v) \
  32219. (BIT_CLEAR_SPEC_SIFS_CCK(x) | BIT_SPEC_SIFS_CCK(v))
  32220. #endif
  32221. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32222. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32223. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32224. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32225. /* 2 REG_RESP_SIFS_CCK (Offset 0x063C) */
  32226. #define BIT_SHIFT_SIFS_R2T_CCK 8
  32227. #define BIT_MASK_SIFS_R2T_CCK 0xff
  32228. #define BIT_SIFS_R2T_CCK(x) \
  32229. (((x) & BIT_MASK_SIFS_R2T_CCK) << BIT_SHIFT_SIFS_R2T_CCK)
  32230. #define BITS_SIFS_R2T_CCK (BIT_MASK_SIFS_R2T_CCK << BIT_SHIFT_SIFS_R2T_CCK)
  32231. #define BIT_CLEAR_SIFS_R2T_CCK(x) ((x) & (~BITS_SIFS_R2T_CCK))
  32232. #define BIT_GET_SIFS_R2T_CCK(x) \
  32233. (((x) >> BIT_SHIFT_SIFS_R2T_CCK) & BIT_MASK_SIFS_R2T_CCK)
  32234. #define BIT_SET_SIFS_R2T_CCK(x, v) \
  32235. (BIT_CLEAR_SIFS_R2T_CCK(x) | BIT_SIFS_R2T_CCK(v))
  32236. #endif
  32237. #if (HALMAC_8192F_SUPPORT)
  32238. /* 2 REG_RESP_SIFS_CCK (Offset 0x063C) */
  32239. #define BIT_SHIFT_R2T_SIFS_CCK 8
  32240. #define BIT_MASK_R2T_SIFS_CCK 0xff
  32241. #define BIT_R2T_SIFS_CCK(x) \
  32242. (((x) & BIT_MASK_R2T_SIFS_CCK) << BIT_SHIFT_R2T_SIFS_CCK)
  32243. #define BITS_R2T_SIFS_CCK (BIT_MASK_R2T_SIFS_CCK << BIT_SHIFT_R2T_SIFS_CCK)
  32244. #define BIT_CLEAR_R2T_SIFS_CCK(x) ((x) & (~BITS_R2T_SIFS_CCK))
  32245. #define BIT_GET_R2T_SIFS_CCK(x) \
  32246. (((x) >> BIT_SHIFT_R2T_SIFS_CCK) & BIT_MASK_R2T_SIFS_CCK)
  32247. #define BIT_SET_R2T_SIFS_CCK(x, v) \
  32248. (BIT_CLEAR_R2T_SIFS_CCK(x) | BIT_R2T_SIFS_CCK(v))
  32249. #endif
  32250. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32251. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32252. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32253. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32254. /* 2 REG_RESP_SIFS_CCK (Offset 0x063C) */
  32255. #define BIT_SHIFT_SIFS_T2T_CCK 0
  32256. #define BIT_MASK_SIFS_T2T_CCK 0xff
  32257. #define BIT_SIFS_T2T_CCK(x) \
  32258. (((x) & BIT_MASK_SIFS_T2T_CCK) << BIT_SHIFT_SIFS_T2T_CCK)
  32259. #define BITS_SIFS_T2T_CCK (BIT_MASK_SIFS_T2T_CCK << BIT_SHIFT_SIFS_T2T_CCK)
  32260. #define BIT_CLEAR_SIFS_T2T_CCK(x) ((x) & (~BITS_SIFS_T2T_CCK))
  32261. #define BIT_GET_SIFS_T2T_CCK(x) \
  32262. (((x) >> BIT_SHIFT_SIFS_T2T_CCK) & BIT_MASK_SIFS_T2T_CCK)
  32263. #define BIT_SET_SIFS_T2T_CCK(x, v) \
  32264. (BIT_CLEAR_SIFS_T2T_CCK(x) | BIT_SIFS_T2T_CCK(v))
  32265. #endif
  32266. #if (HALMAC_8192F_SUPPORT)
  32267. /* 2 REG_RESP_SIFS_CCK (Offset 0x063C) */
  32268. #define BIT_SHIFT_T2T_SIFS_CCK 0
  32269. #define BIT_MASK_T2T_SIFS_CCK 0xff
  32270. #define BIT_T2T_SIFS_CCK(x) \
  32271. (((x) & BIT_MASK_T2T_SIFS_CCK) << BIT_SHIFT_T2T_SIFS_CCK)
  32272. #define BITS_T2T_SIFS_CCK (BIT_MASK_T2T_SIFS_CCK << BIT_SHIFT_T2T_SIFS_CCK)
  32273. #define BIT_CLEAR_T2T_SIFS_CCK(x) ((x) & (~BITS_T2T_SIFS_CCK))
  32274. #define BIT_GET_T2T_SIFS_CCK(x) \
  32275. (((x) >> BIT_SHIFT_T2T_SIFS_CCK) & BIT_MASK_T2T_SIFS_CCK)
  32276. #define BIT_SET_T2T_SIFS_CCK(x, v) \
  32277. (BIT_CLEAR_T2T_SIFS_CCK(x) | BIT_T2T_SIFS_CCK(v))
  32278. #endif
  32279. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32280. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32281. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32282. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32283. /* 2 REG_RESP_SIFS_OFDM (Offset 0x063E) */
  32284. #define BIT_SHIFT_SIFS_R2T_OFDM 8
  32285. #define BIT_MASK_SIFS_R2T_OFDM 0xff
  32286. #define BIT_SIFS_R2T_OFDM(x) \
  32287. (((x) & BIT_MASK_SIFS_R2T_OFDM) << BIT_SHIFT_SIFS_R2T_OFDM)
  32288. #define BITS_SIFS_R2T_OFDM (BIT_MASK_SIFS_R2T_OFDM << BIT_SHIFT_SIFS_R2T_OFDM)
  32289. #define BIT_CLEAR_SIFS_R2T_OFDM(x) ((x) & (~BITS_SIFS_R2T_OFDM))
  32290. #define BIT_GET_SIFS_R2T_OFDM(x) \
  32291. (((x) >> BIT_SHIFT_SIFS_R2T_OFDM) & BIT_MASK_SIFS_R2T_OFDM)
  32292. #define BIT_SET_SIFS_R2T_OFDM(x, v) \
  32293. (BIT_CLEAR_SIFS_R2T_OFDM(x) | BIT_SIFS_R2T_OFDM(v))
  32294. #endif
  32295. #if (HALMAC_8192F_SUPPORT)
  32296. /* 2 REG_RESP_SIFS_OFDM (Offset 0x063E) */
  32297. #define BIT_SHIFT_R2T_SIFS_OFDM 8
  32298. #define BIT_MASK_R2T_SIFS_OFDM 0xff
  32299. #define BIT_R2T_SIFS_OFDM(x) \
  32300. (((x) & BIT_MASK_R2T_SIFS_OFDM) << BIT_SHIFT_R2T_SIFS_OFDM)
  32301. #define BITS_R2T_SIFS_OFDM (BIT_MASK_R2T_SIFS_OFDM << BIT_SHIFT_R2T_SIFS_OFDM)
  32302. #define BIT_CLEAR_R2T_SIFS_OFDM(x) ((x) & (~BITS_R2T_SIFS_OFDM))
  32303. #define BIT_GET_R2T_SIFS_OFDM(x) \
  32304. (((x) >> BIT_SHIFT_R2T_SIFS_OFDM) & BIT_MASK_R2T_SIFS_OFDM)
  32305. #define BIT_SET_R2T_SIFS_OFDM(x, v) \
  32306. (BIT_CLEAR_R2T_SIFS_OFDM(x) | BIT_R2T_SIFS_OFDM(v))
  32307. #endif
  32308. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32309. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32310. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32311. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32312. /* 2 REG_RESP_SIFS_OFDM (Offset 0x063E) */
  32313. #define BIT_SHIFT_SIFS_T2T_OFDM 0
  32314. #define BIT_MASK_SIFS_T2T_OFDM 0xff
  32315. #define BIT_SIFS_T2T_OFDM(x) \
  32316. (((x) & BIT_MASK_SIFS_T2T_OFDM) << BIT_SHIFT_SIFS_T2T_OFDM)
  32317. #define BITS_SIFS_T2T_OFDM (BIT_MASK_SIFS_T2T_OFDM << BIT_SHIFT_SIFS_T2T_OFDM)
  32318. #define BIT_CLEAR_SIFS_T2T_OFDM(x) ((x) & (~BITS_SIFS_T2T_OFDM))
  32319. #define BIT_GET_SIFS_T2T_OFDM(x) \
  32320. (((x) >> BIT_SHIFT_SIFS_T2T_OFDM) & BIT_MASK_SIFS_T2T_OFDM)
  32321. #define BIT_SET_SIFS_T2T_OFDM(x, v) \
  32322. (BIT_CLEAR_SIFS_T2T_OFDM(x) | BIT_SIFS_T2T_OFDM(v))
  32323. #endif
  32324. #if (HALMAC_8192F_SUPPORT)
  32325. /* 2 REG_RESP_SIFS_OFDM (Offset 0x063E) */
  32326. #define BIT_SHIFT_T2T_SIFS_OFDM 0
  32327. #define BIT_MASK_T2T_SIFS_OFDM 0xff
  32328. #define BIT_T2T_SIFS_OFDM(x) \
  32329. (((x) & BIT_MASK_T2T_SIFS_OFDM) << BIT_SHIFT_T2T_SIFS_OFDM)
  32330. #define BITS_T2T_SIFS_OFDM (BIT_MASK_T2T_SIFS_OFDM << BIT_SHIFT_T2T_SIFS_OFDM)
  32331. #define BIT_CLEAR_T2T_SIFS_OFDM(x) ((x) & (~BITS_T2T_SIFS_OFDM))
  32332. #define BIT_GET_T2T_SIFS_OFDM(x) \
  32333. (((x) >> BIT_SHIFT_T2T_SIFS_OFDM) & BIT_MASK_T2T_SIFS_OFDM)
  32334. #define BIT_SET_T2T_SIFS_OFDM(x, v) \
  32335. (BIT_CLEAR_T2T_SIFS_OFDM(x) | BIT_T2T_SIFS_OFDM(v))
  32336. #endif
  32337. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32338. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32339. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32340. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32341. /* 2 REG_ACKTO (Offset 0x0640) */
  32342. #define BIT_SHIFT_ACKTO 0
  32343. #define BIT_MASK_ACKTO 0xff
  32344. #define BIT_ACKTO(x) (((x) & BIT_MASK_ACKTO) << BIT_SHIFT_ACKTO)
  32345. #define BITS_ACKTO (BIT_MASK_ACKTO << BIT_SHIFT_ACKTO)
  32346. #define BIT_CLEAR_ACKTO(x) ((x) & (~BITS_ACKTO))
  32347. #define BIT_GET_ACKTO(x) (((x) >> BIT_SHIFT_ACKTO) & BIT_MASK_ACKTO)
  32348. #define BIT_SET_ACKTO(x, v) (BIT_CLEAR_ACKTO(x) | BIT_ACKTO(v))
  32349. /* 2 REG_CTS2TO (Offset 0x0641) */
  32350. #define BIT_SHIFT_CTS2TO 0
  32351. #define BIT_MASK_CTS2TO 0xff
  32352. #define BIT_CTS2TO(x) (((x) & BIT_MASK_CTS2TO) << BIT_SHIFT_CTS2TO)
  32353. #define BITS_CTS2TO (BIT_MASK_CTS2TO << BIT_SHIFT_CTS2TO)
  32354. #define BIT_CLEAR_CTS2TO(x) ((x) & (~BITS_CTS2TO))
  32355. #define BIT_GET_CTS2TO(x) (((x) >> BIT_SHIFT_CTS2TO) & BIT_MASK_CTS2TO)
  32356. #define BIT_SET_CTS2TO(x, v) (BIT_CLEAR_CTS2TO(x) | BIT_CTS2TO(v))
  32357. /* 2 REG_EIFS (Offset 0x0642) */
  32358. #define BIT_SHIFT_EIFS 0
  32359. #define BIT_MASK_EIFS 0xffff
  32360. #define BIT_EIFS(x) (((x) & BIT_MASK_EIFS) << BIT_SHIFT_EIFS)
  32361. #define BITS_EIFS (BIT_MASK_EIFS << BIT_SHIFT_EIFS)
  32362. #define BIT_CLEAR_EIFS(x) ((x) & (~BITS_EIFS))
  32363. #define BIT_GET_EIFS(x) (((x) >> BIT_SHIFT_EIFS) & BIT_MASK_EIFS)
  32364. #define BIT_SET_EIFS(x, v) (BIT_CLEAR_EIFS(x) | BIT_EIFS(v))
  32365. #endif
  32366. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32367. HALMAC_8822C_SUPPORT)
  32368. /* 2 REG_RPFM_MAP0 (Offset 0x0644) */
  32369. #define BIT_MGT_RPFM15EN BIT(15)
  32370. #define BIT_MGT_RPFM14EN BIT(14)
  32371. #define BIT_MGT_RPFM13EN BIT(13)
  32372. #define BIT_MGT_RPFM12EN BIT(12)
  32373. #define BIT_MGT_RPFM11EN BIT(11)
  32374. #define BIT_MGT_RPFM10EN BIT(10)
  32375. #define BIT_MGT_RPFM9EN BIT(9)
  32376. #define BIT_MGT_RPFM8EN BIT(8)
  32377. #define BIT_MGT_RPFM7EN BIT(7)
  32378. #define BIT_MGT_RPFM6EN BIT(6)
  32379. #define BIT_MGT_RPFM5EN BIT(5)
  32380. #define BIT_MGT_RPFM4EN BIT(4)
  32381. #define BIT_MGT_RPFM3EN BIT(3)
  32382. #define BIT_MGT_RPFM2EN BIT(2)
  32383. #define BIT_MGT_RPFM1EN BIT(1)
  32384. #endif
  32385. #if (HALMAC_8198F_SUPPORT)
  32386. /* 2 REG_RPFM_MAP0 (Offset 0x0644) */
  32387. #define BIT_SHIFT_RPFM_MAP0 0
  32388. #define BIT_MASK_RPFM_MAP0 0xffff
  32389. #define BIT_RPFM_MAP0(x) (((x) & BIT_MASK_RPFM_MAP0) << BIT_SHIFT_RPFM_MAP0)
  32390. #define BITS_RPFM_MAP0 (BIT_MASK_RPFM_MAP0 << BIT_SHIFT_RPFM_MAP0)
  32391. #define BIT_CLEAR_RPFM_MAP0(x) ((x) & (~BITS_RPFM_MAP0))
  32392. #define BIT_GET_RPFM_MAP0(x) (((x) >> BIT_SHIFT_RPFM_MAP0) & BIT_MASK_RPFM_MAP0)
  32393. #define BIT_SET_RPFM_MAP0(x, v) (BIT_CLEAR_RPFM_MAP0(x) | BIT_RPFM_MAP0(v))
  32394. #endif
  32395. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32396. HALMAC_8822C_SUPPORT)
  32397. /* 2 REG_RPFM_MAP0 (Offset 0x0644) */
  32398. #define BIT_MGT_RPFM0EN BIT(0)
  32399. #endif
  32400. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32401. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32402. /* 2 REG_RPFM_MAP1_V1 (Offset 0x0646) */
  32403. #define BIT_DATA_RPFM15EN BIT(15)
  32404. #define BIT_DATA_RPFM14EN BIT(14)
  32405. #define BIT_DATA_RPFM13EN BIT(13)
  32406. #define BIT_DATA_RPFM12EN BIT(12)
  32407. #define BIT_DATA_RPFM11EN BIT(11)
  32408. #define BIT_DATA_RPFM10EN BIT(10)
  32409. #define BIT_DATA_RPFM9EN BIT(9)
  32410. #define BIT_DATA_RPFM8EN BIT(8)
  32411. #define BIT_DATA_RPFM7EN BIT(7)
  32412. #define BIT_DATA_RPFM6EN BIT(6)
  32413. #define BIT_DATA_RPFM5EN BIT(5)
  32414. #define BIT_DATA_RPFM4EN BIT(4)
  32415. #define BIT_DATA_RPFM3EN BIT(3)
  32416. #define BIT_DATA_RPFM2EN BIT(2)
  32417. #define BIT_DATA_RPFM1EN BIT(1)
  32418. #endif
  32419. #if (HALMAC_8198F_SUPPORT)
  32420. /* 2 REG_RPFM_MAP1 (Offset 0x0646) */
  32421. #define BIT_SHIFT_RPFM_MAP1 0
  32422. #define BIT_MASK_RPFM_MAP1 0xffff
  32423. #define BIT_RPFM_MAP1(x) (((x) & BIT_MASK_RPFM_MAP1) << BIT_SHIFT_RPFM_MAP1)
  32424. #define BITS_RPFM_MAP1 (BIT_MASK_RPFM_MAP1 << BIT_SHIFT_RPFM_MAP1)
  32425. #define BIT_CLEAR_RPFM_MAP1(x) ((x) & (~BITS_RPFM_MAP1))
  32426. #define BIT_GET_RPFM_MAP1(x) (((x) >> BIT_SHIFT_RPFM_MAP1) & BIT_MASK_RPFM_MAP1)
  32427. #define BIT_SET_RPFM_MAP1(x, v) (BIT_CLEAR_RPFM_MAP1(x) | BIT_RPFM_MAP1(v))
  32428. #endif
  32429. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32430. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32431. /* 2 REG_RPFM_MAP1_V1 (Offset 0x0646) */
  32432. #define BIT_DATA_RPFM0EN BIT(0)
  32433. #endif
  32434. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32435. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  32436. /* 2 REG_RPFM_CAM_CMD (Offset 0x0648) */
  32437. #define BIT_RPFM_CAM_POLLING BIT(31)
  32438. #define BIT_RPFM_CAM_CLR BIT(30)
  32439. #endif
  32440. #if (HALMAC_8198F_SUPPORT)
  32441. /* 2 REG_RPFM_CAM_CMD (Offset 0x0648) */
  32442. #define BIT_RPFM_CAM_WR BIT(16)
  32443. #endif
  32444. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32445. HALMAC_8822C_SUPPORT)
  32446. /* 2 REG_RPFM_CAM_CMD (Offset 0x0648) */
  32447. #define BIT_RPFM_CAM_WE BIT(16)
  32448. #define BIT_RPT_VALID BIT(13)
  32449. #endif
  32450. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32451. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  32452. /* 2 REG_RPFM_CAM_CMD (Offset 0x0648) */
  32453. #define BIT_SHIFT_RPFM_CAM_ADDR 0
  32454. #define BIT_MASK_RPFM_CAM_ADDR 0x7f
  32455. #define BIT_RPFM_CAM_ADDR(x) \
  32456. (((x) & BIT_MASK_RPFM_CAM_ADDR) << BIT_SHIFT_RPFM_CAM_ADDR)
  32457. #define BITS_RPFM_CAM_ADDR (BIT_MASK_RPFM_CAM_ADDR << BIT_SHIFT_RPFM_CAM_ADDR)
  32458. #define BIT_CLEAR_RPFM_CAM_ADDR(x) ((x) & (~BITS_RPFM_CAM_ADDR))
  32459. #define BIT_GET_RPFM_CAM_ADDR(x) \
  32460. (((x) >> BIT_SHIFT_RPFM_CAM_ADDR) & BIT_MASK_RPFM_CAM_ADDR)
  32461. #define BIT_SET_RPFM_CAM_ADDR(x, v) \
  32462. (BIT_CLEAR_RPFM_CAM_ADDR(x) | BIT_RPFM_CAM_ADDR(v))
  32463. /* 2 REG_RPFM_CAM_RWD (Offset 0x064C) */
  32464. #define BIT_SHIFT_RPFM_CAM_RWD 0
  32465. #define BIT_MASK_RPFM_CAM_RWD 0xffffffffL
  32466. #define BIT_RPFM_CAM_RWD(x) \
  32467. (((x) & BIT_MASK_RPFM_CAM_RWD) << BIT_SHIFT_RPFM_CAM_RWD)
  32468. #define BITS_RPFM_CAM_RWD (BIT_MASK_RPFM_CAM_RWD << BIT_SHIFT_RPFM_CAM_RWD)
  32469. #define BIT_CLEAR_RPFM_CAM_RWD(x) ((x) & (~BITS_RPFM_CAM_RWD))
  32470. #define BIT_GET_RPFM_CAM_RWD(x) \
  32471. (((x) >> BIT_SHIFT_RPFM_CAM_RWD) & BIT_MASK_RPFM_CAM_RWD)
  32472. #define BIT_SET_RPFM_CAM_RWD(x, v) \
  32473. (BIT_CLEAR_RPFM_CAM_RWD(x) | BIT_RPFM_CAM_RWD(v))
  32474. #endif
  32475. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32476. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32477. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32478. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32479. /* 2 REG_NAV_CTRL (Offset 0x0650) */
  32480. #define BIT_SHIFT_NAV_UPPER 16
  32481. #define BIT_MASK_NAV_UPPER 0xff
  32482. #define BIT_NAV_UPPER(x) (((x) & BIT_MASK_NAV_UPPER) << BIT_SHIFT_NAV_UPPER)
  32483. #define BITS_NAV_UPPER (BIT_MASK_NAV_UPPER << BIT_SHIFT_NAV_UPPER)
  32484. #define BIT_CLEAR_NAV_UPPER(x) ((x) & (~BITS_NAV_UPPER))
  32485. #define BIT_GET_NAV_UPPER(x) (((x) >> BIT_SHIFT_NAV_UPPER) & BIT_MASK_NAV_UPPER)
  32486. #define BIT_SET_NAV_UPPER(x, v) (BIT_CLEAR_NAV_UPPER(x) | BIT_NAV_UPPER(v))
  32487. #define BIT_SHIFT_RXMYRTS_NAV 8
  32488. #define BIT_MASK_RXMYRTS_NAV 0xf
  32489. #define BIT_RXMYRTS_NAV(x) \
  32490. (((x) & BIT_MASK_RXMYRTS_NAV) << BIT_SHIFT_RXMYRTS_NAV)
  32491. #define BITS_RXMYRTS_NAV (BIT_MASK_RXMYRTS_NAV << BIT_SHIFT_RXMYRTS_NAV)
  32492. #define BIT_CLEAR_RXMYRTS_NAV(x) ((x) & (~BITS_RXMYRTS_NAV))
  32493. #define BIT_GET_RXMYRTS_NAV(x) \
  32494. (((x) >> BIT_SHIFT_RXMYRTS_NAV) & BIT_MASK_RXMYRTS_NAV)
  32495. #define BIT_SET_RXMYRTS_NAV(x, v) \
  32496. (BIT_CLEAR_RXMYRTS_NAV(x) | BIT_RXMYRTS_NAV(v))
  32497. #define BIT_SHIFT_RTSRST 0
  32498. #define BIT_MASK_RTSRST 0xff
  32499. #define BIT_RTSRST(x) (((x) & BIT_MASK_RTSRST) << BIT_SHIFT_RTSRST)
  32500. #define BITS_RTSRST (BIT_MASK_RTSRST << BIT_SHIFT_RTSRST)
  32501. #define BIT_CLEAR_RTSRST(x) ((x) & (~BITS_RTSRST))
  32502. #define BIT_GET_RTSRST(x) (((x) >> BIT_SHIFT_RTSRST) & BIT_MASK_RTSRST)
  32503. #define BIT_SET_RTSRST(x, v) (BIT_CLEAR_RTSRST(x) | BIT_RTSRST(v))
  32504. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32505. #define BIT_BACAM_POLL BIT(31)
  32506. #endif
  32507. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32508. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32509. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32510. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32511. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32512. #define BIT_BACAM_RST BIT(17)
  32513. #endif
  32514. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32515. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32516. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32517. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32518. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32519. #define BIT_BACAM_RW BIT(16)
  32520. #endif
  32521. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32522. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32523. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32524. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32525. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32526. #define BIT_SHIFT_TXSBM 14
  32527. #define BIT_MASK_TXSBM 0x3
  32528. #define BIT_TXSBM(x) (((x) & BIT_MASK_TXSBM) << BIT_SHIFT_TXSBM)
  32529. #define BITS_TXSBM (BIT_MASK_TXSBM << BIT_SHIFT_TXSBM)
  32530. #define BIT_CLEAR_TXSBM(x) ((x) & (~BITS_TXSBM))
  32531. #define BIT_GET_TXSBM(x) (((x) >> BIT_SHIFT_TXSBM) & BIT_MASK_TXSBM)
  32532. #define BIT_SET_TXSBM(x, v) (BIT_CLEAR_TXSBM(x) | BIT_TXSBM(v))
  32533. #endif
  32534. #if (HALMAC_8192F_SUPPORT)
  32535. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32536. #define BIT_SHIFT_TXSBMPMOD 14
  32537. #define BIT_MASK_TXSBMPMOD 0x3
  32538. #define BIT_TXSBMPMOD(x) (((x) & BIT_MASK_TXSBMPMOD) << BIT_SHIFT_TXSBMPMOD)
  32539. #define BITS_TXSBMPMOD (BIT_MASK_TXSBMPMOD << BIT_SHIFT_TXSBMPMOD)
  32540. #define BIT_CLEAR_TXSBMPMOD(x) ((x) & (~BITS_TXSBMPMOD))
  32541. #define BIT_GET_TXSBMPMOD(x) (((x) >> BIT_SHIFT_TXSBMPMOD) & BIT_MASK_TXSBMPMOD)
  32542. #define BIT_SET_TXSBMPMOD(x, v) (BIT_CLEAR_TXSBMPMOD(x) | BIT_TXSBMPMOD(v))
  32543. #endif
  32544. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32545. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32546. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32547. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32548. /* 2 REG_BACAMCMD (Offset 0x0654) */
  32549. #define BIT_SHIFT_BACAM_ADDR 0
  32550. #define BIT_MASK_BACAM_ADDR 0x3f
  32551. #define BIT_BACAM_ADDR(x) (((x) & BIT_MASK_BACAM_ADDR) << BIT_SHIFT_BACAM_ADDR)
  32552. #define BITS_BACAM_ADDR (BIT_MASK_BACAM_ADDR << BIT_SHIFT_BACAM_ADDR)
  32553. #define BIT_CLEAR_BACAM_ADDR(x) ((x) & (~BITS_BACAM_ADDR))
  32554. #define BIT_GET_BACAM_ADDR(x) \
  32555. (((x) >> BIT_SHIFT_BACAM_ADDR) & BIT_MASK_BACAM_ADDR)
  32556. #define BIT_SET_BACAM_ADDR(x, v) (BIT_CLEAR_BACAM_ADDR(x) | BIT_BACAM_ADDR(v))
  32557. #define BIT_SHIFT_BA_CONTENT_L 0
  32558. #define BIT_MASK_BA_CONTENT_L 0xffffffffL
  32559. #define BIT_BA_CONTENT_L(x) \
  32560. (((x) & BIT_MASK_BA_CONTENT_L) << BIT_SHIFT_BA_CONTENT_L)
  32561. #define BITS_BA_CONTENT_L (BIT_MASK_BA_CONTENT_L << BIT_SHIFT_BA_CONTENT_L)
  32562. #define BIT_CLEAR_BA_CONTENT_L(x) ((x) & (~BITS_BA_CONTENT_L))
  32563. #define BIT_GET_BA_CONTENT_L(x) \
  32564. (((x) >> BIT_SHIFT_BA_CONTENT_L) & BIT_MASK_BA_CONTENT_L)
  32565. #define BIT_SET_BA_CONTENT_L(x, v) \
  32566. (BIT_CLEAR_BA_CONTENT_L(x) | BIT_BA_CONTENT_L(v))
  32567. #define BIT_SHIFT_LBDLY 0
  32568. #define BIT_MASK_LBDLY 0x1f
  32569. #define BIT_LBDLY(x) (((x) & BIT_MASK_LBDLY) << BIT_SHIFT_LBDLY)
  32570. #define BITS_LBDLY (BIT_MASK_LBDLY << BIT_SHIFT_LBDLY)
  32571. #define BIT_CLEAR_LBDLY(x) ((x) & (~BITS_LBDLY))
  32572. #define BIT_GET_LBDLY(x) (((x) >> BIT_SHIFT_LBDLY) & BIT_MASK_LBDLY)
  32573. #define BIT_SET_LBDLY(x, v) (BIT_CLEAR_LBDLY(x) | BIT_LBDLY(v))
  32574. #endif
  32575. #if (HALMAC_8192F_SUPPORT)
  32576. /* 2 REG_BITMAP_CMD (Offset 0x0661) */
  32577. #define BIT_BACAM_RPMEN BIT(0)
  32578. #endif
  32579. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32580. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  32581. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32582. /* 2 REG_WMAC_BACAM_RPMEN (Offset 0x0661) */
  32583. #define BIT_WMAC_BACAM_RPMEN BIT(0)
  32584. #endif
  32585. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32586. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32587. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32588. /* 2 REG_TX_RX (Offset 0x0662) */
  32589. #define BIT_SHIFT_RXPKT_TYPE 2
  32590. #define BIT_MASK_RXPKT_TYPE 0x3f
  32591. #define BIT_RXPKT_TYPE(x) (((x) & BIT_MASK_RXPKT_TYPE) << BIT_SHIFT_RXPKT_TYPE)
  32592. #define BITS_RXPKT_TYPE (BIT_MASK_RXPKT_TYPE << BIT_SHIFT_RXPKT_TYPE)
  32593. #define BIT_CLEAR_RXPKT_TYPE(x) ((x) & (~BITS_RXPKT_TYPE))
  32594. #define BIT_GET_RXPKT_TYPE(x) \
  32595. (((x) >> BIT_SHIFT_RXPKT_TYPE) & BIT_MASK_RXPKT_TYPE)
  32596. #define BIT_SET_RXPKT_TYPE(x, v) (BIT_CLEAR_RXPKT_TYPE(x) | BIT_RXPKT_TYPE(v))
  32597. #define BIT_TXACT_IND BIT(1)
  32598. #define BIT_RXACT_IND BIT(0)
  32599. /* 2 REG_WMAC_BITMAP_CTL (Offset 0x0663) */
  32600. #define BIT_BITMAP_VO BIT(7)
  32601. #define BIT_BITMAP_VI BIT(6)
  32602. #define BIT_BITMAP_BE BIT(5)
  32603. #define BIT_BITMAP_BK BIT(4)
  32604. #define BIT_SHIFT_BITMAP_CONDITION 2
  32605. #define BIT_MASK_BITMAP_CONDITION 0x3
  32606. #define BIT_BITMAP_CONDITION(x) \
  32607. (((x) & BIT_MASK_BITMAP_CONDITION) << BIT_SHIFT_BITMAP_CONDITION)
  32608. #define BITS_BITMAP_CONDITION \
  32609. (BIT_MASK_BITMAP_CONDITION << BIT_SHIFT_BITMAP_CONDITION)
  32610. #define BIT_CLEAR_BITMAP_CONDITION(x) ((x) & (~BITS_BITMAP_CONDITION))
  32611. #define BIT_GET_BITMAP_CONDITION(x) \
  32612. (((x) >> BIT_SHIFT_BITMAP_CONDITION) & BIT_MASK_BITMAP_CONDITION)
  32613. #define BIT_SET_BITMAP_CONDITION(x, v) \
  32614. (BIT_CLEAR_BITMAP_CONDITION(x) | BIT_BITMAP_CONDITION(v))
  32615. #define BIT_BITMAP_SSNBK_COUNTER_CLR BIT(1)
  32616. #define BIT_BITMAP_FORCE BIT(0)
  32617. #endif
  32618. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32619. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32620. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32621. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32622. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32623. #define BIT_SHIFT_RXERR_RPT_SEL_V1_3_0 28
  32624. #define BIT_MASK_RXERR_RPT_SEL_V1_3_0 0xf
  32625. #define BIT_RXERR_RPT_SEL_V1_3_0(x) \
  32626. (((x) & BIT_MASK_RXERR_RPT_SEL_V1_3_0) \
  32627. << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0)
  32628. #define BITS_RXERR_RPT_SEL_V1_3_0 \
  32629. (BIT_MASK_RXERR_RPT_SEL_V1_3_0 << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0)
  32630. #define BIT_CLEAR_RXERR_RPT_SEL_V1_3_0(x) ((x) & (~BITS_RXERR_RPT_SEL_V1_3_0))
  32631. #define BIT_GET_RXERR_RPT_SEL_V1_3_0(x) \
  32632. (((x) >> BIT_SHIFT_RXERR_RPT_SEL_V1_3_0) & \
  32633. BIT_MASK_RXERR_RPT_SEL_V1_3_0)
  32634. #define BIT_SET_RXERR_RPT_SEL_V1_3_0(x, v) \
  32635. (BIT_CLEAR_RXERR_RPT_SEL_V1_3_0(x) | BIT_RXERR_RPT_SEL_V1_3_0(v))
  32636. #endif
  32637. #if (HALMAC_8881A_SUPPORT)
  32638. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32639. #define BIT_SHIFT_RXERR_RPT_SEL 28
  32640. #define BIT_MASK_RXERR_RPT_SEL 0xf
  32641. #define BIT_RXERR_RPT_SEL(x) \
  32642. (((x) & BIT_MASK_RXERR_RPT_SEL) << BIT_SHIFT_RXERR_RPT_SEL)
  32643. #define BITS_RXERR_RPT_SEL (BIT_MASK_RXERR_RPT_SEL << BIT_SHIFT_RXERR_RPT_SEL)
  32644. #define BIT_CLEAR_RXERR_RPT_SEL(x) ((x) & (~BITS_RXERR_RPT_SEL))
  32645. #define BIT_GET_RXERR_RPT_SEL(x) \
  32646. (((x) >> BIT_SHIFT_RXERR_RPT_SEL) & BIT_MASK_RXERR_RPT_SEL)
  32647. #define BIT_SET_RXERR_RPT_SEL(x, v) \
  32648. (BIT_CLEAR_RXERR_RPT_SEL(x) | BIT_RXERR_RPT_SEL(v))
  32649. #endif
  32650. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32651. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32652. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32653. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32654. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32655. #define BIT_RXERR_RPT_RST BIT(27)
  32656. #endif
  32657. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32658. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32659. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32660. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32661. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32662. #define BIT_RXERR_RPT_SEL_V1_4 BIT(26)
  32663. #endif
  32664. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32665. HALMAC_8822C_SUPPORT)
  32666. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32667. #define BIT_SHIFT_UD_SELECT_BSSID_2_1 24
  32668. #define BIT_MASK_UD_SELECT_BSSID_2_1 0x3
  32669. #define BIT_UD_SELECT_BSSID_2_1(x) \
  32670. (((x) & BIT_MASK_UD_SELECT_BSSID_2_1) << BIT_SHIFT_UD_SELECT_BSSID_2_1)
  32671. #define BITS_UD_SELECT_BSSID_2_1 \
  32672. (BIT_MASK_UD_SELECT_BSSID_2_1 << BIT_SHIFT_UD_SELECT_BSSID_2_1)
  32673. #define BIT_CLEAR_UD_SELECT_BSSID_2_1(x) ((x) & (~BITS_UD_SELECT_BSSID_2_1))
  32674. #define BIT_GET_UD_SELECT_BSSID_2_1(x) \
  32675. (((x) >> BIT_SHIFT_UD_SELECT_BSSID_2_1) & BIT_MASK_UD_SELECT_BSSID_2_1)
  32676. #define BIT_SET_UD_SELECT_BSSID_2_1(x, v) \
  32677. (BIT_CLEAR_UD_SELECT_BSSID_2_1(x) | BIT_UD_SELECT_BSSID_2_1(v))
  32678. #endif
  32679. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32680. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32681. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32682. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32683. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32684. #define BIT_W1S BIT(23)
  32685. #endif
  32686. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32687. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32688. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  32689. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32690. #define BIT_UD_SELECT_BSSID BIT(22)
  32691. #endif
  32692. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  32693. HALMAC_8822C_SUPPORT)
  32694. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32695. #define BIT_UD_SELECT_BSSID_0 BIT(22)
  32696. #endif
  32697. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32698. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32699. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32700. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32701. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32702. #define BIT_SHIFT_UD_SUB_TYPE 18
  32703. #define BIT_MASK_UD_SUB_TYPE 0xf
  32704. #define BIT_UD_SUB_TYPE(x) \
  32705. (((x) & BIT_MASK_UD_SUB_TYPE) << BIT_SHIFT_UD_SUB_TYPE)
  32706. #define BITS_UD_SUB_TYPE (BIT_MASK_UD_SUB_TYPE << BIT_SHIFT_UD_SUB_TYPE)
  32707. #define BIT_CLEAR_UD_SUB_TYPE(x) ((x) & (~BITS_UD_SUB_TYPE))
  32708. #define BIT_GET_UD_SUB_TYPE(x) \
  32709. (((x) >> BIT_SHIFT_UD_SUB_TYPE) & BIT_MASK_UD_SUB_TYPE)
  32710. #define BIT_SET_UD_SUB_TYPE(x, v) \
  32711. (BIT_CLEAR_UD_SUB_TYPE(x) | BIT_UD_SUB_TYPE(v))
  32712. #define BIT_SHIFT_UD_TYPE 16
  32713. #define BIT_MASK_UD_TYPE 0x3
  32714. #define BIT_UD_TYPE(x) (((x) & BIT_MASK_UD_TYPE) << BIT_SHIFT_UD_TYPE)
  32715. #define BITS_UD_TYPE (BIT_MASK_UD_TYPE << BIT_SHIFT_UD_TYPE)
  32716. #define BIT_CLEAR_UD_TYPE(x) ((x) & (~BITS_UD_TYPE))
  32717. #define BIT_GET_UD_TYPE(x) (((x) >> BIT_SHIFT_UD_TYPE) & BIT_MASK_UD_TYPE)
  32718. #define BIT_SET_UD_TYPE(x, v) (BIT_CLEAR_UD_TYPE(x) | BIT_UD_TYPE(v))
  32719. #endif
  32720. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32721. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32722. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32723. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32724. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32725. #define BIT_CTRLFLT5EN BIT(5)
  32726. #define BIT_CTRLFLT4EN BIT(4)
  32727. #define BIT_CTRLFLT3EN BIT(3)
  32728. #define BIT_CTRLFLT2EN BIT(2)
  32729. #define BIT_CTRLFLT1EN BIT(1)
  32730. #endif
  32731. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32732. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32733. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32734. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32735. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32736. #define BIT_SHIFT_RPT_COUNTER 0
  32737. #define BIT_MASK_RPT_COUNTER 0xffff
  32738. #define BIT_RPT_COUNTER(x) \
  32739. (((x) & BIT_MASK_RPT_COUNTER) << BIT_SHIFT_RPT_COUNTER)
  32740. #define BITS_RPT_COUNTER (BIT_MASK_RPT_COUNTER << BIT_SHIFT_RPT_COUNTER)
  32741. #define BIT_CLEAR_RPT_COUNTER(x) ((x) & (~BITS_RPT_COUNTER))
  32742. #define BIT_GET_RPT_COUNTER(x) \
  32743. (((x) >> BIT_SHIFT_RPT_COUNTER) & BIT_MASK_RPT_COUNTER)
  32744. #define BIT_SET_RPT_COUNTER(x, v) \
  32745. (BIT_CLEAR_RPT_COUNTER(x) | BIT_RPT_COUNTER(v))
  32746. #endif
  32747. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32748. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32749. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32750. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  32751. /* 2 REG_RXERR_RPT (Offset 0x0664) */
  32752. #define BIT_CTRLFLT0EN BIT(0)
  32753. #endif
  32754. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  32755. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32756. #define BIT_RXBA_IGNOREA2 BIT(42)
  32757. #define BIT_EN_SAVE_ALL_TXOPADDR BIT(41)
  32758. #define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV BIT(40)
  32759. #endif
  32760. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32761. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  32762. HALMAC_8881A_SUPPORT)
  32763. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32764. #define BIT_DIS_TXBA_AMPDUFCSERR BIT(39)
  32765. #define BIT_DIS_TXBA_RXBARINFULL BIT(38)
  32766. #define BIT_DIS_TXCFE_INFULL BIT(37)
  32767. #define BIT_DIS_TXCTS_INFULL BIT(36)
  32768. #define BIT_EN_TXACKBA_IN_TX_RDG BIT(35)
  32769. #define BIT_EN_TXACKBA_IN_TXOP BIT(34)
  32770. #define BIT_EN_TXCTS_IN_RXNAV BIT(33)
  32771. #endif
  32772. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32773. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  32774. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  32775. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32776. #define BIT_EN_TXCTS_INTXOP BIT(32)
  32777. #endif
  32778. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32779. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32780. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32781. HALMAC_8881A_SUPPORT)
  32782. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32783. #define BIT_BLK_EDCA_BBSLP BIT(31)
  32784. #define BIT_BLK_EDCA_BBSBY BIT(30)
  32785. #endif
  32786. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32787. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  32788. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  32789. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32790. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32791. #define BIT_ACKTO_BLOCK_SCH_EN BIT(27)
  32792. #define BIT_EIFS_BLOCK_SCH_EN BIT(26)
  32793. #define BIT_PLCPCHK_RST_EIFS BIT(25)
  32794. #define BIT_CCA_RST_EIFS BIT(24)
  32795. #define BIT_DIS_UPD_MYRXPKTNAV BIT(23)
  32796. #define BIT_EARLY_TXBA BIT(22)
  32797. #define BIT_SHIFT_RESP_CHNBUSY 20
  32798. #define BIT_MASK_RESP_CHNBUSY 0x3
  32799. #define BIT_RESP_CHNBUSY(x) \
  32800. (((x) & BIT_MASK_RESP_CHNBUSY) << BIT_SHIFT_RESP_CHNBUSY)
  32801. #define BITS_RESP_CHNBUSY (BIT_MASK_RESP_CHNBUSY << BIT_SHIFT_RESP_CHNBUSY)
  32802. #define BIT_CLEAR_RESP_CHNBUSY(x) ((x) & (~BITS_RESP_CHNBUSY))
  32803. #define BIT_GET_RESP_CHNBUSY(x) \
  32804. (((x) >> BIT_SHIFT_RESP_CHNBUSY) & BIT_MASK_RESP_CHNBUSY)
  32805. #define BIT_SET_RESP_CHNBUSY(x, v) \
  32806. (BIT_CLEAR_RESP_CHNBUSY(x) | BIT_RESP_CHNBUSY(v))
  32807. #define BIT_RESP_DCTS_EN BIT(19)
  32808. #define BIT_RESP_DCFE_EN BIT(18)
  32809. #define BIT_RESP_SPLCPEN BIT(17)
  32810. #define BIT_RESP_SGIEN BIT(16)
  32811. #endif
  32812. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32813. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32814. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32815. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32816. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32817. #define BIT_RESP_LDPC_EN BIT(15)
  32818. #endif
  32819. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32820. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32821. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32822. HALMAC_8822C_SUPPORT)
  32823. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32824. #define BIT_MGTFLT15EN BIT(15)
  32825. #endif
  32826. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32827. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32828. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32829. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32830. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32831. #define BIT_DIS_RESP_ACKINCCA BIT(14)
  32832. #endif
  32833. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32834. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32835. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32836. HALMAC_8822C_SUPPORT)
  32837. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32838. #define BIT_MGTFLT14EN BIT(14)
  32839. #endif
  32840. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32841. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32842. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32843. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  32844. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32845. #define BIT_DIS_RESP_CTSINCCA BIT(13)
  32846. #endif
  32847. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32848. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32849. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  32850. HALMAC_8881A_SUPPORT)
  32851. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32852. #define BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER 10
  32853. #define BIT_MASK_R_WMAC_SECOND_CCA_TIMER 0x7
  32854. #define BIT_R_WMAC_SECOND_CCA_TIMER(x) \
  32855. (((x) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER) \
  32856. << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER)
  32857. #define BITS_R_WMAC_SECOND_CCA_TIMER \
  32858. (BIT_MASK_R_WMAC_SECOND_CCA_TIMER << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER)
  32859. #define BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER(x) \
  32860. ((x) & (~BITS_R_WMAC_SECOND_CCA_TIMER))
  32861. #define BIT_GET_R_WMAC_SECOND_CCA_TIMER(x) \
  32862. (((x) >> BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER) & \
  32863. BIT_MASK_R_WMAC_SECOND_CCA_TIMER)
  32864. #define BIT_SET_R_WMAC_SECOND_CCA_TIMER(x, v) \
  32865. (BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER(x) | BIT_R_WMAC_SECOND_CCA_TIMER(v))
  32866. #endif
  32867. #if (HALMAC_8814AMP_SUPPORT)
  32868. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32869. #define BIT_SHIFT_SECOND_CCA_CNT 10
  32870. #define BIT_MASK_SECOND_CCA_CNT 0x7
  32871. #define BIT_SECOND_CCA_CNT(x) \
  32872. (((x) & BIT_MASK_SECOND_CCA_CNT) << BIT_SHIFT_SECOND_CCA_CNT)
  32873. #define BITS_SECOND_CCA_CNT \
  32874. (BIT_MASK_SECOND_CCA_CNT << BIT_SHIFT_SECOND_CCA_CNT)
  32875. #define BIT_CLEAR_SECOND_CCA_CNT(x) ((x) & (~BITS_SECOND_CCA_CNT))
  32876. #define BIT_GET_SECOND_CCA_CNT(x) \
  32877. (((x) >> BIT_SHIFT_SECOND_CCA_CNT) & BIT_MASK_SECOND_CCA_CNT)
  32878. #define BIT_SET_SECOND_CCA_CNT(x, v) \
  32879. (BIT_CLEAR_SECOND_CCA_CNT(x) | BIT_SECOND_CCA_CNT(v))
  32880. #endif
  32881. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32882. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32883. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  32884. HALMAC_8881A_SUPPORT)
  32885. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32886. #define BIT_SHIFT_RFMOD 7
  32887. #define BIT_MASK_RFMOD 0x3
  32888. #define BIT_RFMOD(x) (((x) & BIT_MASK_RFMOD) << BIT_SHIFT_RFMOD)
  32889. #define BITS_RFMOD (BIT_MASK_RFMOD << BIT_SHIFT_RFMOD)
  32890. #define BIT_CLEAR_RFMOD(x) ((x) & (~BITS_RFMOD))
  32891. #define BIT_GET_RFMOD(x) (((x) >> BIT_SHIFT_RFMOD) & BIT_MASK_RFMOD)
  32892. #define BIT_SET_RFMOD(x, v) (BIT_CLEAR_RFMOD(x) | BIT_RFMOD(v))
  32893. #endif
  32894. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32895. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32896. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32897. HALMAC_8822C_SUPPORT)
  32898. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32899. #define BIT_MGTFLT7EN BIT(7)
  32900. #endif
  32901. #if (HALMAC_8814AMP_SUPPORT)
  32902. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32903. #define BIT_SHIFT_RF_MOD 7
  32904. #define BIT_MASK_RF_MOD 0x3
  32905. #define BIT_RF_MOD(x) (((x) & BIT_MASK_RF_MOD) << BIT_SHIFT_RF_MOD)
  32906. #define BITS_RF_MOD (BIT_MASK_RF_MOD << BIT_SHIFT_RF_MOD)
  32907. #define BIT_CLEAR_RF_MOD(x) ((x) & (~BITS_RF_MOD))
  32908. #define BIT_GET_RF_MOD(x) (((x) >> BIT_SHIFT_RF_MOD) & BIT_MASK_RF_MOD)
  32909. #define BIT_SET_RF_MOD(x, v) (BIT_CLEAR_RF_MOD(x) | BIT_RF_MOD(v))
  32910. #endif
  32911. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32912. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32913. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32914. HALMAC_8822C_SUPPORT)
  32915. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32916. #define BIT_MGTFLT6EN BIT(6)
  32917. #endif
  32918. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32919. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32920. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  32921. HALMAC_8881A_SUPPORT)
  32922. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32923. #define BIT_SHIFT_RESP_CTS_DYNBW_SEL 5
  32924. #define BIT_MASK_RESP_CTS_DYNBW_SEL 0x3
  32925. #define BIT_RESP_CTS_DYNBW_SEL(x) \
  32926. (((x) & BIT_MASK_RESP_CTS_DYNBW_SEL) << BIT_SHIFT_RESP_CTS_DYNBW_SEL)
  32927. #define BITS_RESP_CTS_DYNBW_SEL \
  32928. (BIT_MASK_RESP_CTS_DYNBW_SEL << BIT_SHIFT_RESP_CTS_DYNBW_SEL)
  32929. #define BIT_CLEAR_RESP_CTS_DYNBW_SEL(x) ((x) & (~BITS_RESP_CTS_DYNBW_SEL))
  32930. #define BIT_GET_RESP_CTS_DYNBW_SEL(x) \
  32931. (((x) >> BIT_SHIFT_RESP_CTS_DYNBW_SEL) & BIT_MASK_RESP_CTS_DYNBW_SEL)
  32932. #define BIT_SET_RESP_CTS_DYNBW_SEL(x, v) \
  32933. (BIT_CLEAR_RESP_CTS_DYNBW_SEL(x) | BIT_RESP_CTS_DYNBW_SEL(v))
  32934. #endif
  32935. #if (HALMAC_8814AMP_SUPPORT)
  32936. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32937. #define BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL 5
  32938. #define BIT_MASK_RESP_CTS_BW_DYNBW_SEL 0x3
  32939. #define BIT_RESP_CTS_BW_DYNBW_SEL(x) \
  32940. (((x) & BIT_MASK_RESP_CTS_BW_DYNBW_SEL) \
  32941. << BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL)
  32942. #define BITS_RESP_CTS_BW_DYNBW_SEL \
  32943. (BIT_MASK_RESP_CTS_BW_DYNBW_SEL << BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL)
  32944. #define BIT_CLEAR_RESP_CTS_BW_DYNBW_SEL(x) ((x) & (~BITS_RESP_CTS_BW_DYNBW_SEL))
  32945. #define BIT_GET_RESP_CTS_BW_DYNBW_SEL(x) \
  32946. (((x) >> BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL) & \
  32947. BIT_MASK_RESP_CTS_BW_DYNBW_SEL)
  32948. #define BIT_SET_RESP_CTS_BW_DYNBW_SEL(x, v) \
  32949. (BIT_CLEAR_RESP_CTS_BW_DYNBW_SEL(x) | BIT_RESP_CTS_BW_DYNBW_SEL(v))
  32950. #endif
  32951. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32952. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32953. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  32954. HALMAC_8881A_SUPPORT)
  32955. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32956. #define BIT_DLY_TX_WAIT_RXANTSEL BIT(4)
  32957. #endif
  32958. #if (HALMAC_8814AMP_SUPPORT)
  32959. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32960. #define BIT_DELAY_TX_USE_RX_ANTSEL BIT(4)
  32961. #endif
  32962. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  32963. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32964. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  32965. HALMAC_8881A_SUPPORT)
  32966. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32967. #define BIT_TXRESP_BY_RXANTSEL BIT(3)
  32968. #endif
  32969. #if (HALMAC_8814AMP_SUPPORT)
  32970. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32971. #define BIT_TX_USE_RX_ANTSEL BIT(3)
  32972. #endif
  32973. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  32974. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32975. #define BIT_RESP_EARLY_TXACK_RWEPTKIP BIT(2)
  32976. #endif
  32977. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  32978. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  32979. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  32980. HALMAC_8822C_SUPPORT)
  32981. /* 2 REG_WMAC_TRXPTCL_CTL (Offset 0x0668) */
  32982. #define BIT_SHIFT_ORIG_DCTS_CHK 0
  32983. #define BIT_MASK_ORIG_DCTS_CHK 0x3
  32984. #define BIT_ORIG_DCTS_CHK(x) \
  32985. (((x) & BIT_MASK_ORIG_DCTS_CHK) << BIT_SHIFT_ORIG_DCTS_CHK)
  32986. #define BITS_ORIG_DCTS_CHK (BIT_MASK_ORIG_DCTS_CHK << BIT_SHIFT_ORIG_DCTS_CHK)
  32987. #define BIT_CLEAR_ORIG_DCTS_CHK(x) ((x) & (~BITS_ORIG_DCTS_CHK))
  32988. #define BIT_GET_ORIG_DCTS_CHK(x) \
  32989. (((x) >> BIT_SHIFT_ORIG_DCTS_CHK) & BIT_MASK_ORIG_DCTS_CHK)
  32990. #define BIT_SET_ORIG_DCTS_CHK(x, v) \
  32991. (BIT_CLEAR_ORIG_DCTS_CHK(x) | BIT_ORIG_DCTS_CHK(v))
  32992. #endif
  32993. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  32994. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  32995. /* 2 REG_WMAC_TRXPTCL_CTL_H (Offset 0x066C) */
  32996. #define BIT_RXBA_IGNOREA2_V1 BIT(10)
  32997. #define BIT_EN_SAVE_ALL_TXOPADDR_V1 BIT(9)
  32998. #define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV_V1 BIT(8)
  32999. #define BIT_DIS_TXBA_AMPDUFCSERR_V1 BIT(7)
  33000. #define BIT_DIS_TXBA_RXBARINFULL_V1 BIT(6)
  33001. #define BIT_DIS_TXCFE_INFULL_V1 BIT(5)
  33002. #define BIT_DIS_TXCTS_INFULL_V1 BIT(4)
  33003. #define BIT_EN_TXACKBA_IN_TX_RDG_V1 BIT(3)
  33004. #define BIT_EN_TXACKBA_IN_TXOP_V1 BIT(2)
  33005. #define BIT_EN_TXCTS_IN_RXNAV_V1 BIT(1)
  33006. #define BIT_EN_TXCTS_INTXOP_V1 BIT(0)
  33007. #endif
  33008. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33009. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33010. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33011. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33012. /* 2 REG_CAMCMD (Offset 0x0670) */
  33013. #define BIT_SECCAM_POLLING BIT(31)
  33014. #define BIT_SECCAM_CLR BIT(30)
  33015. #endif
  33016. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33017. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || \
  33018. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  33019. /* 2 REG_CAMCMD (Offset 0x0670) */
  33020. #define BIT_MFBCAM_CLR BIT(29)
  33021. #endif
  33022. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  33023. /* 2 REG_CAMCMD (Offset 0x0670) */
  33024. #define BIT_SHIFT_RESP_TXPOWER 18
  33025. #define BIT_MASK_RESP_TXPOWER 0x7
  33026. #define BIT_RESP_TXPOWER(x) \
  33027. (((x) & BIT_MASK_RESP_TXPOWER) << BIT_SHIFT_RESP_TXPOWER)
  33028. #define BITS_RESP_TXPOWER (BIT_MASK_RESP_TXPOWER << BIT_SHIFT_RESP_TXPOWER)
  33029. #define BIT_CLEAR_RESP_TXPOWER(x) ((x) & (~BITS_RESP_TXPOWER))
  33030. #define BIT_GET_RESP_TXPOWER(x) \
  33031. (((x) >> BIT_SHIFT_RESP_TXPOWER) & BIT_MASK_RESP_TXPOWER)
  33032. #define BIT_SET_RESP_TXPOWER(x, v) \
  33033. (BIT_CLEAR_RESP_TXPOWER(x) | BIT_RESP_TXPOWER(v))
  33034. #endif
  33035. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33036. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33037. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33038. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33039. /* 2 REG_CAMCMD (Offset 0x0670) */
  33040. #define BIT_SECCAM_WE BIT(16)
  33041. #endif
  33042. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8881A_SUPPORT)
  33043. /* 2 REG_CAMCMD (Offset 0x0670) */
  33044. #define BIT_SHIFT_SECCAM_ADDR_V1 0
  33045. #define BIT_MASK_SECCAM_ADDR_V1 0xff
  33046. #define BIT_SECCAM_ADDR_V1(x) \
  33047. (((x) & BIT_MASK_SECCAM_ADDR_V1) << BIT_SHIFT_SECCAM_ADDR_V1)
  33048. #define BITS_SECCAM_ADDR_V1 \
  33049. (BIT_MASK_SECCAM_ADDR_V1 << BIT_SHIFT_SECCAM_ADDR_V1)
  33050. #define BIT_CLEAR_SECCAM_ADDR_V1(x) ((x) & (~BITS_SECCAM_ADDR_V1))
  33051. #define BIT_GET_SECCAM_ADDR_V1(x) \
  33052. (((x) >> BIT_SHIFT_SECCAM_ADDR_V1) & BIT_MASK_SECCAM_ADDR_V1)
  33053. #define BIT_SET_SECCAM_ADDR_V1(x, v) \
  33054. (BIT_CLEAR_SECCAM_ADDR_V1(x) | BIT_SECCAM_ADDR_V1(v))
  33055. #endif
  33056. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33057. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33058. HALMAC_8822C_SUPPORT)
  33059. /* 2 REG_CAMCMD (Offset 0x0670) */
  33060. #define BIT_SHIFT_SECCAM_ADDR_V2 0
  33061. #define BIT_MASK_SECCAM_ADDR_V2 0x3ff
  33062. #define BIT_SECCAM_ADDR_V2(x) \
  33063. (((x) & BIT_MASK_SECCAM_ADDR_V2) << BIT_SHIFT_SECCAM_ADDR_V2)
  33064. #define BITS_SECCAM_ADDR_V2 \
  33065. (BIT_MASK_SECCAM_ADDR_V2 << BIT_SHIFT_SECCAM_ADDR_V2)
  33066. #define BIT_CLEAR_SECCAM_ADDR_V2(x) ((x) & (~BITS_SECCAM_ADDR_V2))
  33067. #define BIT_GET_SECCAM_ADDR_V2(x) \
  33068. (((x) >> BIT_SHIFT_SECCAM_ADDR_V2) & BIT_MASK_SECCAM_ADDR_V2)
  33069. #define BIT_SET_SECCAM_ADDR_V2(x, v) \
  33070. (BIT_CLEAR_SECCAM_ADDR_V2(x) | BIT_SECCAM_ADDR_V2(v))
  33071. #endif
  33072. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  33073. /* 2 REG_CAMCMD (Offset 0x0670) */
  33074. #define BIT_SHIFT_SECCAM_ADDR 0
  33075. #define BIT_MASK_SECCAM_ADDR 0xff
  33076. #define BIT_SECCAM_ADDR(x) \
  33077. (((x) & BIT_MASK_SECCAM_ADDR) << BIT_SHIFT_SECCAM_ADDR)
  33078. #define BITS_SECCAM_ADDR (BIT_MASK_SECCAM_ADDR << BIT_SHIFT_SECCAM_ADDR)
  33079. #define BIT_CLEAR_SECCAM_ADDR(x) ((x) & (~BITS_SECCAM_ADDR))
  33080. #define BIT_GET_SECCAM_ADDR(x) \
  33081. (((x) >> BIT_SHIFT_SECCAM_ADDR) & BIT_MASK_SECCAM_ADDR)
  33082. #define BIT_SET_SECCAM_ADDR(x, v) \
  33083. (BIT_CLEAR_SECCAM_ADDR(x) | BIT_SECCAM_ADDR(v))
  33084. #endif
  33085. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33086. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33087. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33088. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33089. /* 2 REG_CAMWRITE (Offset 0x0674) */
  33090. #define BIT_SHIFT_CAMW_DATA 0
  33091. #define BIT_MASK_CAMW_DATA 0xffffffffL
  33092. #define BIT_CAMW_DATA(x) (((x) & BIT_MASK_CAMW_DATA) << BIT_SHIFT_CAMW_DATA)
  33093. #define BITS_CAMW_DATA (BIT_MASK_CAMW_DATA << BIT_SHIFT_CAMW_DATA)
  33094. #define BIT_CLEAR_CAMW_DATA(x) ((x) & (~BITS_CAMW_DATA))
  33095. #define BIT_GET_CAMW_DATA(x) (((x) >> BIT_SHIFT_CAMW_DATA) & BIT_MASK_CAMW_DATA)
  33096. #define BIT_SET_CAMW_DATA(x, v) (BIT_CLEAR_CAMW_DATA(x) | BIT_CAMW_DATA(v))
  33097. /* 2 REG_CAMREAD (Offset 0x0678) */
  33098. #define BIT_SHIFT_CAMR_DATA 0
  33099. #define BIT_MASK_CAMR_DATA 0xffffffffL
  33100. #define BIT_CAMR_DATA(x) (((x) & BIT_MASK_CAMR_DATA) << BIT_SHIFT_CAMR_DATA)
  33101. #define BITS_CAMR_DATA (BIT_MASK_CAMR_DATA << BIT_SHIFT_CAMR_DATA)
  33102. #define BIT_CLEAR_CAMR_DATA(x) ((x) & (~BITS_CAMR_DATA))
  33103. #define BIT_GET_CAMR_DATA(x) (((x) >> BIT_SHIFT_CAMR_DATA) & BIT_MASK_CAMR_DATA)
  33104. #define BIT_SET_CAMR_DATA(x, v) (BIT_CLEAR_CAMR_DATA(x) | BIT_CAMR_DATA(v))
  33105. /* 2 REG_CAMDBG (Offset 0x067C) */
  33106. #define BIT_SECCAM_INFO BIT(31)
  33107. #endif
  33108. #if (HALMAC_8198F_SUPPORT)
  33109. /* 2 REG_CAMDBG (Offset 0x067C) */
  33110. #define BIT_SEC_KEYFOUND_V1 BIT(19)
  33111. #define BIT_SHIFT_CAMDBG_SEC_TYPE_V1 16
  33112. #define BIT_MASK_CAMDBG_SEC_TYPE_V1 0x7
  33113. #define BIT_CAMDBG_SEC_TYPE_V1(x) \
  33114. (((x) & BIT_MASK_CAMDBG_SEC_TYPE_V1) << BIT_SHIFT_CAMDBG_SEC_TYPE_V1)
  33115. #define BITS_CAMDBG_SEC_TYPE_V1 \
  33116. (BIT_MASK_CAMDBG_SEC_TYPE_V1 << BIT_SHIFT_CAMDBG_SEC_TYPE_V1)
  33117. #define BIT_CLEAR_CAMDBG_SEC_TYPE_V1(x) ((x) & (~BITS_CAMDBG_SEC_TYPE_V1))
  33118. #define BIT_GET_CAMDBG_SEC_TYPE_V1(x) \
  33119. (((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE_V1) & BIT_MASK_CAMDBG_SEC_TYPE_V1)
  33120. #define BIT_SET_CAMDBG_SEC_TYPE_V1(x, v) \
  33121. (BIT_CLEAR_CAMDBG_SEC_TYPE_V1(x) | BIT_CAMDBG_SEC_TYPE_V1(v))
  33122. #endif
  33123. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33124. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33125. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33126. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33127. /* 2 REG_CAMDBG (Offset 0x067C) */
  33128. #define BIT_SEC_KEYFOUND BIT(15)
  33129. #endif
  33130. #if (HALMAC_8198F_SUPPORT)
  33131. /* 2 REG_CAMDBG (Offset 0x067C) */
  33132. #define BIT_CAMDBG_EXT_SEC_TYPE_V1 BIT(15)
  33133. #endif
  33134. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33135. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33136. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33137. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33138. /* 2 REG_CAMDBG (Offset 0x067C) */
  33139. #define BIT_SHIFT_CAMDBG_SEC_TYPE 12
  33140. #define BIT_MASK_CAMDBG_SEC_TYPE 0x7
  33141. #define BIT_CAMDBG_SEC_TYPE(x) \
  33142. (((x) & BIT_MASK_CAMDBG_SEC_TYPE) << BIT_SHIFT_CAMDBG_SEC_TYPE)
  33143. #define BITS_CAMDBG_SEC_TYPE \
  33144. (BIT_MASK_CAMDBG_SEC_TYPE << BIT_SHIFT_CAMDBG_SEC_TYPE)
  33145. #define BIT_CLEAR_CAMDBG_SEC_TYPE(x) ((x) & (~BITS_CAMDBG_SEC_TYPE))
  33146. #define BIT_GET_CAMDBG_SEC_TYPE(x) \
  33147. (((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE) & BIT_MASK_CAMDBG_SEC_TYPE)
  33148. #define BIT_SET_CAMDBG_SEC_TYPE(x, v) \
  33149. (BIT_CLEAR_CAMDBG_SEC_TYPE(x) | BIT_CAMDBG_SEC_TYPE(v))
  33150. #endif
  33151. #if (HALMAC_8197F_SUPPORT)
  33152. /* 2 REG_CAMDBG (Offset 0x067C) */
  33153. #define BIT_CAMDBG_EXT_SEC_TYPE BIT(11)
  33154. #endif
  33155. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33156. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33157. /* 2 REG_CAMDBG (Offset 0x067C) */
  33158. #define BIT_CAMDBG_EXT_SECTYPE BIT(11)
  33159. #endif
  33160. #if (HALMAC_8198F_SUPPORT)
  33161. /* 2 REG_CAMDBG (Offset 0x067C) */
  33162. #define BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1 7
  33163. #define BIT_MASK_CAMDBG_MIC_KEY_IDX_V1 0x7f
  33164. #define BIT_CAMDBG_MIC_KEY_IDX_V1(x) \
  33165. (((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX_V1) \
  33166. << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1)
  33167. #define BITS_CAMDBG_MIC_KEY_IDX_V1 \
  33168. (BIT_MASK_CAMDBG_MIC_KEY_IDX_V1 << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1)
  33169. #define BIT_CLEAR_CAMDBG_MIC_KEY_IDX_V1(x) ((x) & (~BITS_CAMDBG_MIC_KEY_IDX_V1))
  33170. #define BIT_GET_CAMDBG_MIC_KEY_IDX_V1(x) \
  33171. (((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1) & \
  33172. BIT_MASK_CAMDBG_MIC_KEY_IDX_V1)
  33173. #define BIT_SET_CAMDBG_MIC_KEY_IDX_V1(x, v) \
  33174. (BIT_CLEAR_CAMDBG_MIC_KEY_IDX_V1(x) | BIT_CAMDBG_MIC_KEY_IDX_V1(v))
  33175. #endif
  33176. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33177. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33178. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33179. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33180. /* 2 REG_CAMDBG (Offset 0x067C) */
  33181. #define BIT_SHIFT_CAMDBG_MIC_KEY_IDX 5
  33182. #define BIT_MASK_CAMDBG_MIC_KEY_IDX 0x1f
  33183. #define BIT_CAMDBG_MIC_KEY_IDX(x) \
  33184. (((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX) << BIT_SHIFT_CAMDBG_MIC_KEY_IDX)
  33185. #define BITS_CAMDBG_MIC_KEY_IDX \
  33186. (BIT_MASK_CAMDBG_MIC_KEY_IDX << BIT_SHIFT_CAMDBG_MIC_KEY_IDX)
  33187. #define BIT_CLEAR_CAMDBG_MIC_KEY_IDX(x) ((x) & (~BITS_CAMDBG_MIC_KEY_IDX))
  33188. #define BIT_GET_CAMDBG_MIC_KEY_IDX(x) \
  33189. (((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX) & BIT_MASK_CAMDBG_MIC_KEY_IDX)
  33190. #define BIT_SET_CAMDBG_MIC_KEY_IDX(x, v) \
  33191. (BIT_CLEAR_CAMDBG_MIC_KEY_IDX(x) | BIT_CAMDBG_MIC_KEY_IDX(v))
  33192. #define BIT_SHIFT_CAMDBG_SEC_KEY_IDX 0
  33193. #define BIT_MASK_CAMDBG_SEC_KEY_IDX 0x1f
  33194. #define BIT_CAMDBG_SEC_KEY_IDX(x) \
  33195. (((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX) << BIT_SHIFT_CAMDBG_SEC_KEY_IDX)
  33196. #define BITS_CAMDBG_SEC_KEY_IDX \
  33197. (BIT_MASK_CAMDBG_SEC_KEY_IDX << BIT_SHIFT_CAMDBG_SEC_KEY_IDX)
  33198. #define BIT_CLEAR_CAMDBG_SEC_KEY_IDX(x) ((x) & (~BITS_CAMDBG_SEC_KEY_IDX))
  33199. #define BIT_GET_CAMDBG_SEC_KEY_IDX(x) \
  33200. (((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX) & BIT_MASK_CAMDBG_SEC_KEY_IDX)
  33201. #define BIT_SET_CAMDBG_SEC_KEY_IDX(x, v) \
  33202. (BIT_CLEAR_CAMDBG_SEC_KEY_IDX(x) | BIT_CAMDBG_SEC_KEY_IDX(v))
  33203. #endif
  33204. #if (HALMAC_8198F_SUPPORT)
  33205. /* 2 REG_CAMDBG (Offset 0x067C) */
  33206. #define BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1 0
  33207. #define BIT_MASK_CAMDBG_SEC_KEY_IDX_V1 0x7f
  33208. #define BIT_CAMDBG_SEC_KEY_IDX_V1(x) \
  33209. (((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX_V1) \
  33210. << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1)
  33211. #define BITS_CAMDBG_SEC_KEY_IDX_V1 \
  33212. (BIT_MASK_CAMDBG_SEC_KEY_IDX_V1 << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1)
  33213. #define BIT_CLEAR_CAMDBG_SEC_KEY_IDX_V1(x) ((x) & (~BITS_CAMDBG_SEC_KEY_IDX_V1))
  33214. #define BIT_GET_CAMDBG_SEC_KEY_IDX_V1(x) \
  33215. (((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1) & \
  33216. BIT_MASK_CAMDBG_SEC_KEY_IDX_V1)
  33217. #define BIT_SET_CAMDBG_SEC_KEY_IDX_V1(x, v) \
  33218. (BIT_CLEAR_CAMDBG_SEC_KEY_IDX_V1(x) | BIT_CAMDBG_SEC_KEY_IDX_V1(v))
  33219. #endif
  33220. #if (HALMAC_8192F_SUPPORT)
  33221. /* 2 REG_SECCFG (Offset 0x0680) */
  33222. #define BIT_RXDEC_BM_MGNT_V1 BIT(19)
  33223. #define BIT_TXENC_BM_MGNT_V1 BIT(18)
  33224. #define BIT_RXDEC_UNI_MGNT_V1 BIT(17)
  33225. #define BIT_TXENC_UNI_MGNT_V1 BIT(16)
  33226. #endif
  33227. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33228. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33229. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33230. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33231. /* 2 REG_SECCFG (Offset 0x0680) */
  33232. #define BIT_DIS_GCLK_WAPI BIT(15)
  33233. #define BIT_DIS_GCLK_AES BIT(14)
  33234. #define BIT_DIS_GCLK_TKIP BIT(13)
  33235. #endif
  33236. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33237. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33238. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33239. /* 2 REG_SECCFG (Offset 0x0680) */
  33240. #define BIT_AES_SEL_QC_1 BIT(12)
  33241. #define BIT_AES_SEL_QC_0 BIT(11)
  33242. #endif
  33243. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  33244. /* 2 REG_SECCFG (Offset 0x0680) */
  33245. #define BIT_WMAC_CKECK_BMC BIT(9)
  33246. #endif
  33247. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  33248. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33249. /* 2 REG_SECCFG (Offset 0x0680) */
  33250. #define BIT_CHK_BMC BIT(9)
  33251. #endif
  33252. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33253. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33254. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33255. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33256. /* 2 REG_SECCFG (Offset 0x0680) */
  33257. #define BIT_CHK_KEYID BIT(8)
  33258. #define BIT_RXBCUSEDK BIT(7)
  33259. #define BIT_TXBCUSEDK BIT(6)
  33260. #define BIT_NOSKMC BIT(5)
  33261. #define BIT_SKBYA2 BIT(4)
  33262. #define BIT_RXDEC BIT(3)
  33263. #define BIT_TXENC BIT(2)
  33264. #define BIT_RXUHUSEDK BIT(1)
  33265. #define BIT_TXUHUSEDK BIT(0)
  33266. #endif
  33267. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33268. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  33269. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33270. /* 2 REG_RXFILTER_CATEGORY_1 (Offset 0x0682) */
  33271. #define BIT_SHIFT_RXFILTER_CATEGORY_1 0
  33272. #define BIT_MASK_RXFILTER_CATEGORY_1 0xff
  33273. #define BIT_RXFILTER_CATEGORY_1(x) \
  33274. (((x) & BIT_MASK_RXFILTER_CATEGORY_1) << BIT_SHIFT_RXFILTER_CATEGORY_1)
  33275. #define BITS_RXFILTER_CATEGORY_1 \
  33276. (BIT_MASK_RXFILTER_CATEGORY_1 << BIT_SHIFT_RXFILTER_CATEGORY_1)
  33277. #define BIT_CLEAR_RXFILTER_CATEGORY_1(x) ((x) & (~BITS_RXFILTER_CATEGORY_1))
  33278. #define BIT_GET_RXFILTER_CATEGORY_1(x) \
  33279. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_1) & BIT_MASK_RXFILTER_CATEGORY_1)
  33280. #define BIT_SET_RXFILTER_CATEGORY_1(x, v) \
  33281. (BIT_CLEAR_RXFILTER_CATEGORY_1(x) | BIT_RXFILTER_CATEGORY_1(v))
  33282. /* 2 REG_RXFILTER_ACTION_1 (Offset 0x0683) */
  33283. #define BIT_SHIFT_RXFILTER_ACTION_1 0
  33284. #define BIT_MASK_RXFILTER_ACTION_1 0xff
  33285. #define BIT_RXFILTER_ACTION_1(x) \
  33286. (((x) & BIT_MASK_RXFILTER_ACTION_1) << BIT_SHIFT_RXFILTER_ACTION_1)
  33287. #define BITS_RXFILTER_ACTION_1 \
  33288. (BIT_MASK_RXFILTER_ACTION_1 << BIT_SHIFT_RXFILTER_ACTION_1)
  33289. #define BIT_CLEAR_RXFILTER_ACTION_1(x) ((x) & (~BITS_RXFILTER_ACTION_1))
  33290. #define BIT_GET_RXFILTER_ACTION_1(x) \
  33291. (((x) >> BIT_SHIFT_RXFILTER_ACTION_1) & BIT_MASK_RXFILTER_ACTION_1)
  33292. #define BIT_SET_RXFILTER_ACTION_1(x, v) \
  33293. (BIT_CLEAR_RXFILTER_ACTION_1(x) | BIT_RXFILTER_ACTION_1(v))
  33294. /* 2 REG_RXFILTER_CATEGORY_2 (Offset 0x0684) */
  33295. #define BIT_SHIFT_RXFILTER_CATEGORY_2 0
  33296. #define BIT_MASK_RXFILTER_CATEGORY_2 0xff
  33297. #define BIT_RXFILTER_CATEGORY_2(x) \
  33298. (((x) & BIT_MASK_RXFILTER_CATEGORY_2) << BIT_SHIFT_RXFILTER_CATEGORY_2)
  33299. #define BITS_RXFILTER_CATEGORY_2 \
  33300. (BIT_MASK_RXFILTER_CATEGORY_2 << BIT_SHIFT_RXFILTER_CATEGORY_2)
  33301. #define BIT_CLEAR_RXFILTER_CATEGORY_2(x) ((x) & (~BITS_RXFILTER_CATEGORY_2))
  33302. #define BIT_GET_RXFILTER_CATEGORY_2(x) \
  33303. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_2) & BIT_MASK_RXFILTER_CATEGORY_2)
  33304. #define BIT_SET_RXFILTER_CATEGORY_2(x, v) \
  33305. (BIT_CLEAR_RXFILTER_CATEGORY_2(x) | BIT_RXFILTER_CATEGORY_2(v))
  33306. /* 2 REG_RXFILTER_ACTION_2 (Offset 0x0685) */
  33307. #define BIT_SHIFT_RXFILTER_ACTION_2 0
  33308. #define BIT_MASK_RXFILTER_ACTION_2 0xff
  33309. #define BIT_RXFILTER_ACTION_2(x) \
  33310. (((x) & BIT_MASK_RXFILTER_ACTION_2) << BIT_SHIFT_RXFILTER_ACTION_2)
  33311. #define BITS_RXFILTER_ACTION_2 \
  33312. (BIT_MASK_RXFILTER_ACTION_2 << BIT_SHIFT_RXFILTER_ACTION_2)
  33313. #define BIT_CLEAR_RXFILTER_ACTION_2(x) ((x) & (~BITS_RXFILTER_ACTION_2))
  33314. #define BIT_GET_RXFILTER_ACTION_2(x) \
  33315. (((x) >> BIT_SHIFT_RXFILTER_ACTION_2) & BIT_MASK_RXFILTER_ACTION_2)
  33316. #define BIT_SET_RXFILTER_ACTION_2(x, v) \
  33317. (BIT_CLEAR_RXFILTER_ACTION_2(x) | BIT_RXFILTER_ACTION_2(v))
  33318. /* 2 REG_RXFILTER_CATEGORY_3 (Offset 0x0686) */
  33319. #define BIT_SHIFT_RXFILTER_CATEGORY_3 0
  33320. #define BIT_MASK_RXFILTER_CATEGORY_3 0xff
  33321. #define BIT_RXFILTER_CATEGORY_3(x) \
  33322. (((x) & BIT_MASK_RXFILTER_CATEGORY_3) << BIT_SHIFT_RXFILTER_CATEGORY_3)
  33323. #define BITS_RXFILTER_CATEGORY_3 \
  33324. (BIT_MASK_RXFILTER_CATEGORY_3 << BIT_SHIFT_RXFILTER_CATEGORY_3)
  33325. #define BIT_CLEAR_RXFILTER_CATEGORY_3(x) ((x) & (~BITS_RXFILTER_CATEGORY_3))
  33326. #define BIT_GET_RXFILTER_CATEGORY_3(x) \
  33327. (((x) >> BIT_SHIFT_RXFILTER_CATEGORY_3) & BIT_MASK_RXFILTER_CATEGORY_3)
  33328. #define BIT_SET_RXFILTER_CATEGORY_3(x, v) \
  33329. (BIT_CLEAR_RXFILTER_CATEGORY_3(x) | BIT_RXFILTER_CATEGORY_3(v))
  33330. /* 2 REG_RXFILTER_ACTION_3 (Offset 0x0687) */
  33331. #define BIT_SHIFT_RXFILTER_ACTION_3 0
  33332. #define BIT_MASK_RXFILTER_ACTION_3 0xff
  33333. #define BIT_RXFILTER_ACTION_3(x) \
  33334. (((x) & BIT_MASK_RXFILTER_ACTION_3) << BIT_SHIFT_RXFILTER_ACTION_3)
  33335. #define BITS_RXFILTER_ACTION_3 \
  33336. (BIT_MASK_RXFILTER_ACTION_3 << BIT_SHIFT_RXFILTER_ACTION_3)
  33337. #define BIT_CLEAR_RXFILTER_ACTION_3(x) ((x) & (~BITS_RXFILTER_ACTION_3))
  33338. #define BIT_GET_RXFILTER_ACTION_3(x) \
  33339. (((x) >> BIT_SHIFT_RXFILTER_ACTION_3) & BIT_MASK_RXFILTER_ACTION_3)
  33340. #define BIT_SET_RXFILTER_ACTION_3(x, v) \
  33341. (BIT_CLEAR_RXFILTER_ACTION_3(x) | BIT_RXFILTER_ACTION_3(v))
  33342. /* 2 REG_RXFLTMAP3 (Offset 0x0688) */
  33343. #define BIT_MGTFLT15EN_FW BIT(15)
  33344. #define BIT_MGTFLT14EN_FW BIT(14)
  33345. #define BIT_MGTFLT13EN_FW BIT(13)
  33346. #define BIT_MGTFLT12EN_FW BIT(12)
  33347. #define BIT_MGTFLT11EN_FW BIT(11)
  33348. #define BIT_MGTFLT10EN_FW BIT(10)
  33349. #define BIT_MGTFLT9EN_FW BIT(9)
  33350. #define BIT_MGTFLT8EN_FW BIT(8)
  33351. #define BIT_MGTFLT7EN_FW BIT(7)
  33352. #define BIT_MGTFLT6EN_FW BIT(6)
  33353. #define BIT_MGTFLT5EN_FW BIT(5)
  33354. #define BIT_MGTFLT4EN_FW BIT(4)
  33355. #define BIT_MGTFLT3EN_FW BIT(3)
  33356. #define BIT_MGTFLT2EN_FW BIT(2)
  33357. #define BIT_MGTFLT1EN_FW BIT(1)
  33358. #define BIT_MGTFLT0EN_FW BIT(0)
  33359. /* 2 REG_RXFLTMAP4 (Offset 0x068A) */
  33360. #define BIT_CTRLFLT15EN_FW BIT(15)
  33361. #define BIT_CTRLFLT14EN_FW BIT(14)
  33362. #define BIT_CTRLFLT13EN_FW BIT(13)
  33363. #define BIT_CTRLFLT12EN_FW BIT(12)
  33364. #define BIT_CTRLFLT11EN_FW BIT(11)
  33365. #define BIT_CTRLFLT10EN_FW BIT(10)
  33366. #define BIT_CTRLFLT9EN_FW BIT(9)
  33367. #define BIT_CTRLFLT8EN_FW BIT(8)
  33368. #define BIT_CTRLFLT7EN_FW BIT(7)
  33369. #define BIT_CTRLFLT6EN_FW BIT(6)
  33370. #define BIT_CTRLFLT5EN_FW BIT(5)
  33371. #define BIT_CTRLFLT4EN_FW BIT(4)
  33372. #define BIT_CTRLFLT3EN_FW BIT(3)
  33373. #define BIT_CTRLFLT2EN_FW BIT(2)
  33374. #define BIT_CTRLFLT1EN_FW BIT(1)
  33375. #define BIT_CTRLFLT0EN_FW BIT(0)
  33376. /* 2 REG_RXFLTMAP5 (Offset 0x068C) */
  33377. #define BIT_DATAFLT15EN_FW BIT(15)
  33378. #define BIT_DATAFLT14EN_FW BIT(14)
  33379. #define BIT_DATAFLT13EN_FW BIT(13)
  33380. #define BIT_DATAFLT12EN_FW BIT(12)
  33381. #define BIT_DATAFLT11EN_FW BIT(11)
  33382. #define BIT_DATAFLT10EN_FW BIT(10)
  33383. #define BIT_DATAFLT9EN_FW BIT(9)
  33384. #define BIT_DATAFLT8EN_FW BIT(8)
  33385. #define BIT_DATAFLT7EN_FW BIT(7)
  33386. #define BIT_DATAFLT6EN_FW BIT(6)
  33387. #define BIT_DATAFLT5EN_FW BIT(5)
  33388. #define BIT_DATAFLT4EN_FW BIT(4)
  33389. #define BIT_DATAFLT3EN_FW BIT(3)
  33390. #define BIT_DATAFLT2EN_FW BIT(2)
  33391. #define BIT_DATAFLT1EN_FW BIT(1)
  33392. #define BIT_DATAFLT0EN_FW BIT(0)
  33393. /* 2 REG_RXFLTMAP6 (Offset 0x068E) */
  33394. #define BIT_ACTIONFLT15EN_FW BIT(15)
  33395. #define BIT_ACTIONFLT14EN_FW BIT(14)
  33396. #define BIT_ACTIONFLT13EN_FW BIT(13)
  33397. #define BIT_ACTIONFLT12EN_FW BIT(12)
  33398. #define BIT_ACTIONFLT11EN_FW BIT(11)
  33399. #define BIT_ACTIONFLT10EN_FW BIT(10)
  33400. #define BIT_ACTIONFLT9EN_FW BIT(9)
  33401. #define BIT_ACTIONFLT8EN_FW BIT(8)
  33402. #define BIT_ACTIONFLT7EN_FW BIT(7)
  33403. #define BIT_ACTIONFLT6EN_FW BIT(6)
  33404. #define BIT_ACTIONFLT5EN_FW BIT(5)
  33405. #define BIT_ACTIONFLT4EN_FW BIT(4)
  33406. #define BIT_ACTIONFLT3EN_FW BIT(3)
  33407. #define BIT_ACTIONFLT2EN_FW BIT(2)
  33408. #define BIT_ACTIONFLT1EN_FW BIT(1)
  33409. #define BIT_ACTIONFLT0EN_FW BIT(0)
  33410. #endif
  33411. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33412. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33413. HALMAC_8822C_SUPPORT)
  33414. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33415. #define BIT_SHIFT_PSF_BSSIDSEL_B2B1 6
  33416. #define BIT_MASK_PSF_BSSIDSEL_B2B1 0x3
  33417. #define BIT_PSF_BSSIDSEL_B2B1(x) \
  33418. (((x) & BIT_MASK_PSF_BSSIDSEL_B2B1) << BIT_SHIFT_PSF_BSSIDSEL_B2B1)
  33419. #define BITS_PSF_BSSIDSEL_B2B1 \
  33420. (BIT_MASK_PSF_BSSIDSEL_B2B1 << BIT_SHIFT_PSF_BSSIDSEL_B2B1)
  33421. #define BIT_CLEAR_PSF_BSSIDSEL_B2B1(x) ((x) & (~BITS_PSF_BSSIDSEL_B2B1))
  33422. #define BIT_GET_PSF_BSSIDSEL_B2B1(x) \
  33423. (((x) >> BIT_SHIFT_PSF_BSSIDSEL_B2B1) & BIT_MASK_PSF_BSSIDSEL_B2B1)
  33424. #define BIT_SET_PSF_BSSIDSEL_B2B1(x, v) \
  33425. (BIT_CLEAR_PSF_BSSIDSEL_B2B1(x) | BIT_PSF_BSSIDSEL_B2B1(v))
  33426. #endif
  33427. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33428. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33429. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33430. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33431. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33432. #define BIT_WOWHCI BIT(5)
  33433. #endif
  33434. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33435. HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)
  33436. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33437. #define BIT_PSF_BSSIDSEL BIT(4)
  33438. #endif
  33439. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33440. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33441. HALMAC_8822C_SUPPORT)
  33442. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33443. #define BIT_PSF_BSSIDSEL_B0 BIT(4)
  33444. #endif
  33445. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33446. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33447. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33448. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33449. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33450. #define BIT_UWF BIT(3)
  33451. #define BIT_MAGIC BIT(2)
  33452. #endif
  33453. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33454. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33455. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33456. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33457. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33458. #define BIT_WOWEN BIT(1)
  33459. #endif
  33460. #if (HALMAC_8192F_SUPPORT)
  33461. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33462. #define BIT_WFMSK BIT(1)
  33463. #endif
  33464. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33465. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33466. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33467. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33468. /* 2 REG_WOW_CTRL (Offset 0x0690) */
  33469. #define BIT_FORCE_WAKEUP BIT(0)
  33470. #endif
  33471. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33472. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33473. HALMAC_8822C_SUPPORT)
  33474. /* 2 REG_NAN_RX_TSF_FILTER (Offset 0x0691) */
  33475. #define BIT_CHK_TSF_TA BIT(2)
  33476. #define BIT_CHK_TSF_CBSSID BIT(1)
  33477. #define BIT_CHK_TSF_EN BIT(0)
  33478. /* 2 REG_PS_RX_INFO (Offset 0x0692) */
  33479. #define BIT_SHIFT_PORTSEL__PS_RX_INFO 5
  33480. #define BIT_MASK_PORTSEL__PS_RX_INFO 0x7
  33481. #define BIT_PORTSEL__PS_RX_INFO(x) \
  33482. (((x) & BIT_MASK_PORTSEL__PS_RX_INFO) << BIT_SHIFT_PORTSEL__PS_RX_INFO)
  33483. #define BITS_PORTSEL__PS_RX_INFO \
  33484. (BIT_MASK_PORTSEL__PS_RX_INFO << BIT_SHIFT_PORTSEL__PS_RX_INFO)
  33485. #define BIT_CLEAR_PORTSEL__PS_RX_INFO(x) ((x) & (~BITS_PORTSEL__PS_RX_INFO))
  33486. #define BIT_GET_PORTSEL__PS_RX_INFO(x) \
  33487. (((x) >> BIT_SHIFT_PORTSEL__PS_RX_INFO) & BIT_MASK_PORTSEL__PS_RX_INFO)
  33488. #define BIT_SET_PORTSEL__PS_RX_INFO(x, v) \
  33489. (BIT_CLEAR_PORTSEL__PS_RX_INFO(x) | BIT_PORTSEL__PS_RX_INFO(v))
  33490. #endif
  33491. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33492. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33493. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33494. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33495. /* 2 REG_PS_RX_INFO (Offset 0x0692) */
  33496. #define BIT_RXCTRLIN0 BIT(4)
  33497. #define BIT_RXMGTIN0 BIT(3)
  33498. #define BIT_RXDATAIN2 BIT(2)
  33499. #define BIT_RXDATAIN1 BIT(1)
  33500. #define BIT_RXDATAIN0 BIT(0)
  33501. /* 2 REG_WMMPS_UAPSD_TID (Offset 0x0693) */
  33502. #define BIT_SHIFT_DTIM_CNT 24
  33503. #define BIT_MASK_DTIM_CNT 0xff
  33504. #define BIT_DTIM_CNT(x) (((x) & BIT_MASK_DTIM_CNT) << BIT_SHIFT_DTIM_CNT)
  33505. #define BITS_DTIM_CNT (BIT_MASK_DTIM_CNT << BIT_SHIFT_DTIM_CNT)
  33506. #define BIT_CLEAR_DTIM_CNT(x) ((x) & (~BITS_DTIM_CNT))
  33507. #define BIT_GET_DTIM_CNT(x) (((x) >> BIT_SHIFT_DTIM_CNT) & BIT_MASK_DTIM_CNT)
  33508. #define BIT_SET_DTIM_CNT(x, v) (BIT_CLEAR_DTIM_CNT(x) | BIT_DTIM_CNT(v))
  33509. #define BIT_CTRLFLT15EN BIT(15)
  33510. #define BIT_DATAFLT15EN BIT(15)
  33511. #define BIT_CTRLFLT14EN BIT(14)
  33512. #define BIT_DATAFLT14EN BIT(14)
  33513. #define BIT_MGTFLT13EN BIT(13)
  33514. #define BIT_CTRLFLT13EN BIT(13)
  33515. #define BIT_DATAFLT13EN BIT(13)
  33516. #define BIT_MGTFLT12EN BIT(12)
  33517. #define BIT_CTRLFLT12EN BIT(12)
  33518. #define BIT_DATAFLT12EN BIT(12)
  33519. #define BIT_MGTFLT11EN BIT(11)
  33520. #define BIT_CTRLFLT11EN BIT(11)
  33521. #define BIT_DATAFLT11EN BIT(11)
  33522. #define BIT_MGTFLT10EN BIT(10)
  33523. #define BIT_CTRLFLT10EN BIT(10)
  33524. #define BIT_DATAFLT10EN BIT(10)
  33525. #define BIT_MGTFLT9EN BIT(9)
  33526. #define BIT_CTRLFLT9EN BIT(9)
  33527. #define BIT_DATAFLT9EN BIT(9)
  33528. #define BIT_MGTFLT8EN BIT(8)
  33529. #define BIT_CTRLFLT8EN BIT(8)
  33530. #define BIT_DATAFLT8EN BIT(8)
  33531. #define BIT_WMMPS_UAPSD_TID7 BIT(7)
  33532. #define BIT_CTRLFLT7EN BIT(7)
  33533. #define BIT_DATAFLT7EN BIT(7)
  33534. #define BIT_WMMPS_UAPSD_TID6 BIT(6)
  33535. #define BIT_CTRLFLT6EN BIT(6)
  33536. #define BIT_DATAFLT6EN BIT(6)
  33537. #define BIT_WMMPS_UAPSD_TID5 BIT(5)
  33538. #define BIT_MGTFLT5EN BIT(5)
  33539. #define BIT_DATAFLT5EN BIT(5)
  33540. #define BIT_WMMPS_UAPSD_TID4 BIT(4)
  33541. #define BIT_MGTFLT4EN BIT(4)
  33542. #define BIT_DATAFLT4EN BIT(4)
  33543. #define BIT_WMMPS_UAPSD_TID3 BIT(3)
  33544. #define BIT_MGTFLT3EN BIT(3)
  33545. #define BIT_DATAFLT3EN BIT(3)
  33546. #define BIT_WMMPS_UAPSD_TID2 BIT(2)
  33547. #define BIT_MGTFLT2EN BIT(2)
  33548. #define BIT_DATAFLT2EN BIT(2)
  33549. #define BIT_WMMPS_UAPSD_TID1 BIT(1)
  33550. #define BIT_MGTFLT1EN BIT(1)
  33551. #define BIT_DATAFLT1EN BIT(1)
  33552. #define BIT_WMMPS_UAPSD_TID0 BIT(0)
  33553. #define BIT_MGTFLT0EN BIT(0)
  33554. #define BIT_DATAFLT0EN BIT(0)
  33555. #endif
  33556. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33557. HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33558. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  33559. /* 2 REG_LPNAV_CTRL (Offset 0x0694) */
  33560. #define BIT_LPNAV_EN BIT(31)
  33561. #define BIT_SHIFT_LPNAV_EARLY 16
  33562. #define BIT_MASK_LPNAV_EARLY 0x7fff
  33563. #define BIT_LPNAV_EARLY(x) \
  33564. (((x) & BIT_MASK_LPNAV_EARLY) << BIT_SHIFT_LPNAV_EARLY)
  33565. #define BITS_LPNAV_EARLY (BIT_MASK_LPNAV_EARLY << BIT_SHIFT_LPNAV_EARLY)
  33566. #define BIT_CLEAR_LPNAV_EARLY(x) ((x) & (~BITS_LPNAV_EARLY))
  33567. #define BIT_GET_LPNAV_EARLY(x) \
  33568. (((x) >> BIT_SHIFT_LPNAV_EARLY) & BIT_MASK_LPNAV_EARLY)
  33569. #define BIT_SET_LPNAV_EARLY(x, v) \
  33570. (BIT_CLEAR_LPNAV_EARLY(x) | BIT_LPNAV_EARLY(v))
  33571. #endif
  33572. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33573. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  33574. HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  33575. /* 2 REG_LPNAV_CTRL (Offset 0x0694) */
  33576. #define BIT_SHIFT_LPNAV_TH 0
  33577. #define BIT_MASK_LPNAV_TH 0xffff
  33578. #define BIT_LPNAV_TH(x) (((x) & BIT_MASK_LPNAV_TH) << BIT_SHIFT_LPNAV_TH)
  33579. #define BITS_LPNAV_TH (BIT_MASK_LPNAV_TH << BIT_SHIFT_LPNAV_TH)
  33580. #define BIT_CLEAR_LPNAV_TH(x) ((x) & (~BITS_LPNAV_TH))
  33581. #define BIT_GET_LPNAV_TH(x) (((x) >> BIT_SHIFT_LPNAV_TH) & BIT_MASK_LPNAV_TH)
  33582. #define BIT_SET_LPNAV_TH(x, v) (BIT_CLEAR_LPNAV_TH(x) | BIT_LPNAV_TH(v))
  33583. #endif
  33584. #if (HALMAC_8192F_SUPPORT)
  33585. /* 2 REG_LPNAV_CTRL (Offset 0x0694) */
  33586. #define BIT_SHIFT_LPNAV_THR 0
  33587. #define BIT_MASK_LPNAV_THR 0xffff
  33588. #define BIT_LPNAV_THR(x) (((x) & BIT_MASK_LPNAV_THR) << BIT_SHIFT_LPNAV_THR)
  33589. #define BITS_LPNAV_THR (BIT_MASK_LPNAV_THR << BIT_SHIFT_LPNAV_THR)
  33590. #define BIT_CLEAR_LPNAV_THR(x) ((x) & (~BITS_LPNAV_THR))
  33591. #define BIT_GET_LPNAV_THR(x) (((x) >> BIT_SHIFT_LPNAV_THR) & BIT_MASK_LPNAV_THR)
  33592. #define BIT_SET_LPNAV_THR(x, v) (BIT_CLEAR_LPNAV_THR(x) | BIT_LPNAV_THR(v))
  33593. #endif
  33594. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33595. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33596. HALMAC_8822C_SUPPORT)
  33597. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33598. #define BIT_WKFCAM_POLLING_V1 BIT(31)
  33599. #define BIT_WKFCAM_CLR_V1 BIT(30)
  33600. #endif
  33601. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33602. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  33603. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33604. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33605. #define BIT_WKFCAM_WE BIT(16)
  33606. #endif
  33607. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33608. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33609. HALMAC_8822C_SUPPORT)
  33610. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33611. #define BIT_SHIFT_WKFCAM_ADDR_V2 8
  33612. #define BIT_MASK_WKFCAM_ADDR_V2 0xff
  33613. #define BIT_WKFCAM_ADDR_V2(x) \
  33614. (((x) & BIT_MASK_WKFCAM_ADDR_V2) << BIT_SHIFT_WKFCAM_ADDR_V2)
  33615. #define BITS_WKFCAM_ADDR_V2 \
  33616. (BIT_MASK_WKFCAM_ADDR_V2 << BIT_SHIFT_WKFCAM_ADDR_V2)
  33617. #define BIT_CLEAR_WKFCAM_ADDR_V2(x) ((x) & (~BITS_WKFCAM_ADDR_V2))
  33618. #define BIT_GET_WKFCAM_ADDR_V2(x) \
  33619. (((x) >> BIT_SHIFT_WKFCAM_ADDR_V2) & BIT_MASK_WKFCAM_ADDR_V2)
  33620. #define BIT_SET_WKFCAM_ADDR_V2(x, v) \
  33621. (BIT_CLEAR_WKFCAM_ADDR_V2(x) | BIT_WKFCAM_ADDR_V2(v))
  33622. #define BIT_WMAC_RESP_NONSTA1_DIS BIT(7)
  33623. #define BIT_SHIFT_WMAC_TXMU_ACKPOLICY 4
  33624. #define BIT_MASK_WMAC_TXMU_ACKPOLICY 0x3
  33625. #define BIT_WMAC_TXMU_ACKPOLICY(x) \
  33626. (((x) & BIT_MASK_WMAC_TXMU_ACKPOLICY) << BIT_SHIFT_WMAC_TXMU_ACKPOLICY)
  33627. #define BITS_WMAC_TXMU_ACKPOLICY \
  33628. (BIT_MASK_WMAC_TXMU_ACKPOLICY << BIT_SHIFT_WMAC_TXMU_ACKPOLICY)
  33629. #define BIT_CLEAR_WMAC_TXMU_ACKPOLICY(x) ((x) & (~BITS_WMAC_TXMU_ACKPOLICY))
  33630. #define BIT_GET_WMAC_TXMU_ACKPOLICY(x) \
  33631. (((x) >> BIT_SHIFT_WMAC_TXMU_ACKPOLICY) & BIT_MASK_WMAC_TXMU_ACKPOLICY)
  33632. #define BIT_SET_WMAC_TXMU_ACKPOLICY(x, v) \
  33633. (BIT_CLEAR_WMAC_TXMU_ACKPOLICY(x) | BIT_WMAC_TXMU_ACKPOLICY(v))
  33634. #define BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL 1
  33635. #define BIT_MASK_WMAC_MU_BFEE_PORT_SEL 0x7
  33636. #define BIT_WMAC_MU_BFEE_PORT_SEL(x) \
  33637. (((x) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL) \
  33638. << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL)
  33639. #define BITS_WMAC_MU_BFEE_PORT_SEL \
  33640. (BIT_MASK_WMAC_MU_BFEE_PORT_SEL << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL)
  33641. #define BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL(x) ((x) & (~BITS_WMAC_MU_BFEE_PORT_SEL))
  33642. #define BIT_GET_WMAC_MU_BFEE_PORT_SEL(x) \
  33643. (((x) >> BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL) & \
  33644. BIT_MASK_WMAC_MU_BFEE_PORT_SEL)
  33645. #define BIT_SET_WMAC_MU_BFEE_PORT_SEL(x, v) \
  33646. (BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL(x) | BIT_WMAC_MU_BFEE_PORT_SEL(v))
  33647. #endif
  33648. #if (HALMAC_8192F_SUPPORT)
  33649. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33650. #define BIT_SHIFT_WKFCAM_NUM_V1 0
  33651. #define BIT_MASK_WKFCAM_NUM_V1 0xff
  33652. #define BIT_WKFCAM_NUM_V1(x) \
  33653. (((x) & BIT_MASK_WKFCAM_NUM_V1) << BIT_SHIFT_WKFCAM_NUM_V1)
  33654. #define BITS_WKFCAM_NUM_V1 (BIT_MASK_WKFCAM_NUM_V1 << BIT_SHIFT_WKFCAM_NUM_V1)
  33655. #define BIT_CLEAR_WKFCAM_NUM_V1(x) ((x) & (~BITS_WKFCAM_NUM_V1))
  33656. #define BIT_GET_WKFCAM_NUM_V1(x) \
  33657. (((x) >> BIT_SHIFT_WKFCAM_NUM_V1) & BIT_MASK_WKFCAM_NUM_V1)
  33658. #define BIT_SET_WKFCAM_NUM_V1(x, v) \
  33659. (BIT_CLEAR_WKFCAM_NUM_V1(x) | BIT_WKFCAM_NUM_V1(v))
  33660. #endif
  33661. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33662. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33663. HALMAC_8822C_SUPPORT)
  33664. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33665. #define BIT_SHIFT_WKFCAM_CAM_NUM_V1 0
  33666. #define BIT_MASK_WKFCAM_CAM_NUM_V1 0xff
  33667. #define BIT_WKFCAM_CAM_NUM_V1(x) \
  33668. (((x) & BIT_MASK_WKFCAM_CAM_NUM_V1) << BIT_SHIFT_WKFCAM_CAM_NUM_V1)
  33669. #define BITS_WKFCAM_CAM_NUM_V1 \
  33670. (BIT_MASK_WKFCAM_CAM_NUM_V1 << BIT_SHIFT_WKFCAM_CAM_NUM_V1)
  33671. #define BIT_CLEAR_WKFCAM_CAM_NUM_V1(x) ((x) & (~BITS_WKFCAM_CAM_NUM_V1))
  33672. #define BIT_GET_WKFCAM_CAM_NUM_V1(x) \
  33673. (((x) >> BIT_SHIFT_WKFCAM_CAM_NUM_V1) & BIT_MASK_WKFCAM_CAM_NUM_V1)
  33674. #define BIT_SET_WKFCAM_CAM_NUM_V1(x, v) \
  33675. (BIT_CLEAR_WKFCAM_CAM_NUM_V1(x) | BIT_WKFCAM_CAM_NUM_V1(v))
  33676. #define BIT_WMAC_MU_BFEE_DIS BIT(0)
  33677. #endif
  33678. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  33679. /* 2 REG_WKFMCAM_CMD (Offset 0x0698) */
  33680. #define BIT_SHIFT_WKFCAM_ADDR 0
  33681. #define BIT_MASK_WKFCAM_ADDR 0x7f
  33682. #define BIT_WKFCAM_ADDR(x) \
  33683. (((x) & BIT_MASK_WKFCAM_ADDR) << BIT_SHIFT_WKFCAM_ADDR)
  33684. #define BITS_WKFCAM_ADDR (BIT_MASK_WKFCAM_ADDR << BIT_SHIFT_WKFCAM_ADDR)
  33685. #define BIT_CLEAR_WKFCAM_ADDR(x) ((x) & (~BITS_WKFCAM_ADDR))
  33686. #define BIT_GET_WKFCAM_ADDR(x) \
  33687. (((x) >> BIT_SHIFT_WKFCAM_ADDR) & BIT_MASK_WKFCAM_ADDR)
  33688. #define BIT_SET_WKFCAM_ADDR(x, v) \
  33689. (BIT_CLEAR_WKFCAM_ADDR(x) | BIT_WKFCAM_ADDR(v))
  33690. #endif
  33691. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  33692. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  33693. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  33694. /* 2 REG_WKFMCAM_RWD (Offset 0x069C) */
  33695. #define BIT_SHIFT_WKFMCAM_RWD 0
  33696. #define BIT_MASK_WKFMCAM_RWD 0xffffffffL
  33697. #define BIT_WKFMCAM_RWD(x) \
  33698. (((x) & BIT_MASK_WKFMCAM_RWD) << BIT_SHIFT_WKFMCAM_RWD)
  33699. #define BITS_WKFMCAM_RWD (BIT_MASK_WKFMCAM_RWD << BIT_SHIFT_WKFMCAM_RWD)
  33700. #define BIT_CLEAR_WKFMCAM_RWD(x) ((x) & (~BITS_WKFMCAM_RWD))
  33701. #define BIT_GET_WKFMCAM_RWD(x) \
  33702. (((x) >> BIT_SHIFT_WKFMCAM_RWD) & BIT_MASK_WKFMCAM_RWD)
  33703. #define BIT_SET_WKFMCAM_RWD(x, v) \
  33704. (BIT_CLEAR_WKFMCAM_RWD(x) | BIT_WKFMCAM_RWD(v))
  33705. #endif
  33706. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33707. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33708. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33709. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33710. /* 2 REG_BCN_PSR_RPT (Offset 0x06A8) */
  33711. #define BIT_SHIFT_DTIM_PERIOD 16
  33712. #define BIT_MASK_DTIM_PERIOD 0xff
  33713. #define BIT_DTIM_PERIOD(x) \
  33714. (((x) & BIT_MASK_DTIM_PERIOD) << BIT_SHIFT_DTIM_PERIOD)
  33715. #define BITS_DTIM_PERIOD (BIT_MASK_DTIM_PERIOD << BIT_SHIFT_DTIM_PERIOD)
  33716. #define BIT_CLEAR_DTIM_PERIOD(x) ((x) & (~BITS_DTIM_PERIOD))
  33717. #define BIT_GET_DTIM_PERIOD(x) \
  33718. (((x) >> BIT_SHIFT_DTIM_PERIOD) & BIT_MASK_DTIM_PERIOD)
  33719. #define BIT_SET_DTIM_PERIOD(x, v) \
  33720. (BIT_CLEAR_DTIM_PERIOD(x) | BIT_DTIM_PERIOD(v))
  33721. #define BIT_DTIM BIT(15)
  33722. #define BIT_TIM BIT(14)
  33723. #define BIT_SHIFT_PS_AID_0 0
  33724. #define BIT_MASK_PS_AID_0 0x7ff
  33725. #define BIT_PS_AID_0(x) (((x) & BIT_MASK_PS_AID_0) << BIT_SHIFT_PS_AID_0)
  33726. #define BITS_PS_AID_0 (BIT_MASK_PS_AID_0 << BIT_SHIFT_PS_AID_0)
  33727. #define BIT_CLEAR_PS_AID_0(x) ((x) & (~BITS_PS_AID_0))
  33728. #define BIT_GET_PS_AID_0(x) (((x) >> BIT_SHIFT_PS_AID_0) & BIT_MASK_PS_AID_0)
  33729. #define BIT_SET_PS_AID_0(x, v) (BIT_CLEAR_PS_AID_0(x) | BIT_PS_AID_0(v))
  33730. #endif
  33731. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33732. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  33733. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || \
  33734. HALMAC_8881A_SUPPORT)
  33735. /* 2 REG_FLC_RPC (Offset 0x06AC) */
  33736. #define BIT_SHIFT_FLC_RPC 0
  33737. #define BIT_MASK_FLC_RPC 0xff
  33738. #define BIT_FLC_RPC(x) (((x) & BIT_MASK_FLC_RPC) << BIT_SHIFT_FLC_RPC)
  33739. #define BITS_FLC_RPC (BIT_MASK_FLC_RPC << BIT_SHIFT_FLC_RPC)
  33740. #define BIT_CLEAR_FLC_RPC(x) ((x) & (~BITS_FLC_RPC))
  33741. #define BIT_GET_FLC_RPC(x) (((x) >> BIT_SHIFT_FLC_RPC) & BIT_MASK_FLC_RPC)
  33742. #define BIT_SET_FLC_RPC(x, v) (BIT_CLEAR_FLC_RPC(x) | BIT_FLC_RPC(v))
  33743. /* 2 REG_FLC_RPCT (Offset 0x06AD) */
  33744. #define BIT_SHIFT_FLC_RPCT 0
  33745. #define BIT_MASK_FLC_RPCT 0xff
  33746. #define BIT_FLC_RPCT(x) (((x) & BIT_MASK_FLC_RPCT) << BIT_SHIFT_FLC_RPCT)
  33747. #define BITS_FLC_RPCT (BIT_MASK_FLC_RPCT << BIT_SHIFT_FLC_RPCT)
  33748. #define BIT_CLEAR_FLC_RPCT(x) ((x) & (~BITS_FLC_RPCT))
  33749. #define BIT_GET_FLC_RPCT(x) (((x) >> BIT_SHIFT_FLC_RPCT) & BIT_MASK_FLC_RPCT)
  33750. #define BIT_SET_FLC_RPCT(x, v) (BIT_CLEAR_FLC_RPCT(x) | BIT_FLC_RPCT(v))
  33751. /* 2 REG_FLC_PTS (Offset 0x06AE) */
  33752. #define BIT_CMF BIT(2)
  33753. #define BIT_CCF BIT(1)
  33754. #define BIT_CDF BIT(0)
  33755. /* 2 REG_FLC_TRPC (Offset 0x06AF) */
  33756. #define BIT_FLC_RPCT_V1 BIT(7)
  33757. #define BIT_MODE BIT(6)
  33758. #define BIT_SHIFT_TRPCD 0
  33759. #define BIT_MASK_TRPCD 0x3f
  33760. #define BIT_TRPCD(x) (((x) & BIT_MASK_TRPCD) << BIT_SHIFT_TRPCD)
  33761. #define BITS_TRPCD (BIT_MASK_TRPCD << BIT_SHIFT_TRPCD)
  33762. #define BIT_CLEAR_TRPCD(x) ((x) & (~BITS_TRPCD))
  33763. #define BIT_GET_TRPCD(x) (((x) >> BIT_SHIFT_TRPCD) & BIT_MASK_TRPCD)
  33764. #define BIT_SET_TRPCD(x, v) (BIT_CLEAR_TRPCD(x) | BIT_TRPCD(v))
  33765. #endif
  33766. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33767. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33768. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33769. HALMAC_8822C_SUPPORT)
  33770. /* 2 REG_RXPKTMON_CTRL (Offset 0x06B0) */
  33771. #define BIT_SHIFT_RXBKQPKT_SEQ 20
  33772. #define BIT_MASK_RXBKQPKT_SEQ 0xf
  33773. #define BIT_RXBKQPKT_SEQ(x) \
  33774. (((x) & BIT_MASK_RXBKQPKT_SEQ) << BIT_SHIFT_RXBKQPKT_SEQ)
  33775. #define BITS_RXBKQPKT_SEQ (BIT_MASK_RXBKQPKT_SEQ << BIT_SHIFT_RXBKQPKT_SEQ)
  33776. #define BIT_CLEAR_RXBKQPKT_SEQ(x) ((x) & (~BITS_RXBKQPKT_SEQ))
  33777. #define BIT_GET_RXBKQPKT_SEQ(x) \
  33778. (((x) >> BIT_SHIFT_RXBKQPKT_SEQ) & BIT_MASK_RXBKQPKT_SEQ)
  33779. #define BIT_SET_RXBKQPKT_SEQ(x, v) \
  33780. (BIT_CLEAR_RXBKQPKT_SEQ(x) | BIT_RXBKQPKT_SEQ(v))
  33781. #define BIT_SHIFT_RXBEQPKT_SEQ 16
  33782. #define BIT_MASK_RXBEQPKT_SEQ 0xf
  33783. #define BIT_RXBEQPKT_SEQ(x) \
  33784. (((x) & BIT_MASK_RXBEQPKT_SEQ) << BIT_SHIFT_RXBEQPKT_SEQ)
  33785. #define BITS_RXBEQPKT_SEQ (BIT_MASK_RXBEQPKT_SEQ << BIT_SHIFT_RXBEQPKT_SEQ)
  33786. #define BIT_CLEAR_RXBEQPKT_SEQ(x) ((x) & (~BITS_RXBEQPKT_SEQ))
  33787. #define BIT_GET_RXBEQPKT_SEQ(x) \
  33788. (((x) >> BIT_SHIFT_RXBEQPKT_SEQ) & BIT_MASK_RXBEQPKT_SEQ)
  33789. #define BIT_SET_RXBEQPKT_SEQ(x, v) \
  33790. (BIT_CLEAR_RXBEQPKT_SEQ(x) | BIT_RXBEQPKT_SEQ(v))
  33791. #define BIT_SHIFT_RXVIQPKT_SEQ 12
  33792. #define BIT_MASK_RXVIQPKT_SEQ 0xf
  33793. #define BIT_RXVIQPKT_SEQ(x) \
  33794. (((x) & BIT_MASK_RXVIQPKT_SEQ) << BIT_SHIFT_RXVIQPKT_SEQ)
  33795. #define BITS_RXVIQPKT_SEQ (BIT_MASK_RXVIQPKT_SEQ << BIT_SHIFT_RXVIQPKT_SEQ)
  33796. #define BIT_CLEAR_RXVIQPKT_SEQ(x) ((x) & (~BITS_RXVIQPKT_SEQ))
  33797. #define BIT_GET_RXVIQPKT_SEQ(x) \
  33798. (((x) >> BIT_SHIFT_RXVIQPKT_SEQ) & BIT_MASK_RXVIQPKT_SEQ)
  33799. #define BIT_SET_RXVIQPKT_SEQ(x, v) \
  33800. (BIT_CLEAR_RXVIQPKT_SEQ(x) | BIT_RXVIQPKT_SEQ(v))
  33801. #define BIT_SHIFT_RXVOQPKT_SEQ 8
  33802. #define BIT_MASK_RXVOQPKT_SEQ 0xf
  33803. #define BIT_RXVOQPKT_SEQ(x) \
  33804. (((x) & BIT_MASK_RXVOQPKT_SEQ) << BIT_SHIFT_RXVOQPKT_SEQ)
  33805. #define BITS_RXVOQPKT_SEQ (BIT_MASK_RXVOQPKT_SEQ << BIT_SHIFT_RXVOQPKT_SEQ)
  33806. #define BIT_CLEAR_RXVOQPKT_SEQ(x) ((x) & (~BITS_RXVOQPKT_SEQ))
  33807. #define BIT_GET_RXVOQPKT_SEQ(x) \
  33808. (((x) >> BIT_SHIFT_RXVOQPKT_SEQ) & BIT_MASK_RXVOQPKT_SEQ)
  33809. #define BIT_SET_RXVOQPKT_SEQ(x, v) \
  33810. (BIT_CLEAR_RXVOQPKT_SEQ(x) | BIT_RXVOQPKT_SEQ(v))
  33811. #define BIT_RXBKQPKT_ERR BIT(7)
  33812. #define BIT_RXBEQPKT_ERR BIT(6)
  33813. #define BIT_RXVIQPKT_ERR BIT(5)
  33814. #define BIT_RXVOQPKT_ERR BIT(4)
  33815. #define BIT_RXDMA_MON_EN BIT(2)
  33816. #define BIT_RXPKT_MON_RST BIT(1)
  33817. #define BIT_RXPKT_MON_EN BIT(0)
  33818. /* 2 REG_STATE_MON (Offset 0x06B4) */
  33819. #define BIT_EN_TXRPTBUF_CLK BIT(31)
  33820. #endif
  33821. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  33822. /* 2 REG_STATE_MON (Offset 0x06B4) */
  33823. #define BIT_SHIFT_DMA_MON_EN 24
  33824. #define BIT_MASK_DMA_MON_EN 0x1f
  33825. #define BIT_DMA_MON_EN(x) (((x) & BIT_MASK_DMA_MON_EN) << BIT_SHIFT_DMA_MON_EN)
  33826. #define BITS_DMA_MON_EN (BIT_MASK_DMA_MON_EN << BIT_SHIFT_DMA_MON_EN)
  33827. #define BIT_CLEAR_DMA_MON_EN(x) ((x) & (~BITS_DMA_MON_EN))
  33828. #define BIT_GET_DMA_MON_EN(x) \
  33829. (((x) >> BIT_SHIFT_DMA_MON_EN) & BIT_MASK_DMA_MON_EN)
  33830. #define BIT_SET_DMA_MON_EN(x, v) (BIT_CLEAR_DMA_MON_EN(x) | BIT_DMA_MON_EN(v))
  33831. #endif
  33832. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33833. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33834. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33835. HALMAC_8822C_SUPPORT)
  33836. /* 2 REG_STATE_MON (Offset 0x06B4) */
  33837. #define BIT_SHIFT_STATE_SEL 24
  33838. #define BIT_MASK_STATE_SEL 0x1f
  33839. #define BIT_STATE_SEL(x) (((x) & BIT_MASK_STATE_SEL) << BIT_SHIFT_STATE_SEL)
  33840. #define BITS_STATE_SEL (BIT_MASK_STATE_SEL << BIT_SHIFT_STATE_SEL)
  33841. #define BIT_CLEAR_STATE_SEL(x) ((x) & (~BITS_STATE_SEL))
  33842. #define BIT_GET_STATE_SEL(x) (((x) >> BIT_SHIFT_STATE_SEL) & BIT_MASK_STATE_SEL)
  33843. #define BIT_SET_STATE_SEL(x, v) (BIT_CLEAR_STATE_SEL(x) | BIT_STATE_SEL(v))
  33844. #define BIT_MACRX_ERR_1 BIT(17)
  33845. #define BIT_MACRX_ERR_0 BIT(16)
  33846. #define BIT_DIS_INFOSRCH BIT(14)
  33847. #define BIT_SHIFT_STATE_INFO 8
  33848. #define BIT_MASK_STATE_INFO 0xff
  33849. #define BIT_STATE_INFO(x) (((x) & BIT_MASK_STATE_INFO) << BIT_SHIFT_STATE_INFO)
  33850. #define BITS_STATE_INFO (BIT_MASK_STATE_INFO << BIT_SHIFT_STATE_INFO)
  33851. #define BIT_CLEAR_STATE_INFO(x) ((x) & (~BITS_STATE_INFO))
  33852. #define BIT_GET_STATE_INFO(x) \
  33853. (((x) >> BIT_SHIFT_STATE_INFO) & BIT_MASK_STATE_INFO)
  33854. #define BIT_SET_STATE_INFO(x, v) (BIT_CLEAR_STATE_INFO(x) | BIT_STATE_INFO(v))
  33855. #define BIT_UPD_NXT_STATE BIT(7)
  33856. #define BIT_MACTX_ERR_3 BIT(3)
  33857. #define BIT_MACTX_ERR_2 BIT(2)
  33858. #define BIT_MACTX_ERR_1 BIT(1)
  33859. #endif
  33860. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  33861. /* 2 REG_STATE_MON (Offset 0x06B4) */
  33862. #define BIT_SHIFT_PKT_MON_EN 0
  33863. #define BIT_MASK_PKT_MON_EN 0x7f
  33864. #define BIT_PKT_MON_EN(x) (((x) & BIT_MASK_PKT_MON_EN) << BIT_SHIFT_PKT_MON_EN)
  33865. #define BITS_PKT_MON_EN (BIT_MASK_PKT_MON_EN << BIT_SHIFT_PKT_MON_EN)
  33866. #define BIT_CLEAR_PKT_MON_EN(x) ((x) & (~BITS_PKT_MON_EN))
  33867. #define BIT_GET_PKT_MON_EN(x) \
  33868. (((x) >> BIT_SHIFT_PKT_MON_EN) & BIT_MASK_PKT_MON_EN)
  33869. #define BIT_SET_PKT_MON_EN(x, v) (BIT_CLEAR_PKT_MON_EN(x) | BIT_PKT_MON_EN(v))
  33870. #endif
  33871. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33872. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33873. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33874. HALMAC_8822C_SUPPORT)
  33875. /* 2 REG_STATE_MON (Offset 0x06B4) */
  33876. #define BIT_SHIFT_CUR_STATE 0
  33877. #define BIT_MASK_CUR_STATE 0x7f
  33878. #define BIT_CUR_STATE(x) (((x) & BIT_MASK_CUR_STATE) << BIT_SHIFT_CUR_STATE)
  33879. #define BITS_CUR_STATE (BIT_MASK_CUR_STATE << BIT_SHIFT_CUR_STATE)
  33880. #define BIT_CLEAR_CUR_STATE(x) ((x) & (~BITS_CUR_STATE))
  33881. #define BIT_GET_CUR_STATE(x) (((x) >> BIT_SHIFT_CUR_STATE) & BIT_MASK_CUR_STATE)
  33882. #define BIT_SET_CUR_STATE(x, v) (BIT_CLEAR_CUR_STATE(x) | BIT_CUR_STATE(v))
  33883. #define BIT_MACTX_ERR_0 BIT(0)
  33884. #define BIT_SHIFT_INFO_ADDR_OFFSET 0
  33885. #define BIT_MASK_INFO_ADDR_OFFSET 0x1fff
  33886. #define BIT_INFO_ADDR_OFFSET(x) \
  33887. (((x) & BIT_MASK_INFO_ADDR_OFFSET) << BIT_SHIFT_INFO_ADDR_OFFSET)
  33888. #define BITS_INFO_ADDR_OFFSET \
  33889. (BIT_MASK_INFO_ADDR_OFFSET << BIT_SHIFT_INFO_ADDR_OFFSET)
  33890. #define BIT_CLEAR_INFO_ADDR_OFFSET(x) ((x) & (~BITS_INFO_ADDR_OFFSET))
  33891. #define BIT_GET_INFO_ADDR_OFFSET(x) \
  33892. (((x) >> BIT_SHIFT_INFO_ADDR_OFFSET) & BIT_MASK_INFO_ADDR_OFFSET)
  33893. #define BIT_SET_INFO_ADDR_OFFSET(x, v) \
  33894. (BIT_CLEAR_INFO_ADDR_OFFSET(x) | BIT_INFO_ADDR_OFFSET(v))
  33895. #endif
  33896. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  33897. /* 2 REG_ERROR_MON (Offset 0x06B8) */
  33898. #define BIT_CSIRPT_LEN_BB_MORE_THAN_MAC BIT(23)
  33899. #define BIT_CSI_CHKSUM_ERROR BIT(22)
  33900. #endif
  33901. #if (HALMAC_8198F_SUPPORT)
  33902. /* 2 REG_ERROR_MON (Offset 0x06B8) */
  33903. #define BIT_BFM_RPTNUM_ERROR BIT(21)
  33904. #endif
  33905. #if (HALMAC_8814B_SUPPORT)
  33906. /* 2 REG_ERROR_MON (Offset 0x06B8) */
  33907. #define BIT_MACRX_ERR_5 BIT(21)
  33908. #endif
  33909. #if (HALMAC_8198F_SUPPORT)
  33910. /* 2 REG_ERROR_MON (Offset 0x06B8) */
  33911. #define BIT_BFM_CHECKSUM_ERROR BIT(20)
  33912. #endif
  33913. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  33914. /* 2 REG_ERROR_MON (Offset 0x06B8) */
  33915. #define BIT_MACRX_ERR_4 BIT(20)
  33916. #define BIT_MACRX_ERR_3 BIT(19)
  33917. #define BIT_MACRX_ERR_2 BIT(18)
  33918. #define BIT_WMAC_PRETX_ERRHDL_EN BIT(15)
  33919. #define BIT_MACTX_ERR_5 BIT(5)
  33920. #endif
  33921. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33922. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  33923. HALMAC_8881A_SUPPORT)
  33924. /* 2 REG_BT_COEX_TABLE (Offset 0x06C0) */
  33925. #define BIT_PRI_MASK_RX_RESP BIT(126)
  33926. #define BIT_PRI_MASK_RXOFDM BIT(125)
  33927. #define BIT_PRI_MASK_RXCCK BIT(124)
  33928. #define BIT_PRI_MASK_CCK BIT(108)
  33929. #define BIT_PRI_MASK_OFDM BIT(107)
  33930. #define BIT_PRI_MASK_RTY BIT(106)
  33931. #define BIT_OOB BIT(97)
  33932. #define BIT_ANT_SEL BIT(96)
  33933. #endif
  33934. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  33935. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  33936. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  33937. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  33938. /* 2 REG_BT_COEX_TABLE (Offset 0x06C0) */
  33939. #define BIT_SHIFT_R_WMAC_BFINFO_20M_1 16
  33940. #define BIT_MASK_R_WMAC_BFINFO_20M_1 0xfff
  33941. #define BIT_R_WMAC_BFINFO_20M_1(x) \
  33942. (((x) & BIT_MASK_R_WMAC_BFINFO_20M_1) << BIT_SHIFT_R_WMAC_BFINFO_20M_1)
  33943. #define BITS_R_WMAC_BFINFO_20M_1 \
  33944. (BIT_MASK_R_WMAC_BFINFO_20M_1 << BIT_SHIFT_R_WMAC_BFINFO_20M_1)
  33945. #define BIT_CLEAR_R_WMAC_BFINFO_20M_1(x) ((x) & (~BITS_R_WMAC_BFINFO_20M_1))
  33946. #define BIT_GET_R_WMAC_BFINFO_20M_1(x) \
  33947. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_1) & BIT_MASK_R_WMAC_BFINFO_20M_1)
  33948. #define BIT_SET_R_WMAC_BFINFO_20M_1(x, v) \
  33949. (BIT_CLEAR_R_WMAC_BFINFO_20M_1(x) | BIT_R_WMAC_BFINFO_20M_1(v))
  33950. #define BIT_SHIFT_COEX_TABLE_1 0
  33951. #define BIT_MASK_COEX_TABLE_1 0xffffffffL
  33952. #define BIT_COEX_TABLE_1(x) \
  33953. (((x) & BIT_MASK_COEX_TABLE_1) << BIT_SHIFT_COEX_TABLE_1)
  33954. #define BITS_COEX_TABLE_1 (BIT_MASK_COEX_TABLE_1 << BIT_SHIFT_COEX_TABLE_1)
  33955. #define BIT_CLEAR_COEX_TABLE_1(x) ((x) & (~BITS_COEX_TABLE_1))
  33956. #define BIT_GET_COEX_TABLE_1(x) \
  33957. (((x) >> BIT_SHIFT_COEX_TABLE_1) & BIT_MASK_COEX_TABLE_1)
  33958. #define BIT_SET_COEX_TABLE_1(x, v) \
  33959. (BIT_CLEAR_COEX_TABLE_1(x) | BIT_COEX_TABLE_1(v))
  33960. #define BIT_SHIFT_R_WMAC_BFINFO_20M_0 0
  33961. #define BIT_MASK_R_WMAC_BFINFO_20M_0 0xfff
  33962. #define BIT_R_WMAC_BFINFO_20M_0(x) \
  33963. (((x) & BIT_MASK_R_WMAC_BFINFO_20M_0) << BIT_SHIFT_R_WMAC_BFINFO_20M_0)
  33964. #define BITS_R_WMAC_BFINFO_20M_0 \
  33965. (BIT_MASK_R_WMAC_BFINFO_20M_0 << BIT_SHIFT_R_WMAC_BFINFO_20M_0)
  33966. #define BIT_CLEAR_R_WMAC_BFINFO_20M_0(x) ((x) & (~BITS_R_WMAC_BFINFO_20M_0))
  33967. #define BIT_GET_R_WMAC_BFINFO_20M_0(x) \
  33968. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_0) & BIT_MASK_R_WMAC_BFINFO_20M_0)
  33969. #define BIT_SET_R_WMAC_BFINFO_20M_0(x, v) \
  33970. (BIT_CLEAR_R_WMAC_BFINFO_20M_0(x) | BIT_R_WMAC_BFINFO_20M_0(v))
  33971. #endif
  33972. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  33973. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  33974. /* 2 REG_BT_COEX_TABLE_H (Offset 0x06CC) */
  33975. #define BIT_PRI_MASK_RX_RESP_V1 BIT(30)
  33976. #define BIT_PRI_MASK_RXOFDM_V1 BIT(29)
  33977. #define BIT_PRI_MASK_RXCCK_V1 BIT(28)
  33978. #define BIT_PRI_MASK_CCK_V1 BIT(12)
  33979. #define BIT_PRI_MASK_OFDM_V1 BIT(11)
  33980. #define BIT_PRI_MASK_RTY_V1 BIT(10)
  33981. #define BIT_OOB_V1 BIT(1)
  33982. #define BIT_ANT_SEL_V1 BIT(0)
  33983. #endif
  33984. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  33985. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  33986. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  33987. HALMAC_8822C_SUPPORT)
  33988. /* 2 REG_RXCMD_0 (Offset 0x06D0) */
  33989. #define BIT_RXCMD_EN BIT(31)
  33990. #define BIT_SHIFT_RXCMD_INFO 0
  33991. #define BIT_MASK_RXCMD_INFO 0x7fffffffL
  33992. #define BIT_RXCMD_INFO(x) (((x) & BIT_MASK_RXCMD_INFO) << BIT_SHIFT_RXCMD_INFO)
  33993. #define BITS_RXCMD_INFO (BIT_MASK_RXCMD_INFO << BIT_SHIFT_RXCMD_INFO)
  33994. #define BIT_CLEAR_RXCMD_INFO(x) ((x) & (~BITS_RXCMD_INFO))
  33995. #define BIT_GET_RXCMD_INFO(x) \
  33996. (((x) >> BIT_SHIFT_RXCMD_INFO) & BIT_MASK_RXCMD_INFO)
  33997. #define BIT_SET_RXCMD_INFO(x, v) (BIT_CLEAR_RXCMD_INFO(x) | BIT_RXCMD_INFO(v))
  33998. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  33999. #define BIT_TXUSER_ID1 BIT(25)
  34000. #endif
  34001. #if (HALMAC_8198F_SUPPORT)
  34002. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34003. #define BIT_SHIFT_CSI_RADDR_LATCH_V1 24
  34004. #define BIT_MASK_CSI_RADDR_LATCH_V1 0x3f
  34005. #define BIT_CSI_RADDR_LATCH_V1(x) \
  34006. (((x) & BIT_MASK_CSI_RADDR_LATCH_V1) << BIT_SHIFT_CSI_RADDR_LATCH_V1)
  34007. #define BITS_CSI_RADDR_LATCH_V1 \
  34008. (BIT_MASK_CSI_RADDR_LATCH_V1 << BIT_SHIFT_CSI_RADDR_LATCH_V1)
  34009. #define BIT_CLEAR_CSI_RADDR_LATCH_V1(x) ((x) & (~BITS_CSI_RADDR_LATCH_V1))
  34010. #define BIT_GET_CSI_RADDR_LATCH_V1(x) \
  34011. (((x) >> BIT_SHIFT_CSI_RADDR_LATCH_V1) & BIT_MASK_CSI_RADDR_LATCH_V1)
  34012. #define BIT_SET_CSI_RADDR_LATCH_V1(x, v) \
  34013. (BIT_CLEAR_CSI_RADDR_LATCH_V1(x) | BIT_CSI_RADDR_LATCH_V1(v))
  34014. #endif
  34015. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  34016. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34017. #define BIT_SHIFT_CSI_RADDR_LATCH 24
  34018. #define BIT_MASK_CSI_RADDR_LATCH 0xff
  34019. #define BIT_CSI_RADDR_LATCH(x) \
  34020. (((x) & BIT_MASK_CSI_RADDR_LATCH) << BIT_SHIFT_CSI_RADDR_LATCH)
  34021. #define BITS_CSI_RADDR_LATCH \
  34022. (BIT_MASK_CSI_RADDR_LATCH << BIT_SHIFT_CSI_RADDR_LATCH)
  34023. #define BIT_CLEAR_CSI_RADDR_LATCH(x) ((x) & (~BITS_CSI_RADDR_LATCH))
  34024. #define BIT_GET_CSI_RADDR_LATCH(x) \
  34025. (((x) >> BIT_SHIFT_CSI_RADDR_LATCH) & BIT_MASK_CSI_RADDR_LATCH)
  34026. #define BIT_SET_CSI_RADDR_LATCH(x, v) \
  34027. (BIT_CLEAR_CSI_RADDR_LATCH(x) | BIT_CSI_RADDR_LATCH(v))
  34028. #endif
  34029. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34030. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34031. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  34032. HALMAC_8822C_SUPPORT)
  34033. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34034. #define BIT_SHIFT_AID1 16
  34035. #define BIT_MASK_AID1 0x1ff
  34036. #define BIT_AID1(x) (((x) & BIT_MASK_AID1) << BIT_SHIFT_AID1)
  34037. #define BITS_AID1 (BIT_MASK_AID1 << BIT_SHIFT_AID1)
  34038. #define BIT_CLEAR_AID1(x) ((x) & (~BITS_AID1))
  34039. #define BIT_GET_AID1(x) (((x) >> BIT_SHIFT_AID1) & BIT_MASK_AID1)
  34040. #define BIT_SET_AID1(x, v) (BIT_CLEAR_AID1(x) | BIT_AID1(v))
  34041. #endif
  34042. #if (HALMAC_8198F_SUPPORT)
  34043. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34044. #define BIT_SHIFT_CSI_WADDR_LATCH_V1 16
  34045. #define BIT_MASK_CSI_WADDR_LATCH_V1 0x3f
  34046. #define BIT_CSI_WADDR_LATCH_V1(x) \
  34047. (((x) & BIT_MASK_CSI_WADDR_LATCH_V1) << BIT_SHIFT_CSI_WADDR_LATCH_V1)
  34048. #define BITS_CSI_WADDR_LATCH_V1 \
  34049. (BIT_MASK_CSI_WADDR_LATCH_V1 << BIT_SHIFT_CSI_WADDR_LATCH_V1)
  34050. #define BIT_CLEAR_CSI_WADDR_LATCH_V1(x) ((x) & (~BITS_CSI_WADDR_LATCH_V1))
  34051. #define BIT_GET_CSI_WADDR_LATCH_V1(x) \
  34052. (((x) >> BIT_SHIFT_CSI_WADDR_LATCH_V1) & BIT_MASK_CSI_WADDR_LATCH_V1)
  34053. #define BIT_SET_CSI_WADDR_LATCH_V1(x, v) \
  34054. (BIT_CLEAR_CSI_WADDR_LATCH_V1(x) | BIT_CSI_WADDR_LATCH_V1(v))
  34055. #endif
  34056. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  34057. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34058. #define BIT_SHIFT_CSI_WADDR_LATCH 16
  34059. #define BIT_MASK_CSI_WADDR_LATCH 0xff
  34060. #define BIT_CSI_WADDR_LATCH(x) \
  34061. (((x) & BIT_MASK_CSI_WADDR_LATCH) << BIT_SHIFT_CSI_WADDR_LATCH)
  34062. #define BITS_CSI_WADDR_LATCH \
  34063. (BIT_MASK_CSI_WADDR_LATCH << BIT_SHIFT_CSI_WADDR_LATCH)
  34064. #define BIT_CLEAR_CSI_WADDR_LATCH(x) ((x) & (~BITS_CSI_WADDR_LATCH))
  34065. #define BIT_GET_CSI_WADDR_LATCH(x) \
  34066. (((x) >> BIT_SHIFT_CSI_WADDR_LATCH) & BIT_MASK_CSI_WADDR_LATCH)
  34067. #define BIT_SET_CSI_WADDR_LATCH(x, v) \
  34068. (BIT_CLEAR_CSI_WADDR_LATCH(x) | BIT_CSI_WADDR_LATCH(v))
  34069. #endif
  34070. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34071. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34072. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  34073. HALMAC_8822C_SUPPORT)
  34074. /* 2 REG_RXCMD_1 (Offset 0x06D4) */
  34075. #define BIT_TXUSER_ID0 BIT(9)
  34076. #define BIT_SHIFT_RXCMD_PRD 0
  34077. #define BIT_MASK_RXCMD_PRD 0xffff
  34078. #define BIT_RXCMD_PRD(x) (((x) & BIT_MASK_RXCMD_PRD) << BIT_SHIFT_RXCMD_PRD)
  34079. #define BITS_RXCMD_PRD (BIT_MASK_RXCMD_PRD << BIT_SHIFT_RXCMD_PRD)
  34080. #define BIT_CLEAR_RXCMD_PRD(x) ((x) & (~BITS_RXCMD_PRD))
  34081. #define BIT_GET_RXCMD_PRD(x) (((x) >> BIT_SHIFT_RXCMD_PRD) & BIT_MASK_RXCMD_PRD)
  34082. #define BIT_SET_RXCMD_PRD(x, v) (BIT_CLEAR_RXCMD_PRD(x) | BIT_RXCMD_PRD(v))
  34083. #define BIT_SHIFT_AID0 0
  34084. #define BIT_MASK_AID0 0x1ff
  34085. #define BIT_AID0(x) (((x) & BIT_MASK_AID0) << BIT_SHIFT_AID0)
  34086. #define BITS_AID0 (BIT_MASK_AID0 << BIT_SHIFT_AID0)
  34087. #define BIT_CLEAR_AID0(x) ((x) & (~BITS_AID0))
  34088. #define BIT_GET_AID0(x) (((x) >> BIT_SHIFT_AID0) & BIT_MASK_AID0)
  34089. #define BIT_SET_AID0(x, v) (BIT_CLEAR_AID0(x) | BIT_AID0(v))
  34090. #endif
  34091. #if (HALMAC_8192F_SUPPORT)
  34092. /* 2 REG_RESP_TXINFO_CFG (Offset 0x06D8) */
  34093. #define BIT_SHIFT_RESP_MFB 25
  34094. #define BIT_MASK_RESP_MFB 0x7f
  34095. #define BIT_RESP_MFB(x) (((x) & BIT_MASK_RESP_MFB) << BIT_SHIFT_RESP_MFB)
  34096. #define BITS_RESP_MFB (BIT_MASK_RESP_MFB << BIT_SHIFT_RESP_MFB)
  34097. #define BIT_CLEAR_RESP_MFB(x) ((x) & (~BITS_RESP_MFB))
  34098. #define BIT_GET_RESP_MFB(x) (((x) >> BIT_SHIFT_RESP_MFB) & BIT_MASK_RESP_MFB)
  34099. #define BIT_SET_RESP_MFB(x, v) (BIT_CLEAR_RESP_MFB(x) | BIT_RESP_MFB(v))
  34100. #endif
  34101. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34102. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  34103. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  34104. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34105. #define BIT_SHIFT_WMAC_RESP_MFB 25
  34106. #define BIT_MASK_WMAC_RESP_MFB 0x7f
  34107. #define BIT_WMAC_RESP_MFB(x) \
  34108. (((x) & BIT_MASK_WMAC_RESP_MFB) << BIT_SHIFT_WMAC_RESP_MFB)
  34109. #define BITS_WMAC_RESP_MFB (BIT_MASK_WMAC_RESP_MFB << BIT_SHIFT_WMAC_RESP_MFB)
  34110. #define BIT_CLEAR_WMAC_RESP_MFB(x) ((x) & (~BITS_WMAC_RESP_MFB))
  34111. #define BIT_GET_WMAC_RESP_MFB(x) \
  34112. (((x) >> BIT_SHIFT_WMAC_RESP_MFB) & BIT_MASK_WMAC_RESP_MFB)
  34113. #define BIT_SET_WMAC_RESP_MFB(x, v) \
  34114. (BIT_CLEAR_WMAC_RESP_MFB(x) | BIT_WMAC_RESP_MFB(v))
  34115. #endif
  34116. #if (HALMAC_8192F_SUPPORT)
  34117. /* 2 REG_RESP_TXINFO_CFG (Offset 0x06D8) */
  34118. #define BIT_SHIFT_ANTINF_SEL 23
  34119. #define BIT_MASK_ANTINF_SEL 0x3
  34120. #define BIT_ANTINF_SEL(x) (((x) & BIT_MASK_ANTINF_SEL) << BIT_SHIFT_ANTINF_SEL)
  34121. #define BITS_ANTINF_SEL (BIT_MASK_ANTINF_SEL << BIT_SHIFT_ANTINF_SEL)
  34122. #define BIT_CLEAR_ANTINF_SEL(x) ((x) & (~BITS_ANTINF_SEL))
  34123. #define BIT_GET_ANTINF_SEL(x) \
  34124. (((x) >> BIT_SHIFT_ANTINF_SEL) & BIT_MASK_ANTINF_SEL)
  34125. #define BIT_SET_ANTINF_SEL(x, v) (BIT_CLEAR_ANTINF_SEL(x) | BIT_ANTINF_SEL(v))
  34126. #endif
  34127. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34128. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  34129. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  34130. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34131. #define BIT_SHIFT_WMAC_ANTINF_SEL 23
  34132. #define BIT_MASK_WMAC_ANTINF_SEL 0x3
  34133. #define BIT_WMAC_ANTINF_SEL(x) \
  34134. (((x) & BIT_MASK_WMAC_ANTINF_SEL) << BIT_SHIFT_WMAC_ANTINF_SEL)
  34135. #define BITS_WMAC_ANTINF_SEL \
  34136. (BIT_MASK_WMAC_ANTINF_SEL << BIT_SHIFT_WMAC_ANTINF_SEL)
  34137. #define BIT_CLEAR_WMAC_ANTINF_SEL(x) ((x) & (~BITS_WMAC_ANTINF_SEL))
  34138. #define BIT_GET_WMAC_ANTINF_SEL(x) \
  34139. (((x) >> BIT_SHIFT_WMAC_ANTINF_SEL) & BIT_MASK_WMAC_ANTINF_SEL)
  34140. #define BIT_SET_WMAC_ANTINF_SEL(x, v) \
  34141. (BIT_CLEAR_WMAC_ANTINF_SEL(x) | BIT_WMAC_ANTINF_SEL(v))
  34142. #endif
  34143. #if (HALMAC_8192F_SUPPORT)
  34144. /* 2 REG_RESP_TXINFO_CFG (Offset 0x06D8) */
  34145. #define BIT_SHIFT_ANTSEL_SEL 21
  34146. #define BIT_MASK_ANTSEL_SEL 0x3
  34147. #define BIT_ANTSEL_SEL(x) (((x) & BIT_MASK_ANTSEL_SEL) << BIT_SHIFT_ANTSEL_SEL)
  34148. #define BITS_ANTSEL_SEL (BIT_MASK_ANTSEL_SEL << BIT_SHIFT_ANTSEL_SEL)
  34149. #define BIT_CLEAR_ANTSEL_SEL(x) ((x) & (~BITS_ANTSEL_SEL))
  34150. #define BIT_GET_ANTSEL_SEL(x) \
  34151. (((x) >> BIT_SHIFT_ANTSEL_SEL) & BIT_MASK_ANTSEL_SEL)
  34152. #define BIT_SET_ANTSEL_SEL(x, v) (BIT_CLEAR_ANTSEL_SEL(x) | BIT_ANTSEL_SEL(v))
  34153. #endif
  34154. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34155. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  34156. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  34157. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34158. #define BIT_SHIFT_WMAC_ANTSEL_SEL 21
  34159. #define BIT_MASK_WMAC_ANTSEL_SEL 0x3
  34160. #define BIT_WMAC_ANTSEL_SEL(x) \
  34161. (((x) & BIT_MASK_WMAC_ANTSEL_SEL) << BIT_SHIFT_WMAC_ANTSEL_SEL)
  34162. #define BITS_WMAC_ANTSEL_SEL \
  34163. (BIT_MASK_WMAC_ANTSEL_SEL << BIT_SHIFT_WMAC_ANTSEL_SEL)
  34164. #define BIT_CLEAR_WMAC_ANTSEL_SEL(x) ((x) & (~BITS_WMAC_ANTSEL_SEL))
  34165. #define BIT_GET_WMAC_ANTSEL_SEL(x) \
  34166. (((x) >> BIT_SHIFT_WMAC_ANTSEL_SEL) & BIT_MASK_WMAC_ANTSEL_SEL)
  34167. #define BIT_SET_WMAC_ANTSEL_SEL(x, v) \
  34168. (BIT_CLEAR_WMAC_ANTSEL_SEL(x) | BIT_WMAC_ANTSEL_SEL(v))
  34169. #endif
  34170. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  34171. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  34172. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34173. #define BIT_SHIFT_R_WMAC_RESP_TXPOWER 18
  34174. #define BIT_MASK_R_WMAC_RESP_TXPOWER 0x7
  34175. #define BIT_R_WMAC_RESP_TXPOWER(x) \
  34176. (((x) & BIT_MASK_R_WMAC_RESP_TXPOWER) << BIT_SHIFT_R_WMAC_RESP_TXPOWER)
  34177. #define BITS_R_WMAC_RESP_TXPOWER \
  34178. (BIT_MASK_R_WMAC_RESP_TXPOWER << BIT_SHIFT_R_WMAC_RESP_TXPOWER)
  34179. #define BIT_CLEAR_R_WMAC_RESP_TXPOWER(x) ((x) & (~BITS_R_WMAC_RESP_TXPOWER))
  34180. #define BIT_GET_R_WMAC_RESP_TXPOWER(x) \
  34181. (((x) >> BIT_SHIFT_R_WMAC_RESP_TXPOWER) & BIT_MASK_R_WMAC_RESP_TXPOWER)
  34182. #define BIT_SET_R_WMAC_RESP_TXPOWER(x, v) \
  34183. (BIT_CLEAR_R_WMAC_RESP_TXPOWER(x) | BIT_R_WMAC_RESP_TXPOWER(v))
  34184. #endif
  34185. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34186. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34187. #define BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE 18
  34188. #define BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE 0x3
  34189. #define BIT_WMAC_RESP_TXPOWER_OFFSET_TYPE(x) \
  34190. (((x) & BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE) \
  34191. << BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE)
  34192. #define BITS_WMAC_RESP_TXPOWER_OFFSET_TYPE \
  34193. (BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE \
  34194. << BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE)
  34195. #define BIT_CLEAR_WMAC_RESP_TXPOWER_OFFSET_TYPE(x) \
  34196. ((x) & (~BITS_WMAC_RESP_TXPOWER_OFFSET_TYPE))
  34197. #define BIT_GET_WMAC_RESP_TXPOWER_OFFSET_TYPE(x) \
  34198. (((x) >> BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE) & \
  34199. BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE)
  34200. #define BIT_SET_WMAC_RESP_TXPOWER_OFFSET_TYPE(x, v) \
  34201. (BIT_CLEAR_WMAC_RESP_TXPOWER_OFFSET_TYPE(x) | \
  34202. BIT_WMAC_RESP_TXPOWER_OFFSET_TYPE(v))
  34203. #endif
  34204. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  34205. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34206. #define BIT_SHIFT_RESP_TXAGC_B 13
  34207. #define BIT_MASK_RESP_TXAGC_B 0x1f
  34208. #define BIT_RESP_TXAGC_B(x) \
  34209. (((x) & BIT_MASK_RESP_TXAGC_B) << BIT_SHIFT_RESP_TXAGC_B)
  34210. #define BITS_RESP_TXAGC_B (BIT_MASK_RESP_TXAGC_B << BIT_SHIFT_RESP_TXAGC_B)
  34211. #define BIT_CLEAR_RESP_TXAGC_B(x) ((x) & (~BITS_RESP_TXAGC_B))
  34212. #define BIT_GET_RESP_TXAGC_B(x) \
  34213. (((x) >> BIT_SHIFT_RESP_TXAGC_B) & BIT_MASK_RESP_TXAGC_B)
  34214. #define BIT_SET_RESP_TXAGC_B(x, v) \
  34215. (BIT_CLEAR_RESP_TXAGC_B(x) | BIT_RESP_TXAGC_B(v))
  34216. #define BIT_SHIFT_RESP_TXAGC_A 8
  34217. #define BIT_MASK_RESP_TXAGC_A 0x1f
  34218. #define BIT_RESP_TXAGC_A(x) \
  34219. (((x) & BIT_MASK_RESP_TXAGC_A) << BIT_SHIFT_RESP_TXAGC_A)
  34220. #define BITS_RESP_TXAGC_A (BIT_MASK_RESP_TXAGC_A << BIT_SHIFT_RESP_TXAGC_A)
  34221. #define BIT_CLEAR_RESP_TXAGC_A(x) ((x) & (~BITS_RESP_TXAGC_A))
  34222. #define BIT_GET_RESP_TXAGC_A(x) \
  34223. (((x) >> BIT_SHIFT_RESP_TXAGC_A) & BIT_MASK_RESP_TXAGC_A)
  34224. #define BIT_SET_RESP_TXAGC_A(x, v) \
  34225. (BIT_CLEAR_RESP_TXAGC_A(x) | BIT_RESP_TXAGC_A(v))
  34226. #define BIT_RESP_ANTSEL_B BIT(7)
  34227. #define BIT_RESP_ANTSEL_A BIT(6)
  34228. #endif
  34229. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34230. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34231. #define BIT_SHIFT_WMAC_RESP_TXANT_V1 6
  34232. #define BIT_MASK_WMAC_RESP_TXANT_V1 0xfff
  34233. #define BIT_WMAC_RESP_TXANT_V1(x) \
  34234. (((x) & BIT_MASK_WMAC_RESP_TXANT_V1) << BIT_SHIFT_WMAC_RESP_TXANT_V1)
  34235. #define BITS_WMAC_RESP_TXANT_V1 \
  34236. (BIT_MASK_WMAC_RESP_TXANT_V1 << BIT_SHIFT_WMAC_RESP_TXANT_V1)
  34237. #define BIT_CLEAR_WMAC_RESP_TXANT_V1(x) ((x) & (~BITS_WMAC_RESP_TXANT_V1))
  34238. #define BIT_GET_WMAC_RESP_TXANT_V1(x) \
  34239. (((x) >> BIT_SHIFT_WMAC_RESP_TXANT_V1) & BIT_MASK_WMAC_RESP_TXANT_V1)
  34240. #define BIT_SET_WMAC_RESP_TXANT_V1(x, v) \
  34241. (BIT_CLEAR_WMAC_RESP_TXANT_V1(x) | BIT_WMAC_RESP_TXANT_V1(v))
  34242. #endif
  34243. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  34244. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34245. #define BIT_SHIFT_RESP_TXANT_CCK 4
  34246. #define BIT_MASK_RESP_TXANT_CCK 0x3
  34247. #define BIT_RESP_TXANT_CCK(x) \
  34248. (((x) & BIT_MASK_RESP_TXANT_CCK) << BIT_SHIFT_RESP_TXANT_CCK)
  34249. #define BITS_RESP_TXANT_CCK \
  34250. (BIT_MASK_RESP_TXANT_CCK << BIT_SHIFT_RESP_TXANT_CCK)
  34251. #define BIT_CLEAR_RESP_TXANT_CCK(x) ((x) & (~BITS_RESP_TXANT_CCK))
  34252. #define BIT_GET_RESP_TXANT_CCK(x) \
  34253. (((x) >> BIT_SHIFT_RESP_TXANT_CCK) & BIT_MASK_RESP_TXANT_CCK)
  34254. #define BIT_SET_RESP_TXANT_CCK(x, v) \
  34255. (BIT_CLEAR_RESP_TXANT_CCK(x) | BIT_RESP_TXANT_CCK(v))
  34256. #define BIT_SHIFT_RESP_TXANT_L 2
  34257. #define BIT_MASK_RESP_TXANT_L 0x3
  34258. #define BIT_RESP_TXANT_L(x) \
  34259. (((x) & BIT_MASK_RESP_TXANT_L) << BIT_SHIFT_RESP_TXANT_L)
  34260. #define BITS_RESP_TXANT_L (BIT_MASK_RESP_TXANT_L << BIT_SHIFT_RESP_TXANT_L)
  34261. #define BIT_CLEAR_RESP_TXANT_L(x) ((x) & (~BITS_RESP_TXANT_L))
  34262. #define BIT_GET_RESP_TXANT_L(x) \
  34263. (((x) >> BIT_SHIFT_RESP_TXANT_L) & BIT_MASK_RESP_TXANT_L)
  34264. #define BIT_SET_RESP_TXANT_L(x, v) \
  34265. (BIT_CLEAR_RESP_TXANT_L(x) | BIT_RESP_TXANT_L(v))
  34266. #define BIT_SHIFT_RESP_TXANT_HT 0
  34267. #define BIT_MASK_RESP_TXANT_HT 0x3
  34268. #define BIT_RESP_TXANT_HT(x) \
  34269. (((x) & BIT_MASK_RESP_TXANT_HT) << BIT_SHIFT_RESP_TXANT_HT)
  34270. #define BITS_RESP_TXANT_HT (BIT_MASK_RESP_TXANT_HT << BIT_SHIFT_RESP_TXANT_HT)
  34271. #define BIT_CLEAR_RESP_TXANT_HT(x) ((x) & (~BITS_RESP_TXANT_HT))
  34272. #define BIT_GET_RESP_TXANT_HT(x) \
  34273. (((x) >> BIT_SHIFT_RESP_TXANT_HT) & BIT_MASK_RESP_TXANT_HT)
  34274. #define BIT_SET_RESP_TXANT_HT(x, v) \
  34275. (BIT_CLEAR_RESP_TXANT_HT(x) | BIT_RESP_TXANT_HT(v))
  34276. #endif
  34277. #if (HALMAC_8192F_SUPPORT)
  34278. /* 2 REG_RESP_TXINFO_CFG (Offset 0x06D8) */
  34279. #define BIT_SHIFT_RESP_TXANT 0
  34280. #define BIT_MASK_RESP_TXANT 0x3ffff
  34281. #define BIT_RESP_TXANT(x) (((x) & BIT_MASK_RESP_TXANT) << BIT_SHIFT_RESP_TXANT)
  34282. #define BITS_RESP_TXANT (BIT_MASK_RESP_TXANT << BIT_SHIFT_RESP_TXANT)
  34283. #define BIT_CLEAR_RESP_TXANT(x) ((x) & (~BITS_RESP_TXANT))
  34284. #define BIT_GET_RESP_TXANT(x) \
  34285. (((x) >> BIT_SHIFT_RESP_TXANT) & BIT_MASK_RESP_TXANT)
  34286. #define BIT_SET_RESP_TXANT(x, v) (BIT_CLEAR_RESP_TXANT(x) | BIT_RESP_TXANT(v))
  34287. #endif
  34288. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  34289. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  34290. /* 2 REG_WMAC_RESP_TXINFO (Offset 0x06D8) */
  34291. #define BIT_SHIFT_WMAC_RESP_TXANT 0
  34292. #define BIT_MASK_WMAC_RESP_TXANT 0x3ffff
  34293. #define BIT_WMAC_RESP_TXANT(x) \
  34294. (((x) & BIT_MASK_WMAC_RESP_TXANT) << BIT_SHIFT_WMAC_RESP_TXANT)
  34295. #define BITS_WMAC_RESP_TXANT \
  34296. (BIT_MASK_WMAC_RESP_TXANT << BIT_SHIFT_WMAC_RESP_TXANT)
  34297. #define BIT_CLEAR_WMAC_RESP_TXANT(x) ((x) & (~BITS_WMAC_RESP_TXANT))
  34298. #define BIT_GET_WMAC_RESP_TXANT(x) \
  34299. (((x) >> BIT_SHIFT_WMAC_RESP_TXANT) & BIT_MASK_WMAC_RESP_TXANT)
  34300. #define BIT_SET_WMAC_RESP_TXANT(x, v) \
  34301. (BIT_CLEAR_WMAC_RESP_TXANT(x) | BIT_WMAC_RESP_TXANT(v))
  34302. #endif
  34303. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34304. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34305. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  34306. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34307. #define BIT_CTL_IDLE_CLR_CSI_RPT BIT(31)
  34308. #endif
  34309. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34310. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  34311. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  34312. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34313. #define BIT_WMAC_USE_NDPARATE BIT(30)
  34314. #define BIT_SHIFT_WMAC_CSI_RATE 24
  34315. #define BIT_MASK_WMAC_CSI_RATE 0x3f
  34316. #define BIT_WMAC_CSI_RATE(x) \
  34317. (((x) & BIT_MASK_WMAC_CSI_RATE) << BIT_SHIFT_WMAC_CSI_RATE)
  34318. #define BITS_WMAC_CSI_RATE (BIT_MASK_WMAC_CSI_RATE << BIT_SHIFT_WMAC_CSI_RATE)
  34319. #define BIT_CLEAR_WMAC_CSI_RATE(x) ((x) & (~BITS_WMAC_CSI_RATE))
  34320. #define BIT_GET_WMAC_CSI_RATE(x) \
  34321. (((x) >> BIT_SHIFT_WMAC_CSI_RATE) & BIT_MASK_WMAC_CSI_RATE)
  34322. #define BIT_SET_WMAC_CSI_RATE(x, v) \
  34323. (BIT_CLEAR_WMAC_CSI_RATE(x) | BIT_WMAC_CSI_RATE(v))
  34324. #define BIT_SHIFT_WMAC_RESP_TXRATE 16
  34325. #define BIT_MASK_WMAC_RESP_TXRATE 0xff
  34326. #define BIT_WMAC_RESP_TXRATE(x) \
  34327. (((x) & BIT_MASK_WMAC_RESP_TXRATE) << BIT_SHIFT_WMAC_RESP_TXRATE)
  34328. #define BITS_WMAC_RESP_TXRATE \
  34329. (BIT_MASK_WMAC_RESP_TXRATE << BIT_SHIFT_WMAC_RESP_TXRATE)
  34330. #define BIT_CLEAR_WMAC_RESP_TXRATE(x) ((x) & (~BITS_WMAC_RESP_TXRATE))
  34331. #define BIT_GET_WMAC_RESP_TXRATE(x) \
  34332. (((x) >> BIT_SHIFT_WMAC_RESP_TXRATE) & BIT_MASK_WMAC_RESP_TXRATE)
  34333. #define BIT_SET_WMAC_RESP_TXRATE(x, v) \
  34334. (BIT_CLEAR_WMAC_RESP_TXRATE(x) | BIT_WMAC_RESP_TXRATE(v))
  34335. #endif
  34336. #if (HALMAC_8198F_SUPPORT)
  34337. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34338. #define BIT_WMAC_CSI_RATE_FORCE_EN BIT(15)
  34339. #endif
  34340. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  34341. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34342. #define BIT_CSI_FORCE_RATE_EN BIT(15)
  34343. #endif
  34344. #if (HALMAC_8198F_SUPPORT)
  34345. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34346. #define BIT_SHIFT_WMAC_CSI_RSC_FORCE 13
  34347. #define BIT_MASK_WMAC_CSI_RSC_FORCE 0x3
  34348. #define BIT_WMAC_CSI_RSC_FORCE(x) \
  34349. (((x) & BIT_MASK_WMAC_CSI_RSC_FORCE) << BIT_SHIFT_WMAC_CSI_RSC_FORCE)
  34350. #define BITS_WMAC_CSI_RSC_FORCE \
  34351. (BIT_MASK_WMAC_CSI_RSC_FORCE << BIT_SHIFT_WMAC_CSI_RSC_FORCE)
  34352. #define BIT_CLEAR_WMAC_CSI_RSC_FORCE(x) ((x) & (~BITS_WMAC_CSI_RSC_FORCE))
  34353. #define BIT_GET_WMAC_CSI_RSC_FORCE(x) \
  34354. (((x) >> BIT_SHIFT_WMAC_CSI_RSC_FORCE) & BIT_MASK_WMAC_CSI_RSC_FORCE)
  34355. #define BIT_SET_WMAC_CSI_RSC_FORCE(x, v) \
  34356. (BIT_CLEAR_WMAC_CSI_RSC_FORCE(x) | BIT_WMAC_CSI_RSC_FORCE(v))
  34357. #endif
  34358. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34359. HALMAC_8822C_SUPPORT)
  34360. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34361. #define BIT_SHIFT_CSI_RSC 13
  34362. #define BIT_MASK_CSI_RSC 0x3
  34363. #define BIT_CSI_RSC(x) (((x) & BIT_MASK_CSI_RSC) << BIT_SHIFT_CSI_RSC)
  34364. #define BITS_CSI_RSC (BIT_MASK_CSI_RSC << BIT_SHIFT_CSI_RSC)
  34365. #define BIT_CLEAR_CSI_RSC(x) ((x) & (~BITS_CSI_RSC))
  34366. #define BIT_GET_CSI_RSC(x) (((x) >> BIT_SHIFT_CSI_RSC) & BIT_MASK_CSI_RSC)
  34367. #define BIT_SET_CSI_RSC(x, v) (BIT_CLEAR_CSI_RSC(x) | BIT_CSI_RSC(v))
  34368. #endif
  34369. #if (HALMAC_8198F_SUPPORT)
  34370. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34371. #define BIT_WMAC_CSI_GID_SEL BIT(12)
  34372. #endif
  34373. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34374. HALMAC_8822C_SUPPORT)
  34375. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34376. #define BIT_CSI_GID_SEL BIT(12)
  34377. #endif
  34378. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  34379. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34380. #define BIT_RDCSIMD_FLAG_TRIG_SEL BIT(11)
  34381. #define BIT_NDPVLD_POS_RST_FFPTR_DIS_V1 BIT(10)
  34382. #endif
  34383. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  34384. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  34385. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34386. #define BIT_NDPVLD_PROTECT_RDRDY_DIS BIT(9)
  34387. #endif
  34388. #if (HALMAC_8198F_SUPPORT)
  34389. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34390. #define BIT_CSIRD_EMPTY_APPZERO BIT(8)
  34391. #endif
  34392. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34393. HALMAC_8822C_SUPPORT)
  34394. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34395. #define BIT_RDCSI_EMPTY_APPZERO BIT(8)
  34396. #endif
  34397. #if (HALMAC_8198F_SUPPORT)
  34398. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34399. #define BIT_WMC_CSI_RATE_FB_EN BIT(7)
  34400. #endif
  34401. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34402. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34403. #define BIT_CSI_RATE_FB_EN BIT(7)
  34404. #endif
  34405. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  34406. HALMAC_8822C_SUPPORT)
  34407. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34408. #define BIT_RXFIFO_WRPTR_WO_CHKSUM BIT(6)
  34409. #endif
  34410. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34411. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  34412. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34413. #define BIT_BBPSF_MPDUCHKEN BIT(5)
  34414. #endif
  34415. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34416. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  34417. HALMAC_8822B_SUPPORT)
  34418. /* 2 REG_BBPSF_CTRL (Offset 0x06DC) */
  34419. #define BIT_BBPSF_MHCHKEN BIT(4)
  34420. #define BIT_BBPSF_ERRCHKEN BIT(3)
  34421. #define BIT_SHIFT_BBPSF_ERRTHR 0
  34422. #define BIT_MASK_BBPSF_ERRTHR 0x7
  34423. #define BIT_BBPSF_ERRTHR(x) \
  34424. (((x) & BIT_MASK_BBPSF_ERRTHR) << BIT_SHIFT_BBPSF_ERRTHR)
  34425. #define BITS_BBPSF_ERRTHR (BIT_MASK_BBPSF_ERRTHR << BIT_SHIFT_BBPSF_ERRTHR)
  34426. #define BIT_CLEAR_BBPSF_ERRTHR(x) ((x) & (~BITS_BBPSF_ERRTHR))
  34427. #define BIT_GET_BBPSF_ERRTHR(x) \
  34428. (((x) >> BIT_SHIFT_BBPSF_ERRTHR) & BIT_MASK_BBPSF_ERRTHR)
  34429. #define BIT_SET_BBPSF_ERRTHR(x, v) \
  34430. (BIT_CLEAR_BBPSF_ERRTHR(x) | BIT_BBPSF_ERRTHR(v))
  34431. #endif
  34432. #if (HALMAC_8192F_SUPPORT)
  34433. /* 2 REG_RESP_TXINFO_RATE (Offset 0x06DE) */
  34434. #define BIT_USE_NDPARATE BIT(14)
  34435. #define BIT_SHIFT_CSI_RATE 8
  34436. #define BIT_MASK_CSI_RATE 0x3f
  34437. #define BIT_CSI_RATE(x) (((x) & BIT_MASK_CSI_RATE) << BIT_SHIFT_CSI_RATE)
  34438. #define BITS_CSI_RATE (BIT_MASK_CSI_RATE << BIT_SHIFT_CSI_RATE)
  34439. #define BIT_CLEAR_CSI_RATE(x) ((x) & (~BITS_CSI_RATE))
  34440. #define BIT_GET_CSI_RATE(x) (((x) >> BIT_SHIFT_CSI_RATE) & BIT_MASK_CSI_RATE)
  34441. #define BIT_SET_CSI_RATE(x, v) (BIT_CLEAR_CSI_RATE(x) | BIT_CSI_RATE(v))
  34442. #define BIT_SHIFT_RESP_TXRATE 0
  34443. #define BIT_MASK_RESP_TXRATE 0xff
  34444. #define BIT_RESP_TXRATE(x) \
  34445. (((x) & BIT_MASK_RESP_TXRATE) << BIT_SHIFT_RESP_TXRATE)
  34446. #define BITS_RESP_TXRATE (BIT_MASK_RESP_TXRATE << BIT_SHIFT_RESP_TXRATE)
  34447. #define BIT_CLEAR_RESP_TXRATE(x) ((x) & (~BITS_RESP_TXRATE))
  34448. #define BIT_GET_RESP_TXRATE(x) \
  34449. (((x) >> BIT_SHIFT_RESP_TXRATE) & BIT_MASK_RESP_TXRATE)
  34450. #define BIT_SET_RESP_TXRATE(x, v) \
  34451. (BIT_CLEAR_RESP_TXRATE(x) | BIT_RESP_TXRATE(v))
  34452. #endif
  34453. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34454. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34455. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  34456. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  34457. /* 2 REG_P2P_RX_BCN_NOA (Offset 0x06E0) */
  34458. #define BIT_NOA_PARSER_EN BIT(15)
  34459. #endif
  34460. #if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34461. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)
  34462. /* 2 REG_P2P_RX_BCN_NOA (Offset 0x06E0) */
  34463. #define BIT_BSSID_SEL BIT(14)
  34464. #endif
  34465. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  34466. HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34467. /* 2 REG_P2P_RX_BCN_NOA (Offset 0x06E0) */
  34468. #define BIT_SHIFT_BSSID_SEL_V1 12
  34469. #define BIT_MASK_BSSID_SEL_V1 0x7
  34470. #define BIT_BSSID_SEL_V1(x) \
  34471. (((x) & BIT_MASK_BSSID_SEL_V1) << BIT_SHIFT_BSSID_SEL_V1)
  34472. #define BITS_BSSID_SEL_V1 (BIT_MASK_BSSID_SEL_V1 << BIT_SHIFT_BSSID_SEL_V1)
  34473. #define BIT_CLEAR_BSSID_SEL_V1(x) ((x) & (~BITS_BSSID_SEL_V1))
  34474. #define BIT_GET_BSSID_SEL_V1(x) \
  34475. (((x) >> BIT_SHIFT_BSSID_SEL_V1) & BIT_MASK_BSSID_SEL_V1)
  34476. #define BIT_SET_BSSID_SEL_V1(x, v) \
  34477. (BIT_CLEAR_BSSID_SEL_V1(x) | BIT_BSSID_SEL_V1(v))
  34478. #endif
  34479. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34480. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34481. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  34482. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  34483. /* 2 REG_P2P_RX_BCN_NOA (Offset 0x06E0) */
  34484. #define BIT_SHIFT_P2P_OUI_TYPE 0
  34485. #define BIT_MASK_P2P_OUI_TYPE 0xff
  34486. #define BIT_P2P_OUI_TYPE(x) \
  34487. (((x) & BIT_MASK_P2P_OUI_TYPE) << BIT_SHIFT_P2P_OUI_TYPE)
  34488. #define BITS_P2P_OUI_TYPE (BIT_MASK_P2P_OUI_TYPE << BIT_SHIFT_P2P_OUI_TYPE)
  34489. #define BIT_CLEAR_P2P_OUI_TYPE(x) ((x) & (~BITS_P2P_OUI_TYPE))
  34490. #define BIT_GET_P2P_OUI_TYPE(x) \
  34491. (((x) >> BIT_SHIFT_P2P_OUI_TYPE) & BIT_MASK_P2P_OUI_TYPE)
  34492. #define BIT_SET_P2P_OUI_TYPE(x, v) \
  34493. (BIT_CLEAR_P2P_OUI_TYPE(x) | BIT_P2P_OUI_TYPE(v))
  34494. #endif
  34495. #if (HALMAC_8192F_SUPPORT)
  34496. /* 2 REG_P2P_RX_BCN_NOA (Offset 0x06E0) */
  34497. #define BIT_SHIFT_INFO_TXRPT_OFFSET_V1 0
  34498. #define BIT_MASK_INFO_TXRPT_OFFSET_V1 0x1fff
  34499. #define BIT_INFO_TXRPT_OFFSET_V1(x) \
  34500. (((x) & BIT_MASK_INFO_TXRPT_OFFSET_V1) \
  34501. << BIT_SHIFT_INFO_TXRPT_OFFSET_V1)
  34502. #define BITS_INFO_TXRPT_OFFSET_V1 \
  34503. (BIT_MASK_INFO_TXRPT_OFFSET_V1 << BIT_SHIFT_INFO_TXRPT_OFFSET_V1)
  34504. #define BIT_CLEAR_INFO_TXRPT_OFFSET_V1(x) ((x) & (~BITS_INFO_TXRPT_OFFSET_V1))
  34505. #define BIT_GET_INFO_TXRPT_OFFSET_V1(x) \
  34506. (((x) >> BIT_SHIFT_INFO_TXRPT_OFFSET_V1) & \
  34507. BIT_MASK_INFO_TXRPT_OFFSET_V1)
  34508. #define BIT_SET_INFO_TXRPT_OFFSET_V1(x, v) \
  34509. (BIT_CLEAR_INFO_TXRPT_OFFSET_V1(x) | BIT_INFO_TXRPT_OFFSET_V1(v))
  34510. #endif
  34511. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34512. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  34513. HALMAC_8881A_SUPPORT)
  34514. /* 2 REG_ASSOCIATED_BFMER0_INFO (Offset 0x06E4) */
  34515. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0 0
  34516. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0 0xffffffffffffL
  34517. #define BIT_R_WMAC_SOUNDING_RXADD_R0(x) \
  34518. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0) \
  34519. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0)
  34520. #define BITS_R_WMAC_SOUNDING_RXADD_R0 \
  34521. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R0 \
  34522. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0)
  34523. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0(x) \
  34524. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0))
  34525. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R0(x) \
  34526. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0) & \
  34527. BIT_MASK_R_WMAC_SOUNDING_RXADD_R0)
  34528. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R0(x, v) \
  34529. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0(x) | \
  34530. BIT_R_WMAC_SOUNDING_RXADD_R0(v))
  34531. #endif
  34532. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  34533. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  34534. /* 2 REG_ASSOCIATED_BFMER0_INFO (Offset 0x06E4) */
  34535. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1 0
  34536. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1 0xffffffffL
  34537. #define BIT_R_WMAC_SOUNDING_RXADD_R0_V1(x) \
  34538. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1) \
  34539. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1)
  34540. #define BITS_R_WMAC_SOUNDING_RXADD_R0_V1 \
  34541. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1 \
  34542. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1)
  34543. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_V1(x) \
  34544. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_V1))
  34545. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_V1(x) \
  34546. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1) & \
  34547. BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1)
  34548. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_V1(x, v) \
  34549. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_V1(x) | \
  34550. BIT_R_WMAC_SOUNDING_RXADD_R0_V1(v))
  34551. #endif
  34552. #if (HALMAC_8192F_SUPPORT)
  34553. /* 2 REG_SOUNDING_CFG1 (Offset 0x06E8) */
  34554. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H 0
  34555. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H 0xffff
  34556. #define BIT_R_WMAC_SOUNDING_RXADD_R0_H(x) \
  34557. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H) \
  34558. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H)
  34559. #define BITS_R_WMAC_SOUNDING_RXADD_R0_H \
  34560. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H \
  34561. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H)
  34562. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H(x) \
  34563. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_H))
  34564. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_H(x) \
  34565. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H) & \
  34566. BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H)
  34567. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_H(x, v) \
  34568. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H(x) | \
  34569. BIT_R_WMAC_SOUNDING_RXADD_R0_H(v))
  34570. #endif
  34571. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34572. HALMAC_8822C_SUPPORT)
  34573. /* 2 REG_ASSOCIATED_BFMER0_INFO_H (Offset 0x06E8) */
  34574. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1 0
  34575. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1 0xffff
  34576. #define BIT_R_WMAC_SOUNDING_RXADD_R0_H_V1(x) \
  34577. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1) \
  34578. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1)
  34579. #define BITS_R_WMAC_SOUNDING_RXADD_R0_H_V1 \
  34580. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1 \
  34581. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1)
  34582. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H_V1(x) \
  34583. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_H_V1))
  34584. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_H_V1(x) \
  34585. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1) & \
  34586. BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1)
  34587. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_H_V1(x, v) \
  34588. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H_V1(x) | \
  34589. BIT_R_WMAC_SOUNDING_RXADD_R0_H_V1(v))
  34590. #endif
  34591. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34592. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  34593. HALMAC_8881A_SUPPORT)
  34594. /* 2 REG_ASSOCIATED_BFMER1_INFO (Offset 0x06EC) */
  34595. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1 0
  34596. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1 0xffffffffffffL
  34597. #define BIT_R_WMAC_SOUNDING_RXADD_R1(x) \
  34598. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1) \
  34599. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1)
  34600. #define BITS_R_WMAC_SOUNDING_RXADD_R1 \
  34601. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1 \
  34602. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1)
  34603. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1(x) \
  34604. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1))
  34605. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1(x) \
  34606. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1) & \
  34607. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1)
  34608. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1(x, v) \
  34609. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1(x) | \
  34610. BIT_R_WMAC_SOUNDING_RXADD_R1(v))
  34611. #endif
  34612. #if (HALMAC_8192F_SUPPORT)
  34613. /* 2 REG_SOUNDING_CFG2 (Offset 0x06EC) */
  34614. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V2 0
  34615. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V2 0xffffffffL
  34616. #define BIT_R_WMAC_SOUNDING_RXADD_R1_V2(x) \
  34617. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V2) \
  34618. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V2)
  34619. #define BITS_R_WMAC_SOUNDING_RXADD_R1_V2 \
  34620. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V2 \
  34621. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V2)
  34622. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V2(x) \
  34623. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_V2))
  34624. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_V2(x) \
  34625. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V2) & \
  34626. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V2)
  34627. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_V2(x, v) \
  34628. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V2(x) | \
  34629. BIT_R_WMAC_SOUNDING_RXADD_R1_V2(v))
  34630. #endif
  34631. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34632. HALMAC_8822C_SUPPORT)
  34633. /* 2 REG_ASSOCIATED_BFMER1_INFO (Offset 0x06EC) */
  34634. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1 0
  34635. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1 0xffffffffL
  34636. #define BIT_R_WMAC_SOUNDING_RXADD_R1_V1(x) \
  34637. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1) \
  34638. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1)
  34639. #define BITS_R_WMAC_SOUNDING_RXADD_R1_V1 \
  34640. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1 \
  34641. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1)
  34642. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V1(x) \
  34643. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_V1))
  34644. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_V1(x) \
  34645. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1) & \
  34646. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1)
  34647. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_V1(x, v) \
  34648. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V1(x) | \
  34649. BIT_R_WMAC_SOUNDING_RXADD_R1_V1(v))
  34650. #endif
  34651. #if (HALMAC_8192F_SUPPORT)
  34652. /* 2 REG_SOUNDING_CFG3 (Offset 0x06F0) */
  34653. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V2 0
  34654. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V2 0xffff
  34655. #define BIT_R_WMAC_SOUNDING_RXADD_R1_H_V2(x) \
  34656. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V2) \
  34657. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V2)
  34658. #define BITS_R_WMAC_SOUNDING_RXADD_R1_H_V2 \
  34659. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V2 \
  34660. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V2)
  34661. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V2(x) \
  34662. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_H_V2))
  34663. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_H_V2(x) \
  34664. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V2) & \
  34665. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V2)
  34666. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_H_V2(x, v) \
  34667. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V2(x) | \
  34668. BIT_R_WMAC_SOUNDING_RXADD_R1_H_V2(v))
  34669. #endif
  34670. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  34671. HALMAC_8822C_SUPPORT)
  34672. /* 2 REG_ASSOCIATED_BFMER1_INFO_H (Offset 0x06F0) */
  34673. #define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1 0
  34674. #define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1 0xffff
  34675. #define BIT_R_WMAC_SOUNDING_RXADD_R1_H_V1(x) \
  34676. (((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1) \
  34677. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1)
  34678. #define BITS_R_WMAC_SOUNDING_RXADD_R1_H_V1 \
  34679. (BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1 \
  34680. << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1)
  34681. #define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V1(x) \
  34682. ((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_H_V1))
  34683. #define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_H_V1(x) \
  34684. (((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1) & \
  34685. BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1)
  34686. #define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_H_V1(x, v) \
  34687. (BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V1(x) | \
  34688. BIT_R_WMAC_SOUNDING_RXADD_R1_H_V1(v))
  34689. #endif
  34690. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  34691. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34692. #define BIT_SHIFT_R_WMAC_BFINFO_40M_1 13
  34693. #define BIT_MASK_R_WMAC_BFINFO_40M_1 0x7fff
  34694. #define BIT_R_WMAC_BFINFO_40M_1(x) \
  34695. (((x) & BIT_MASK_R_WMAC_BFINFO_40M_1) << BIT_SHIFT_R_WMAC_BFINFO_40M_1)
  34696. #define BITS_R_WMAC_BFINFO_40M_1 \
  34697. (BIT_MASK_R_WMAC_BFINFO_40M_1 << BIT_SHIFT_R_WMAC_BFINFO_40M_1)
  34698. #define BIT_CLEAR_R_WMAC_BFINFO_40M_1(x) ((x) & (~BITS_R_WMAC_BFINFO_40M_1))
  34699. #define BIT_GET_R_WMAC_BFINFO_40M_1(x) \
  34700. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_40M_1) & BIT_MASK_R_WMAC_BFINFO_40M_1)
  34701. #define BIT_SET_R_WMAC_BFINFO_40M_1(x, v) \
  34702. (BIT_CLEAR_R_WMAC_BFINFO_40M_1(x) | BIT_R_WMAC_BFINFO_40M_1(v))
  34703. #endif
  34704. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34705. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34706. #define BIT_SHIFT_WMAC_RESP_ANTD 12
  34707. #define BIT_MASK_WMAC_RESP_ANTD 0xf
  34708. #define BIT_WMAC_RESP_ANTD(x) \
  34709. (((x) & BIT_MASK_WMAC_RESP_ANTD) << BIT_SHIFT_WMAC_RESP_ANTD)
  34710. #define BITS_WMAC_RESP_ANTD \
  34711. (BIT_MASK_WMAC_RESP_ANTD << BIT_SHIFT_WMAC_RESP_ANTD)
  34712. #define BIT_CLEAR_WMAC_RESP_ANTD(x) ((x) & (~BITS_WMAC_RESP_ANTD))
  34713. #define BIT_GET_WMAC_RESP_ANTD(x) \
  34714. (((x) >> BIT_SHIFT_WMAC_RESP_ANTD) & BIT_MASK_WMAC_RESP_ANTD)
  34715. #define BIT_SET_WMAC_RESP_ANTD(x, v) \
  34716. (BIT_CLEAR_WMAC_RESP_ANTD(x) | BIT_WMAC_RESP_ANTD(v))
  34717. #endif
  34718. #if (HALMAC_8192F_SUPPORT)
  34719. /* 2 REG_ANTCD_INFO (Offset 0x06F8) */
  34720. #define BIT_RESP_SMOOTH BIT(8)
  34721. #endif
  34722. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34723. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34724. #define BIT_SHIFT_WMAC_RESP_ANTC 8
  34725. #define BIT_MASK_WMAC_RESP_ANTC 0xf
  34726. #define BIT_WMAC_RESP_ANTC(x) \
  34727. (((x) & BIT_MASK_WMAC_RESP_ANTC) << BIT_SHIFT_WMAC_RESP_ANTC)
  34728. #define BITS_WMAC_RESP_ANTC \
  34729. (BIT_MASK_WMAC_RESP_ANTC << BIT_SHIFT_WMAC_RESP_ANTC)
  34730. #define BIT_CLEAR_WMAC_RESP_ANTC(x) ((x) & (~BITS_WMAC_RESP_ANTC))
  34731. #define BIT_GET_WMAC_RESP_ANTC(x) \
  34732. (((x) >> BIT_SHIFT_WMAC_RESP_ANTC) & BIT_MASK_WMAC_RESP_ANTC)
  34733. #define BIT_SET_WMAC_RESP_ANTC(x, v) \
  34734. (BIT_CLEAR_WMAC_RESP_ANTC(x) | BIT_WMAC_RESP_ANTC(v))
  34735. #endif
  34736. #if (HALMAC_8192F_SUPPORT)
  34737. /* 2 REG_ANTCD_INFO (Offset 0x06F8) */
  34738. #define BIT_SHIFT_POWER_STAGE2_NORETRY 6
  34739. #define BIT_MASK_POWER_STAGE2_NORETRY 0x3
  34740. #define BIT_POWER_STAGE2_NORETRY(x) \
  34741. (((x) & BIT_MASK_POWER_STAGE2_NORETRY) \
  34742. << BIT_SHIFT_POWER_STAGE2_NORETRY)
  34743. #define BITS_POWER_STAGE2_NORETRY \
  34744. (BIT_MASK_POWER_STAGE2_NORETRY << BIT_SHIFT_POWER_STAGE2_NORETRY)
  34745. #define BIT_CLEAR_POWER_STAGE2_NORETRY(x) ((x) & (~BITS_POWER_STAGE2_NORETRY))
  34746. #define BIT_GET_POWER_STAGE2_NORETRY(x) \
  34747. (((x) >> BIT_SHIFT_POWER_STAGE2_NORETRY) & \
  34748. BIT_MASK_POWER_STAGE2_NORETRY)
  34749. #define BIT_SET_POWER_STAGE2_NORETRY(x, v) \
  34750. (BIT_CLEAR_POWER_STAGE2_NORETRY(x) | BIT_POWER_STAGE2_NORETRY(v))
  34751. #define BIT_SHIFT_POWER_STAGE1_NORETRY 4
  34752. #define BIT_MASK_POWER_STAGE1_NORETRY 0x3
  34753. #define BIT_POWER_STAGE1_NORETRY(x) \
  34754. (((x) & BIT_MASK_POWER_STAGE1_NORETRY) \
  34755. << BIT_SHIFT_POWER_STAGE1_NORETRY)
  34756. #define BITS_POWER_STAGE1_NORETRY \
  34757. (BIT_MASK_POWER_STAGE1_NORETRY << BIT_SHIFT_POWER_STAGE1_NORETRY)
  34758. #define BIT_CLEAR_POWER_STAGE1_NORETRY(x) ((x) & (~BITS_POWER_STAGE1_NORETRY))
  34759. #define BIT_GET_POWER_STAGE1_NORETRY(x) \
  34760. (((x) >> BIT_SHIFT_POWER_STAGE1_NORETRY) & \
  34761. BIT_MASK_POWER_STAGE1_NORETRY)
  34762. #define BIT_SET_POWER_STAGE1_NORETRY(x, v) \
  34763. (BIT_CLEAR_POWER_STAGE1_NORETRY(x) | BIT_POWER_STAGE1_NORETRY(v))
  34764. #endif
  34765. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34766. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34767. #define BIT_SHIFT_WMAC_RESP_ANTB 4
  34768. #define BIT_MASK_WMAC_RESP_ANTB 0xf
  34769. #define BIT_WMAC_RESP_ANTB(x) \
  34770. (((x) & BIT_MASK_WMAC_RESP_ANTB) << BIT_SHIFT_WMAC_RESP_ANTB)
  34771. #define BITS_WMAC_RESP_ANTB \
  34772. (BIT_MASK_WMAC_RESP_ANTB << BIT_SHIFT_WMAC_RESP_ANTB)
  34773. #define BIT_CLEAR_WMAC_RESP_ANTB(x) ((x) & (~BITS_WMAC_RESP_ANTB))
  34774. #define BIT_GET_WMAC_RESP_ANTB(x) \
  34775. (((x) >> BIT_SHIFT_WMAC_RESP_ANTB) & BIT_MASK_WMAC_RESP_ANTB)
  34776. #define BIT_SET_WMAC_RESP_ANTB(x, v) \
  34777. (BIT_CLEAR_WMAC_RESP_ANTB(x) | BIT_WMAC_RESP_ANTB(v))
  34778. #endif
  34779. #if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)
  34780. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34781. #define BIT_SHIFT_R_WMAC_BFINFO_40M_0 0
  34782. #define BIT_MASK_R_WMAC_BFINFO_40M_0 0xfff
  34783. #define BIT_R_WMAC_BFINFO_40M_0(x) \
  34784. (((x) & BIT_MASK_R_WMAC_BFINFO_40M_0) << BIT_SHIFT_R_WMAC_BFINFO_40M_0)
  34785. #define BITS_R_WMAC_BFINFO_40M_0 \
  34786. (BIT_MASK_R_WMAC_BFINFO_40M_0 << BIT_SHIFT_R_WMAC_BFINFO_40M_0)
  34787. #define BIT_CLEAR_R_WMAC_BFINFO_40M_0(x) ((x) & (~BITS_R_WMAC_BFINFO_40M_0))
  34788. #define BIT_GET_R_WMAC_BFINFO_40M_0(x) \
  34789. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_40M_0) & BIT_MASK_R_WMAC_BFINFO_40M_0)
  34790. #define BIT_SET_R_WMAC_BFINFO_40M_0(x, v) \
  34791. (BIT_CLEAR_R_WMAC_BFINFO_40M_0(x) | BIT_R_WMAC_BFINFO_40M_0(v))
  34792. #endif
  34793. #if (HALMAC_8192F_SUPPORT)
  34794. /* 2 REG_ANTCD_INFO (Offset 0x06F8) */
  34795. #define BIT_SHIFT_RESP_ANTCD 0
  34796. #define BIT_MASK_RESP_ANTCD 0xf
  34797. #define BIT_RESP_ANTCD(x) (((x) & BIT_MASK_RESP_ANTCD) << BIT_SHIFT_RESP_ANTCD)
  34798. #define BITS_RESP_ANTCD (BIT_MASK_RESP_ANTCD << BIT_SHIFT_RESP_ANTCD)
  34799. #define BIT_CLEAR_RESP_ANTCD(x) ((x) & (~BITS_RESP_ANTCD))
  34800. #define BIT_GET_RESP_ANTCD(x) \
  34801. (((x) >> BIT_SHIFT_RESP_ANTCD) & BIT_MASK_RESP_ANTCD)
  34802. #define BIT_SET_RESP_ANTCD(x, v) (BIT_CLEAR_RESP_ANTCD(x) | BIT_RESP_ANTCD(v))
  34803. #endif
  34804. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  34805. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  34806. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34807. #define BIT_SHIFT_WMAC_RESP_ANTCD 0
  34808. #define BIT_MASK_WMAC_RESP_ANTCD 0xf
  34809. #define BIT_WMAC_RESP_ANTCD(x) \
  34810. (((x) & BIT_MASK_WMAC_RESP_ANTCD) << BIT_SHIFT_WMAC_RESP_ANTCD)
  34811. #define BITS_WMAC_RESP_ANTCD \
  34812. (BIT_MASK_WMAC_RESP_ANTCD << BIT_SHIFT_WMAC_RESP_ANTCD)
  34813. #define BIT_CLEAR_WMAC_RESP_ANTCD(x) ((x) & (~BITS_WMAC_RESP_ANTCD))
  34814. #define BIT_GET_WMAC_RESP_ANTCD(x) \
  34815. (((x) >> BIT_SHIFT_WMAC_RESP_ANTCD) & BIT_MASK_WMAC_RESP_ANTCD)
  34816. #define BIT_SET_WMAC_RESP_ANTCD(x, v) \
  34817. (BIT_CLEAR_WMAC_RESP_ANTCD(x) | BIT_WMAC_RESP_ANTCD(v))
  34818. #endif
  34819. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  34820. /* 2 REG_TX_CSI_RPT_PARAM_BW40 (Offset 0x06F8) */
  34821. #define BIT_SHIFT_WMAC_RESP_ANTA 0
  34822. #define BIT_MASK_WMAC_RESP_ANTA 0xf
  34823. #define BIT_WMAC_RESP_ANTA(x) \
  34824. (((x) & BIT_MASK_WMAC_RESP_ANTA) << BIT_SHIFT_WMAC_RESP_ANTA)
  34825. #define BITS_WMAC_RESP_ANTA \
  34826. (BIT_MASK_WMAC_RESP_ANTA << BIT_SHIFT_WMAC_RESP_ANTA)
  34827. #define BIT_CLEAR_WMAC_RESP_ANTA(x) ((x) & (~BITS_WMAC_RESP_ANTA))
  34828. #define BIT_GET_WMAC_RESP_ANTA(x) \
  34829. (((x) >> BIT_SHIFT_WMAC_RESP_ANTA) & BIT_MASK_WMAC_RESP_ANTA)
  34830. #define BIT_SET_WMAC_RESP_ANTA(x, v) \
  34831. (BIT_CLEAR_WMAC_RESP_ANTA(x) | BIT_WMAC_RESP_ANTA(v))
  34832. #endif
  34833. #if (HALMAC_8198F_SUPPORT)
  34834. /* 2 REG_CSI_RRSR_V1 (Offset 0x06FC) */
  34835. #define BIT_WMAC_CSI_LDPC_EN BIT(29)
  34836. #define BIT_WMAC_CSI_STBC_EN BIT(28)
  34837. #endif
  34838. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34839. HALMAC_8881A_SUPPORT)
  34840. /* 2 REG_TX_CSI_RPT_PARAM_BW80 (Offset 0x06FC) */
  34841. #define BIT_SHIFT_R_WMAC_BFINFO_80M_1 16
  34842. #define BIT_MASK_R_WMAC_BFINFO_80M_1 0xfff
  34843. #define BIT_R_WMAC_BFINFO_80M_1(x) \
  34844. (((x) & BIT_MASK_R_WMAC_BFINFO_80M_1) << BIT_SHIFT_R_WMAC_BFINFO_80M_1)
  34845. #define BITS_R_WMAC_BFINFO_80M_1 \
  34846. (BIT_MASK_R_WMAC_BFINFO_80M_1 << BIT_SHIFT_R_WMAC_BFINFO_80M_1)
  34847. #define BIT_CLEAR_R_WMAC_BFINFO_80M_1(x) ((x) & (~BITS_R_WMAC_BFINFO_80M_1))
  34848. #define BIT_GET_R_WMAC_BFINFO_80M_1(x) \
  34849. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_80M_1) & BIT_MASK_R_WMAC_BFINFO_80M_1)
  34850. #define BIT_SET_R_WMAC_BFINFO_80M_1(x, v) \
  34851. (BIT_CLEAR_R_WMAC_BFINFO_80M_1(x) | BIT_R_WMAC_BFINFO_80M_1(v))
  34852. #endif
  34853. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  34854. /* 2 REG_CSI_PTR (Offset 0x06FC) */
  34855. #define BIT_SHIFT_CSI_RADDR_LATCH_V2 16
  34856. #define BIT_MASK_CSI_RADDR_LATCH_V2 0xffff
  34857. #define BIT_CSI_RADDR_LATCH_V2(x) \
  34858. (((x) & BIT_MASK_CSI_RADDR_LATCH_V2) << BIT_SHIFT_CSI_RADDR_LATCH_V2)
  34859. #define BITS_CSI_RADDR_LATCH_V2 \
  34860. (BIT_MASK_CSI_RADDR_LATCH_V2 << BIT_SHIFT_CSI_RADDR_LATCH_V2)
  34861. #define BIT_CLEAR_CSI_RADDR_LATCH_V2(x) ((x) & (~BITS_CSI_RADDR_LATCH_V2))
  34862. #define BIT_GET_CSI_RADDR_LATCH_V2(x) \
  34863. (((x) >> BIT_SHIFT_CSI_RADDR_LATCH_V2) & BIT_MASK_CSI_RADDR_LATCH_V2)
  34864. #define BIT_SET_CSI_RADDR_LATCH_V2(x, v) \
  34865. (BIT_CLEAR_CSI_RADDR_LATCH_V2(x) | BIT_CSI_RADDR_LATCH_V2(v))
  34866. #endif
  34867. #if (HALMAC_8198F_SUPPORT)
  34868. /* 2 REG_CSI_RRSR_V1 (Offset 0x06FC) */
  34869. #define BIT_SHIFT_WMAC_CSI_RRSC_BITMAP 4
  34870. #define BIT_MASK_WMAC_CSI_RRSC_BITMAP 0xffffff
  34871. #define BIT_WMAC_CSI_RRSC_BITMAP(x) \
  34872. (((x) & BIT_MASK_WMAC_CSI_RRSC_BITMAP) \
  34873. << BIT_SHIFT_WMAC_CSI_RRSC_BITMAP)
  34874. #define BITS_WMAC_CSI_RRSC_BITMAP \
  34875. (BIT_MASK_WMAC_CSI_RRSC_BITMAP << BIT_SHIFT_WMAC_CSI_RRSC_BITMAP)
  34876. #define BIT_CLEAR_WMAC_CSI_RRSC_BITMAP(x) ((x) & (~BITS_WMAC_CSI_RRSC_BITMAP))
  34877. #define BIT_GET_WMAC_CSI_RRSC_BITMAP(x) \
  34878. (((x) >> BIT_SHIFT_WMAC_CSI_RRSC_BITMAP) & \
  34879. BIT_MASK_WMAC_CSI_RRSC_BITMAP)
  34880. #define BIT_SET_WMAC_CSI_RRSC_BITMAP(x, v) \
  34881. (BIT_CLEAR_WMAC_CSI_RRSC_BITMAP(x) | BIT_WMAC_CSI_RRSC_BITMAP(v))
  34882. #endif
  34883. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  34884. HALMAC_8881A_SUPPORT)
  34885. /* 2 REG_TX_CSI_RPT_PARAM_BW80 (Offset 0x06FC) */
  34886. #define BIT_SHIFT_R_WMAC_BFINFO_80M_0 0
  34887. #define BIT_MASK_R_WMAC_BFINFO_80M_0 0xfff
  34888. #define BIT_R_WMAC_BFINFO_80M_0(x) \
  34889. (((x) & BIT_MASK_R_WMAC_BFINFO_80M_0) << BIT_SHIFT_R_WMAC_BFINFO_80M_0)
  34890. #define BITS_R_WMAC_BFINFO_80M_0 \
  34891. (BIT_MASK_R_WMAC_BFINFO_80M_0 << BIT_SHIFT_R_WMAC_BFINFO_80M_0)
  34892. #define BIT_CLEAR_R_WMAC_BFINFO_80M_0(x) ((x) & (~BITS_R_WMAC_BFINFO_80M_0))
  34893. #define BIT_GET_R_WMAC_BFINFO_80M_0(x) \
  34894. (((x) >> BIT_SHIFT_R_WMAC_BFINFO_80M_0) & BIT_MASK_R_WMAC_BFINFO_80M_0)
  34895. #define BIT_SET_R_WMAC_BFINFO_80M_0(x, v) \
  34896. (BIT_CLEAR_R_WMAC_BFINFO_80M_0(x) | BIT_R_WMAC_BFINFO_80M_0(v))
  34897. #endif
  34898. #if (HALMAC_8198F_SUPPORT)
  34899. /* 2 REG_CSI_RRSR_V1 (Offset 0x06FC) */
  34900. #define BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH 0
  34901. #define BIT_MASK_WMAC_CSI_OFDM_LEN_TH 0xf
  34902. #define BIT_WMAC_CSI_OFDM_LEN_TH(x) \
  34903. (((x) & BIT_MASK_WMAC_CSI_OFDM_LEN_TH) \
  34904. << BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH)
  34905. #define BITS_WMAC_CSI_OFDM_LEN_TH \
  34906. (BIT_MASK_WMAC_CSI_OFDM_LEN_TH << BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH)
  34907. #define BIT_CLEAR_WMAC_CSI_OFDM_LEN_TH(x) ((x) & (~BITS_WMAC_CSI_OFDM_LEN_TH))
  34908. #define BIT_GET_WMAC_CSI_OFDM_LEN_TH(x) \
  34909. (((x) >> BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH) & \
  34910. BIT_MASK_WMAC_CSI_OFDM_LEN_TH)
  34911. #define BIT_SET_WMAC_CSI_OFDM_LEN_TH(x, v) \
  34912. (BIT_CLEAR_WMAC_CSI_OFDM_LEN_TH(x) | BIT_WMAC_CSI_OFDM_LEN_TH(v))
  34913. #define BIT_SHIFT_CSI_PARA_RDY_DLYCNT 0
  34914. #define BIT_MASK_CSI_PARA_RDY_DLYCNT 0x1f
  34915. #define BIT_CSI_PARA_RDY_DLYCNT(x) \
  34916. (((x) & BIT_MASK_CSI_PARA_RDY_DLYCNT) << BIT_SHIFT_CSI_PARA_RDY_DLYCNT)
  34917. #define BITS_CSI_PARA_RDY_DLYCNT \
  34918. (BIT_MASK_CSI_PARA_RDY_DLYCNT << BIT_SHIFT_CSI_PARA_RDY_DLYCNT)
  34919. #define BIT_CLEAR_CSI_PARA_RDY_DLYCNT(x) ((x) & (~BITS_CSI_PARA_RDY_DLYCNT))
  34920. #define BIT_GET_CSI_PARA_RDY_DLYCNT(x) \
  34921. (((x) >> BIT_SHIFT_CSI_PARA_RDY_DLYCNT) & BIT_MASK_CSI_PARA_RDY_DLYCNT)
  34922. #define BIT_SET_CSI_PARA_RDY_DLYCNT(x, v) \
  34923. (BIT_CLEAR_CSI_PARA_RDY_DLYCNT(x) | BIT_CSI_PARA_RDY_DLYCNT(v))
  34924. #endif
  34925. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  34926. /* 2 REG_CSI_PTR (Offset 0x06FC) */
  34927. #define BIT_SHIFT_CSI_WADDR_LATCH_V2 0
  34928. #define BIT_MASK_CSI_WADDR_LATCH_V2 0xffff
  34929. #define BIT_CSI_WADDR_LATCH_V2(x) \
  34930. (((x) & BIT_MASK_CSI_WADDR_LATCH_V2) << BIT_SHIFT_CSI_WADDR_LATCH_V2)
  34931. #define BITS_CSI_WADDR_LATCH_V2 \
  34932. (BIT_MASK_CSI_WADDR_LATCH_V2 << BIT_SHIFT_CSI_WADDR_LATCH_V2)
  34933. #define BIT_CLEAR_CSI_WADDR_LATCH_V2(x) ((x) & (~BITS_CSI_WADDR_LATCH_V2))
  34934. #define BIT_GET_CSI_WADDR_LATCH_V2(x) \
  34935. (((x) >> BIT_SHIFT_CSI_WADDR_LATCH_V2) & BIT_MASK_CSI_WADDR_LATCH_V2)
  34936. #define BIT_SET_CSI_WADDR_LATCH_V2(x, v) \
  34937. (BIT_CLEAR_CSI_WADDR_LATCH_V2(x) | BIT_CSI_WADDR_LATCH_V2(v))
  34938. #endif
  34939. #if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  34940. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || \
  34941. HALMAC_8881A_SUPPORT)
  34942. /* 2 REG_MACID1 (Offset 0x0700) */
  34943. #define BIT_SHIFT_MACID1 0
  34944. #define BIT_MASK_MACID1 0xffffffffffffL
  34945. #define BIT_MACID1(x) (((x) & BIT_MASK_MACID1) << BIT_SHIFT_MACID1)
  34946. #define BITS_MACID1 (BIT_MASK_MACID1 << BIT_SHIFT_MACID1)
  34947. #define BIT_CLEAR_MACID1(x) ((x) & (~BITS_MACID1))
  34948. #define BIT_GET_MACID1(x) (((x) >> BIT_SHIFT_MACID1) & BIT_MASK_MACID1)
  34949. #define BIT_SET_MACID1(x, v) (BIT_CLEAR_MACID1(x) | BIT_MACID1(v))
  34950. #endif
  34951. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  34952. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  34953. /* 2 REG_MACID1 (Offset 0x0700) */
  34954. #define BIT_SHIFT_MACID1_0 0
  34955. #define BIT_MASK_MACID1_0 0xffffffffL
  34956. #define BIT_MACID1_0(x) (((x) & BIT_MASK_MACID1_0) << BIT_SHIFT_MACID1_0)
  34957. #define BITS_MACID1_0 (BIT_MASK_MACID1_0 << BIT_SHIFT_MACID1_0)
  34958. #define BIT_CLEAR_MACID1_0(x) ((x) & (~BITS_MACID1_0))
  34959. #define BIT_GET_MACID1_0(x) (((x) >> BIT_SHIFT_MACID1_0) & BIT_MASK_MACID1_0)
  34960. #define BIT_SET_MACID1_0(x, v) (BIT_CLEAR_MACID1_0(x) | BIT_MACID1_0(v))
  34961. /* 2 REG_MACID1_1 (Offset 0x0704) */
  34962. #define BIT_SHIFT_MACID1_1 0
  34963. #define BIT_MASK_MACID1_1 0xffff
  34964. #define BIT_MACID1_1(x) (((x) & BIT_MASK_MACID1_1) << BIT_SHIFT_MACID1_1)
  34965. #define BITS_MACID1_1 (BIT_MASK_MACID1_1 << BIT_SHIFT_MACID1_1)
  34966. #define BIT_CLEAR_MACID1_1(x) ((x) & (~BITS_MACID1_1))
  34967. #define BIT_GET_MACID1_1(x) (((x) >> BIT_SHIFT_MACID1_1) & BIT_MASK_MACID1_1)
  34968. #define BIT_SET_MACID1_1(x, v) (BIT_CLEAR_MACID1_1(x) | BIT_MACID1_1(v))
  34969. /* 2 REG_BSSID1 (Offset 0x0708) */
  34970. #define BIT_SHIFT_BSSID1_0 0
  34971. #define BIT_MASK_BSSID1_0 0xffffffffL
  34972. #define BIT_BSSID1_0(x) (((x) & BIT_MASK_BSSID1_0) << BIT_SHIFT_BSSID1_0)
  34973. #define BITS_BSSID1_0 (BIT_MASK_BSSID1_0 << BIT_SHIFT_BSSID1_0)
  34974. #define BIT_CLEAR_BSSID1_0(x) ((x) & (~BITS_BSSID1_0))
  34975. #define BIT_GET_BSSID1_0(x) (((x) >> BIT_SHIFT_BSSID1_0) & BIT_MASK_BSSID1_0)
  34976. #define BIT_SET_BSSID1_0(x, v) (BIT_CLEAR_BSSID1_0(x) | BIT_BSSID1_0(v))
  34977. #endif
  34978. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  34979. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  34980. /* 2 REG_BSSID1 (Offset 0x0708) */
  34981. #define BIT_SHIFT_BSSID1 0
  34982. #define BIT_MASK_BSSID1 0xffffffffffffL
  34983. #define BIT_BSSID1(x) (((x) & BIT_MASK_BSSID1) << BIT_SHIFT_BSSID1)
  34984. #define BITS_BSSID1 (BIT_MASK_BSSID1 << BIT_SHIFT_BSSID1)
  34985. #define BIT_CLEAR_BSSID1(x) ((x) & (~BITS_BSSID1))
  34986. #define BIT_GET_BSSID1(x) (((x) >> BIT_SHIFT_BSSID1) & BIT_MASK_BSSID1)
  34987. #define BIT_SET_BSSID1(x, v) (BIT_CLEAR_BSSID1(x) | BIT_BSSID1(v))
  34988. #endif
  34989. #if (HALMAC_8814B_SUPPORT)
  34990. /* 2 REG_PCIE_CFG_FORCE_LINK_L (Offset 0x0709) */
  34991. #define BIT_PCIE_CFG_FORCE_EN BIT(7)
  34992. /* 2 REG_PCIE_CFG_FORCE_LINK_H (Offset 0x070A) */
  34993. #define BIT_PCIE_CFG_TRXACT_DIS_IDLE_TIMER BIT(6)
  34994. #define BIT_SHIFT_PCIE_CFG_LINK_STATE 0
  34995. #define BIT_MASK_PCIE_CFG_LINK_STATE 0x3f
  34996. #define BIT_PCIE_CFG_LINK_STATE(x) \
  34997. (((x) & BIT_MASK_PCIE_CFG_LINK_STATE) << BIT_SHIFT_PCIE_CFG_LINK_STATE)
  34998. #define BITS_PCIE_CFG_LINK_STATE \
  34999. (BIT_MASK_PCIE_CFG_LINK_STATE << BIT_SHIFT_PCIE_CFG_LINK_STATE)
  35000. #define BIT_CLEAR_PCIE_CFG_LINK_STATE(x) ((x) & (~BITS_PCIE_CFG_LINK_STATE))
  35001. #define BIT_GET_PCIE_CFG_LINK_STATE(x) \
  35002. (((x) >> BIT_SHIFT_PCIE_CFG_LINK_STATE) & BIT_MASK_PCIE_CFG_LINK_STATE)
  35003. #define BIT_SET_PCIE_CFG_LINK_STATE(x, v) \
  35004. (BIT_CLEAR_PCIE_CFG_LINK_STATE(x) | BIT_PCIE_CFG_LINK_STATE(v))
  35005. #endif
  35006. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  35007. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  35008. /* 2 REG_BSSID1_1 (Offset 0x070C) */
  35009. #define BIT_SHIFT_BSSID1_1 0
  35010. #define BIT_MASK_BSSID1_1 0xffff
  35011. #define BIT_BSSID1_1(x) (((x) & BIT_MASK_BSSID1_1) << BIT_SHIFT_BSSID1_1)
  35012. #define BITS_BSSID1_1 (BIT_MASK_BSSID1_1 << BIT_SHIFT_BSSID1_1)
  35013. #define BIT_CLEAR_BSSID1_1(x) ((x) & (~BITS_BSSID1_1))
  35014. #define BIT_GET_BSSID1_1(x) (((x) >> BIT_SHIFT_BSSID1_1) & BIT_MASK_BSSID1_1)
  35015. #define BIT_SET_BSSID1_1(x, v) (BIT_CLEAR_BSSID1_1(x) | BIT_BSSID1_1(v))
  35016. #endif
  35017. #if (HALMAC_8814B_SUPPORT)
  35018. /* 2 REG_PCIE_CFG_DEFAULT_ACK_FREQUENCY (Offset 0x070C) */
  35019. #define BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY 0
  35020. #define BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY 0xff
  35021. #define BIT_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x) \
  35022. (((x) & BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY) \
  35023. << BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
  35024. #define BITS_PCIE_CFG_DEFAULT_ACK_FREQUENCY \
  35025. (BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY \
  35026. << BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
  35027. #define BIT_CLEAR_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x) \
  35028. ((x) & (~BITS_PCIE_CFG_DEFAULT_ACK_FREQUENCY))
  35029. #define BIT_GET_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x) \
  35030. (((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY) & \
  35031. BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
  35032. #define BIT_SET_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x, v) \
  35033. (BIT_CLEAR_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x) | \
  35034. BIT_PCIE_CFG_DEFAULT_ACK_FREQUENCY(v))
  35035. /* 2 REG_PCIE_CFG_CX_NFTS (Offset 0x070D) */
  35036. #define BIT_SHIFT_PCIE_CFG_CX_NFTS 0
  35037. #define BIT_MASK_PCIE_CFG_CX_NFTS 0xff
  35038. #define BIT_PCIE_CFG_CX_NFTS(x) \
  35039. (((x) & BIT_MASK_PCIE_CFG_CX_NFTS) << BIT_SHIFT_PCIE_CFG_CX_NFTS)
  35040. #define BITS_PCIE_CFG_CX_NFTS \
  35041. (BIT_MASK_PCIE_CFG_CX_NFTS << BIT_SHIFT_PCIE_CFG_CX_NFTS)
  35042. #define BIT_CLEAR_PCIE_CFG_CX_NFTS(x) ((x) & (~BITS_PCIE_CFG_CX_NFTS))
  35043. #define BIT_GET_PCIE_CFG_CX_NFTS(x) \
  35044. (((x) >> BIT_SHIFT_PCIE_CFG_CX_NFTS) & BIT_MASK_PCIE_CFG_CX_NFTS)
  35045. #define BIT_SET_PCIE_CFG_CX_NFTS(x, v) \
  35046. (BIT_CLEAR_PCIE_CFG_CX_NFTS(x) | BIT_PCIE_CFG_CX_NFTS(v))
  35047. /* 2 REG_PCIE_CFG_DEFAULT_ENTR_LATENCY (Offset 0x070F) */
  35048. #define BIT_PCIE_CFG_REAL_EN_L0S BIT(7)
  35049. #define BIT_PCIE_CFG_ENTER_ASPM BIT(6)
  35050. #define BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY 3
  35051. #define BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY 0x7
  35052. #define BIT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x) \
  35053. (((x) & BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY) \
  35054. << BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
  35055. #define BITS_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY \
  35056. (BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY \
  35057. << BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
  35058. #define BIT_CLEAR_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x) \
  35059. ((x) & (~BITS_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY))
  35060. #define BIT_GET_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x) \
  35061. (((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY) & \
  35062. BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
  35063. #define BIT_SET_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x, v) \
  35064. (BIT_CLEAR_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x) | \
  35065. BIT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(v))
  35066. #define BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY 0
  35067. #define BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY 0x7
  35068. #define BIT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x) \
  35069. (((x) & BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY) \
  35070. << BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
  35071. #define BITS_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY \
  35072. (BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY \
  35073. << BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
  35074. #define BIT_CLEAR_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x) \
  35075. ((x) & (~BITS_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY))
  35076. #define BIT_GET_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x) \
  35077. (((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY) & \
  35078. BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
  35079. #define BIT_SET_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x, v) \
  35080. (BIT_CLEAR_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x) | \
  35081. BIT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(v))
  35082. #endif
  35083. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35084. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35085. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35086. /* 2 REG_BCN_PSR_RPT1 (Offset 0x0710) */
  35087. #define BIT_SHIFT_DTIM_CNT1 24
  35088. #define BIT_MASK_DTIM_CNT1 0xff
  35089. #define BIT_DTIM_CNT1(x) (((x) & BIT_MASK_DTIM_CNT1) << BIT_SHIFT_DTIM_CNT1)
  35090. #define BITS_DTIM_CNT1 (BIT_MASK_DTIM_CNT1 << BIT_SHIFT_DTIM_CNT1)
  35091. #define BIT_CLEAR_DTIM_CNT1(x) ((x) & (~BITS_DTIM_CNT1))
  35092. #define BIT_GET_DTIM_CNT1(x) (((x) >> BIT_SHIFT_DTIM_CNT1) & BIT_MASK_DTIM_CNT1)
  35093. #define BIT_SET_DTIM_CNT1(x, v) (BIT_CLEAR_DTIM_CNT1(x) | BIT_DTIM_CNT1(v))
  35094. #define BIT_SHIFT_DTIM_PERIOD1 16
  35095. #define BIT_MASK_DTIM_PERIOD1 0xff
  35096. #define BIT_DTIM_PERIOD1(x) \
  35097. (((x) & BIT_MASK_DTIM_PERIOD1) << BIT_SHIFT_DTIM_PERIOD1)
  35098. #define BITS_DTIM_PERIOD1 (BIT_MASK_DTIM_PERIOD1 << BIT_SHIFT_DTIM_PERIOD1)
  35099. #define BIT_CLEAR_DTIM_PERIOD1(x) ((x) & (~BITS_DTIM_PERIOD1))
  35100. #define BIT_GET_DTIM_PERIOD1(x) \
  35101. (((x) >> BIT_SHIFT_DTIM_PERIOD1) & BIT_MASK_DTIM_PERIOD1)
  35102. #define BIT_SET_DTIM_PERIOD1(x, v) \
  35103. (BIT_CLEAR_DTIM_PERIOD1(x) | BIT_DTIM_PERIOD1(v))
  35104. #define BIT_DTIM1 BIT(15)
  35105. #define BIT_TIM1 BIT(14)
  35106. #endif
  35107. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35108. /* 2 REG_BCN_PSR_RPT1 (Offset 0x0710) */
  35109. #define BIT_BCN_VALID_V2 BIT(13)
  35110. #endif
  35111. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35112. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35113. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35114. /* 2 REG_BCN_PSR_RPT1 (Offset 0x0710) */
  35115. #define BIT_SHIFT_PS_AID_1 0
  35116. #define BIT_MASK_PS_AID_1 0x7ff
  35117. #define BIT_PS_AID_1(x) (((x) & BIT_MASK_PS_AID_1) << BIT_SHIFT_PS_AID_1)
  35118. #define BITS_PS_AID_1 (BIT_MASK_PS_AID_1 << BIT_SHIFT_PS_AID_1)
  35119. #define BIT_CLEAR_PS_AID_1(x) ((x) & (~BITS_PS_AID_1))
  35120. #define BIT_GET_PS_AID_1(x) (((x) >> BIT_SHIFT_PS_AID_1) & BIT_MASK_PS_AID_1)
  35121. #define BIT_SET_PS_AID_1(x, v) (BIT_CLEAR_PS_AID_1(x) | BIT_PS_AID_1(v))
  35122. #endif
  35123. #if (HALMAC_8814B_SUPPORT)
  35124. /* 2 REG_PCIE_CFG_L1_MISC_SEL (Offset 0x0711) */
  35125. #define BIT_PCIE_CFG_L1_RIDLE_SEL BIT(6)
  35126. #define BIT_PCIE_CFG_L1_TIMEOUT_SEL BIT(5)
  35127. #define BIT_PCIE_CFG_L1_EIDLE_SEL BIT(4)
  35128. #define BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE 0
  35129. #define BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE 0xf
  35130. #define BIT_PCIE_CFG_DEFAULT_LINK_RATE(x) \
  35131. (((x) & BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE) \
  35132. << BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE)
  35133. #define BITS_PCIE_CFG_DEFAULT_LINK_RATE \
  35134. (BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE \
  35135. << BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE)
  35136. #define BIT_CLEAR_PCIE_CFG_DEFAULT_LINK_RATE(x) \
  35137. ((x) & (~BITS_PCIE_CFG_DEFAULT_LINK_RATE))
  35138. #define BIT_GET_PCIE_CFG_DEFAULT_LINK_RATE(x) \
  35139. (((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE) & \
  35140. BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE)
  35141. #define BIT_SET_PCIE_CFG_DEFAULT_LINK_RATE(x, v) \
  35142. (BIT_CLEAR_PCIE_CFG_DEFAULT_LINK_RATE(x) | \
  35143. BIT_PCIE_CFG_DEFAULT_LINK_RATE(v))
  35144. #endif
  35145. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35146. /* 2 REG_ASSOCIATED_BFMEE_SEL (Offset 0x0714) */
  35147. #define BIT_SHIFT_RD_BF_SEL 29
  35148. #define BIT_MASK_RD_BF_SEL 0x7
  35149. #define BIT_RD_BF_SEL(x) (((x) & BIT_MASK_RD_BF_SEL) << BIT_SHIFT_RD_BF_SEL)
  35150. #define BITS_RD_BF_SEL (BIT_MASK_RD_BF_SEL << BIT_SHIFT_RD_BF_SEL)
  35151. #define BIT_CLEAR_RD_BF_SEL(x) ((x) & (~BITS_RD_BF_SEL))
  35152. #define BIT_GET_RD_BF_SEL(x) (((x) >> BIT_SHIFT_RD_BF_SEL) & BIT_MASK_RD_BF_SEL)
  35153. #define BIT_SET_RD_BF_SEL(x, v) (BIT_CLEAR_RD_BF_SEL(x) | BIT_RD_BF_SEL(v))
  35154. #endif
  35155. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35156. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35157. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35158. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35159. #define BIT_SHIFT_NDP_RX_STANDBY_TIMER 24
  35160. #define BIT_MASK_NDP_RX_STANDBY_TIMER 0xff
  35161. #define BIT_NDP_RX_STANDBY_TIMER(x) \
  35162. (((x) & BIT_MASK_NDP_RX_STANDBY_TIMER) \
  35163. << BIT_SHIFT_NDP_RX_STANDBY_TIMER)
  35164. #define BITS_NDP_RX_STANDBY_TIMER \
  35165. (BIT_MASK_NDP_RX_STANDBY_TIMER << BIT_SHIFT_NDP_RX_STANDBY_TIMER)
  35166. #define BIT_CLEAR_NDP_RX_STANDBY_TIMER(x) ((x) & (~BITS_NDP_RX_STANDBY_TIMER))
  35167. #define BIT_GET_NDP_RX_STANDBY_TIMER(x) \
  35168. (((x) >> BIT_SHIFT_NDP_RX_STANDBY_TIMER) & \
  35169. BIT_MASK_NDP_RX_STANDBY_TIMER)
  35170. #define BIT_SET_NDP_RX_STANDBY_TIMER(x, v) \
  35171. (BIT_CLEAR_NDP_RX_STANDBY_TIMER(x) | BIT_NDP_RX_STANDBY_TIMER(v))
  35172. #endif
  35173. #if (HALMAC_8198F_SUPPORT)
  35174. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35175. #define BIT_WMAC_CHK_RPTPOLL_A2_DIS BIT(23)
  35176. #endif
  35177. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35178. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35179. #define BIT_R_WMAC_CHK_RPTPOLL_A2_DIS BIT(23)
  35180. #endif
  35181. #if (HALMAC_8198F_SUPPORT)
  35182. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35183. #define BIT_WMAC_CHK_UCNDPA_A2_DIS BIT(22)
  35184. #endif
  35185. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35186. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35187. #define BIT_R_WMAC_CHK_UCNDPA_A2_DIS BIT(22)
  35188. #endif
  35189. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  35190. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35191. #define BIT_ANTTRN_SWITCH BIT(19)
  35192. #endif
  35193. #if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  35194. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)
  35195. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35196. #define BIT_SHIFT_CSI_RPT_OFFSET_HT 16
  35197. #define BIT_MASK_CSI_RPT_OFFSET_HT 0xff
  35198. #define BIT_CSI_RPT_OFFSET_HT(x) \
  35199. (((x) & BIT_MASK_CSI_RPT_OFFSET_HT) << BIT_SHIFT_CSI_RPT_OFFSET_HT)
  35200. #define BITS_CSI_RPT_OFFSET_HT \
  35201. (BIT_MASK_CSI_RPT_OFFSET_HT << BIT_SHIFT_CSI_RPT_OFFSET_HT)
  35202. #define BIT_CLEAR_CSI_RPT_OFFSET_HT(x) ((x) & (~BITS_CSI_RPT_OFFSET_HT))
  35203. #define BIT_GET_CSI_RPT_OFFSET_HT(x) \
  35204. (((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT) & BIT_MASK_CSI_RPT_OFFSET_HT)
  35205. #define BIT_SET_CSI_RPT_OFFSET_HT(x, v) \
  35206. (BIT_CLEAR_CSI_RPT_OFFSET_HT(x) | BIT_CSI_RPT_OFFSET_HT(v))
  35207. #endif
  35208. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8822B_SUPPORT || \
  35209. HALMAC_8822C_SUPPORT)
  35210. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35211. #define BIT_SHIFT_CSI_RPT_OFFSET_HT_V1 16
  35212. #define BIT_MASK_CSI_RPT_OFFSET_HT_V1 0x3f
  35213. #define BIT_CSI_RPT_OFFSET_HT_V1(x) \
  35214. (((x) & BIT_MASK_CSI_RPT_OFFSET_HT_V1) \
  35215. << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1)
  35216. #define BITS_CSI_RPT_OFFSET_HT_V1 \
  35217. (BIT_MASK_CSI_RPT_OFFSET_HT_V1 << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1)
  35218. #define BIT_CLEAR_CSI_RPT_OFFSET_HT_V1(x) ((x) & (~BITS_CSI_RPT_OFFSET_HT_V1))
  35219. #define BIT_GET_CSI_RPT_OFFSET_HT_V1(x) \
  35220. (((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT_V1) & \
  35221. BIT_MASK_CSI_RPT_OFFSET_HT_V1)
  35222. #define BIT_SET_CSI_RPT_OFFSET_HT_V1(x, v) \
  35223. (BIT_CLEAR_CSI_RPT_OFFSET_HT_V1(x) | BIT_CSI_RPT_OFFSET_HT_V1(v))
  35224. #endif
  35225. #if (HALMAC_8198F_SUPPORT)
  35226. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35227. #define BIT_WMAC_OFFSET_RPTPOLL_EN BIT(15)
  35228. #endif
  35229. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35230. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35231. #define BIT_R_WMAC_OFFSET_RPTPOLL_EN BIT(15)
  35232. #endif
  35233. #if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  35234. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35235. #define BIT_VHTNDP_RPTPOLL_CSI_STR_OFFSET_SEL BIT(15)
  35236. #endif
  35237. #if (HALMAC_8198F_SUPPORT)
  35238. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35239. #define BIT_WMAC_CSI_CHKSUM_DIS BIT(14)
  35240. #endif
  35241. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  35242. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35243. #define BIT_R_WMAC_CSI_CHKSUM_DIS BIT(14)
  35244. #endif
  35245. #if (HALMAC_8822B_SUPPORT)
  35246. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35247. #define BIT_NDPVLD_POS_RST_FFPTR_DIS BIT(14)
  35248. #endif
  35249. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT)
  35250. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35251. #define BIT_SHIFT_R_WMAC_VHT_CATEGORY 8
  35252. #define BIT_MASK_R_WMAC_VHT_CATEGORY 0xff
  35253. #define BIT_R_WMAC_VHT_CATEGORY(x) \
  35254. (((x) & BIT_MASK_R_WMAC_VHT_CATEGORY) << BIT_SHIFT_R_WMAC_VHT_CATEGORY)
  35255. #define BITS_R_WMAC_VHT_CATEGORY \
  35256. (BIT_MASK_R_WMAC_VHT_CATEGORY << BIT_SHIFT_R_WMAC_VHT_CATEGORY)
  35257. #define BIT_CLEAR_R_WMAC_VHT_CATEGORY(x) ((x) & (~BITS_R_WMAC_VHT_CATEGORY))
  35258. #define BIT_GET_R_WMAC_VHT_CATEGORY(x) \
  35259. (((x) >> BIT_SHIFT_R_WMAC_VHT_CATEGORY) & BIT_MASK_R_WMAC_VHT_CATEGORY)
  35260. #define BIT_SET_R_WMAC_VHT_CATEGORY(x, v) \
  35261. (BIT_CLEAR_R_WMAC_VHT_CATEGORY(x) | BIT_R_WMAC_VHT_CATEGORY(v))
  35262. #endif
  35263. #if (HALMAC_8197F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35264. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35265. #define BIT_SHIFT_CSI_RPT_OFFSET_VHT 8
  35266. #define BIT_MASK_CSI_RPT_OFFSET_VHT 0xff
  35267. #define BIT_CSI_RPT_OFFSET_VHT(x) \
  35268. (((x) & BIT_MASK_CSI_RPT_OFFSET_VHT) << BIT_SHIFT_CSI_RPT_OFFSET_VHT)
  35269. #define BITS_CSI_RPT_OFFSET_VHT \
  35270. (BIT_MASK_CSI_RPT_OFFSET_VHT << BIT_SHIFT_CSI_RPT_OFFSET_VHT)
  35271. #define BIT_CLEAR_CSI_RPT_OFFSET_VHT(x) ((x) & (~BITS_CSI_RPT_OFFSET_VHT))
  35272. #define BIT_GET_CSI_RPT_OFFSET_VHT(x) \
  35273. (((x) >> BIT_SHIFT_CSI_RPT_OFFSET_VHT) & BIT_MASK_CSI_RPT_OFFSET_VHT)
  35274. #define BIT_SET_CSI_RPT_OFFSET_VHT(x, v) \
  35275. (BIT_CLEAR_CSI_RPT_OFFSET_VHT(x) | BIT_CSI_RPT_OFFSET_VHT(v))
  35276. #endif
  35277. #if (HALMAC_8198F_SUPPORT)
  35278. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35279. #define BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1 8
  35280. #define BIT_MASK_CSI_RPT_OFFSET_VHT_V1 0x3f
  35281. #define BIT_CSI_RPT_OFFSET_VHT_V1(x) \
  35282. (((x) & BIT_MASK_CSI_RPT_OFFSET_VHT_V1) \
  35283. << BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1)
  35284. #define BITS_CSI_RPT_OFFSET_VHT_V1 \
  35285. (BIT_MASK_CSI_RPT_OFFSET_VHT_V1 << BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1)
  35286. #define BIT_CLEAR_CSI_RPT_OFFSET_VHT_V1(x) ((x) & (~BITS_CSI_RPT_OFFSET_VHT_V1))
  35287. #define BIT_GET_CSI_RPT_OFFSET_VHT_V1(x) \
  35288. (((x) >> BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1) & \
  35289. BIT_MASK_CSI_RPT_OFFSET_VHT_V1)
  35290. #define BIT_SET_CSI_RPT_OFFSET_VHT_V1(x, v) \
  35291. (BIT_CLEAR_CSI_RPT_OFFSET_VHT_V1(x) | BIT_CSI_RPT_OFFSET_VHT_V1(v))
  35292. #endif
  35293. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35294. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35295. #define BIT_SHIFT_R_WMAC_VHT_CATEGORY_V1 8
  35296. #define BIT_MASK_R_WMAC_VHT_CATEGORY_V1 0x3f
  35297. #define BIT_R_WMAC_VHT_CATEGORY_V1(x) \
  35298. (((x) & BIT_MASK_R_WMAC_VHT_CATEGORY_V1) \
  35299. << BIT_SHIFT_R_WMAC_VHT_CATEGORY_V1)
  35300. #define BITS_R_WMAC_VHT_CATEGORY_V1 \
  35301. (BIT_MASK_R_WMAC_VHT_CATEGORY_V1 << BIT_SHIFT_R_WMAC_VHT_CATEGORY_V1)
  35302. #define BIT_CLEAR_R_WMAC_VHT_CATEGORY_V1(x) \
  35303. ((x) & (~BITS_R_WMAC_VHT_CATEGORY_V1))
  35304. #define BIT_GET_R_WMAC_VHT_CATEGORY_V1(x) \
  35305. (((x) >> BIT_SHIFT_R_WMAC_VHT_CATEGORY_V1) & \
  35306. BIT_MASK_R_WMAC_VHT_CATEGORY_V1)
  35307. #define BIT_SET_R_WMAC_VHT_CATEGORY_V1(x, v) \
  35308. (BIT_CLEAR_R_WMAC_VHT_CATEGORY_V1(x) | BIT_R_WMAC_VHT_CATEGORY_V1(v))
  35309. #endif
  35310. #if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  35311. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35312. #define BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1 8
  35313. #define BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1 0x3f
  35314. #define BIT_R_CSI_RPT_OFFSET_VHT_V1(x) \
  35315. (((x) & BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1) \
  35316. << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1)
  35317. #define BITS_R_CSI_RPT_OFFSET_VHT_V1 \
  35318. (BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1 << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1)
  35319. #define BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1(x) \
  35320. ((x) & (~BITS_R_CSI_RPT_OFFSET_VHT_V1))
  35321. #define BIT_GET_R_CSI_RPT_OFFSET_VHT_V1(x) \
  35322. (((x) >> BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1) & \
  35323. BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1)
  35324. #define BIT_SET_R_CSI_RPT_OFFSET_VHT_V1(x, v) \
  35325. (BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1(x) | BIT_R_CSI_RPT_OFFSET_VHT_V1(v))
  35326. #endif
  35327. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35328. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35329. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35330. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35331. #define BIT_R_WMAC_USE_NSTS BIT(7)
  35332. #define BIT_R_DISABLE_CHECK_VHTSIGB_CRC BIT(6)
  35333. #endif
  35334. #if (HALMAC_8814B_SUPPORT)
  35335. /* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */
  35336. #define BIT_PCIE_CFG_REAL_PTM_ENABLE BIT(6)
  35337. #endif
  35338. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35339. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35340. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35341. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35342. #define BIT_R_DISABLE_CHECK_VHTSIGA_CRC BIT(5)
  35343. #endif
  35344. #if (HALMAC_8814B_SUPPORT)
  35345. /* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */
  35346. #define BIT_PCIE_CFG_REAL_EN_L1SUB BIT(5)
  35347. #endif
  35348. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35349. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35350. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35351. /* 2 REG_SND_PTCL_CTRL (Offset 0x0718) */
  35352. #define BIT_R_WMAC_BFPARAM_SEL BIT(4)
  35353. #define BIT_R_WMAC_CSISEQ_SEL BIT(3)
  35354. #define BIT_R_WMAC_CSI_WITHHTC_EN BIT(2)
  35355. #define BIT_R_WMAC_HT_NDPA_EN BIT(1)
  35356. #define BIT_R_WMAC_VHT_NDPA_EN BIT(0)
  35357. #endif
  35358. #if (HALMAC_8814B_SUPPORT)
  35359. /* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */
  35360. #define BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM 0
  35361. #define BIT_MASK_PCIE_CFG_MAX_FUNC_NUM 0x7
  35362. #define BIT_PCIE_CFG_MAX_FUNC_NUM(x) \
  35363. (((x) & BIT_MASK_PCIE_CFG_MAX_FUNC_NUM) \
  35364. << BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM)
  35365. #define BITS_PCIE_CFG_MAX_FUNC_NUM \
  35366. (BIT_MASK_PCIE_CFG_MAX_FUNC_NUM << BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM)
  35367. #define BIT_CLEAR_PCIE_CFG_MAX_FUNC_NUM(x) ((x) & (~BITS_PCIE_CFG_MAX_FUNC_NUM))
  35368. #define BIT_GET_PCIE_CFG_MAX_FUNC_NUM(x) \
  35369. (((x) >> BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM) & \
  35370. BIT_MASK_PCIE_CFG_MAX_FUNC_NUM)
  35371. #define BIT_SET_PCIE_CFG_MAX_FUNC_NUM(x, v) \
  35372. (BIT_CLEAR_PCIE_CFG_MAX_FUNC_NUM(x) | BIT_PCIE_CFG_MAX_FUNC_NUM(v))
  35373. /* 2 REG_PCIE_CFG_FORCE_CLKREQ_N_PAD (Offset 0x0719) */
  35374. #define BIT_PCIE_CFG_REAL_EN_64BITS BIT(5)
  35375. #define BIT_PCIE_CFG_REAL_EN_CLKREQ BIT(4)
  35376. #define BIT_PCIE_CFG_REAL_EN_L1 BIT(3)
  35377. #define BIT_PCIE_CFG_WAKE_N_EN BIT(2)
  35378. #define BIT_PCIE_CFG_BYPASS_LTR_OPTION BIT(1)
  35379. #define BIT_PCIE_CFG_FORCE_CLKREQ_N_PAD BIT(0)
  35380. /* 2 REG_PCIE_CFG_TIMER_MODIFIER_FOR_ACK_NAK_LATENCY (Offset 0x071A) */
  35381. #define BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK 0
  35382. #define BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK 0xff
  35383. #define BIT_PCIE_CFG_TIMER_MOD_ACK_NAK(x) \
  35384. (((x) & BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK) \
  35385. << BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK)
  35386. #define BITS_PCIE_CFG_TIMER_MOD_ACK_NAK \
  35387. (BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK \
  35388. << BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK)
  35389. #define BIT_CLEAR_PCIE_CFG_TIMER_MOD_ACK_NAK(x) \
  35390. ((x) & (~BITS_PCIE_CFG_TIMER_MOD_ACK_NAK))
  35391. #define BIT_GET_PCIE_CFG_TIMER_MOD_ACK_NAK(x) \
  35392. (((x) >> BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK) & \
  35393. BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK)
  35394. #define BIT_SET_PCIE_CFG_TIMER_MOD_ACK_NAK(x, v) \
  35395. (BIT_CLEAR_PCIE_CFG_TIMER_MOD_ACK_NAK(x) | \
  35396. BIT_PCIE_CFG_TIMER_MOD_ACK_NAK(v))
  35397. /* 2 REG_PCIE_CFG_TIMER_MODIFIER_FOR_FLOW_CONTROL_WATCHDOG (Offset 0x071B) */
  35398. #define BIT_PCIE_CFG_BYPASS_L1_SUBSTATE_OPTION BIT(7)
  35399. #define BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR 5
  35400. #define BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR 0x3
  35401. #define BIT_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x) \
  35402. (((x) & BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR) \
  35403. << BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
  35404. #define BITS_PCIE_CFG_FAST_LINK_SCALING_FACTOR \
  35405. (BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR \
  35406. << BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
  35407. #define BIT_CLEAR_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x) \
  35408. ((x) & (~BITS_PCIE_CFG_FAST_LINK_SCALING_FACTOR))
  35409. #define BIT_GET_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x) \
  35410. (((x) >> BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR) & \
  35411. BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
  35412. #define BIT_SET_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x, v) \
  35413. (BIT_CLEAR_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x) | \
  35414. BIT_PCIE_CFG_FAST_LINK_SCALING_FACTOR(v))
  35415. #define BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER 0
  35416. #define BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER 0x1f
  35417. #define BIT_PCIE_CFG_UPDATE_FREQ_TIMER(x) \
  35418. (((x) & BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER) \
  35419. << BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER)
  35420. #define BITS_PCIE_CFG_UPDATE_FREQ_TIMER \
  35421. (BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER \
  35422. << BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER)
  35423. #define BIT_CLEAR_PCIE_CFG_UPDATE_FREQ_TIMER(x) \
  35424. ((x) & (~BITS_PCIE_CFG_UPDATE_FREQ_TIMER))
  35425. #define BIT_GET_PCIE_CFG_UPDATE_FREQ_TIMER(x) \
  35426. (((x) >> BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER) & \
  35427. BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER)
  35428. #define BIT_SET_PCIE_CFG_UPDATE_FREQ_TIMER(x, v) \
  35429. (BIT_CLEAR_PCIE_CFG_UPDATE_FREQ_TIMER(x) | \
  35430. BIT_PCIE_CFG_UPDATE_FREQ_TIMER(v))
  35431. #endif
  35432. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  35433. HALMAC_8822C_SUPPORT)
  35434. /* 2 REG_RX_CSI_RPT_INFO (Offset 0x071C) */
  35435. #define BIT_WMAC_CHECK_SOUNDING_SEQ BIT(30)
  35436. #endif
  35437. #if (HALMAC_8814B_SUPPORT)
  35438. /* 2 REG_PCIE_CFG_SKP_INTERVAL_VALUE_L (Offset 0x071C) */
  35439. #define BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L 0
  35440. #define BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L 0xff
  35441. #define BIT_PCIE_CFG_SKP_INTERVAL_VALUE_L(x) \
  35442. (((x) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L) \
  35443. << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L)
  35444. #define BITS_PCIE_CFG_SKP_INTERVAL_VALUE_L \
  35445. (BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L \
  35446. << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L)
  35447. #define BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_L(x) \
  35448. ((x) & (~BITS_PCIE_CFG_SKP_INTERVAL_VALUE_L))
  35449. #define BIT_GET_PCIE_CFG_SKP_INTERVAL_VALUE_L(x) \
  35450. (((x) >> BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L) & \
  35451. BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L)
  35452. #define BIT_SET_PCIE_CFG_SKP_INTERVAL_VALUE_L(x, v) \
  35453. (BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_L(x) | \
  35454. BIT_PCIE_CFG_SKP_INTERVAL_VALUE_L(v))
  35455. /* 2 REG_PCIE_CFG_SKP_INTERVAL_VALUE_H (Offset 0x071D) */
  35456. #define BIT_PCIE_CFG_DISABLE_FC_WATCHDOG_TIMER BIT(7)
  35457. #define BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H 0
  35458. #define BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H 0x7
  35459. #define BIT_PCIE_CFG_SKP_INTERVAL_VALUE_H(x) \
  35460. (((x) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H) \
  35461. << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H)
  35462. #define BITS_PCIE_CFG_SKP_INTERVAL_VALUE_H \
  35463. (BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H \
  35464. << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H)
  35465. #define BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_H(x) \
  35466. ((x) & (~BITS_PCIE_CFG_SKP_INTERVAL_VALUE_H))
  35467. #define BIT_GET_PCIE_CFG_SKP_INTERVAL_VALUE_H(x) \
  35468. (((x) >> BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H) & \
  35469. BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H)
  35470. #define BIT_SET_PCIE_CFG_SKP_INTERVAL_VALUE_H(x, v) \
  35471. (BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_H(x) | \
  35472. BIT_PCIE_CFG_SKP_INTERVAL_VALUE_H(v))
  35473. #endif
  35474. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35475. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35476. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35477. /* 2 REG_NS_ARP_CTRL (Offset 0x0720) */
  35478. #define BIT_R_WMAC_NSARP_RSPEN BIT(15)
  35479. #define BIT_R_WMAC_NSARP_RARP BIT(9)
  35480. #define BIT_R_WMAC_NSARP_RIPV6 BIT(8)
  35481. #define BIT_SHIFT_R_WMAC_NSARP_MODEN 6
  35482. #define BIT_MASK_R_WMAC_NSARP_MODEN 0x3
  35483. #define BIT_R_WMAC_NSARP_MODEN(x) \
  35484. (((x) & BIT_MASK_R_WMAC_NSARP_MODEN) << BIT_SHIFT_R_WMAC_NSARP_MODEN)
  35485. #define BITS_R_WMAC_NSARP_MODEN \
  35486. (BIT_MASK_R_WMAC_NSARP_MODEN << BIT_SHIFT_R_WMAC_NSARP_MODEN)
  35487. #define BIT_CLEAR_R_WMAC_NSARP_MODEN(x) ((x) & (~BITS_R_WMAC_NSARP_MODEN))
  35488. #define BIT_GET_R_WMAC_NSARP_MODEN(x) \
  35489. (((x) >> BIT_SHIFT_R_WMAC_NSARP_MODEN) & BIT_MASK_R_WMAC_NSARP_MODEN)
  35490. #define BIT_SET_R_WMAC_NSARP_MODEN(x, v) \
  35491. (BIT_CLEAR_R_WMAC_NSARP_MODEN(x) | BIT_R_WMAC_NSARP_MODEN(v))
  35492. #define BIT_SHIFT_R_WMAC_NSARP_RSPFTP 4
  35493. #define BIT_MASK_R_WMAC_NSARP_RSPFTP 0x3
  35494. #define BIT_R_WMAC_NSARP_RSPFTP(x) \
  35495. (((x) & BIT_MASK_R_WMAC_NSARP_RSPFTP) << BIT_SHIFT_R_WMAC_NSARP_RSPFTP)
  35496. #define BITS_R_WMAC_NSARP_RSPFTP \
  35497. (BIT_MASK_R_WMAC_NSARP_RSPFTP << BIT_SHIFT_R_WMAC_NSARP_RSPFTP)
  35498. #define BIT_CLEAR_R_WMAC_NSARP_RSPFTP(x) ((x) & (~BITS_R_WMAC_NSARP_RSPFTP))
  35499. #define BIT_GET_R_WMAC_NSARP_RSPFTP(x) \
  35500. (((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPFTP) & BIT_MASK_R_WMAC_NSARP_RSPFTP)
  35501. #define BIT_SET_R_WMAC_NSARP_RSPFTP(x, v) \
  35502. (BIT_CLEAR_R_WMAC_NSARP_RSPFTP(x) | BIT_R_WMAC_NSARP_RSPFTP(v))
  35503. #define BIT_SHIFT_R_WMAC_NSARP_RSPSEC 0
  35504. #define BIT_MASK_R_WMAC_NSARP_RSPSEC 0xf
  35505. #define BIT_R_WMAC_NSARP_RSPSEC(x) \
  35506. (((x) & BIT_MASK_R_WMAC_NSARP_RSPSEC) << BIT_SHIFT_R_WMAC_NSARP_RSPSEC)
  35507. #define BITS_R_WMAC_NSARP_RSPSEC \
  35508. (BIT_MASK_R_WMAC_NSARP_RSPSEC << BIT_SHIFT_R_WMAC_NSARP_RSPSEC)
  35509. #define BIT_CLEAR_R_WMAC_NSARP_RSPSEC(x) ((x) & (~BITS_R_WMAC_NSARP_RSPSEC))
  35510. #define BIT_GET_R_WMAC_NSARP_RSPSEC(x) \
  35511. (((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPSEC) & BIT_MASK_R_WMAC_NSARP_RSPSEC)
  35512. #define BIT_SET_R_WMAC_NSARP_RSPSEC(x, v) \
  35513. (BIT_CLEAR_R_WMAC_NSARP_RSPSEC(x) | BIT_R_WMAC_NSARP_RSPSEC(v))
  35514. #endif
  35515. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  35516. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  35517. HALMAC_8822C_SUPPORT)
  35518. /* 2 REG_NS_ARP_INFO (Offset 0x0724) */
  35519. #define BIT_REQ_IS_MCNS BIT(23)
  35520. #define BIT_REQ_IS_UCNS BIT(22)
  35521. #define BIT_REQ_IS_USNS BIT(21)
  35522. #define BIT_REQ_IS_ARP BIT(20)
  35523. #define BIT_EXPRSP_MH_WITHQC BIT(19)
  35524. #define BIT_SHIFT_EXPRSP_SECTYPE 16
  35525. #define BIT_MASK_EXPRSP_SECTYPE 0x7
  35526. #define BIT_EXPRSP_SECTYPE(x) \
  35527. (((x) & BIT_MASK_EXPRSP_SECTYPE) << BIT_SHIFT_EXPRSP_SECTYPE)
  35528. #define BITS_EXPRSP_SECTYPE \
  35529. (BIT_MASK_EXPRSP_SECTYPE << BIT_SHIFT_EXPRSP_SECTYPE)
  35530. #define BIT_CLEAR_EXPRSP_SECTYPE(x) ((x) & (~BITS_EXPRSP_SECTYPE))
  35531. #define BIT_GET_EXPRSP_SECTYPE(x) \
  35532. (((x) >> BIT_SHIFT_EXPRSP_SECTYPE) & BIT_MASK_EXPRSP_SECTYPE)
  35533. #define BIT_SET_EXPRSP_SECTYPE(x, v) \
  35534. (BIT_CLEAR_EXPRSP_SECTYPE(x) | BIT_EXPRSP_SECTYPE(v))
  35535. #define BIT_SHIFT_EXPRSP_CHKSM_7_TO_0 8
  35536. #define BIT_MASK_EXPRSP_CHKSM_7_TO_0 0xff
  35537. #define BIT_EXPRSP_CHKSM_7_TO_0(x) \
  35538. (((x) & BIT_MASK_EXPRSP_CHKSM_7_TO_0) << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0)
  35539. #define BITS_EXPRSP_CHKSM_7_TO_0 \
  35540. (BIT_MASK_EXPRSP_CHKSM_7_TO_0 << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0)
  35541. #define BIT_CLEAR_EXPRSP_CHKSM_7_TO_0(x) ((x) & (~BITS_EXPRSP_CHKSM_7_TO_0))
  35542. #define BIT_GET_EXPRSP_CHKSM_7_TO_0(x) \
  35543. (((x) >> BIT_SHIFT_EXPRSP_CHKSM_7_TO_0) & BIT_MASK_EXPRSP_CHKSM_7_TO_0)
  35544. #define BIT_SET_EXPRSP_CHKSM_7_TO_0(x, v) \
  35545. (BIT_CLEAR_EXPRSP_CHKSM_7_TO_0(x) | BIT_EXPRSP_CHKSM_7_TO_0(v))
  35546. #define BIT_SHIFT_EXPRSP_CHKSM_15_TO_8 0
  35547. #define BIT_MASK_EXPRSP_CHKSM_15_TO_8 0xff
  35548. #define BIT_EXPRSP_CHKSM_15_TO_8(x) \
  35549. (((x) & BIT_MASK_EXPRSP_CHKSM_15_TO_8) \
  35550. << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8)
  35551. #define BITS_EXPRSP_CHKSM_15_TO_8 \
  35552. (BIT_MASK_EXPRSP_CHKSM_15_TO_8 << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8)
  35553. #define BIT_CLEAR_EXPRSP_CHKSM_15_TO_8(x) ((x) & (~BITS_EXPRSP_CHKSM_15_TO_8))
  35554. #define BIT_GET_EXPRSP_CHKSM_15_TO_8(x) \
  35555. (((x) >> BIT_SHIFT_EXPRSP_CHKSM_15_TO_8) & \
  35556. BIT_MASK_EXPRSP_CHKSM_15_TO_8)
  35557. #define BIT_SET_EXPRSP_CHKSM_15_TO_8(x, v) \
  35558. (BIT_CLEAR_EXPRSP_CHKSM_15_TO_8(x) | BIT_EXPRSP_CHKSM_15_TO_8(v))
  35559. #endif
  35560. #if (HALMAC_8814B_SUPPORT)
  35561. /* 2 REG_PCIE_CFG_L1_UNIT_SEL (Offset 0x0724) */
  35562. #define BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL 0
  35563. #define BIT_MASK_PCIE_CFG_L1_UNIT_SEL 0xff
  35564. #define BIT_PCIE_CFG_L1_UNIT_SEL(x) \
  35565. (((x) & BIT_MASK_PCIE_CFG_L1_UNIT_SEL) \
  35566. << BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL)
  35567. #define BITS_PCIE_CFG_L1_UNIT_SEL \
  35568. (BIT_MASK_PCIE_CFG_L1_UNIT_SEL << BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL)
  35569. #define BIT_CLEAR_PCIE_CFG_L1_UNIT_SEL(x) ((x) & (~BITS_PCIE_CFG_L1_UNIT_SEL))
  35570. #define BIT_GET_PCIE_CFG_L1_UNIT_SEL(x) \
  35571. (((x) >> BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL) & \
  35572. BIT_MASK_PCIE_CFG_L1_UNIT_SEL)
  35573. #define BIT_SET_PCIE_CFG_L1_UNIT_SEL(x, v) \
  35574. (BIT_CLEAR_PCIE_CFG_L1_UNIT_SEL(x) | BIT_PCIE_CFG_L1_UNIT_SEL(v))
  35575. /* 2 REG_PCIE_CFG_MIN_CLKREQ_SEL (Offset 0x0725) */
  35576. #define BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL 0
  35577. #define BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL 0xf
  35578. #define BIT_PCIE_CFG_MIN_CLKREQ_SEL(x) \
  35579. (((x) & BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL) \
  35580. << BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL)
  35581. #define BITS_PCIE_CFG_MIN_CLKREQ_SEL \
  35582. (BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL << BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL)
  35583. #define BIT_CLEAR_PCIE_CFG_MIN_CLKREQ_SEL(x) \
  35584. ((x) & (~BITS_PCIE_CFG_MIN_CLKREQ_SEL))
  35585. #define BIT_GET_PCIE_CFG_MIN_CLKREQ_SEL(x) \
  35586. (((x) >> BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL) & \
  35587. BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL)
  35588. #define BIT_SET_PCIE_CFG_MIN_CLKREQ_SEL(x, v) \
  35589. (BIT_CLEAR_PCIE_CFG_MIN_CLKREQ_SEL(x) | BIT_PCIE_CFG_MIN_CLKREQ_SEL(v))
  35590. #endif
  35591. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  35592. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35593. /* 2 REG_BEAMFORMING_INFO_NSARP_V1 (Offset 0x0728) */
  35594. #define BIT_SHIFT_WMAC_ARPIP 0
  35595. #define BIT_MASK_WMAC_ARPIP 0xffffffffL
  35596. #define BIT_WMAC_ARPIP(x) (((x) & BIT_MASK_WMAC_ARPIP) << BIT_SHIFT_WMAC_ARPIP)
  35597. #define BITS_WMAC_ARPIP (BIT_MASK_WMAC_ARPIP << BIT_SHIFT_WMAC_ARPIP)
  35598. #define BIT_CLEAR_WMAC_ARPIP(x) ((x) & (~BITS_WMAC_ARPIP))
  35599. #define BIT_GET_WMAC_ARPIP(x) \
  35600. (((x) >> BIT_SHIFT_WMAC_ARPIP) & BIT_MASK_WMAC_ARPIP)
  35601. #define BIT_SET_WMAC_ARPIP(x, v) (BIT_CLEAR_WMAC_ARPIP(x) | BIT_WMAC_ARPIP(v))
  35602. #endif
  35603. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35604. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35605. #define BIT_SHIFT_UPD_BFMEE_USERID 13
  35606. #define BIT_MASK_UPD_BFMEE_USERID 0x7
  35607. #define BIT_UPD_BFMEE_USERID(x) \
  35608. (((x) & BIT_MASK_UPD_BFMEE_USERID) << BIT_SHIFT_UPD_BFMEE_USERID)
  35609. #define BITS_UPD_BFMEE_USERID \
  35610. (BIT_MASK_UPD_BFMEE_USERID << BIT_SHIFT_UPD_BFMEE_USERID)
  35611. #define BIT_CLEAR_UPD_BFMEE_USERID(x) ((x) & (~BITS_UPD_BFMEE_USERID))
  35612. #define BIT_GET_UPD_BFMEE_USERID(x) \
  35613. (((x) >> BIT_SHIFT_UPD_BFMEE_USERID) & BIT_MASK_UPD_BFMEE_USERID)
  35614. #define BIT_SET_UPD_BFMEE_USERID(x, v) \
  35615. (BIT_CLEAR_UPD_BFMEE_USERID(x) | BIT_UPD_BFMEE_USERID(v))
  35616. #endif
  35617. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35618. /* 2 REG_RX_CSI_RPT_INFO_V1 (Offset 0x072C) */
  35619. #define BIT_WRITE_USERID BIT(12)
  35620. #endif
  35621. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35622. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35623. #define BIT_UPD_BFMEE_FBTP BIT(12)
  35624. #endif
  35625. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35626. /* 2 REG_RX_CSI_RPT_INFO_V1 (Offset 0x072C) */
  35627. #define BIT_SHIFT_WRITE_BW 10
  35628. #define BIT_MASK_WRITE_BW 0x3
  35629. #define BIT_WRITE_BW(x) (((x) & BIT_MASK_WRITE_BW) << BIT_SHIFT_WRITE_BW)
  35630. #define BITS_WRITE_BW (BIT_MASK_WRITE_BW << BIT_SHIFT_WRITE_BW)
  35631. #define BIT_CLEAR_WRITE_BW(x) ((x) & (~BITS_WRITE_BW))
  35632. #define BIT_GET_WRITE_BW(x) (((x) >> BIT_SHIFT_WRITE_BW) & BIT_MASK_WRITE_BW)
  35633. #define BIT_SET_WRITE_BW(x, v) (BIT_CLEAR_WRITE_BW(x) | BIT_WRITE_BW(v))
  35634. #define BIT_SHIFT_WRITE_CB 8
  35635. #define BIT_MASK_WRITE_CB 0x3
  35636. #define BIT_WRITE_CB(x) (((x) & BIT_MASK_WRITE_CB) << BIT_SHIFT_WRITE_CB)
  35637. #define BITS_WRITE_CB (BIT_MASK_WRITE_CB << BIT_SHIFT_WRITE_CB)
  35638. #define BIT_CLEAR_WRITE_CB(x) ((x) & (~BITS_WRITE_CB))
  35639. #define BIT_GET_WRITE_CB(x) (((x) >> BIT_SHIFT_WRITE_CB) & BIT_MASK_WRITE_CB)
  35640. #define BIT_SET_WRITE_CB(x, v) (BIT_CLEAR_WRITE_CB(x) | BIT_WRITE_CB(v))
  35641. #endif
  35642. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35643. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35644. #define BIT_SHIFT_UPD_BFMEE_CB 8
  35645. #define BIT_MASK_UPD_BFMEE_CB 0x3
  35646. #define BIT_UPD_BFMEE_CB(x) \
  35647. (((x) & BIT_MASK_UPD_BFMEE_CB) << BIT_SHIFT_UPD_BFMEE_CB)
  35648. #define BITS_UPD_BFMEE_CB (BIT_MASK_UPD_BFMEE_CB << BIT_SHIFT_UPD_BFMEE_CB)
  35649. #define BIT_CLEAR_UPD_BFMEE_CB(x) ((x) & (~BITS_UPD_BFMEE_CB))
  35650. #define BIT_GET_UPD_BFMEE_CB(x) \
  35651. (((x) >> BIT_SHIFT_UPD_BFMEE_CB) & BIT_MASK_UPD_BFMEE_CB)
  35652. #define BIT_SET_UPD_BFMEE_CB(x, v) \
  35653. (BIT_CLEAR_UPD_BFMEE_CB(x) | BIT_UPD_BFMEE_CB(v))
  35654. #endif
  35655. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35656. /* 2 REG_RX_CSI_RPT_INFO_V1 (Offset 0x072C) */
  35657. #define BIT_SHIFT_WRITE_GROUPING 6
  35658. #define BIT_MASK_WRITE_GROUPING 0x3
  35659. #define BIT_WRITE_GROUPING(x) \
  35660. (((x) & BIT_MASK_WRITE_GROUPING) << BIT_SHIFT_WRITE_GROUPING)
  35661. #define BITS_WRITE_GROUPING \
  35662. (BIT_MASK_WRITE_GROUPING << BIT_SHIFT_WRITE_GROUPING)
  35663. #define BIT_CLEAR_WRITE_GROUPING(x) ((x) & (~BITS_WRITE_GROUPING))
  35664. #define BIT_GET_WRITE_GROUPING(x) \
  35665. (((x) >> BIT_SHIFT_WRITE_GROUPING) & BIT_MASK_WRITE_GROUPING)
  35666. #define BIT_SET_WRITE_GROUPING(x, v) \
  35667. (BIT_CLEAR_WRITE_GROUPING(x) | BIT_WRITE_GROUPING(v))
  35668. #endif
  35669. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35670. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35671. #define BIT_SHIFT_UPD_BFMEE_NG 6
  35672. #define BIT_MASK_UPD_BFMEE_NG 0x3
  35673. #define BIT_UPD_BFMEE_NG(x) \
  35674. (((x) & BIT_MASK_UPD_BFMEE_NG) << BIT_SHIFT_UPD_BFMEE_NG)
  35675. #define BITS_UPD_BFMEE_NG (BIT_MASK_UPD_BFMEE_NG << BIT_SHIFT_UPD_BFMEE_NG)
  35676. #define BIT_CLEAR_UPD_BFMEE_NG(x) ((x) & (~BITS_UPD_BFMEE_NG))
  35677. #define BIT_GET_UPD_BFMEE_NG(x) \
  35678. (((x) >> BIT_SHIFT_UPD_BFMEE_NG) & BIT_MASK_UPD_BFMEE_NG)
  35679. #define BIT_SET_UPD_BFMEE_NG(x, v) \
  35680. (BIT_CLEAR_UPD_BFMEE_NG(x) | BIT_UPD_BFMEE_NG(v))
  35681. #endif
  35682. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35683. /* 2 REG_RX_CSI_RPT_INFO_V1 (Offset 0x072C) */
  35684. #define BIT_SHIFT_WRITE_NR 3
  35685. #define BIT_MASK_WRITE_NR 0x7
  35686. #define BIT_WRITE_NR(x) (((x) & BIT_MASK_WRITE_NR) << BIT_SHIFT_WRITE_NR)
  35687. #define BITS_WRITE_NR (BIT_MASK_WRITE_NR << BIT_SHIFT_WRITE_NR)
  35688. #define BIT_CLEAR_WRITE_NR(x) ((x) & (~BITS_WRITE_NR))
  35689. #define BIT_GET_WRITE_NR(x) (((x) >> BIT_SHIFT_WRITE_NR) & BIT_MASK_WRITE_NR)
  35690. #define BIT_SET_WRITE_NR(x, v) (BIT_CLEAR_WRITE_NR(x) | BIT_WRITE_NR(v))
  35691. #endif
  35692. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35693. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35694. #define BIT_SHIFT_UPD_BFMEE_NR 3
  35695. #define BIT_MASK_UPD_BFMEE_NR 0x7
  35696. #define BIT_UPD_BFMEE_NR(x) \
  35697. (((x) & BIT_MASK_UPD_BFMEE_NR) << BIT_SHIFT_UPD_BFMEE_NR)
  35698. #define BITS_UPD_BFMEE_NR (BIT_MASK_UPD_BFMEE_NR << BIT_SHIFT_UPD_BFMEE_NR)
  35699. #define BIT_CLEAR_UPD_BFMEE_NR(x) ((x) & (~BITS_UPD_BFMEE_NR))
  35700. #define BIT_GET_UPD_BFMEE_NR(x) \
  35701. (((x) >> BIT_SHIFT_UPD_BFMEE_NR) & BIT_MASK_UPD_BFMEE_NR)
  35702. #define BIT_SET_UPD_BFMEE_NR(x, v) \
  35703. (BIT_CLEAR_UPD_BFMEE_NR(x) | BIT_UPD_BFMEE_NR(v))
  35704. #endif
  35705. #if (HALMAC_8192F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  35706. /* 2 REG_RX_CSI_RPT_INFO_V1 (Offset 0x072C) */
  35707. #define BIT_SHIFT_WRITE_NC 0
  35708. #define BIT_MASK_WRITE_NC 0x7
  35709. #define BIT_WRITE_NC(x) (((x) & BIT_MASK_WRITE_NC) << BIT_SHIFT_WRITE_NC)
  35710. #define BITS_WRITE_NC (BIT_MASK_WRITE_NC << BIT_SHIFT_WRITE_NC)
  35711. #define BIT_CLEAR_WRITE_NC(x) ((x) & (~BITS_WRITE_NC))
  35712. #define BIT_GET_WRITE_NC(x) (((x) >> BIT_SHIFT_WRITE_NC) & BIT_MASK_WRITE_NC)
  35713. #define BIT_SET_WRITE_NC(x, v) (BIT_CLEAR_WRITE_NC(x) | BIT_WRITE_NC(v))
  35714. #endif
  35715. #if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  35716. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  35717. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35718. #define BIT_SHIFT_BEAMFORMING_INFO 0
  35719. #define BIT_MASK_BEAMFORMING_INFO 0xffffffffL
  35720. #define BIT_BEAMFORMING_INFO(x) \
  35721. (((x) & BIT_MASK_BEAMFORMING_INFO) << BIT_SHIFT_BEAMFORMING_INFO)
  35722. #define BITS_BEAMFORMING_INFO \
  35723. (BIT_MASK_BEAMFORMING_INFO << BIT_SHIFT_BEAMFORMING_INFO)
  35724. #define BIT_CLEAR_BEAMFORMING_INFO(x) ((x) & (~BITS_BEAMFORMING_INFO))
  35725. #define BIT_GET_BEAMFORMING_INFO(x) \
  35726. (((x) >> BIT_SHIFT_BEAMFORMING_INFO) & BIT_MASK_BEAMFORMING_INFO)
  35727. #define BIT_SET_BEAMFORMING_INFO(x, v) \
  35728. (BIT_CLEAR_BEAMFORMING_INFO(x) | BIT_BEAMFORMING_INFO(v))
  35729. #endif
  35730. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35731. /* 2 REG_BEAMFORMING_INFO_NSARP (Offset 0x072C) */
  35732. #define BIT_SHIFT_UPD_BFMEE_BW 0
  35733. #define BIT_MASK_UPD_BFMEE_BW 0xfff
  35734. #define BIT_UPD_BFMEE_BW(x) \
  35735. (((x) & BIT_MASK_UPD_BFMEE_BW) << BIT_SHIFT_UPD_BFMEE_BW)
  35736. #define BITS_UPD_BFMEE_BW (BIT_MASK_UPD_BFMEE_BW << BIT_SHIFT_UPD_BFMEE_BW)
  35737. #define BIT_CLEAR_UPD_BFMEE_BW(x) ((x) & (~BITS_UPD_BFMEE_BW))
  35738. #define BIT_GET_UPD_BFMEE_BW(x) \
  35739. (((x) >> BIT_SHIFT_UPD_BFMEE_BW) & BIT_MASK_UPD_BFMEE_BW)
  35740. #define BIT_SET_UPD_BFMEE_BW(x, v) \
  35741. (BIT_CLEAR_UPD_BFMEE_BW(x) | BIT_UPD_BFMEE_BW(v))
  35742. #define BIT_SHIFT_UPD_BFMEE_NC 0
  35743. #define BIT_MASK_UPD_BFMEE_NC 0x7
  35744. #define BIT_UPD_BFMEE_NC(x) \
  35745. (((x) & BIT_MASK_UPD_BFMEE_NC) << BIT_SHIFT_UPD_BFMEE_NC)
  35746. #define BITS_UPD_BFMEE_NC (BIT_MASK_UPD_BFMEE_NC << BIT_SHIFT_UPD_BFMEE_NC)
  35747. #define BIT_CLEAR_UPD_BFMEE_NC(x) ((x) & (~BITS_UPD_BFMEE_NC))
  35748. #define BIT_GET_UPD_BFMEE_NC(x) \
  35749. (((x) >> BIT_SHIFT_UPD_BFMEE_NC) & BIT_MASK_UPD_BFMEE_NC)
  35750. #define BIT_SET_UPD_BFMEE_NC(x, v) \
  35751. (BIT_CLEAR_UPD_BFMEE_NC(x) | BIT_UPD_BFMEE_NC(v))
  35752. #endif
  35753. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  35754. HALMAC_8822C_SUPPORT)
  35755. /* 2 REG_IPV6 (Offset 0x0730) */
  35756. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0 0
  35757. #define BIT_MASK_R_WMAC_IPV6_MYIPAD_0 0xffffffffL
  35758. #define BIT_R_WMAC_IPV6_MYIPAD_0(x) \
  35759. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_0) \
  35760. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0)
  35761. #define BITS_R_WMAC_IPV6_MYIPAD_0 \
  35762. (BIT_MASK_R_WMAC_IPV6_MYIPAD_0 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0)
  35763. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_0(x) ((x) & (~BITS_R_WMAC_IPV6_MYIPAD_0))
  35764. #define BIT_GET_R_WMAC_IPV6_MYIPAD_0(x) \
  35765. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0) & \
  35766. BIT_MASK_R_WMAC_IPV6_MYIPAD_0)
  35767. #define BIT_SET_R_WMAC_IPV6_MYIPAD_0(x, v) \
  35768. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD_0(x) | BIT_R_WMAC_IPV6_MYIPAD_0(v))
  35769. /* 2 REG_IPV6_1 (Offset 0x0734) */
  35770. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1 0
  35771. #define BIT_MASK_R_WMAC_IPV6_MYIPAD_1 0xffffffffL
  35772. #define BIT_R_WMAC_IPV6_MYIPAD_1(x) \
  35773. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_1) \
  35774. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1)
  35775. #define BITS_R_WMAC_IPV6_MYIPAD_1 \
  35776. (BIT_MASK_R_WMAC_IPV6_MYIPAD_1 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1)
  35777. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_1(x) ((x) & (~BITS_R_WMAC_IPV6_MYIPAD_1))
  35778. #define BIT_GET_R_WMAC_IPV6_MYIPAD_1(x) \
  35779. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1) & \
  35780. BIT_MASK_R_WMAC_IPV6_MYIPAD_1)
  35781. #define BIT_SET_R_WMAC_IPV6_MYIPAD_1(x, v) \
  35782. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD_1(x) | BIT_R_WMAC_IPV6_MYIPAD_1(v))
  35783. /* 2 REG_IPV6_2 (Offset 0x0738) */
  35784. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2 0
  35785. #define BIT_MASK_R_WMAC_IPV6_MYIPAD_2 0xffffffffL
  35786. #define BIT_R_WMAC_IPV6_MYIPAD_2(x) \
  35787. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_2) \
  35788. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2)
  35789. #define BITS_R_WMAC_IPV6_MYIPAD_2 \
  35790. (BIT_MASK_R_WMAC_IPV6_MYIPAD_2 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2)
  35791. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_2(x) ((x) & (~BITS_R_WMAC_IPV6_MYIPAD_2))
  35792. #define BIT_GET_R_WMAC_IPV6_MYIPAD_2(x) \
  35793. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2) & \
  35794. BIT_MASK_R_WMAC_IPV6_MYIPAD_2)
  35795. #define BIT_SET_R_WMAC_IPV6_MYIPAD_2(x, v) \
  35796. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD_2(x) | BIT_R_WMAC_IPV6_MYIPAD_2(v))
  35797. /* 2 REG_IPV6_3 (Offset 0x073C) */
  35798. #define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3 0
  35799. #define BIT_MASK_R_WMAC_IPV6_MYIPAD_3 0xffffffffL
  35800. #define BIT_R_WMAC_IPV6_MYIPAD_3(x) \
  35801. (((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_3) \
  35802. << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3)
  35803. #define BITS_R_WMAC_IPV6_MYIPAD_3 \
  35804. (BIT_MASK_R_WMAC_IPV6_MYIPAD_3 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3)
  35805. #define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_3(x) ((x) & (~BITS_R_WMAC_IPV6_MYIPAD_3))
  35806. #define BIT_GET_R_WMAC_IPV6_MYIPAD_3(x) \
  35807. (((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3) & \
  35808. BIT_MASK_R_WMAC_IPV6_MYIPAD_3)
  35809. #define BIT_SET_R_WMAC_IPV6_MYIPAD_3(x, v) \
  35810. (BIT_CLEAR_R_WMAC_IPV6_MYIPAD_3(x) | BIT_R_WMAC_IPV6_MYIPAD_3(v))
  35811. #endif
  35812. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  35813. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  35814. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  35815. HALMAC_8822C_SUPPORT)
  35816. /* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG (Offset 0x0750) */
  35817. #define BIT_SHIFT_R_WMAC_CTX_SUBTYPE 4
  35818. #define BIT_MASK_R_WMAC_CTX_SUBTYPE 0xf
  35819. #define BIT_R_WMAC_CTX_SUBTYPE(x) \
  35820. (((x) & BIT_MASK_R_WMAC_CTX_SUBTYPE) << BIT_SHIFT_R_WMAC_CTX_SUBTYPE)
  35821. #define BITS_R_WMAC_CTX_SUBTYPE \
  35822. (BIT_MASK_R_WMAC_CTX_SUBTYPE << BIT_SHIFT_R_WMAC_CTX_SUBTYPE)
  35823. #define BIT_CLEAR_R_WMAC_CTX_SUBTYPE(x) ((x) & (~BITS_R_WMAC_CTX_SUBTYPE))
  35824. #define BIT_GET_R_WMAC_CTX_SUBTYPE(x) \
  35825. (((x) >> BIT_SHIFT_R_WMAC_CTX_SUBTYPE) & BIT_MASK_R_WMAC_CTX_SUBTYPE)
  35826. #define BIT_SET_R_WMAC_CTX_SUBTYPE(x, v) \
  35827. (BIT_CLEAR_R_WMAC_CTX_SUBTYPE(x) | BIT_R_WMAC_CTX_SUBTYPE(v))
  35828. #endif
  35829. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35830. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35831. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35832. /* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG (Offset 0x0750) */
  35833. #define BIT_SHIFT_R_WMAC_RTX_SUBTYPE 0
  35834. #define BIT_MASK_R_WMAC_RTX_SUBTYPE 0xf
  35835. #define BIT_R_WMAC_RTX_SUBTYPE(x) \
  35836. (((x) & BIT_MASK_R_WMAC_RTX_SUBTYPE) << BIT_SHIFT_R_WMAC_RTX_SUBTYPE)
  35837. #define BITS_R_WMAC_RTX_SUBTYPE \
  35838. (BIT_MASK_R_WMAC_RTX_SUBTYPE << BIT_SHIFT_R_WMAC_RTX_SUBTYPE)
  35839. #define BIT_CLEAR_R_WMAC_RTX_SUBTYPE(x) ((x) & (~BITS_R_WMAC_RTX_SUBTYPE))
  35840. #define BIT_GET_R_WMAC_RTX_SUBTYPE(x) \
  35841. (((x) >> BIT_SHIFT_R_WMAC_RTX_SUBTYPE) & BIT_MASK_R_WMAC_RTX_SUBTYPE)
  35842. #define BIT_SET_R_WMAC_RTX_SUBTYPE(x, v) \
  35843. (BIT_CLEAR_R_WMAC_RTX_SUBTYPE(x) | BIT_R_WMAC_RTX_SUBTYPE(v))
  35844. #endif
  35845. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  35846. /* 2 REG_WMAC_SWAES_DIO_B63_B32 (Offset 0x0754) */
  35847. #define BIT_SHIFT_WMAC_SWAES_DIO_B63_B32 0
  35848. #define BIT_MASK_WMAC_SWAES_DIO_B63_B32 0xffffffffL
  35849. #define BIT_WMAC_SWAES_DIO_B63_B32(x) \
  35850. (((x) & BIT_MASK_WMAC_SWAES_DIO_B63_B32) \
  35851. << BIT_SHIFT_WMAC_SWAES_DIO_B63_B32)
  35852. #define BITS_WMAC_SWAES_DIO_B63_B32 \
  35853. (BIT_MASK_WMAC_SWAES_DIO_B63_B32 << BIT_SHIFT_WMAC_SWAES_DIO_B63_B32)
  35854. #define BIT_CLEAR_WMAC_SWAES_DIO_B63_B32(x) \
  35855. ((x) & (~BITS_WMAC_SWAES_DIO_B63_B32))
  35856. #define BIT_GET_WMAC_SWAES_DIO_B63_B32(x) \
  35857. (((x) >> BIT_SHIFT_WMAC_SWAES_DIO_B63_B32) & \
  35858. BIT_MASK_WMAC_SWAES_DIO_B63_B32)
  35859. #define BIT_SET_WMAC_SWAES_DIO_B63_B32(x, v) \
  35860. (BIT_CLEAR_WMAC_SWAES_DIO_B63_B32(x) | BIT_WMAC_SWAES_DIO_B63_B32(v))
  35861. /* 2 REG_WMAC_SWAES_DIO_B95_B64 (Offset 0x0758) */
  35862. #define BIT_SHIFT_WMAC_SWAES_DIO_B95_B64 0
  35863. #define BIT_MASK_WMAC_SWAES_DIO_B95_B64 0xffffffffL
  35864. #define BIT_WMAC_SWAES_DIO_B95_B64(x) \
  35865. (((x) & BIT_MASK_WMAC_SWAES_DIO_B95_B64) \
  35866. << BIT_SHIFT_WMAC_SWAES_DIO_B95_B64)
  35867. #define BITS_WMAC_SWAES_DIO_B95_B64 \
  35868. (BIT_MASK_WMAC_SWAES_DIO_B95_B64 << BIT_SHIFT_WMAC_SWAES_DIO_B95_B64)
  35869. #define BIT_CLEAR_WMAC_SWAES_DIO_B95_B64(x) \
  35870. ((x) & (~BITS_WMAC_SWAES_DIO_B95_B64))
  35871. #define BIT_GET_WMAC_SWAES_DIO_B95_B64(x) \
  35872. (((x) >> BIT_SHIFT_WMAC_SWAES_DIO_B95_B64) & \
  35873. BIT_MASK_WMAC_SWAES_DIO_B95_B64)
  35874. #define BIT_SET_WMAC_SWAES_DIO_B95_B64(x, v) \
  35875. (BIT_CLEAR_WMAC_SWAES_DIO_B95_B64(x) | BIT_WMAC_SWAES_DIO_B95_B64(v))
  35876. /* 2 REG_WMAC_SWAES_DIO_B127_B96 (Offset 0x075C) */
  35877. #define BIT_SHIFT_WMAC_SWAES_DIO_B127_B96 0
  35878. #define BIT_MASK_WMAC_SWAES_DIO_B127_B96 0xffffffffL
  35879. #define BIT_WMAC_SWAES_DIO_B127_B96(x) \
  35880. (((x) & BIT_MASK_WMAC_SWAES_DIO_B127_B96) \
  35881. << BIT_SHIFT_WMAC_SWAES_DIO_B127_B96)
  35882. #define BITS_WMAC_SWAES_DIO_B127_B96 \
  35883. (BIT_MASK_WMAC_SWAES_DIO_B127_B96 << BIT_SHIFT_WMAC_SWAES_DIO_B127_B96)
  35884. #define BIT_CLEAR_WMAC_SWAES_DIO_B127_B96(x) \
  35885. ((x) & (~BITS_WMAC_SWAES_DIO_B127_B96))
  35886. #define BIT_GET_WMAC_SWAES_DIO_B127_B96(x) \
  35887. (((x) >> BIT_SHIFT_WMAC_SWAES_DIO_B127_B96) & \
  35888. BIT_MASK_WMAC_SWAES_DIO_B127_B96)
  35889. #define BIT_SET_WMAC_SWAES_DIO_B127_B96(x, v) \
  35890. (BIT_CLEAR_WMAC_SWAES_DIO_B127_B96(x) | BIT_WMAC_SWAES_DIO_B127_B96(v))
  35891. #endif
  35892. #if (HALMAC_8198F_SUPPORT)
  35893. /* 2 REG_WMAC_SWAES_CFG (Offset 0x0760) */
  35894. #define BIT_SWAES_REQ BIT(7)
  35895. #define BIT_CLR_SWAES_REQ BIT(6)
  35896. #define BIT_R_WMAC_SWAES_WE BIT(3)
  35897. #define BIT_R_WMAC_SWAES_SEL BIT(0)
  35898. #endif
  35899. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  35900. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  35901. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  35902. HALMAC_8822C_SUPPORT)
  35903. /* 2 REG_BT_COEX_V2 (Offset 0x0762) */
  35904. #define BIT_GNT_BT_POLARITY BIT(12)
  35905. #define BIT_GNT_BT_BYPASS_PRIORITY BIT(8)
  35906. #define BIT_SHIFT_TIMER 0
  35907. #define BIT_MASK_TIMER 0xff
  35908. #define BIT_TIMER(x) (((x) & BIT_MASK_TIMER) << BIT_SHIFT_TIMER)
  35909. #define BITS_TIMER (BIT_MASK_TIMER << BIT_SHIFT_TIMER)
  35910. #define BIT_CLEAR_TIMER(x) ((x) & (~BITS_TIMER))
  35911. #define BIT_GET_TIMER(x) (((x) >> BIT_SHIFT_TIMER) & BIT_MASK_TIMER)
  35912. #define BIT_SET_TIMER(x, v) (BIT_CLEAR_TIMER(x) | BIT_TIMER(v))
  35913. #endif
  35914. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35915. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35916. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35917. /* 2 REG_BT_COEX (Offset 0x0764) */
  35918. #define BIT_R_GNT_BT_RFC_SW BIT(12)
  35919. #define BIT_R_GNT_BT_RFC_SW_EN BIT(11)
  35920. #define BIT_R_GNT_BT_BB_SW BIT(10)
  35921. #define BIT_R_GNT_BT_BB_SW_EN BIT(9)
  35922. #define BIT_R_BT_CNT_THREN BIT(8)
  35923. #define BIT_SHIFT_R_BT_CNT_THR 0
  35924. #define BIT_MASK_R_BT_CNT_THR 0xff
  35925. #define BIT_R_BT_CNT_THR(x) \
  35926. (((x) & BIT_MASK_R_BT_CNT_THR) << BIT_SHIFT_R_BT_CNT_THR)
  35927. #define BITS_R_BT_CNT_THR (BIT_MASK_R_BT_CNT_THR << BIT_SHIFT_R_BT_CNT_THR)
  35928. #define BIT_CLEAR_R_BT_CNT_THR(x) ((x) & (~BITS_R_BT_CNT_THR))
  35929. #define BIT_GET_R_BT_CNT_THR(x) \
  35930. (((x) >> BIT_SHIFT_R_BT_CNT_THR) & BIT_MASK_R_BT_CNT_THR)
  35931. #define BIT_SET_R_BT_CNT_THR(x, v) \
  35932. (BIT_CLEAR_R_BT_CNT_THR(x) | BIT_R_BT_CNT_THR(v))
  35933. #endif
  35934. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  35935. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  35936. /* 2 REG_WLAN_ACT_MASK_CTRL (Offset 0x0768) */
  35937. #define BIT_WLRX_TER_BY_CTL BIT(43)
  35938. #define BIT_WLRX_TER_BY_AD BIT(42)
  35939. #define BIT_ANT_DIVERSITY_SEL BIT(41)
  35940. #define BIT_ANTSEL_FOR_BT_CTRL_EN BIT(40)
  35941. #define BIT_WLACT_LOW_GNTWL_EN BIT(34)
  35942. #define BIT_WLACT_HIGH_GNTBT_EN BIT(33)
  35943. #endif
  35944. #if (HALMAC_8822B_SUPPORT)
  35945. /* 2 REG_WLAN_ACT_MASK_CTRL (Offset 0x0768) */
  35946. #define BIT_NAV_UPPER_V1 BIT(32)
  35947. #endif
  35948. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35949. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35950. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35951. /* 2 REG_WLAN_ACT_MASK_CTRL (Offset 0x0768) */
  35952. #define BIT_SHIFT_RXMYRTS_NAV_V1 8
  35953. #define BIT_MASK_RXMYRTS_NAV_V1 0xff
  35954. #define BIT_RXMYRTS_NAV_V1(x) \
  35955. (((x) & BIT_MASK_RXMYRTS_NAV_V1) << BIT_SHIFT_RXMYRTS_NAV_V1)
  35956. #define BITS_RXMYRTS_NAV_V1 \
  35957. (BIT_MASK_RXMYRTS_NAV_V1 << BIT_SHIFT_RXMYRTS_NAV_V1)
  35958. #define BIT_CLEAR_RXMYRTS_NAV_V1(x) ((x) & (~BITS_RXMYRTS_NAV_V1))
  35959. #define BIT_GET_RXMYRTS_NAV_V1(x) \
  35960. (((x) >> BIT_SHIFT_RXMYRTS_NAV_V1) & BIT_MASK_RXMYRTS_NAV_V1)
  35961. #define BIT_SET_RXMYRTS_NAV_V1(x, v) \
  35962. (BIT_CLEAR_RXMYRTS_NAV_V1(x) | BIT_RXMYRTS_NAV_V1(v))
  35963. #define BIT_SHIFT_RTSRST_V1 0
  35964. #define BIT_MASK_RTSRST_V1 0xff
  35965. #define BIT_RTSRST_V1(x) (((x) & BIT_MASK_RTSRST_V1) << BIT_SHIFT_RTSRST_V1)
  35966. #define BITS_RTSRST_V1 (BIT_MASK_RTSRST_V1 << BIT_SHIFT_RTSRST_V1)
  35967. #define BIT_CLEAR_RTSRST_V1(x) ((x) & (~BITS_RTSRST_V1))
  35968. #define BIT_GET_RTSRST_V1(x) (((x) >> BIT_SHIFT_RTSRST_V1) & BIT_MASK_RTSRST_V1)
  35969. #define BIT_SET_RTSRST_V1(x, v) (BIT_CLEAR_RTSRST_V1(x) | BIT_RTSRST_V1(v))
  35970. #endif
  35971. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  35972. HALMAC_8822C_SUPPORT)
  35973. /* 2 REG_WLAN_ACT_MASK_CTRL_1 (Offset 0x076C) */
  35974. #define BIT_WLRX_TER_BY_CTL_1 BIT(11)
  35975. #define BIT_WLRX_TER_BY_AD_1 BIT(10)
  35976. #define BIT_ANT_DIVERSITY_SEL_1 BIT(9)
  35977. #define BIT_ANTSEL_FOR_BT_CTRL_EN_1 BIT(8)
  35978. #define BIT_WLACT_LOW_GNTWL_EN_1 BIT(2)
  35979. #define BIT_WLACT_HIGH_GNTBT_EN_1 BIT(1)
  35980. #define BIT_NAV_UPPER_1_V1 BIT(0)
  35981. #endif
  35982. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  35983. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  35984. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  35985. /* 2 REG_BT_COEX_ENHANCED_INTR_CTRL (Offset 0x076E) */
  35986. #define BIT_SHIFT_BT_STAT_DELAY 12
  35987. #define BIT_MASK_BT_STAT_DELAY 0xf
  35988. #define BIT_BT_STAT_DELAY(x) \
  35989. (((x) & BIT_MASK_BT_STAT_DELAY) << BIT_SHIFT_BT_STAT_DELAY)
  35990. #define BITS_BT_STAT_DELAY (BIT_MASK_BT_STAT_DELAY << BIT_SHIFT_BT_STAT_DELAY)
  35991. #define BIT_CLEAR_BT_STAT_DELAY(x) ((x) & (~BITS_BT_STAT_DELAY))
  35992. #define BIT_GET_BT_STAT_DELAY(x) \
  35993. (((x) >> BIT_SHIFT_BT_STAT_DELAY) & BIT_MASK_BT_STAT_DELAY)
  35994. #define BIT_SET_BT_STAT_DELAY(x, v) \
  35995. (BIT_CLEAR_BT_STAT_DELAY(x) | BIT_BT_STAT_DELAY(v))
  35996. #define BIT_SHIFT_BT_TRX_INIT_DETECT 8
  35997. #define BIT_MASK_BT_TRX_INIT_DETECT 0xf
  35998. #define BIT_BT_TRX_INIT_DETECT(x) \
  35999. (((x) & BIT_MASK_BT_TRX_INIT_DETECT) << BIT_SHIFT_BT_TRX_INIT_DETECT)
  36000. #define BITS_BT_TRX_INIT_DETECT \
  36001. (BIT_MASK_BT_TRX_INIT_DETECT << BIT_SHIFT_BT_TRX_INIT_DETECT)
  36002. #define BIT_CLEAR_BT_TRX_INIT_DETECT(x) ((x) & (~BITS_BT_TRX_INIT_DETECT))
  36003. #define BIT_GET_BT_TRX_INIT_DETECT(x) \
  36004. (((x) >> BIT_SHIFT_BT_TRX_INIT_DETECT) & BIT_MASK_BT_TRX_INIT_DETECT)
  36005. #define BIT_SET_BT_TRX_INIT_DETECT(x, v) \
  36006. (BIT_CLEAR_BT_TRX_INIT_DETECT(x) | BIT_BT_TRX_INIT_DETECT(v))
  36007. #define BIT_SHIFT_BT_PRI_DETECT_TO 4
  36008. #define BIT_MASK_BT_PRI_DETECT_TO 0xf
  36009. #define BIT_BT_PRI_DETECT_TO(x) \
  36010. (((x) & BIT_MASK_BT_PRI_DETECT_TO) << BIT_SHIFT_BT_PRI_DETECT_TO)
  36011. #define BITS_BT_PRI_DETECT_TO \
  36012. (BIT_MASK_BT_PRI_DETECT_TO << BIT_SHIFT_BT_PRI_DETECT_TO)
  36013. #define BIT_CLEAR_BT_PRI_DETECT_TO(x) ((x) & (~BITS_BT_PRI_DETECT_TO))
  36014. #define BIT_GET_BT_PRI_DETECT_TO(x) \
  36015. (((x) >> BIT_SHIFT_BT_PRI_DETECT_TO) & BIT_MASK_BT_PRI_DETECT_TO)
  36016. #define BIT_SET_BT_PRI_DETECT_TO(x, v) \
  36017. (BIT_CLEAR_BT_PRI_DETECT_TO(x) | BIT_BT_PRI_DETECT_TO(v))
  36018. #define BIT_R_GRANTALL_WLMASK BIT(3)
  36019. #define BIT_STATIS_BT_EN BIT(2)
  36020. #define BIT_WL_ACT_MASK_ENABLE BIT(1)
  36021. #define BIT_ENHANCED_BT BIT(0)
  36022. #endif
  36023. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36024. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  36025. /* 2 REG_BT_ACT_STATISTICS (Offset 0x0770) */
  36026. #define BIT_SHIFT_STATIS_BT_LO_RX (48 & CPU_OPT_WIDTH)
  36027. #define BIT_MASK_STATIS_BT_LO_RX 0xffff
  36028. #define BIT_STATIS_BT_LO_RX(x) \
  36029. (((x) & BIT_MASK_STATIS_BT_LO_RX) << BIT_SHIFT_STATIS_BT_LO_RX)
  36030. #define BITS_STATIS_BT_LO_RX \
  36031. (BIT_MASK_STATIS_BT_LO_RX << BIT_SHIFT_STATIS_BT_LO_RX)
  36032. #define BIT_CLEAR_STATIS_BT_LO_RX(x) ((x) & (~BITS_STATIS_BT_LO_RX))
  36033. #define BIT_GET_STATIS_BT_LO_RX(x) \
  36034. (((x) >> BIT_SHIFT_STATIS_BT_LO_RX) & BIT_MASK_STATIS_BT_LO_RX)
  36035. #define BIT_SET_STATIS_BT_LO_RX(x, v) \
  36036. (BIT_CLEAR_STATIS_BT_LO_RX(x) | BIT_STATIS_BT_LO_RX(v))
  36037. #define BIT_SHIFT_STATIS_BT_LO_TX (32 & CPU_OPT_WIDTH)
  36038. #define BIT_MASK_STATIS_BT_LO_TX 0xffff
  36039. #define BIT_STATIS_BT_LO_TX(x) \
  36040. (((x) & BIT_MASK_STATIS_BT_LO_TX) << BIT_SHIFT_STATIS_BT_LO_TX)
  36041. #define BITS_STATIS_BT_LO_TX \
  36042. (BIT_MASK_STATIS_BT_LO_TX << BIT_SHIFT_STATIS_BT_LO_TX)
  36043. #define BIT_CLEAR_STATIS_BT_LO_TX(x) ((x) & (~BITS_STATIS_BT_LO_TX))
  36044. #define BIT_GET_STATIS_BT_LO_TX(x) \
  36045. (((x) >> BIT_SHIFT_STATIS_BT_LO_TX) & BIT_MASK_STATIS_BT_LO_TX)
  36046. #define BIT_SET_STATIS_BT_LO_TX(x, v) \
  36047. (BIT_CLEAR_STATIS_BT_LO_TX(x) | BIT_STATIS_BT_LO_TX(v))
  36048. #endif
  36049. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36050. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36051. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36052. /* 2 REG_BT_ACT_STATISTICS (Offset 0x0770) */
  36053. #define BIT_SHIFT_STATIS_BT_HI_RX 16
  36054. #define BIT_MASK_STATIS_BT_HI_RX 0xffff
  36055. #define BIT_STATIS_BT_HI_RX(x) \
  36056. (((x) & BIT_MASK_STATIS_BT_HI_RX) << BIT_SHIFT_STATIS_BT_HI_RX)
  36057. #define BITS_STATIS_BT_HI_RX \
  36058. (BIT_MASK_STATIS_BT_HI_RX << BIT_SHIFT_STATIS_BT_HI_RX)
  36059. #define BIT_CLEAR_STATIS_BT_HI_RX(x) ((x) & (~BITS_STATIS_BT_HI_RX))
  36060. #define BIT_GET_STATIS_BT_HI_RX(x) \
  36061. (((x) >> BIT_SHIFT_STATIS_BT_HI_RX) & BIT_MASK_STATIS_BT_HI_RX)
  36062. #define BIT_SET_STATIS_BT_HI_RX(x, v) \
  36063. (BIT_CLEAR_STATIS_BT_HI_RX(x) | BIT_STATIS_BT_HI_RX(v))
  36064. #define BIT_SHIFT_STATIS_BT_HI_TX 0
  36065. #define BIT_MASK_STATIS_BT_HI_TX 0xffff
  36066. #define BIT_STATIS_BT_HI_TX(x) \
  36067. (((x) & BIT_MASK_STATIS_BT_HI_TX) << BIT_SHIFT_STATIS_BT_HI_TX)
  36068. #define BITS_STATIS_BT_HI_TX \
  36069. (BIT_MASK_STATIS_BT_HI_TX << BIT_SHIFT_STATIS_BT_HI_TX)
  36070. #define BIT_CLEAR_STATIS_BT_HI_TX(x) ((x) & (~BITS_STATIS_BT_HI_TX))
  36071. #define BIT_GET_STATIS_BT_HI_TX(x) \
  36072. (((x) >> BIT_SHIFT_STATIS_BT_HI_TX) & BIT_MASK_STATIS_BT_HI_TX)
  36073. #define BIT_SET_STATIS_BT_HI_TX(x, v) \
  36074. (BIT_CLEAR_STATIS_BT_HI_TX(x) | BIT_STATIS_BT_HI_TX(v))
  36075. #endif
  36076. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  36077. HALMAC_8822C_SUPPORT)
  36078. /* 2 REG_BT_ACT_STATISTICS_1 (Offset 0x0774) */
  36079. #define BIT_APPEND_MACID_IN_RESP_EN_1 BIT(18)
  36080. #define BIT_ADDR2_MATCH_EN_1 BIT(17)
  36081. #define BIT_SHIFT_STATIS_BT_LO_RX_1 16
  36082. #define BIT_MASK_STATIS_BT_LO_RX_1 0xffff
  36083. #define BIT_STATIS_BT_LO_RX_1(x) \
  36084. (((x) & BIT_MASK_STATIS_BT_LO_RX_1) << BIT_SHIFT_STATIS_BT_LO_RX_1)
  36085. #define BITS_STATIS_BT_LO_RX_1 \
  36086. (BIT_MASK_STATIS_BT_LO_RX_1 << BIT_SHIFT_STATIS_BT_LO_RX_1)
  36087. #define BIT_CLEAR_STATIS_BT_LO_RX_1(x) ((x) & (~BITS_STATIS_BT_LO_RX_1))
  36088. #define BIT_GET_STATIS_BT_LO_RX_1(x) \
  36089. (((x) >> BIT_SHIFT_STATIS_BT_LO_RX_1) & BIT_MASK_STATIS_BT_LO_RX_1)
  36090. #define BIT_SET_STATIS_BT_LO_RX_1(x, v) \
  36091. (BIT_CLEAR_STATIS_BT_LO_RX_1(x) | BIT_STATIS_BT_LO_RX_1(v))
  36092. #define BIT_ANTTRN_EN_1 BIT(16)
  36093. #define BIT_SHIFT_STATIS_BT_LO_TX_1 0
  36094. #define BIT_MASK_STATIS_BT_LO_TX_1 0xffff
  36095. #define BIT_STATIS_BT_LO_TX_1(x) \
  36096. (((x) & BIT_MASK_STATIS_BT_LO_TX_1) << BIT_SHIFT_STATIS_BT_LO_TX_1)
  36097. #define BITS_STATIS_BT_LO_TX_1 \
  36098. (BIT_MASK_STATIS_BT_LO_TX_1 << BIT_SHIFT_STATIS_BT_LO_TX_1)
  36099. #define BIT_CLEAR_STATIS_BT_LO_TX_1(x) ((x) & (~BITS_STATIS_BT_LO_TX_1))
  36100. #define BIT_GET_STATIS_BT_LO_TX_1(x) \
  36101. (((x) >> BIT_SHIFT_STATIS_BT_LO_TX_1) & BIT_MASK_STATIS_BT_LO_TX_1)
  36102. #define BIT_SET_STATIS_BT_LO_TX_1(x, v) \
  36103. (BIT_CLEAR_STATIS_BT_LO_TX_1(x) | BIT_STATIS_BT_LO_TX_1(v))
  36104. #endif
  36105. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36106. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36107. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36108. /* 2 REG_BT_STATISTICS_CONTROL_REGISTER (Offset 0x0778) */
  36109. #define BIT_SHIFT_R_BT_CMD_RPT 16
  36110. #define BIT_MASK_R_BT_CMD_RPT 0xffff
  36111. #define BIT_R_BT_CMD_RPT(x) \
  36112. (((x) & BIT_MASK_R_BT_CMD_RPT) << BIT_SHIFT_R_BT_CMD_RPT)
  36113. #define BITS_R_BT_CMD_RPT (BIT_MASK_R_BT_CMD_RPT << BIT_SHIFT_R_BT_CMD_RPT)
  36114. #define BIT_CLEAR_R_BT_CMD_RPT(x) ((x) & (~BITS_R_BT_CMD_RPT))
  36115. #define BIT_GET_R_BT_CMD_RPT(x) \
  36116. (((x) >> BIT_SHIFT_R_BT_CMD_RPT) & BIT_MASK_R_BT_CMD_RPT)
  36117. #define BIT_SET_R_BT_CMD_RPT(x, v) \
  36118. (BIT_CLEAR_R_BT_CMD_RPT(x) | BIT_R_BT_CMD_RPT(v))
  36119. #define BIT_SHIFT_R_RPT_FROM_BT 8
  36120. #define BIT_MASK_R_RPT_FROM_BT 0xff
  36121. #define BIT_R_RPT_FROM_BT(x) \
  36122. (((x) & BIT_MASK_R_RPT_FROM_BT) << BIT_SHIFT_R_RPT_FROM_BT)
  36123. #define BITS_R_RPT_FROM_BT (BIT_MASK_R_RPT_FROM_BT << BIT_SHIFT_R_RPT_FROM_BT)
  36124. #define BIT_CLEAR_R_RPT_FROM_BT(x) ((x) & (~BITS_R_RPT_FROM_BT))
  36125. #define BIT_GET_R_RPT_FROM_BT(x) \
  36126. (((x) >> BIT_SHIFT_R_RPT_FROM_BT) & BIT_MASK_R_RPT_FROM_BT)
  36127. #define BIT_SET_R_RPT_FROM_BT(x, v) \
  36128. (BIT_CLEAR_R_RPT_FROM_BT(x) | BIT_R_RPT_FROM_BT(v))
  36129. #define BIT_SHIFT_BT_HID_ISR_SET 6
  36130. #define BIT_MASK_BT_HID_ISR_SET 0x3
  36131. #define BIT_BT_HID_ISR_SET(x) \
  36132. (((x) & BIT_MASK_BT_HID_ISR_SET) << BIT_SHIFT_BT_HID_ISR_SET)
  36133. #define BITS_BT_HID_ISR_SET \
  36134. (BIT_MASK_BT_HID_ISR_SET << BIT_SHIFT_BT_HID_ISR_SET)
  36135. #define BIT_CLEAR_BT_HID_ISR_SET(x) ((x) & (~BITS_BT_HID_ISR_SET))
  36136. #define BIT_GET_BT_HID_ISR_SET(x) \
  36137. (((x) >> BIT_SHIFT_BT_HID_ISR_SET) & BIT_MASK_BT_HID_ISR_SET)
  36138. #define BIT_SET_BT_HID_ISR_SET(x, v) \
  36139. (BIT_CLEAR_BT_HID_ISR_SET(x) | BIT_BT_HID_ISR_SET(v))
  36140. #define BIT_TDMA_BT_START_NOTIFY BIT(5)
  36141. #define BIT_ENABLE_TDMA_FW_MODE BIT(4)
  36142. #define BIT_ENABLE_PTA_TDMA_MODE BIT(3)
  36143. #define BIT_ENABLE_COEXIST_TAB_IN_TDMA BIT(2)
  36144. #define BIT_GPIO2_GPIO3_EXANGE_OR_NO_BT_CCA BIT(1)
  36145. #define BIT_RTK_BT_ENABLE BIT(0)
  36146. #endif
  36147. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  36148. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  36149. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36150. HALMAC_8822C_SUPPORT)
  36151. /* 2 REG_BT_STATUS_REPORT_REGISTER (Offset 0x077C) */
  36152. #define BIT_SHIFT_BT_PROFILE 24
  36153. #define BIT_MASK_BT_PROFILE 0xff
  36154. #define BIT_BT_PROFILE(x) (((x) & BIT_MASK_BT_PROFILE) << BIT_SHIFT_BT_PROFILE)
  36155. #define BITS_BT_PROFILE (BIT_MASK_BT_PROFILE << BIT_SHIFT_BT_PROFILE)
  36156. #define BIT_CLEAR_BT_PROFILE(x) ((x) & (~BITS_BT_PROFILE))
  36157. #define BIT_GET_BT_PROFILE(x) \
  36158. (((x) >> BIT_SHIFT_BT_PROFILE) & BIT_MASK_BT_PROFILE)
  36159. #define BIT_SET_BT_PROFILE(x, v) (BIT_CLEAR_BT_PROFILE(x) | BIT_BT_PROFILE(v))
  36160. #define BIT_SHIFT_BT_POWER 16
  36161. #define BIT_MASK_BT_POWER 0xff
  36162. #define BIT_BT_POWER(x) (((x) & BIT_MASK_BT_POWER) << BIT_SHIFT_BT_POWER)
  36163. #define BITS_BT_POWER (BIT_MASK_BT_POWER << BIT_SHIFT_BT_POWER)
  36164. #define BIT_CLEAR_BT_POWER(x) ((x) & (~BITS_BT_POWER))
  36165. #define BIT_GET_BT_POWER(x) (((x) >> BIT_SHIFT_BT_POWER) & BIT_MASK_BT_POWER)
  36166. #define BIT_SET_BT_POWER(x, v) (BIT_CLEAR_BT_POWER(x) | BIT_BT_POWER(v))
  36167. #define BIT_SHIFT_BT_PREDECT_STATUS 8
  36168. #define BIT_MASK_BT_PREDECT_STATUS 0xff
  36169. #define BIT_BT_PREDECT_STATUS(x) \
  36170. (((x) & BIT_MASK_BT_PREDECT_STATUS) << BIT_SHIFT_BT_PREDECT_STATUS)
  36171. #define BITS_BT_PREDECT_STATUS \
  36172. (BIT_MASK_BT_PREDECT_STATUS << BIT_SHIFT_BT_PREDECT_STATUS)
  36173. #define BIT_CLEAR_BT_PREDECT_STATUS(x) ((x) & (~BITS_BT_PREDECT_STATUS))
  36174. #define BIT_GET_BT_PREDECT_STATUS(x) \
  36175. (((x) >> BIT_SHIFT_BT_PREDECT_STATUS) & BIT_MASK_BT_PREDECT_STATUS)
  36176. #define BIT_SET_BT_PREDECT_STATUS(x, v) \
  36177. (BIT_CLEAR_BT_PREDECT_STATUS(x) | BIT_BT_PREDECT_STATUS(v))
  36178. #define BIT_SHIFT_BT_CMD_INFO 0
  36179. #define BIT_MASK_BT_CMD_INFO 0xff
  36180. #define BIT_BT_CMD_INFO(x) \
  36181. (((x) & BIT_MASK_BT_CMD_INFO) << BIT_SHIFT_BT_CMD_INFO)
  36182. #define BITS_BT_CMD_INFO (BIT_MASK_BT_CMD_INFO << BIT_SHIFT_BT_CMD_INFO)
  36183. #define BIT_CLEAR_BT_CMD_INFO(x) ((x) & (~BITS_BT_CMD_INFO))
  36184. #define BIT_GET_BT_CMD_INFO(x) \
  36185. (((x) >> BIT_SHIFT_BT_CMD_INFO) & BIT_MASK_BT_CMD_INFO)
  36186. #define BIT_SET_BT_CMD_INFO(x, v) \
  36187. (BIT_CLEAR_BT_CMD_INFO(x) | BIT_BT_CMD_INFO(v))
  36188. #endif
  36189. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36190. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36191. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36192. /* 2 REG_BT_INTERRUPT_CONTROL_REGISTER (Offset 0x0780) */
  36193. #define BIT_EN_MAC_NULL_PKT_NOTIFY BIT(31)
  36194. #define BIT_EN_WLAN_RPT_AND_BT_QUERY BIT(30)
  36195. #define BIT_EN_BT_STSTUS_RPT BIT(29)
  36196. #define BIT_EN_BT_POWER BIT(28)
  36197. #define BIT_EN_BT_CHANNEL BIT(27)
  36198. #define BIT_EN_BT_SLOT_CHANGE BIT(26)
  36199. #define BIT_EN_BT_PROFILE_OR_HID BIT(25)
  36200. #define BIT_WLAN_RPT_NOTIFY BIT(24)
  36201. #define BIT_SHIFT_WLAN_RPT_DATA 16
  36202. #define BIT_MASK_WLAN_RPT_DATA 0xff
  36203. #define BIT_WLAN_RPT_DATA(x) \
  36204. (((x) & BIT_MASK_WLAN_RPT_DATA) << BIT_SHIFT_WLAN_RPT_DATA)
  36205. #define BITS_WLAN_RPT_DATA (BIT_MASK_WLAN_RPT_DATA << BIT_SHIFT_WLAN_RPT_DATA)
  36206. #define BIT_CLEAR_WLAN_RPT_DATA(x) ((x) & (~BITS_WLAN_RPT_DATA))
  36207. #define BIT_GET_WLAN_RPT_DATA(x) \
  36208. (((x) >> BIT_SHIFT_WLAN_RPT_DATA) & BIT_MASK_WLAN_RPT_DATA)
  36209. #define BIT_SET_WLAN_RPT_DATA(x, v) \
  36210. (BIT_CLEAR_WLAN_RPT_DATA(x) | BIT_WLAN_RPT_DATA(v))
  36211. #define BIT_SHIFT_CMD_ID 8
  36212. #define BIT_MASK_CMD_ID 0xff
  36213. #define BIT_CMD_ID(x) (((x) & BIT_MASK_CMD_ID) << BIT_SHIFT_CMD_ID)
  36214. #define BITS_CMD_ID (BIT_MASK_CMD_ID << BIT_SHIFT_CMD_ID)
  36215. #define BIT_CLEAR_CMD_ID(x) ((x) & (~BITS_CMD_ID))
  36216. #define BIT_GET_CMD_ID(x) (((x) >> BIT_SHIFT_CMD_ID) & BIT_MASK_CMD_ID)
  36217. #define BIT_SET_CMD_ID(x, v) (BIT_CLEAR_CMD_ID(x) | BIT_CMD_ID(v))
  36218. #define BIT_SHIFT_BT_DATA 0
  36219. #define BIT_MASK_BT_DATA 0xff
  36220. #define BIT_BT_DATA(x) (((x) & BIT_MASK_BT_DATA) << BIT_SHIFT_BT_DATA)
  36221. #define BITS_BT_DATA (BIT_MASK_BT_DATA << BIT_SHIFT_BT_DATA)
  36222. #define BIT_CLEAR_BT_DATA(x) ((x) & (~BITS_BT_DATA))
  36223. #define BIT_GET_BT_DATA(x) (((x) >> BIT_SHIFT_BT_DATA) & BIT_MASK_BT_DATA)
  36224. #define BIT_SET_BT_DATA(x, v) (BIT_CLEAR_BT_DATA(x) | BIT_BT_DATA(v))
  36225. /* 2 REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER (Offset 0x0784) */
  36226. #define BIT_SHIFT_WLAN_RPT_TO 0
  36227. #define BIT_MASK_WLAN_RPT_TO 0xff
  36228. #define BIT_WLAN_RPT_TO(x) \
  36229. (((x) & BIT_MASK_WLAN_RPT_TO) << BIT_SHIFT_WLAN_RPT_TO)
  36230. #define BITS_WLAN_RPT_TO (BIT_MASK_WLAN_RPT_TO << BIT_SHIFT_WLAN_RPT_TO)
  36231. #define BIT_CLEAR_WLAN_RPT_TO(x) ((x) & (~BITS_WLAN_RPT_TO))
  36232. #define BIT_GET_WLAN_RPT_TO(x) \
  36233. (((x) >> BIT_SHIFT_WLAN_RPT_TO) & BIT_MASK_WLAN_RPT_TO)
  36234. #define BIT_SET_WLAN_RPT_TO(x, v) \
  36235. (BIT_CLEAR_WLAN_RPT_TO(x) | BIT_WLAN_RPT_TO(v))
  36236. #endif
  36237. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  36238. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  36239. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */
  36240. #define BIT_SHIFT_ISOLATION_CHK_0 1
  36241. #define BIT_MASK_ISOLATION_CHK_0 0x7fffff
  36242. #define BIT_ISOLATION_CHK_0(x) \
  36243. (((x) & BIT_MASK_ISOLATION_CHK_0) << BIT_SHIFT_ISOLATION_CHK_0)
  36244. #define BITS_ISOLATION_CHK_0 \
  36245. (BIT_MASK_ISOLATION_CHK_0 << BIT_SHIFT_ISOLATION_CHK_0)
  36246. #define BIT_CLEAR_ISOLATION_CHK_0(x) ((x) & (~BITS_ISOLATION_CHK_0))
  36247. #define BIT_GET_ISOLATION_CHK_0(x) \
  36248. (((x) >> BIT_SHIFT_ISOLATION_CHK_0) & BIT_MASK_ISOLATION_CHK_0)
  36249. #define BIT_SET_ISOLATION_CHK_0(x, v) \
  36250. (BIT_CLEAR_ISOLATION_CHK_0(x) | BIT_ISOLATION_CHK_0(v))
  36251. #endif
  36252. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36253. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  36254. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */
  36255. #define BIT_SHIFT_ISOLATION_CHK 1
  36256. #define BIT_MASK_ISOLATION_CHK 0x7fffffffffffffffffffL
  36257. #define BIT_ISOLATION_CHK(x) \
  36258. (((x) & BIT_MASK_ISOLATION_CHK) << BIT_SHIFT_ISOLATION_CHK)
  36259. #define BITS_ISOLATION_CHK (BIT_MASK_ISOLATION_CHK << BIT_SHIFT_ISOLATION_CHK)
  36260. #define BIT_CLEAR_ISOLATION_CHK(x) ((x) & (~BITS_ISOLATION_CHK))
  36261. #define BIT_GET_ISOLATION_CHK(x) \
  36262. (((x) >> BIT_SHIFT_ISOLATION_CHK) & BIT_MASK_ISOLATION_CHK)
  36263. #define BIT_SET_ISOLATION_CHK(x, v) \
  36264. (BIT_CLEAR_ISOLATION_CHK(x) | BIT_ISOLATION_CHK(v))
  36265. #endif
  36266. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  36267. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  36268. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36269. HALMAC_8822C_SUPPORT)
  36270. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */
  36271. #define BIT_ISOLATION_EN BIT(0)
  36272. #define BIT_SHIFT_R_CCK_LEN 0
  36273. #define BIT_MASK_R_CCK_LEN 0xffff
  36274. #define BIT_R_CCK_LEN(x) (((x) & BIT_MASK_R_CCK_LEN) << BIT_SHIFT_R_CCK_LEN)
  36275. #define BITS_R_CCK_LEN (BIT_MASK_R_CCK_LEN << BIT_SHIFT_R_CCK_LEN)
  36276. #define BIT_CLEAR_R_CCK_LEN(x) ((x) & (~BITS_R_CCK_LEN))
  36277. #define BIT_GET_R_CCK_LEN(x) (((x) >> BIT_SHIFT_R_CCK_LEN) & BIT_MASK_R_CCK_LEN)
  36278. #define BIT_SET_R_CCK_LEN(x, v) (BIT_CLEAR_R_CCK_LEN(x) | BIT_R_CCK_LEN(v))
  36279. #endif
  36280. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  36281. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  36282. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_1 (Offset 0x0788) */
  36283. #define BIT_SHIFT_ISOLATION_CHK_1 0
  36284. #define BIT_MASK_ISOLATION_CHK_1 0xffffffffL
  36285. #define BIT_ISOLATION_CHK_1(x) \
  36286. (((x) & BIT_MASK_ISOLATION_CHK_1) << BIT_SHIFT_ISOLATION_CHK_1)
  36287. #define BITS_ISOLATION_CHK_1 \
  36288. (BIT_MASK_ISOLATION_CHK_1 << BIT_SHIFT_ISOLATION_CHK_1)
  36289. #define BIT_CLEAR_ISOLATION_CHK_1(x) ((x) & (~BITS_ISOLATION_CHK_1))
  36290. #define BIT_GET_ISOLATION_CHK_1(x) \
  36291. (((x) >> BIT_SHIFT_ISOLATION_CHK_1) & BIT_MASK_ISOLATION_CHK_1)
  36292. #define BIT_SET_ISOLATION_CHK_1(x, v) \
  36293. (BIT_CLEAR_ISOLATION_CHK_1(x) | BIT_ISOLATION_CHK_1(v))
  36294. /* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_2 (Offset 0x078C) */
  36295. #define BIT_SHIFT_ISOLATION_CHK_2 0
  36296. #define BIT_MASK_ISOLATION_CHK_2 0xffffff
  36297. #define BIT_ISOLATION_CHK_2(x) \
  36298. (((x) & BIT_MASK_ISOLATION_CHK_2) << BIT_SHIFT_ISOLATION_CHK_2)
  36299. #define BITS_ISOLATION_CHK_2 \
  36300. (BIT_MASK_ISOLATION_CHK_2 << BIT_SHIFT_ISOLATION_CHK_2)
  36301. #define BIT_CLEAR_ISOLATION_CHK_2(x) ((x) & (~BITS_ISOLATION_CHK_2))
  36302. #define BIT_GET_ISOLATION_CHK_2(x) \
  36303. (((x) >> BIT_SHIFT_ISOLATION_CHK_2) & BIT_MASK_ISOLATION_CHK_2)
  36304. #define BIT_SET_ISOLATION_CHK_2(x, v) \
  36305. (BIT_CLEAR_ISOLATION_CHK_2(x) | BIT_ISOLATION_CHK_2(v))
  36306. #endif
  36307. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36308. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36309. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36310. /* 2 REG_BT_INTERRUPT_STATUS_REGISTER (Offset 0x078F) */
  36311. #define BIT_BT_HID_ISR BIT(7)
  36312. #define BIT_BT_QUERY_ISR BIT(6)
  36313. #define BIT_MAC_NULL_PKT_NOTIFY_ISR BIT(5)
  36314. #define BIT_WLAN_RPT_ISR BIT(4)
  36315. #define BIT_BT_POWER_ISR BIT(3)
  36316. #define BIT_BT_CHANNEL_ISR BIT(2)
  36317. #define BIT_BT_SLOT_CHANGE_ISR BIT(1)
  36318. #define BIT_BT_PROFILE_ISR BIT(0)
  36319. /* 2 REG_BT_TDMA_TIME_REGISTER (Offset 0x0790) */
  36320. #define BIT_SHIFT_BT_TIME 6
  36321. #define BIT_MASK_BT_TIME 0x3ffffff
  36322. #define BIT_BT_TIME(x) (((x) & BIT_MASK_BT_TIME) << BIT_SHIFT_BT_TIME)
  36323. #define BITS_BT_TIME (BIT_MASK_BT_TIME << BIT_SHIFT_BT_TIME)
  36324. #define BIT_CLEAR_BT_TIME(x) ((x) & (~BITS_BT_TIME))
  36325. #define BIT_GET_BT_TIME(x) (((x) >> BIT_SHIFT_BT_TIME) & BIT_MASK_BT_TIME)
  36326. #define BIT_SET_BT_TIME(x, v) (BIT_CLEAR_BT_TIME(x) | BIT_BT_TIME(v))
  36327. #define BIT_SHIFT_BT_RPT_SAMPLE_RATE 0
  36328. #define BIT_MASK_BT_RPT_SAMPLE_RATE 0x3f
  36329. #define BIT_BT_RPT_SAMPLE_RATE(x) \
  36330. (((x) & BIT_MASK_BT_RPT_SAMPLE_RATE) << BIT_SHIFT_BT_RPT_SAMPLE_RATE)
  36331. #define BITS_BT_RPT_SAMPLE_RATE \
  36332. (BIT_MASK_BT_RPT_SAMPLE_RATE << BIT_SHIFT_BT_RPT_SAMPLE_RATE)
  36333. #define BIT_CLEAR_BT_RPT_SAMPLE_RATE(x) ((x) & (~BITS_BT_RPT_SAMPLE_RATE))
  36334. #define BIT_GET_BT_RPT_SAMPLE_RATE(x) \
  36335. (((x) >> BIT_SHIFT_BT_RPT_SAMPLE_RATE) & BIT_MASK_BT_RPT_SAMPLE_RATE)
  36336. #define BIT_SET_BT_RPT_SAMPLE_RATE(x, v) \
  36337. (BIT_CLEAR_BT_RPT_SAMPLE_RATE(x) | BIT_BT_RPT_SAMPLE_RATE(v))
  36338. #endif
  36339. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36340. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  36341. HALMAC_8822B_SUPPORT)
  36342. /* 2 REG_BT_ACT_REGISTER (Offset 0x0794) */
  36343. #define BIT_SHIFT_R_OFDM_LEN 26
  36344. #define BIT_MASK_R_OFDM_LEN 0x3f
  36345. #define BIT_R_OFDM_LEN(x) (((x) & BIT_MASK_R_OFDM_LEN) << BIT_SHIFT_R_OFDM_LEN)
  36346. #define BITS_R_OFDM_LEN (BIT_MASK_R_OFDM_LEN << BIT_SHIFT_R_OFDM_LEN)
  36347. #define BIT_CLEAR_R_OFDM_LEN(x) ((x) & (~BITS_R_OFDM_LEN))
  36348. #define BIT_GET_R_OFDM_LEN(x) \
  36349. (((x) >> BIT_SHIFT_R_OFDM_LEN) & BIT_MASK_R_OFDM_LEN)
  36350. #define BIT_SET_R_OFDM_LEN(x, v) (BIT_CLEAR_R_OFDM_LEN(x) | BIT_R_OFDM_LEN(v))
  36351. #endif
  36352. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36353. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36354. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36355. /* 2 REG_BT_ACT_REGISTER (Offset 0x0794) */
  36356. #define BIT_SHIFT_BT_EISR_EN 16
  36357. #define BIT_MASK_BT_EISR_EN 0xff
  36358. #define BIT_BT_EISR_EN(x) (((x) & BIT_MASK_BT_EISR_EN) << BIT_SHIFT_BT_EISR_EN)
  36359. #define BITS_BT_EISR_EN (BIT_MASK_BT_EISR_EN << BIT_SHIFT_BT_EISR_EN)
  36360. #define BIT_CLEAR_BT_EISR_EN(x) ((x) & (~BITS_BT_EISR_EN))
  36361. #define BIT_GET_BT_EISR_EN(x) \
  36362. (((x) >> BIT_SHIFT_BT_EISR_EN) & BIT_MASK_BT_EISR_EN)
  36363. #define BIT_SET_BT_EISR_EN(x, v) (BIT_CLEAR_BT_EISR_EN(x) | BIT_BT_EISR_EN(v))
  36364. #define BIT_BT_ACT_FALLING_ISR BIT(10)
  36365. #define BIT_BT_ACT_RISING_ISR BIT(9)
  36366. #define BIT_TDMA_TO_ISR BIT(8)
  36367. #endif
  36368. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36369. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  36370. HALMAC_8822B_SUPPORT)
  36371. /* 2 REG_BT_ACT_REGISTER (Offset 0x0794) */
  36372. #define BIT_SHIFT_BT_CH 0
  36373. #define BIT_MASK_BT_CH 0xff
  36374. #define BIT_BT_CH(x) (((x) & BIT_MASK_BT_CH) << BIT_SHIFT_BT_CH)
  36375. #define BITS_BT_CH (BIT_MASK_BT_CH << BIT_SHIFT_BT_CH)
  36376. #define BIT_CLEAR_BT_CH(x) ((x) & (~BITS_BT_CH))
  36377. #define BIT_GET_BT_CH(x) (((x) >> BIT_SHIFT_BT_CH) & BIT_MASK_BT_CH)
  36378. #define BIT_SET_BT_CH(x, v) (BIT_CLEAR_BT_CH(x) | BIT_BT_CH(v))
  36379. #endif
  36380. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  36381. /* 2 REG_BT_ACT_REGISTER (Offset 0x0794) */
  36382. #define BIT_SHIFT_BT_CH_V1 0
  36383. #define BIT_MASK_BT_CH_V1 0x7f
  36384. #define BIT_BT_CH_V1(x) (((x) & BIT_MASK_BT_CH_V1) << BIT_SHIFT_BT_CH_V1)
  36385. #define BITS_BT_CH_V1 (BIT_MASK_BT_CH_V1 << BIT_SHIFT_BT_CH_V1)
  36386. #define BIT_CLEAR_BT_CH_V1(x) ((x) & (~BITS_BT_CH_V1))
  36387. #define BIT_GET_BT_CH_V1(x) (((x) >> BIT_SHIFT_BT_CH_V1) & BIT_MASK_BT_CH_V1)
  36388. #define BIT_SET_BT_CH_V1(x, v) (BIT_CLEAR_BT_CH_V1(x) | BIT_BT_CH_V1(v))
  36389. #endif
  36390. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36391. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36392. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36393. /* 2 REG_OBFF_CTRL_BASIC (Offset 0x0798) */
  36394. #define BIT_OBFF_EN_V1 BIT(31)
  36395. #define BIT_SHIFT_OBFF_STATE_V1 28
  36396. #define BIT_MASK_OBFF_STATE_V1 0x3
  36397. #define BIT_OBFF_STATE_V1(x) \
  36398. (((x) & BIT_MASK_OBFF_STATE_V1) << BIT_SHIFT_OBFF_STATE_V1)
  36399. #define BITS_OBFF_STATE_V1 (BIT_MASK_OBFF_STATE_V1 << BIT_SHIFT_OBFF_STATE_V1)
  36400. #define BIT_CLEAR_OBFF_STATE_V1(x) ((x) & (~BITS_OBFF_STATE_V1))
  36401. #define BIT_GET_OBFF_STATE_V1(x) \
  36402. (((x) >> BIT_SHIFT_OBFF_STATE_V1) & BIT_MASK_OBFF_STATE_V1)
  36403. #define BIT_SET_OBFF_STATE_V1(x, v) \
  36404. (BIT_CLEAR_OBFF_STATE_V1(x) | BIT_OBFF_STATE_V1(v))
  36405. #define BIT_OBFF_ACT_RXDMA_EN BIT(27)
  36406. #define BIT_OBFF_BLOCK_INT_EN BIT(26)
  36407. #define BIT_OBFF_AUTOACT_EN BIT(25)
  36408. #define BIT_OBFF_AUTOIDLE_EN BIT(24)
  36409. #define BIT_SHIFT_WAKE_MAX_PLS 20
  36410. #define BIT_MASK_WAKE_MAX_PLS 0x7
  36411. #define BIT_WAKE_MAX_PLS(x) \
  36412. (((x) & BIT_MASK_WAKE_MAX_PLS) << BIT_SHIFT_WAKE_MAX_PLS)
  36413. #define BITS_WAKE_MAX_PLS (BIT_MASK_WAKE_MAX_PLS << BIT_SHIFT_WAKE_MAX_PLS)
  36414. #define BIT_CLEAR_WAKE_MAX_PLS(x) ((x) & (~BITS_WAKE_MAX_PLS))
  36415. #define BIT_GET_WAKE_MAX_PLS(x) \
  36416. (((x) >> BIT_SHIFT_WAKE_MAX_PLS) & BIT_MASK_WAKE_MAX_PLS)
  36417. #define BIT_SET_WAKE_MAX_PLS(x, v) \
  36418. (BIT_CLEAR_WAKE_MAX_PLS(x) | BIT_WAKE_MAX_PLS(v))
  36419. #define BIT_SHIFT_WAKE_MIN_PLS 16
  36420. #define BIT_MASK_WAKE_MIN_PLS 0x7
  36421. #define BIT_WAKE_MIN_PLS(x) \
  36422. (((x) & BIT_MASK_WAKE_MIN_PLS) << BIT_SHIFT_WAKE_MIN_PLS)
  36423. #define BITS_WAKE_MIN_PLS (BIT_MASK_WAKE_MIN_PLS << BIT_SHIFT_WAKE_MIN_PLS)
  36424. #define BIT_CLEAR_WAKE_MIN_PLS(x) ((x) & (~BITS_WAKE_MIN_PLS))
  36425. #define BIT_GET_WAKE_MIN_PLS(x) \
  36426. (((x) >> BIT_SHIFT_WAKE_MIN_PLS) & BIT_MASK_WAKE_MIN_PLS)
  36427. #define BIT_SET_WAKE_MIN_PLS(x, v) \
  36428. (BIT_CLEAR_WAKE_MIN_PLS(x) | BIT_WAKE_MIN_PLS(v))
  36429. #define BIT_SHIFT_WAKE_MAX_F2F 12
  36430. #define BIT_MASK_WAKE_MAX_F2F 0x7
  36431. #define BIT_WAKE_MAX_F2F(x) \
  36432. (((x) & BIT_MASK_WAKE_MAX_F2F) << BIT_SHIFT_WAKE_MAX_F2F)
  36433. #define BITS_WAKE_MAX_F2F (BIT_MASK_WAKE_MAX_F2F << BIT_SHIFT_WAKE_MAX_F2F)
  36434. #define BIT_CLEAR_WAKE_MAX_F2F(x) ((x) & (~BITS_WAKE_MAX_F2F))
  36435. #define BIT_GET_WAKE_MAX_F2F(x) \
  36436. (((x) >> BIT_SHIFT_WAKE_MAX_F2F) & BIT_MASK_WAKE_MAX_F2F)
  36437. #define BIT_SET_WAKE_MAX_F2F(x, v) \
  36438. (BIT_CLEAR_WAKE_MAX_F2F(x) | BIT_WAKE_MAX_F2F(v))
  36439. #define BIT_SHIFT_WAKE_MIN_F2F 8
  36440. #define BIT_MASK_WAKE_MIN_F2F 0x7
  36441. #define BIT_WAKE_MIN_F2F(x) \
  36442. (((x) & BIT_MASK_WAKE_MIN_F2F) << BIT_SHIFT_WAKE_MIN_F2F)
  36443. #define BITS_WAKE_MIN_F2F (BIT_MASK_WAKE_MIN_F2F << BIT_SHIFT_WAKE_MIN_F2F)
  36444. #define BIT_CLEAR_WAKE_MIN_F2F(x) ((x) & (~BITS_WAKE_MIN_F2F))
  36445. #define BIT_GET_WAKE_MIN_F2F(x) \
  36446. (((x) >> BIT_SHIFT_WAKE_MIN_F2F) & BIT_MASK_WAKE_MIN_F2F)
  36447. #define BIT_SET_WAKE_MIN_F2F(x, v) \
  36448. (BIT_CLEAR_WAKE_MIN_F2F(x) | BIT_WAKE_MIN_F2F(v))
  36449. #define BIT_APP_CPU_ACT_V1 BIT(3)
  36450. #define BIT_APP_OBFF_V1 BIT(2)
  36451. #define BIT_APP_IDLE_V1 BIT(1)
  36452. #define BIT_APP_INIT_V1 BIT(0)
  36453. /* 2 REG_OBFF_CTRL2_TIMER (Offset 0x079C) */
  36454. #define BIT_SHIFT_RX_HIGH_TIMER_IDX 24
  36455. #define BIT_MASK_RX_HIGH_TIMER_IDX 0x7
  36456. #define BIT_RX_HIGH_TIMER_IDX(x) \
  36457. (((x) & BIT_MASK_RX_HIGH_TIMER_IDX) << BIT_SHIFT_RX_HIGH_TIMER_IDX)
  36458. #define BITS_RX_HIGH_TIMER_IDX \
  36459. (BIT_MASK_RX_HIGH_TIMER_IDX << BIT_SHIFT_RX_HIGH_TIMER_IDX)
  36460. #define BIT_CLEAR_RX_HIGH_TIMER_IDX(x) ((x) & (~BITS_RX_HIGH_TIMER_IDX))
  36461. #define BIT_GET_RX_HIGH_TIMER_IDX(x) \
  36462. (((x) >> BIT_SHIFT_RX_HIGH_TIMER_IDX) & BIT_MASK_RX_HIGH_TIMER_IDX)
  36463. #define BIT_SET_RX_HIGH_TIMER_IDX(x, v) \
  36464. (BIT_CLEAR_RX_HIGH_TIMER_IDX(x) | BIT_RX_HIGH_TIMER_IDX(v))
  36465. #define BIT_SHIFT_RX_MED_TIMER_IDX 16
  36466. #define BIT_MASK_RX_MED_TIMER_IDX 0x7
  36467. #define BIT_RX_MED_TIMER_IDX(x) \
  36468. (((x) & BIT_MASK_RX_MED_TIMER_IDX) << BIT_SHIFT_RX_MED_TIMER_IDX)
  36469. #define BITS_RX_MED_TIMER_IDX \
  36470. (BIT_MASK_RX_MED_TIMER_IDX << BIT_SHIFT_RX_MED_TIMER_IDX)
  36471. #define BIT_CLEAR_RX_MED_TIMER_IDX(x) ((x) & (~BITS_RX_MED_TIMER_IDX))
  36472. #define BIT_GET_RX_MED_TIMER_IDX(x) \
  36473. (((x) >> BIT_SHIFT_RX_MED_TIMER_IDX) & BIT_MASK_RX_MED_TIMER_IDX)
  36474. #define BIT_SET_RX_MED_TIMER_IDX(x, v) \
  36475. (BIT_CLEAR_RX_MED_TIMER_IDX(x) | BIT_RX_MED_TIMER_IDX(v))
  36476. #define BIT_SHIFT_RX_LOW_TIMER_IDX 8
  36477. #define BIT_MASK_RX_LOW_TIMER_IDX 0x7
  36478. #define BIT_RX_LOW_TIMER_IDX(x) \
  36479. (((x) & BIT_MASK_RX_LOW_TIMER_IDX) << BIT_SHIFT_RX_LOW_TIMER_IDX)
  36480. #define BITS_RX_LOW_TIMER_IDX \
  36481. (BIT_MASK_RX_LOW_TIMER_IDX << BIT_SHIFT_RX_LOW_TIMER_IDX)
  36482. #define BIT_CLEAR_RX_LOW_TIMER_IDX(x) ((x) & (~BITS_RX_LOW_TIMER_IDX))
  36483. #define BIT_GET_RX_LOW_TIMER_IDX(x) \
  36484. (((x) >> BIT_SHIFT_RX_LOW_TIMER_IDX) & BIT_MASK_RX_LOW_TIMER_IDX)
  36485. #define BIT_SET_RX_LOW_TIMER_IDX(x, v) \
  36486. (BIT_CLEAR_RX_LOW_TIMER_IDX(x) | BIT_RX_LOW_TIMER_IDX(v))
  36487. #define BIT_SHIFT_OBFF_INT_TIMER_IDX 0
  36488. #define BIT_MASK_OBFF_INT_TIMER_IDX 0x7
  36489. #define BIT_OBFF_INT_TIMER_IDX(x) \
  36490. (((x) & BIT_MASK_OBFF_INT_TIMER_IDX) << BIT_SHIFT_OBFF_INT_TIMER_IDX)
  36491. #define BITS_OBFF_INT_TIMER_IDX \
  36492. (BIT_MASK_OBFF_INT_TIMER_IDX << BIT_SHIFT_OBFF_INT_TIMER_IDX)
  36493. #define BIT_CLEAR_OBFF_INT_TIMER_IDX(x) ((x) & (~BITS_OBFF_INT_TIMER_IDX))
  36494. #define BIT_GET_OBFF_INT_TIMER_IDX(x) \
  36495. (((x) >> BIT_SHIFT_OBFF_INT_TIMER_IDX) & BIT_MASK_OBFF_INT_TIMER_IDX)
  36496. #define BIT_SET_OBFF_INT_TIMER_IDX(x, v) \
  36497. (BIT_CLEAR_OBFF_INT_TIMER_IDX(x) | BIT_OBFF_INT_TIMER_IDX(v))
  36498. /* 2 REG_LTR_CTRL_BASIC (Offset 0x07A0) */
  36499. #define BIT_LTR_EN_V1 BIT(31)
  36500. #define BIT_LTR_HW_EN_V1 BIT(30)
  36501. #define BIT_LRT_ACT_CTS_EN BIT(29)
  36502. #define BIT_LTR_ACT_RXPKT_EN BIT(28)
  36503. #define BIT_LTR_ACT_RXDMA_EN BIT(27)
  36504. #define BIT_LTR_IDLE_NO_SNOOP BIT(26)
  36505. #define BIT_SPDUP_MGTPKT BIT(25)
  36506. #define BIT_RX_AGG_EN BIT(24)
  36507. #define BIT_APP_LTR_ACT BIT(23)
  36508. #define BIT_APP_LTR_IDLE BIT(22)
  36509. #define BIT_SHIFT_HIGH_RATE_TRIG_SEL 20
  36510. #define BIT_MASK_HIGH_RATE_TRIG_SEL 0x3
  36511. #define BIT_HIGH_RATE_TRIG_SEL(x) \
  36512. (((x) & BIT_MASK_HIGH_RATE_TRIG_SEL) << BIT_SHIFT_HIGH_RATE_TRIG_SEL)
  36513. #define BITS_HIGH_RATE_TRIG_SEL \
  36514. (BIT_MASK_HIGH_RATE_TRIG_SEL << BIT_SHIFT_HIGH_RATE_TRIG_SEL)
  36515. #define BIT_CLEAR_HIGH_RATE_TRIG_SEL(x) ((x) & (~BITS_HIGH_RATE_TRIG_SEL))
  36516. #define BIT_GET_HIGH_RATE_TRIG_SEL(x) \
  36517. (((x) >> BIT_SHIFT_HIGH_RATE_TRIG_SEL) & BIT_MASK_HIGH_RATE_TRIG_SEL)
  36518. #define BIT_SET_HIGH_RATE_TRIG_SEL(x, v) \
  36519. (BIT_CLEAR_HIGH_RATE_TRIG_SEL(x) | BIT_HIGH_RATE_TRIG_SEL(v))
  36520. #define BIT_SHIFT_MED_RATE_TRIG_SEL 18
  36521. #define BIT_MASK_MED_RATE_TRIG_SEL 0x3
  36522. #define BIT_MED_RATE_TRIG_SEL(x) \
  36523. (((x) & BIT_MASK_MED_RATE_TRIG_SEL) << BIT_SHIFT_MED_RATE_TRIG_SEL)
  36524. #define BITS_MED_RATE_TRIG_SEL \
  36525. (BIT_MASK_MED_RATE_TRIG_SEL << BIT_SHIFT_MED_RATE_TRIG_SEL)
  36526. #define BIT_CLEAR_MED_RATE_TRIG_SEL(x) ((x) & (~BITS_MED_RATE_TRIG_SEL))
  36527. #define BIT_GET_MED_RATE_TRIG_SEL(x) \
  36528. (((x) >> BIT_SHIFT_MED_RATE_TRIG_SEL) & BIT_MASK_MED_RATE_TRIG_SEL)
  36529. #define BIT_SET_MED_RATE_TRIG_SEL(x, v) \
  36530. (BIT_CLEAR_MED_RATE_TRIG_SEL(x) | BIT_MED_RATE_TRIG_SEL(v))
  36531. #define BIT_SHIFT_LOW_RATE_TRIG_SEL 16
  36532. #define BIT_MASK_LOW_RATE_TRIG_SEL 0x3
  36533. #define BIT_LOW_RATE_TRIG_SEL(x) \
  36534. (((x) & BIT_MASK_LOW_RATE_TRIG_SEL) << BIT_SHIFT_LOW_RATE_TRIG_SEL)
  36535. #define BITS_LOW_RATE_TRIG_SEL \
  36536. (BIT_MASK_LOW_RATE_TRIG_SEL << BIT_SHIFT_LOW_RATE_TRIG_SEL)
  36537. #define BIT_CLEAR_LOW_RATE_TRIG_SEL(x) ((x) & (~BITS_LOW_RATE_TRIG_SEL))
  36538. #define BIT_GET_LOW_RATE_TRIG_SEL(x) \
  36539. (((x) >> BIT_SHIFT_LOW_RATE_TRIG_SEL) & BIT_MASK_LOW_RATE_TRIG_SEL)
  36540. #define BIT_SET_LOW_RATE_TRIG_SEL(x, v) \
  36541. (BIT_CLEAR_LOW_RATE_TRIG_SEL(x) | BIT_LOW_RATE_TRIG_SEL(v))
  36542. #define BIT_SHIFT_HIGH_RATE_BD_IDX 8
  36543. #define BIT_MASK_HIGH_RATE_BD_IDX 0x7f
  36544. #define BIT_HIGH_RATE_BD_IDX(x) \
  36545. (((x) & BIT_MASK_HIGH_RATE_BD_IDX) << BIT_SHIFT_HIGH_RATE_BD_IDX)
  36546. #define BITS_HIGH_RATE_BD_IDX \
  36547. (BIT_MASK_HIGH_RATE_BD_IDX << BIT_SHIFT_HIGH_RATE_BD_IDX)
  36548. #define BIT_CLEAR_HIGH_RATE_BD_IDX(x) ((x) & (~BITS_HIGH_RATE_BD_IDX))
  36549. #define BIT_GET_HIGH_RATE_BD_IDX(x) \
  36550. (((x) >> BIT_SHIFT_HIGH_RATE_BD_IDX) & BIT_MASK_HIGH_RATE_BD_IDX)
  36551. #define BIT_SET_HIGH_RATE_BD_IDX(x, v) \
  36552. (BIT_CLEAR_HIGH_RATE_BD_IDX(x) | BIT_HIGH_RATE_BD_IDX(v))
  36553. #define BIT_SHIFT_LOW_RATE_BD_IDX 0
  36554. #define BIT_MASK_LOW_RATE_BD_IDX 0x7f
  36555. #define BIT_LOW_RATE_BD_IDX(x) \
  36556. (((x) & BIT_MASK_LOW_RATE_BD_IDX) << BIT_SHIFT_LOW_RATE_BD_IDX)
  36557. #define BITS_LOW_RATE_BD_IDX \
  36558. (BIT_MASK_LOW_RATE_BD_IDX << BIT_SHIFT_LOW_RATE_BD_IDX)
  36559. #define BIT_CLEAR_LOW_RATE_BD_IDX(x) ((x) & (~BITS_LOW_RATE_BD_IDX))
  36560. #define BIT_GET_LOW_RATE_BD_IDX(x) \
  36561. (((x) >> BIT_SHIFT_LOW_RATE_BD_IDX) & BIT_MASK_LOW_RATE_BD_IDX)
  36562. #define BIT_SET_LOW_RATE_BD_IDX(x, v) \
  36563. (BIT_CLEAR_LOW_RATE_BD_IDX(x) | BIT_LOW_RATE_BD_IDX(v))
  36564. /* 2 REG_LTR_CTRL2_TIMER_THRESHOLD (Offset 0x07A4) */
  36565. #define BIT_SHIFT_RX_EMPTY_TIMER_IDX 24
  36566. #define BIT_MASK_RX_EMPTY_TIMER_IDX 0x7
  36567. #define BIT_RX_EMPTY_TIMER_IDX(x) \
  36568. (((x) & BIT_MASK_RX_EMPTY_TIMER_IDX) << BIT_SHIFT_RX_EMPTY_TIMER_IDX)
  36569. #define BITS_RX_EMPTY_TIMER_IDX \
  36570. (BIT_MASK_RX_EMPTY_TIMER_IDX << BIT_SHIFT_RX_EMPTY_TIMER_IDX)
  36571. #define BIT_CLEAR_RX_EMPTY_TIMER_IDX(x) ((x) & (~BITS_RX_EMPTY_TIMER_IDX))
  36572. #define BIT_GET_RX_EMPTY_TIMER_IDX(x) \
  36573. (((x) >> BIT_SHIFT_RX_EMPTY_TIMER_IDX) & BIT_MASK_RX_EMPTY_TIMER_IDX)
  36574. #define BIT_SET_RX_EMPTY_TIMER_IDX(x, v) \
  36575. (BIT_CLEAR_RX_EMPTY_TIMER_IDX(x) | BIT_RX_EMPTY_TIMER_IDX(v))
  36576. #define BIT_SHIFT_RX_AFULL_TH_IDX 20
  36577. #define BIT_MASK_RX_AFULL_TH_IDX 0x7
  36578. #define BIT_RX_AFULL_TH_IDX(x) \
  36579. (((x) & BIT_MASK_RX_AFULL_TH_IDX) << BIT_SHIFT_RX_AFULL_TH_IDX)
  36580. #define BITS_RX_AFULL_TH_IDX \
  36581. (BIT_MASK_RX_AFULL_TH_IDX << BIT_SHIFT_RX_AFULL_TH_IDX)
  36582. #define BIT_CLEAR_RX_AFULL_TH_IDX(x) ((x) & (~BITS_RX_AFULL_TH_IDX))
  36583. #define BIT_GET_RX_AFULL_TH_IDX(x) \
  36584. (((x) >> BIT_SHIFT_RX_AFULL_TH_IDX) & BIT_MASK_RX_AFULL_TH_IDX)
  36585. #define BIT_SET_RX_AFULL_TH_IDX(x, v) \
  36586. (BIT_CLEAR_RX_AFULL_TH_IDX(x) | BIT_RX_AFULL_TH_IDX(v))
  36587. #define BIT_SHIFT_RX_HIGH_TH_IDX 16
  36588. #define BIT_MASK_RX_HIGH_TH_IDX 0x7
  36589. #define BIT_RX_HIGH_TH_IDX(x) \
  36590. (((x) & BIT_MASK_RX_HIGH_TH_IDX) << BIT_SHIFT_RX_HIGH_TH_IDX)
  36591. #define BITS_RX_HIGH_TH_IDX \
  36592. (BIT_MASK_RX_HIGH_TH_IDX << BIT_SHIFT_RX_HIGH_TH_IDX)
  36593. #define BIT_CLEAR_RX_HIGH_TH_IDX(x) ((x) & (~BITS_RX_HIGH_TH_IDX))
  36594. #define BIT_GET_RX_HIGH_TH_IDX(x) \
  36595. (((x) >> BIT_SHIFT_RX_HIGH_TH_IDX) & BIT_MASK_RX_HIGH_TH_IDX)
  36596. #define BIT_SET_RX_HIGH_TH_IDX(x, v) \
  36597. (BIT_CLEAR_RX_HIGH_TH_IDX(x) | BIT_RX_HIGH_TH_IDX(v))
  36598. #define BIT_SHIFT_RX_MED_TH_IDX 12
  36599. #define BIT_MASK_RX_MED_TH_IDX 0x7
  36600. #define BIT_RX_MED_TH_IDX(x) \
  36601. (((x) & BIT_MASK_RX_MED_TH_IDX) << BIT_SHIFT_RX_MED_TH_IDX)
  36602. #define BITS_RX_MED_TH_IDX (BIT_MASK_RX_MED_TH_IDX << BIT_SHIFT_RX_MED_TH_IDX)
  36603. #define BIT_CLEAR_RX_MED_TH_IDX(x) ((x) & (~BITS_RX_MED_TH_IDX))
  36604. #define BIT_GET_RX_MED_TH_IDX(x) \
  36605. (((x) >> BIT_SHIFT_RX_MED_TH_IDX) & BIT_MASK_RX_MED_TH_IDX)
  36606. #define BIT_SET_RX_MED_TH_IDX(x, v) \
  36607. (BIT_CLEAR_RX_MED_TH_IDX(x) | BIT_RX_MED_TH_IDX(v))
  36608. #define BIT_SHIFT_RX_LOW_TH_IDX 8
  36609. #define BIT_MASK_RX_LOW_TH_IDX 0x7
  36610. #define BIT_RX_LOW_TH_IDX(x) \
  36611. (((x) & BIT_MASK_RX_LOW_TH_IDX) << BIT_SHIFT_RX_LOW_TH_IDX)
  36612. #define BITS_RX_LOW_TH_IDX (BIT_MASK_RX_LOW_TH_IDX << BIT_SHIFT_RX_LOW_TH_IDX)
  36613. #define BIT_CLEAR_RX_LOW_TH_IDX(x) ((x) & (~BITS_RX_LOW_TH_IDX))
  36614. #define BIT_GET_RX_LOW_TH_IDX(x) \
  36615. (((x) >> BIT_SHIFT_RX_LOW_TH_IDX) & BIT_MASK_RX_LOW_TH_IDX)
  36616. #define BIT_SET_RX_LOW_TH_IDX(x, v) \
  36617. (BIT_CLEAR_RX_LOW_TH_IDX(x) | BIT_RX_LOW_TH_IDX(v))
  36618. #define BIT_SHIFT_LTR_SPACE_IDX 4
  36619. #define BIT_MASK_LTR_SPACE_IDX 0x3
  36620. #define BIT_LTR_SPACE_IDX(x) \
  36621. (((x) & BIT_MASK_LTR_SPACE_IDX) << BIT_SHIFT_LTR_SPACE_IDX)
  36622. #define BITS_LTR_SPACE_IDX (BIT_MASK_LTR_SPACE_IDX << BIT_SHIFT_LTR_SPACE_IDX)
  36623. #define BIT_CLEAR_LTR_SPACE_IDX(x) ((x) & (~BITS_LTR_SPACE_IDX))
  36624. #define BIT_GET_LTR_SPACE_IDX(x) \
  36625. (((x) >> BIT_SHIFT_LTR_SPACE_IDX) & BIT_MASK_LTR_SPACE_IDX)
  36626. #define BIT_SET_LTR_SPACE_IDX(x, v) \
  36627. (BIT_CLEAR_LTR_SPACE_IDX(x) | BIT_LTR_SPACE_IDX(v))
  36628. #define BIT_SHIFT_LTR_IDLE_TIMER_IDX 0
  36629. #define BIT_MASK_LTR_IDLE_TIMER_IDX 0x7
  36630. #define BIT_LTR_IDLE_TIMER_IDX(x) \
  36631. (((x) & BIT_MASK_LTR_IDLE_TIMER_IDX) << BIT_SHIFT_LTR_IDLE_TIMER_IDX)
  36632. #define BITS_LTR_IDLE_TIMER_IDX \
  36633. (BIT_MASK_LTR_IDLE_TIMER_IDX << BIT_SHIFT_LTR_IDLE_TIMER_IDX)
  36634. #define BIT_CLEAR_LTR_IDLE_TIMER_IDX(x) ((x) & (~BITS_LTR_IDLE_TIMER_IDX))
  36635. #define BIT_GET_LTR_IDLE_TIMER_IDX(x) \
  36636. (((x) >> BIT_SHIFT_LTR_IDLE_TIMER_IDX) & BIT_MASK_LTR_IDLE_TIMER_IDX)
  36637. #define BIT_SET_LTR_IDLE_TIMER_IDX(x, v) \
  36638. (BIT_CLEAR_LTR_IDLE_TIMER_IDX(x) | BIT_LTR_IDLE_TIMER_IDX(v))
  36639. /* 2 REG_LTR_IDLE_LATENCY_V1 (Offset 0x07A8) */
  36640. #define BIT_SHIFT_LTR_IDLE_L 0
  36641. #define BIT_MASK_LTR_IDLE_L 0xffffffffL
  36642. #define BIT_LTR_IDLE_L(x) (((x) & BIT_MASK_LTR_IDLE_L) << BIT_SHIFT_LTR_IDLE_L)
  36643. #define BITS_LTR_IDLE_L (BIT_MASK_LTR_IDLE_L << BIT_SHIFT_LTR_IDLE_L)
  36644. #define BIT_CLEAR_LTR_IDLE_L(x) ((x) & (~BITS_LTR_IDLE_L))
  36645. #define BIT_GET_LTR_IDLE_L(x) \
  36646. (((x) >> BIT_SHIFT_LTR_IDLE_L) & BIT_MASK_LTR_IDLE_L)
  36647. #define BIT_SET_LTR_IDLE_L(x, v) (BIT_CLEAR_LTR_IDLE_L(x) | BIT_LTR_IDLE_L(v))
  36648. /* 2 REG_LTR_ACTIVE_LATENCY_V1 (Offset 0x07AC) */
  36649. #define BIT_SHIFT_LTR_ACT_L 0
  36650. #define BIT_MASK_LTR_ACT_L 0xffffffffL
  36651. #define BIT_LTR_ACT_L(x) (((x) & BIT_MASK_LTR_ACT_L) << BIT_SHIFT_LTR_ACT_L)
  36652. #define BITS_LTR_ACT_L (BIT_MASK_LTR_ACT_L << BIT_SHIFT_LTR_ACT_L)
  36653. #define BIT_CLEAR_LTR_ACT_L(x) ((x) & (~BITS_LTR_ACT_L))
  36654. #define BIT_GET_LTR_ACT_L(x) (((x) >> BIT_SHIFT_LTR_ACT_L) & BIT_MASK_LTR_ACT_L)
  36655. #define BIT_SET_LTR_ACT_L(x, v) (BIT_CLEAR_LTR_ACT_L(x) | BIT_LTR_ACT_L(v))
  36656. #endif
  36657. #if (HALMAC_8814B_SUPPORT)
  36658. /* 2 REG_LTR_ACTIVE_LATENCY_V1 (Offset 0x07AC) */
  36659. #define BIT_SHIFT_ANT_ADDR2_1 0
  36660. #define BIT_MASK_ANT_ADDR2_1 0xffffffffL
  36661. #define BIT_ANT_ADDR2_1(x) \
  36662. (((x) & BIT_MASK_ANT_ADDR2_1) << BIT_SHIFT_ANT_ADDR2_1)
  36663. #define BITS_ANT_ADDR2_1 (BIT_MASK_ANT_ADDR2_1 << BIT_SHIFT_ANT_ADDR2_1)
  36664. #define BIT_CLEAR_ANT_ADDR2_1(x) ((x) & (~BITS_ANT_ADDR2_1))
  36665. #define BIT_GET_ANT_ADDR2_1(x) \
  36666. (((x) >> BIT_SHIFT_ANT_ADDR2_1) & BIT_MASK_ANT_ADDR2_1)
  36667. #define BIT_SET_ANT_ADDR2_1(x, v) \
  36668. (BIT_CLEAR_ANT_ADDR2_1(x) | BIT_ANT_ADDR2_1(v))
  36669. #endif
  36670. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36671. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  36672. /* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER (Offset 0x07B0) */
  36673. #define BIT_APPEND_MACID_IN_RESP_EN BIT(50)
  36674. #define BIT_ADDR2_MATCH_EN BIT(49)
  36675. #define BIT_ANTTRN_EN BIT(48)
  36676. #define BIT_SHIFT_TRAIN_STA_ADDR 0
  36677. #define BIT_MASK_TRAIN_STA_ADDR 0xffffffffffffL
  36678. #define BIT_TRAIN_STA_ADDR(x) \
  36679. (((x) & BIT_MASK_TRAIN_STA_ADDR) << BIT_SHIFT_TRAIN_STA_ADDR)
  36680. #define BITS_TRAIN_STA_ADDR \
  36681. (BIT_MASK_TRAIN_STA_ADDR << BIT_SHIFT_TRAIN_STA_ADDR)
  36682. #define BIT_CLEAR_TRAIN_STA_ADDR(x) ((x) & (~BITS_TRAIN_STA_ADDR))
  36683. #define BIT_GET_TRAIN_STA_ADDR(x) \
  36684. (((x) >> BIT_SHIFT_TRAIN_STA_ADDR) & BIT_MASK_TRAIN_STA_ADDR)
  36685. #define BIT_SET_TRAIN_STA_ADDR(x, v) \
  36686. (BIT_CLEAR_TRAIN_STA_ADDR(x) | BIT_TRAIN_STA_ADDR(v))
  36687. #endif
  36688. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  36689. /* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER (Offset 0x07B0) */
  36690. #define BIT_SHIFT_TRAIN_STA_ADDR_0 0
  36691. #define BIT_MASK_TRAIN_STA_ADDR_0 0xffffffffL
  36692. #define BIT_TRAIN_STA_ADDR_0(x) \
  36693. (((x) & BIT_MASK_TRAIN_STA_ADDR_0) << BIT_SHIFT_TRAIN_STA_ADDR_0)
  36694. #define BITS_TRAIN_STA_ADDR_0 \
  36695. (BIT_MASK_TRAIN_STA_ADDR_0 << BIT_SHIFT_TRAIN_STA_ADDR_0)
  36696. #define BIT_CLEAR_TRAIN_STA_ADDR_0(x) ((x) & (~BITS_TRAIN_STA_ADDR_0))
  36697. #define BIT_GET_TRAIN_STA_ADDR_0(x) \
  36698. (((x) >> BIT_SHIFT_TRAIN_STA_ADDR_0) & BIT_MASK_TRAIN_STA_ADDR_0)
  36699. #define BIT_SET_TRAIN_STA_ADDR_0(x, v) \
  36700. (BIT_CLEAR_TRAIN_STA_ADDR_0(x) | BIT_TRAIN_STA_ADDR_0(v))
  36701. /* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER_1 (Offset 0x07B4) */
  36702. #define BIT_SHIFT_TRAIN_STA_ADDR_1 0
  36703. #define BIT_MASK_TRAIN_STA_ADDR_1 0xffff
  36704. #define BIT_TRAIN_STA_ADDR_1(x) \
  36705. (((x) & BIT_MASK_TRAIN_STA_ADDR_1) << BIT_SHIFT_TRAIN_STA_ADDR_1)
  36706. #define BITS_TRAIN_STA_ADDR_1 \
  36707. (BIT_MASK_TRAIN_STA_ADDR_1 << BIT_SHIFT_TRAIN_STA_ADDR_1)
  36708. #define BIT_CLEAR_TRAIN_STA_ADDR_1(x) ((x) & (~BITS_TRAIN_STA_ADDR_1))
  36709. #define BIT_GET_TRAIN_STA_ADDR_1(x) \
  36710. (((x) >> BIT_SHIFT_TRAIN_STA_ADDR_1) & BIT_MASK_TRAIN_STA_ADDR_1)
  36711. #define BIT_SET_TRAIN_STA_ADDR_1(x, v) \
  36712. (BIT_CLEAR_TRAIN_STA_ADDR_1(x) | BIT_TRAIN_STA_ADDR_1(v))
  36713. #endif
  36714. #if (HALMAC_8814B_SUPPORT)
  36715. /* 2 REG_SMART_ANT_CTRL (Offset 0x07B4) */
  36716. #define BIT_SHIFT_ANT_ADDR2_2 0
  36717. #define BIT_MASK_ANT_ADDR2_2 0xffff
  36718. #define BIT_ANT_ADDR2_2(x) \
  36719. (((x) & BIT_MASK_ANT_ADDR2_2) << BIT_SHIFT_ANT_ADDR2_2)
  36720. #define BITS_ANT_ADDR2_2 (BIT_MASK_ANT_ADDR2_2 << BIT_SHIFT_ANT_ADDR2_2)
  36721. #define BIT_CLEAR_ANT_ADDR2_2(x) ((x) & (~BITS_ANT_ADDR2_2))
  36722. #define BIT_GET_ANT_ADDR2_2(x) \
  36723. (((x) >> BIT_SHIFT_ANT_ADDR2_2) & BIT_MASK_ANT_ADDR2_2)
  36724. #define BIT_SET_ANT_ADDR2_2(x, v) \
  36725. (BIT_CLEAR_ANT_ADDR2_2(x) | BIT_ANT_ADDR2_2(v))
  36726. #endif
  36727. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  36728. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36729. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36730. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  36731. /* 2 REG_WMAC_PKTCNT_RWD (Offset 0x07B8) */
  36732. #define BIT_SHIFT_PKTCNT_BSSIDMAP 4
  36733. #define BIT_MASK_PKTCNT_BSSIDMAP 0xf
  36734. #define BIT_PKTCNT_BSSIDMAP(x) \
  36735. (((x) & BIT_MASK_PKTCNT_BSSIDMAP) << BIT_SHIFT_PKTCNT_BSSIDMAP)
  36736. #define BITS_PKTCNT_BSSIDMAP \
  36737. (BIT_MASK_PKTCNT_BSSIDMAP << BIT_SHIFT_PKTCNT_BSSIDMAP)
  36738. #define BIT_CLEAR_PKTCNT_BSSIDMAP(x) ((x) & (~BITS_PKTCNT_BSSIDMAP))
  36739. #define BIT_GET_PKTCNT_BSSIDMAP(x) \
  36740. (((x) >> BIT_SHIFT_PKTCNT_BSSIDMAP) & BIT_MASK_PKTCNT_BSSIDMAP)
  36741. #define BIT_SET_PKTCNT_BSSIDMAP(x, v) \
  36742. (BIT_CLEAR_PKTCNT_BSSIDMAP(x) | BIT_PKTCNT_BSSIDMAP(v))
  36743. #define BIT_PKTCNT_CNTRST BIT(1)
  36744. #define BIT_PKTCNT_CNTEN BIT(0)
  36745. #endif
  36746. #if (HALMAC_8814B_SUPPORT)
  36747. /* 2 REG_CONTROL_FRAME_REPORT (Offset 0x07B8) */
  36748. #define BIT_SHIFT_CONTROL_FRAME_REPORT 0
  36749. #define BIT_MASK_CONTROL_FRAME_REPORT 0xffffffffL
  36750. #define BIT_CONTROL_FRAME_REPORT(x) \
  36751. (((x) & BIT_MASK_CONTROL_FRAME_REPORT) \
  36752. << BIT_SHIFT_CONTROL_FRAME_REPORT)
  36753. #define BITS_CONTROL_FRAME_REPORT \
  36754. (BIT_MASK_CONTROL_FRAME_REPORT << BIT_SHIFT_CONTROL_FRAME_REPORT)
  36755. #define BIT_CLEAR_CONTROL_FRAME_REPORT(x) ((x) & (~BITS_CONTROL_FRAME_REPORT))
  36756. #define BIT_GET_CONTROL_FRAME_REPORT(x) \
  36757. (((x) >> BIT_SHIFT_CONTROL_FRAME_REPORT) & \
  36758. BIT_MASK_CONTROL_FRAME_REPORT)
  36759. #define BIT_SET_CONTROL_FRAME_REPORT(x, v) \
  36760. (BIT_CLEAR_CONTROL_FRAME_REPORT(x) | BIT_CONTROL_FRAME_REPORT(v))
  36761. #endif
  36762. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  36763. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36764. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36765. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  36766. /* 2 REG_WMAC_PKTCNT_CTRL (Offset 0x07BC) */
  36767. #define BIT_WMAC_PKTCNT_TRST BIT(9)
  36768. #endif
  36769. #if (HALMAC_8814B_SUPPORT)
  36770. /* 2 REG_CONTROL_FRAME_CNT_CTRL (Offset 0x07BC) */
  36771. #define BIT_ALLCNTRST BIT(9)
  36772. #endif
  36773. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  36774. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36775. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36776. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  36777. /* 2 REG_WMAC_PKTCNT_CTRL (Offset 0x07BC) */
  36778. #define BIT_WMAC_PKTCNT_FEN BIT(8)
  36779. #endif
  36780. #if (HALMAC_8814B_SUPPORT)
  36781. /* 2 REG_CONTROL_FRAME_CNT_CTRL (Offset 0x07BC) */
  36782. #define BIT__ALLCNTEN BIT(8)
  36783. #define BIT_SHIFT_ADDR 4
  36784. #define BIT_MASK_ADDR 0xf
  36785. #define BIT_ADDR(x) (((x) & BIT_MASK_ADDR) << BIT_SHIFT_ADDR)
  36786. #define BITS_ADDR (BIT_MASK_ADDR << BIT_SHIFT_ADDR)
  36787. #define BIT_CLEAR_ADDR(x) ((x) & (~BITS_ADDR))
  36788. #define BIT_GET_ADDR(x) (((x) >> BIT_SHIFT_ADDR) & BIT_MASK_ADDR)
  36789. #define BIT_SET_ADDR(x, v) (BIT_CLEAR_ADDR(x) | BIT_ADDR(v))
  36790. #endif
  36791. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  36792. HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36793. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  36794. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  36795. /* 2 REG_WMAC_PKTCNT_CTRL (Offset 0x07BC) */
  36796. #define BIT_SHIFT_WMAC_PKTCNT_CFGAD 0
  36797. #define BIT_MASK_WMAC_PKTCNT_CFGAD 0xff
  36798. #define BIT_WMAC_PKTCNT_CFGAD(x) \
  36799. (((x) & BIT_MASK_WMAC_PKTCNT_CFGAD) << BIT_SHIFT_WMAC_PKTCNT_CFGAD)
  36800. #define BITS_WMAC_PKTCNT_CFGAD \
  36801. (BIT_MASK_WMAC_PKTCNT_CFGAD << BIT_SHIFT_WMAC_PKTCNT_CFGAD)
  36802. #define BIT_CLEAR_WMAC_PKTCNT_CFGAD(x) ((x) & (~BITS_WMAC_PKTCNT_CFGAD))
  36803. #define BIT_GET_WMAC_PKTCNT_CFGAD(x) \
  36804. (((x) >> BIT_SHIFT_WMAC_PKTCNT_CFGAD) & BIT_MASK_WMAC_PKTCNT_CFGAD)
  36805. #define BIT_SET_WMAC_PKTCNT_CFGAD(x, v) \
  36806. (BIT_CLEAR_WMAC_PKTCNT_CFGAD(x) | BIT_WMAC_PKTCNT_CFGAD(v))
  36807. #endif
  36808. #if (HALMAC_8814B_SUPPORT)
  36809. /* 2 REG_CONTROL_FRAME_CNT_CTRL (Offset 0x07BC) */
  36810. #define BIT_SHIFT_CTRL_SEL 0
  36811. #define BIT_MASK_CTRL_SEL 0xf
  36812. #define BIT_CTRL_SEL(x) (((x) & BIT_MASK_CTRL_SEL) << BIT_SHIFT_CTRL_SEL)
  36813. #define BITS_CTRL_SEL (BIT_MASK_CTRL_SEL << BIT_SHIFT_CTRL_SEL)
  36814. #define BIT_CLEAR_CTRL_SEL(x) ((x) & (~BITS_CTRL_SEL))
  36815. #define BIT_GET_CTRL_SEL(x) (((x) >> BIT_SHIFT_CTRL_SEL) & BIT_MASK_CTRL_SEL)
  36816. #define BIT_SET_CTRL_SEL(x, v) (BIT_CLEAR_CTRL_SEL(x) | BIT_CTRL_SEL(v))
  36817. #endif
  36818. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  36819. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  36820. /* 2 REG_IQ_DUMP (Offset 0x07C0) */
  36821. #define BIT_SHIFT_R_WMAC_MATCH_REF_MAC (64 & CPU_OPT_WIDTH)
  36822. #define BIT_MASK_R_WMAC_MATCH_REF_MAC 0xffffffffL
  36823. #define BIT_R_WMAC_MATCH_REF_MAC(x) \
  36824. (((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC) \
  36825. << BIT_SHIFT_R_WMAC_MATCH_REF_MAC)
  36826. #define BITS_R_WMAC_MATCH_REF_MAC \
  36827. (BIT_MASK_R_WMAC_MATCH_REF_MAC << BIT_SHIFT_R_WMAC_MATCH_REF_MAC)
  36828. #define BIT_CLEAR_R_WMAC_MATCH_REF_MAC(x) ((x) & (~BITS_R_WMAC_MATCH_REF_MAC))
  36829. #define BIT_GET_R_WMAC_MATCH_REF_MAC(x) \
  36830. (((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC) & \
  36831. BIT_MASK_R_WMAC_MATCH_REF_MAC)
  36832. #define BIT_SET_R_WMAC_MATCH_REF_MAC(x, v) \
  36833. (BIT_CLEAR_R_WMAC_MATCH_REF_MAC(x) | BIT_R_WMAC_MATCH_REF_MAC(v))
  36834. #define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH (56 & CPU_OPT_WIDTH)
  36835. #define BIT_MASK_R_WMAC_RXFIFO_FULL_TH 0xff
  36836. #define BIT_R_WMAC_RXFIFO_FULL_TH(x) \
  36837. (((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH) \
  36838. << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH)
  36839. #define BITS_R_WMAC_RXFIFO_FULL_TH \
  36840. (BIT_MASK_R_WMAC_RXFIFO_FULL_TH << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH)
  36841. #define BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH(x) ((x) & (~BITS_R_WMAC_RXFIFO_FULL_TH))
  36842. #define BIT_GET_R_WMAC_RXFIFO_FULL_TH(x) \
  36843. (((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH) & \
  36844. BIT_MASK_R_WMAC_RXFIFO_FULL_TH)
  36845. #define BIT_SET_R_WMAC_RXFIFO_FULL_TH(x, v) \
  36846. (BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH(x) | BIT_R_WMAC_RXFIFO_FULL_TH(v))
  36847. #define BIT_R_WMAC_SRCH_TXRPT_TYPE BIT(51)
  36848. #define BIT_R_WMAC_NDP_RST BIT(50)
  36849. #define BIT_R_WMAC_POWINT_EN BIT(49)
  36850. #define BIT_R_WMAC_SRCH_TXRPT_PERPKT BIT(48)
  36851. #define BIT_R_WMAC_SRCH_TXRPT_MID BIT(47)
  36852. #define BIT_R_WMAC_PFIN_TOEN BIT(46)
  36853. #define BIT_R_WMAC_FIL_SECERR BIT(45)
  36854. #define BIT_R_WMAC_FIL_CTLPKTLEN BIT(44)
  36855. #define BIT_R_WMAC_FIL_FCTYPE BIT(43)
  36856. #define BIT_R_WMAC_FIL_FCPROVER BIT(42)
  36857. #define BIT_R_WMAC_PHYSTS_SNIF BIT(41)
  36858. #define BIT_R_WMAC_PHYSTS_PLCP BIT(40)
  36859. #define BIT_R_MAC_TCR_VBONF_RD BIT(39)
  36860. #define BIT_R_WMAC_TCR_MPAR_NDP BIT(38)
  36861. #define BIT_R_WMAC_NDP_FILTER BIT(37)
  36862. #define BIT_R_WMAC_RXLEN_SEL BIT(36)
  36863. #define BIT_R_WMAC_RXLEN_SEL1 BIT(35)
  36864. #define BIT_R_OFDM_FILTER BIT(34)
  36865. #define BIT_R_WMAC_CHK_OFDM_LEN BIT(33)
  36866. #define BIT_SHIFT_R_WMAC_MASK_LA_MAC (32 & CPU_OPT_WIDTH)
  36867. #define BIT_MASK_R_WMAC_MASK_LA_MAC 0xffffffffL
  36868. #define BIT_R_WMAC_MASK_LA_MAC(x) \
  36869. (((x) & BIT_MASK_R_WMAC_MASK_LA_MAC) << BIT_SHIFT_R_WMAC_MASK_LA_MAC)
  36870. #define BITS_R_WMAC_MASK_LA_MAC \
  36871. (BIT_MASK_R_WMAC_MASK_LA_MAC << BIT_SHIFT_R_WMAC_MASK_LA_MAC)
  36872. #define BIT_CLEAR_R_WMAC_MASK_LA_MAC(x) ((x) & (~BITS_R_WMAC_MASK_LA_MAC))
  36873. #define BIT_GET_R_WMAC_MASK_LA_MAC(x) \
  36874. (((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC) & BIT_MASK_R_WMAC_MASK_LA_MAC)
  36875. #define BIT_SET_R_WMAC_MASK_LA_MAC(x, v) \
  36876. (BIT_CLEAR_R_WMAC_MASK_LA_MAC(x) | BIT_R_WMAC_MASK_LA_MAC(v))
  36877. #define BIT_R_WMAC_CHK_CCK_LEN BIT(32)
  36878. #endif
  36879. #if (HALMAC_8192F_SUPPORT)
  36880. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL (Offset 0x07C0) */
  36881. #define BIT_LTECOEX_ACCESS_START BIT(31)
  36882. #define BIT_LTECOEX_WRITE_MODE BIT(30)
  36883. #define BIT_LTECOEX_READY_BIT BIT(29)
  36884. #define BIT_SHIFT_WRITE_BYTE_EN 16
  36885. #define BIT_MASK_WRITE_BYTE_EN 0xf
  36886. #define BIT_WRITE_BYTE_EN(x) \
  36887. (((x) & BIT_MASK_WRITE_BYTE_EN) << BIT_SHIFT_WRITE_BYTE_EN)
  36888. #define BITS_WRITE_BYTE_EN (BIT_MASK_WRITE_BYTE_EN << BIT_SHIFT_WRITE_BYTE_EN)
  36889. #define BIT_CLEAR_WRITE_BYTE_EN(x) ((x) & (~BITS_WRITE_BYTE_EN))
  36890. #define BIT_GET_WRITE_BYTE_EN(x) \
  36891. (((x) >> BIT_SHIFT_WRITE_BYTE_EN) & BIT_MASK_WRITE_BYTE_EN)
  36892. #define BIT_SET_WRITE_BYTE_EN(x, v) \
  36893. (BIT_CLEAR_WRITE_BYTE_EN(x) | BIT_WRITE_BYTE_EN(v))
  36894. #endif
  36895. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36896. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36897. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36898. /* 2 REG_IQ_DUMP (Offset 0x07C0) */
  36899. #define BIT_SHIFT_DUMP_OK_ADDR 16
  36900. #define BIT_MASK_DUMP_OK_ADDR 0xffff
  36901. #define BIT_DUMP_OK_ADDR(x) \
  36902. (((x) & BIT_MASK_DUMP_OK_ADDR) << BIT_SHIFT_DUMP_OK_ADDR)
  36903. #define BITS_DUMP_OK_ADDR (BIT_MASK_DUMP_OK_ADDR << BIT_SHIFT_DUMP_OK_ADDR)
  36904. #define BIT_CLEAR_DUMP_OK_ADDR(x) ((x) & (~BITS_DUMP_OK_ADDR))
  36905. #define BIT_GET_DUMP_OK_ADDR(x) \
  36906. (((x) >> BIT_SHIFT_DUMP_OK_ADDR) & BIT_MASK_DUMP_OK_ADDR)
  36907. #define BIT_SET_DUMP_OK_ADDR(x, v) \
  36908. (BIT_CLEAR_DUMP_OK_ADDR(x) | BIT_DUMP_OK_ADDR(v))
  36909. #endif
  36910. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  36911. /* 2 REG_IQ_DUMP (Offset 0x07C0) */
  36912. #define BIT_MACDBG_TRIG_IQDUMP BIT(15)
  36913. #endif
  36914. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36915. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36916. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36917. /* 2 REG_IQ_DUMP (Offset 0x07C0) */
  36918. #define BIT_SHIFT_R_TRIG_TIME_SEL 8
  36919. #define BIT_MASK_R_TRIG_TIME_SEL 0x7f
  36920. #define BIT_R_TRIG_TIME_SEL(x) \
  36921. (((x) & BIT_MASK_R_TRIG_TIME_SEL) << BIT_SHIFT_R_TRIG_TIME_SEL)
  36922. #define BITS_R_TRIG_TIME_SEL \
  36923. (BIT_MASK_R_TRIG_TIME_SEL << BIT_SHIFT_R_TRIG_TIME_SEL)
  36924. #define BIT_CLEAR_R_TRIG_TIME_SEL(x) ((x) & (~BITS_R_TRIG_TIME_SEL))
  36925. #define BIT_GET_R_TRIG_TIME_SEL(x) \
  36926. (((x) >> BIT_SHIFT_R_TRIG_TIME_SEL) & BIT_MASK_R_TRIG_TIME_SEL)
  36927. #define BIT_SET_R_TRIG_TIME_SEL(x, v) \
  36928. (BIT_CLEAR_R_TRIG_TIME_SEL(x) | BIT_R_TRIG_TIME_SEL(v))
  36929. #define BIT_SHIFT_R_MAC_TRIG_SEL 6
  36930. #define BIT_MASK_R_MAC_TRIG_SEL 0x3
  36931. #define BIT_R_MAC_TRIG_SEL(x) \
  36932. (((x) & BIT_MASK_R_MAC_TRIG_SEL) << BIT_SHIFT_R_MAC_TRIG_SEL)
  36933. #define BITS_R_MAC_TRIG_SEL \
  36934. (BIT_MASK_R_MAC_TRIG_SEL << BIT_SHIFT_R_MAC_TRIG_SEL)
  36935. #define BIT_CLEAR_R_MAC_TRIG_SEL(x) ((x) & (~BITS_R_MAC_TRIG_SEL))
  36936. #define BIT_GET_R_MAC_TRIG_SEL(x) \
  36937. (((x) >> BIT_SHIFT_R_MAC_TRIG_SEL) & BIT_MASK_R_MAC_TRIG_SEL)
  36938. #define BIT_SET_R_MAC_TRIG_SEL(x, v) \
  36939. (BIT_CLEAR_R_MAC_TRIG_SEL(x) | BIT_R_MAC_TRIG_SEL(v))
  36940. #define BIT_MAC_TRIG_REG BIT(5)
  36941. #define BIT_SHIFT_R_LEVEL_PULSE_SEL 3
  36942. #define BIT_MASK_R_LEVEL_PULSE_SEL 0x3
  36943. #define BIT_R_LEVEL_PULSE_SEL(x) \
  36944. (((x) & BIT_MASK_R_LEVEL_PULSE_SEL) << BIT_SHIFT_R_LEVEL_PULSE_SEL)
  36945. #define BITS_R_LEVEL_PULSE_SEL \
  36946. (BIT_MASK_R_LEVEL_PULSE_SEL << BIT_SHIFT_R_LEVEL_PULSE_SEL)
  36947. #define BIT_CLEAR_R_LEVEL_PULSE_SEL(x) ((x) & (~BITS_R_LEVEL_PULSE_SEL))
  36948. #define BIT_GET_R_LEVEL_PULSE_SEL(x) \
  36949. (((x) >> BIT_SHIFT_R_LEVEL_PULSE_SEL) & BIT_MASK_R_LEVEL_PULSE_SEL)
  36950. #define BIT_SET_R_LEVEL_PULSE_SEL(x, v) \
  36951. (BIT_CLEAR_R_LEVEL_PULSE_SEL(x) | BIT_R_LEVEL_PULSE_SEL(v))
  36952. #define BIT_EN_LA_MAC BIT(2)
  36953. #define BIT_R_EN_IQDUMP BIT(1)
  36954. #endif
  36955. #if (HALMAC_8192F_SUPPORT)
  36956. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL (Offset 0x07C0) */
  36957. #define BIT_SHIFT_LTECOEX_REG_ADDR 0
  36958. #define BIT_MASK_LTECOEX_REG_ADDR 0xffff
  36959. #define BIT_LTECOEX_REG_ADDR(x) \
  36960. (((x) & BIT_MASK_LTECOEX_REG_ADDR) << BIT_SHIFT_LTECOEX_REG_ADDR)
  36961. #define BITS_LTECOEX_REG_ADDR \
  36962. (BIT_MASK_LTECOEX_REG_ADDR << BIT_SHIFT_LTECOEX_REG_ADDR)
  36963. #define BIT_CLEAR_LTECOEX_REG_ADDR(x) ((x) & (~BITS_LTECOEX_REG_ADDR))
  36964. #define BIT_GET_LTECOEX_REG_ADDR(x) \
  36965. (((x) >> BIT_SHIFT_LTECOEX_REG_ADDR) & BIT_MASK_LTECOEX_REG_ADDR)
  36966. #define BIT_SET_LTECOEX_REG_ADDR(x, v) \
  36967. (BIT_CLEAR_LTECOEX_REG_ADDR(x) | BIT_LTECOEX_REG_ADDR(v))
  36968. #endif
  36969. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  36970. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  36971. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  36972. /* 2 REG_IQ_DUMP (Offset 0x07C0) */
  36973. #define BIT_R_IQDATA_DUMP BIT(0)
  36974. #endif
  36975. #if (HALMAC_8192F_SUPPORT)
  36976. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA (Offset 0x07C4) */
  36977. #define BIT_SHIFT_LTECOEX_W_DATA 0
  36978. #define BIT_MASK_LTECOEX_W_DATA 0xffffffffL
  36979. #define BIT_LTECOEX_W_DATA(x) \
  36980. (((x) & BIT_MASK_LTECOEX_W_DATA) << BIT_SHIFT_LTECOEX_W_DATA)
  36981. #define BITS_LTECOEX_W_DATA \
  36982. (BIT_MASK_LTECOEX_W_DATA << BIT_SHIFT_LTECOEX_W_DATA)
  36983. #define BIT_CLEAR_LTECOEX_W_DATA(x) ((x) & (~BITS_LTECOEX_W_DATA))
  36984. #define BIT_GET_LTECOEX_W_DATA(x) \
  36985. (((x) >> BIT_SHIFT_LTECOEX_W_DATA) & BIT_MASK_LTECOEX_W_DATA)
  36986. #define BIT_SET_LTECOEX_W_DATA(x, v) \
  36987. (BIT_CLEAR_LTECOEX_W_DATA(x) | BIT_LTECOEX_W_DATA(v))
  36988. #endif
  36989. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  36990. HALMAC_8822C_SUPPORT)
  36991. /* 2 REG_IQ_DUMP_1 (Offset 0x07C4) */
  36992. #define BIT_SHIFT_R_WMAC_MASK_LA_MAC_1 0
  36993. #define BIT_MASK_R_WMAC_MASK_LA_MAC_1 0xffffffffL
  36994. #define BIT_R_WMAC_MASK_LA_MAC_1(x) \
  36995. (((x) & BIT_MASK_R_WMAC_MASK_LA_MAC_1) \
  36996. << BIT_SHIFT_R_WMAC_MASK_LA_MAC_1)
  36997. #define BITS_R_WMAC_MASK_LA_MAC_1 \
  36998. (BIT_MASK_R_WMAC_MASK_LA_MAC_1 << BIT_SHIFT_R_WMAC_MASK_LA_MAC_1)
  36999. #define BIT_CLEAR_R_WMAC_MASK_LA_MAC_1(x) ((x) & (~BITS_R_WMAC_MASK_LA_MAC_1))
  37000. #define BIT_GET_R_WMAC_MASK_LA_MAC_1(x) \
  37001. (((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC_1) & \
  37002. BIT_MASK_R_WMAC_MASK_LA_MAC_1)
  37003. #define BIT_SET_R_WMAC_MASK_LA_MAC_1(x, v) \
  37004. (BIT_CLEAR_R_WMAC_MASK_LA_MAC_1(x) | BIT_R_WMAC_MASK_LA_MAC_1(v))
  37005. #endif
  37006. #if (HALMAC_8192F_SUPPORT)
  37007. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA (Offset 0x07C8) */
  37008. #define BIT_SHIFT_LTECOEX_R_DATA 0
  37009. #define BIT_MASK_LTECOEX_R_DATA 0xffffffffL
  37010. #define BIT_LTECOEX_R_DATA(x) \
  37011. (((x) & BIT_MASK_LTECOEX_R_DATA) << BIT_SHIFT_LTECOEX_R_DATA)
  37012. #define BITS_LTECOEX_R_DATA \
  37013. (BIT_MASK_LTECOEX_R_DATA << BIT_SHIFT_LTECOEX_R_DATA)
  37014. #define BIT_CLEAR_LTECOEX_R_DATA(x) ((x) & (~BITS_LTECOEX_R_DATA))
  37015. #define BIT_GET_LTECOEX_R_DATA(x) \
  37016. (((x) >> BIT_SHIFT_LTECOEX_R_DATA) & BIT_MASK_LTECOEX_R_DATA)
  37017. #define BIT_SET_LTECOEX_R_DATA(x, v) \
  37018. (BIT_CLEAR_LTECOEX_R_DATA(x) | BIT_LTECOEX_R_DATA(v))
  37019. #endif
  37020. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37021. HALMAC_8822C_SUPPORT)
  37022. /* 2 REG_IQ_DUMP_2 (Offset 0x07C8) */
  37023. #define BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2 0
  37024. #define BIT_MASK_R_WMAC_MATCH_REF_MAC_2 0xffffffffL
  37025. #define BIT_R_WMAC_MATCH_REF_MAC_2(x) \
  37026. (((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC_2) \
  37027. << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2)
  37028. #define BITS_R_WMAC_MATCH_REF_MAC_2 \
  37029. (BIT_MASK_R_WMAC_MATCH_REF_MAC_2 << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2)
  37030. #define BIT_CLEAR_R_WMAC_MATCH_REF_MAC_2(x) \
  37031. ((x) & (~BITS_R_WMAC_MATCH_REF_MAC_2))
  37032. #define BIT_GET_R_WMAC_MATCH_REF_MAC_2(x) \
  37033. (((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2) & \
  37034. BIT_MASK_R_WMAC_MATCH_REF_MAC_2)
  37035. #define BIT_SET_R_WMAC_MATCH_REF_MAC_2(x, v) \
  37036. (BIT_CLEAR_R_WMAC_MATCH_REF_MAC_2(x) | BIT_R_WMAC_MATCH_REF_MAC_2(v))
  37037. #endif
  37038. #if (HALMAC_8192F_SUPPORT)
  37039. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37040. #define BIT_SHIFT_RX_STOPRXDMA_RXPOINT 16
  37041. #define BIT_MASK_RX_STOPRXDMA_RXPOINT 0xffff
  37042. #define BIT_RX_STOPRXDMA_RXPOINT(x) \
  37043. (((x) & BIT_MASK_RX_STOPRXDMA_RXPOINT) \
  37044. << BIT_SHIFT_RX_STOPRXDMA_RXPOINT)
  37045. #define BITS_RX_STOPRXDMA_RXPOINT \
  37046. (BIT_MASK_RX_STOPRXDMA_RXPOINT << BIT_SHIFT_RX_STOPRXDMA_RXPOINT)
  37047. #define BIT_CLEAR_RX_STOPRXDMA_RXPOINT(x) ((x) & (~BITS_RX_STOPRXDMA_RXPOINT))
  37048. #define BIT_GET_RX_STOPRXDMA_RXPOINT(x) \
  37049. (((x) >> BIT_SHIFT_RX_STOPRXDMA_RXPOINT) & \
  37050. BIT_MASK_RX_STOPRXDMA_RXPOINT)
  37051. #define BIT_SET_RX_STOPRXDMA_RXPOINT(x, v) \
  37052. (BIT_CLEAR_RX_STOPRXDMA_RXPOINT(x) | BIT_RX_STOPRXDMA_RXPOINT(v))
  37053. #endif
  37054. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  37055. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37056. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37057. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37058. #define BIT_RXFTM_TXACK_SC BIT(6)
  37059. #define BIT_RXFTM_TXACK_BW BIT(5)
  37060. #endif
  37061. #if (HALMAC_8192F_SUPPORT)
  37062. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37063. #define BIT_RXFTM_STOPRXDMAEN BIT(4)
  37064. #endif
  37065. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  37066. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37067. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37068. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37069. #define BIT_RXFTM_EN BIT(3)
  37070. #endif
  37071. #if (HALMAC_8192F_SUPPORT)
  37072. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37073. #define BIT_RXFTMREQ_STOPRXDMAEN BIT(2)
  37074. #endif
  37075. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37076. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  37077. HALMAC_8822C_SUPPORT)
  37078. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37079. #define BIT_RXFTMREQ_BYDRV BIT(2)
  37080. #endif
  37081. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  37082. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37083. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37084. /* 2 REG_WMAC_FTM_CTL (Offset 0x07CC) */
  37085. #define BIT_RXFTMREQ_EN BIT(1)
  37086. #define BIT_FTM_EN BIT(0)
  37087. #endif
  37088. #if (HALMAC_8198F_SUPPORT)
  37089. /* 2 REG_IQ_DUMP_EXT (Offset 0x07CF) */
  37090. #define BIT_SHIFT_R_LA_MAC_TIMEOUT_UNIT_SEL 10
  37091. #define BIT_MASK_R_LA_MAC_TIMEOUT_UNIT_SEL 0x3
  37092. #define BIT_R_LA_MAC_TIMEOUT_UNIT_SEL(x) \
  37093. (((x) & BIT_MASK_R_LA_MAC_TIMEOUT_UNIT_SEL) \
  37094. << BIT_SHIFT_R_LA_MAC_TIMEOUT_UNIT_SEL)
  37095. #define BITS_R_LA_MAC_TIMEOUT_UNIT_SEL \
  37096. (BIT_MASK_R_LA_MAC_TIMEOUT_UNIT_SEL \
  37097. << BIT_SHIFT_R_LA_MAC_TIMEOUT_UNIT_SEL)
  37098. #define BIT_CLEAR_R_LA_MAC_TIMEOUT_UNIT_SEL(x) \
  37099. ((x) & (~BITS_R_LA_MAC_TIMEOUT_UNIT_SEL))
  37100. #define BIT_GET_R_LA_MAC_TIMEOUT_UNIT_SEL(x) \
  37101. (((x) >> BIT_SHIFT_R_LA_MAC_TIMEOUT_UNIT_SEL) & \
  37102. BIT_MASK_R_LA_MAC_TIMEOUT_UNIT_SEL)
  37103. #define BIT_SET_R_LA_MAC_TIMEOUT_UNIT_SEL(x, v) \
  37104. (BIT_CLEAR_R_LA_MAC_TIMEOUT_UNIT_SEL(x) | \
  37105. BIT_R_LA_MAC_TIMEOUT_UNIT_SEL(v))
  37106. #define BIT_SHIFT_R_LA_MAC_TIMEOUT_VALUE 4
  37107. #define BIT_MASK_R_LA_MAC_TIMEOUT_VALUE 0x3f
  37108. #define BIT_R_LA_MAC_TIMEOUT_VALUE(x) \
  37109. (((x) & BIT_MASK_R_LA_MAC_TIMEOUT_VALUE) \
  37110. << BIT_SHIFT_R_LA_MAC_TIMEOUT_VALUE)
  37111. #define BITS_R_LA_MAC_TIMEOUT_VALUE \
  37112. (BIT_MASK_R_LA_MAC_TIMEOUT_VALUE << BIT_SHIFT_R_LA_MAC_TIMEOUT_VALUE)
  37113. #define BIT_CLEAR_R_LA_MAC_TIMEOUT_VALUE(x) \
  37114. ((x) & (~BITS_R_LA_MAC_TIMEOUT_VALUE))
  37115. #define BIT_GET_R_LA_MAC_TIMEOUT_VALUE(x) \
  37116. (((x) >> BIT_SHIFT_R_LA_MAC_TIMEOUT_VALUE) & \
  37117. BIT_MASK_R_LA_MAC_TIMEOUT_VALUE)
  37118. #define BIT_SET_R_LA_MAC_TIMEOUT_VALUE(x, v) \
  37119. (BIT_CLEAR_R_LA_MAC_TIMEOUT_VALUE(x) | BIT_R_LA_MAC_TIMEOUT_VALUE(v))
  37120. #define BIT_R_LEVEL_PULSE_SEL_EXTL BIT(3)
  37121. #endif
  37122. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  37123. /* 2 REG_IQ_DUMP_EXT (Offset 0x07CF) */
  37124. #define BIT_SHIFT_R_TIME_UNIT_SEL 0
  37125. #define BIT_MASK_R_TIME_UNIT_SEL 0x7
  37126. #define BIT_R_TIME_UNIT_SEL(x) \
  37127. (((x) & BIT_MASK_R_TIME_UNIT_SEL) << BIT_SHIFT_R_TIME_UNIT_SEL)
  37128. #define BITS_R_TIME_UNIT_SEL \
  37129. (BIT_MASK_R_TIME_UNIT_SEL << BIT_SHIFT_R_TIME_UNIT_SEL)
  37130. #define BIT_CLEAR_R_TIME_UNIT_SEL(x) ((x) & (~BITS_R_TIME_UNIT_SEL))
  37131. #define BIT_GET_R_TIME_UNIT_SEL(x) \
  37132. (((x) >> BIT_SHIFT_R_TIME_UNIT_SEL) & BIT_MASK_R_TIME_UNIT_SEL)
  37133. #define BIT_SET_R_TIME_UNIT_SEL(x, v) \
  37134. (BIT_CLEAR_R_TIME_UNIT_SEL(x) | BIT_R_TIME_UNIT_SEL(v))
  37135. #endif
  37136. #if (HALMAC_8814AMP_SUPPORT)
  37137. /* 2 REG_OFDM_CCK_LEN_MASK (Offset 0x07D0) */
  37138. #define BIT_MICICV_CLR BIT(86)
  37139. #define BIT_MPDU_RDY_SET BIT(85)
  37140. #define BIT_CLR_SEC_TYPE BIT(84)
  37141. #define BIT_NEWPKT_IN BIT(83)
  37142. #define BIT_FCS_END BIT(82)
  37143. #define BIT_DEL_MESH_TYPE BIT(81)
  37144. #define BIT_MASK_MESH_TYPE BIT(80)
  37145. #endif
  37146. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37147. HALMAC_8822C_SUPPORT)
  37148. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37149. #define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1 24
  37150. #define BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1 0xff
  37151. #define BIT_R_WMAC_RXFIFO_FULL_TH_1(x) \
  37152. (((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1) \
  37153. << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1)
  37154. #define BITS_R_WMAC_RXFIFO_FULL_TH_1 \
  37155. (BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1 << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1)
  37156. #define BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_1(x) \
  37157. ((x) & (~BITS_R_WMAC_RXFIFO_FULL_TH_1))
  37158. #define BIT_GET_R_WMAC_RXFIFO_FULL_TH_1(x) \
  37159. (((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1) & \
  37160. BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1)
  37161. #define BIT_SET_R_WMAC_RXFIFO_FULL_TH_1(x, v) \
  37162. (BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_1(x) | BIT_R_WMAC_RXFIFO_FULL_TH_1(v))
  37163. #define BIT_R_WMAC_RX_SYNCFIFO_SYNC_1 BIT(23)
  37164. #define BIT_R_WMAC_RXRST_DLY_1 BIT(22)
  37165. #define BIT_R_WMAC_SRCH_TXRPT_REF_DROP_1 BIT(21)
  37166. #define BIT_R_WMAC_SRCH_TXRPT_UA1_1 BIT(20)
  37167. #define BIT_R_WMAC_SRCH_TXRPT_TYPE_1 BIT(19)
  37168. #define BIT_R_WMAC_NDP_RST_1 BIT(18)
  37169. #define BIT_R_WMAC_POWINT_EN_1 BIT(17)
  37170. #define BIT_R_WMAC_SRCH_TXRPT_PERPKT_1 BIT(16)
  37171. #define BIT_R_WMAC_SRCH_TXRPT_MID_1 BIT(15)
  37172. #define BIT_R_WMAC_PFIN_TOEN_1 BIT(14)
  37173. #endif
  37174. #if (HALMAC_8192F_SUPPORT)
  37175. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37176. #define BIT_R_WMAC_FIL_SECERR_V1 BIT(13)
  37177. #endif
  37178. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37179. HALMAC_8822C_SUPPORT)
  37180. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37181. #define BIT_R_WMAC_FIL_SECERR_1 BIT(13)
  37182. #endif
  37183. #if (HALMAC_8192F_SUPPORT)
  37184. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37185. #define BIT_R_WMAC_FIL_CTLPKTLEN_V1 BIT(12)
  37186. #endif
  37187. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37188. HALMAC_8822C_SUPPORT)
  37189. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37190. #define BIT_R_WMAC_FIL_CTLPKTLEN_1 BIT(12)
  37191. #endif
  37192. #if (HALMAC_8192F_SUPPORT)
  37193. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37194. #define BIT_R_WMAC_FIL_FCTYPE_V1 BIT(11)
  37195. #endif
  37196. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37197. HALMAC_8822C_SUPPORT)
  37198. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37199. #define BIT_R_WMAC_FIL_FCTYPE_1 BIT(11)
  37200. #endif
  37201. #if (HALMAC_8192F_SUPPORT)
  37202. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37203. #define BIT_R_WMAC_FIL_FCPROVER_V1 BIT(10)
  37204. #endif
  37205. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37206. HALMAC_8822C_SUPPORT)
  37207. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37208. #define BIT_R_WMAC_FIL_FCPROVER_1 BIT(10)
  37209. #define BIT_R_WMAC_PHYSTS_SNIF_1 BIT(9)
  37210. #define BIT_R_WMAC_PHYSTS_PLCP_1 BIT(8)
  37211. #define BIT_R_MAC_TCR_VBONF_RD_1 BIT(7)
  37212. #define BIT_R_WMAC_TCR_MPAR_NDP_1 BIT(6)
  37213. #define BIT_R_WMAC_NDP_FILTER_1 BIT(5)
  37214. #define BIT_R_WMAC_RXLEN_SEL_1 BIT(4)
  37215. #define BIT_R_WMAC_RXLEN_SEL1_1 BIT(3)
  37216. #define BIT_R_OFDM_FILTER_1 BIT(2)
  37217. #endif
  37218. #if (HALMAC_8192F_SUPPORT)
  37219. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37220. #define BIT_R_WMAC_CHK_OFDM_LEN_V1 BIT(1)
  37221. #endif
  37222. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37223. HALMAC_8822C_SUPPORT)
  37224. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37225. #define BIT_R_WMAC_CHK_OFDM_LEN_1 BIT(1)
  37226. #endif
  37227. #if (HALMAC_8192F_SUPPORT)
  37228. /* 2 REG_FA_FILTER1 (Offset 0x07D4) */
  37229. #define BIT_R_WMAC_CHK_CCK_LEN_V1 BIT(0)
  37230. #endif
  37231. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37232. HALMAC_8822C_SUPPORT)
  37233. /* 2 REG_WMAC_OPTION_FUNCTION_1 (Offset 0x07D4) */
  37234. #define BIT_R_WMAC_CHK_CCK_LEN_1 BIT(0)
  37235. #endif
  37236. #if (HALMAC_8192F_SUPPORT)
  37237. /* 2 REG_FA_FILTER2 (Offset 0x07D8) */
  37238. #define BIT_DEL_MESH_TYPE_V1 BIT(17)
  37239. #endif
  37240. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37241. HALMAC_8822C_SUPPORT)
  37242. /* 2 REG_WMAC_OPTION_FUNCTION_2 (Offset 0x07D8) */
  37243. #define BIT_SHIFT_R_WMAC_RX_FIL_LEN_2 0
  37244. #define BIT_MASK_R_WMAC_RX_FIL_LEN_2 0xffff
  37245. #define BIT_R_WMAC_RX_FIL_LEN_2(x) \
  37246. (((x) & BIT_MASK_R_WMAC_RX_FIL_LEN_2) << BIT_SHIFT_R_WMAC_RX_FIL_LEN_2)
  37247. #define BITS_R_WMAC_RX_FIL_LEN_2 \
  37248. (BIT_MASK_R_WMAC_RX_FIL_LEN_2 << BIT_SHIFT_R_WMAC_RX_FIL_LEN_2)
  37249. #define BIT_CLEAR_R_WMAC_RX_FIL_LEN_2(x) ((x) & (~BITS_R_WMAC_RX_FIL_LEN_2))
  37250. #define BIT_GET_R_WMAC_RX_FIL_LEN_2(x) \
  37251. (((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN_2) & BIT_MASK_R_WMAC_RX_FIL_LEN_2)
  37252. #define BIT_SET_R_WMAC_RX_FIL_LEN_2(x, v) \
  37253. (BIT_CLEAR_R_WMAC_RX_FIL_LEN_2(x) | BIT_R_WMAC_RX_FIL_LEN_2(v))
  37254. #endif
  37255. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  37256. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37257. #define BIT_R_WMAC_RXHANG_EN BIT(15)
  37258. #endif
  37259. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37260. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37261. #define BIT_RXHANG_EN BIT(15)
  37262. #endif
  37263. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37264. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  37265. HALMAC_8822C_SUPPORT)
  37266. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37267. #define BIT_R_WMAC_MHRDDY_LATCH BIT(14)
  37268. #endif
  37269. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  37270. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37271. #define BIT_R_MHRDDY_CLR BIT(13)
  37272. #endif
  37273. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37274. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37275. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37276. #define BIT_R_WMAC_MHRDDY_CLR BIT(13)
  37277. #endif
  37278. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37279. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  37280. HALMAC_8822C_SUPPORT)
  37281. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37282. #define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY1 BIT(12)
  37283. #endif
  37284. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  37285. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37286. #define BIT_R_WMAC_DIS_VHT_PLCP_CHK_MU BIT(11)
  37287. #endif
  37288. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37289. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37290. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37291. #define BIT_WMAC_DIS_VHT_PLCP_CHK_MU BIT(11)
  37292. #endif
  37293. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37294. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  37295. HALMAC_8822C_SUPPORT)
  37296. /* 2 REG_RX_FILTER_FUNCTION (Offset 0x07DA) */
  37297. #define BIT_R_CHK_DELIMIT_LEN BIT(10)
  37298. #define BIT_R_REAPTER_ADDR_MATCH BIT(9)
  37299. #define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY BIT(8)
  37300. #define BIT_R_LATCH_MACHRDY BIT(7)
  37301. #define BIT_R_WMAC_RXFIL_REND BIT(6)
  37302. #define BIT_R_WMAC_MPDURDY_CLR BIT(5)
  37303. #define BIT_R_WMAC_CLRRXSEC BIT(4)
  37304. #define BIT_R_WMAC_RXFIL_RDEL BIT(3)
  37305. #define BIT_R_WMAC_RXFIL_FCSE BIT(2)
  37306. #define BIT_R_WMAC_RXFIL_MESH_DEL BIT(1)
  37307. #define BIT_R_WMAC_RXFIL_MASKM BIT(0)
  37308. #endif
  37309. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37310. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  37311. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37312. /* 2 REG_NDP_SIG (Offset 0x07E0) */
  37313. #define BIT_SHIFT_R_WMAC_TXNDP_SIGB 0
  37314. #define BIT_MASK_R_WMAC_TXNDP_SIGB 0x1fffff
  37315. #define BIT_R_WMAC_TXNDP_SIGB(x) \
  37316. (((x) & BIT_MASK_R_WMAC_TXNDP_SIGB) << BIT_SHIFT_R_WMAC_TXNDP_SIGB)
  37317. #define BITS_R_WMAC_TXNDP_SIGB \
  37318. (BIT_MASK_R_WMAC_TXNDP_SIGB << BIT_SHIFT_R_WMAC_TXNDP_SIGB)
  37319. #define BIT_CLEAR_R_WMAC_TXNDP_SIGB(x) ((x) & (~BITS_R_WMAC_TXNDP_SIGB))
  37320. #define BIT_GET_R_WMAC_TXNDP_SIGB(x) \
  37321. (((x) >> BIT_SHIFT_R_WMAC_TXNDP_SIGB) & BIT_MASK_R_WMAC_TXNDP_SIGB)
  37322. #define BIT_SET_R_WMAC_TXNDP_SIGB(x, v) \
  37323. (BIT_CLEAR_R_WMAC_TXNDP_SIGB(x) | BIT_R_WMAC_TXNDP_SIGB(v))
  37324. #endif
  37325. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  37326. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  37327. /* 2 REG_TXCMD_INFO_FOR_RSP_PKT (Offset 0x07E4) */
  37328. #define BIT_SHIFT_R_MAC_DEBUG (32 & CPU_OPT_WIDTH)
  37329. #define BIT_MASK_R_MAC_DEBUG 0xffffffffL
  37330. #define BIT_R_MAC_DEBUG(x) \
  37331. (((x) & BIT_MASK_R_MAC_DEBUG) << BIT_SHIFT_R_MAC_DEBUG)
  37332. #define BITS_R_MAC_DEBUG (BIT_MASK_R_MAC_DEBUG << BIT_SHIFT_R_MAC_DEBUG)
  37333. #define BIT_CLEAR_R_MAC_DEBUG(x) ((x) & (~BITS_R_MAC_DEBUG))
  37334. #define BIT_GET_R_MAC_DEBUG(x) \
  37335. (((x) >> BIT_SHIFT_R_MAC_DEBUG) & BIT_MASK_R_MAC_DEBUG)
  37336. #define BIT_SET_R_MAC_DEBUG(x, v) \
  37337. (BIT_CLEAR_R_MAC_DEBUG(x) | BIT_R_MAC_DEBUG(v))
  37338. #endif
  37339. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37340. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  37341. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  37342. /* 2 REG_TXCMD_INFO_FOR_RSP_PKT (Offset 0x07E4) */
  37343. #define BIT_SHIFT_R_MAC_DBG_SHIFT 8
  37344. #define BIT_MASK_R_MAC_DBG_SHIFT 0x7
  37345. #define BIT_R_MAC_DBG_SHIFT(x) \
  37346. (((x) & BIT_MASK_R_MAC_DBG_SHIFT) << BIT_SHIFT_R_MAC_DBG_SHIFT)
  37347. #define BITS_R_MAC_DBG_SHIFT \
  37348. (BIT_MASK_R_MAC_DBG_SHIFT << BIT_SHIFT_R_MAC_DBG_SHIFT)
  37349. #define BIT_CLEAR_R_MAC_DBG_SHIFT(x) ((x) & (~BITS_R_MAC_DBG_SHIFT))
  37350. #define BIT_GET_R_MAC_DBG_SHIFT(x) \
  37351. (((x) >> BIT_SHIFT_R_MAC_DBG_SHIFT) & BIT_MASK_R_MAC_DBG_SHIFT)
  37352. #define BIT_SET_R_MAC_DBG_SHIFT(x, v) \
  37353. (BIT_CLEAR_R_MAC_DBG_SHIFT(x) | BIT_R_MAC_DBG_SHIFT(v))
  37354. #define BIT_SHIFT_R_MAC_DBG_SEL 0
  37355. #define BIT_MASK_R_MAC_DBG_SEL 0x3
  37356. #define BIT_R_MAC_DBG_SEL(x) \
  37357. (((x) & BIT_MASK_R_MAC_DBG_SEL) << BIT_SHIFT_R_MAC_DBG_SEL)
  37358. #define BITS_R_MAC_DBG_SEL (BIT_MASK_R_MAC_DBG_SEL << BIT_SHIFT_R_MAC_DBG_SEL)
  37359. #define BIT_CLEAR_R_MAC_DBG_SEL(x) ((x) & (~BITS_R_MAC_DBG_SEL))
  37360. #define BIT_GET_R_MAC_DBG_SEL(x) \
  37361. (((x) >> BIT_SHIFT_R_MAC_DBG_SEL) & BIT_MASK_R_MAC_DBG_SEL)
  37362. #define BIT_SET_R_MAC_DBG_SEL(x, v) \
  37363. (BIT_CLEAR_R_MAC_DBG_SEL(x) | BIT_R_MAC_DBG_SEL(v))
  37364. #endif
  37365. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  37366. HALMAC_8822C_SUPPORT)
  37367. /* 2 REG_TXCMD_INFO_FOR_RSP_PKT_1 (Offset 0x07E8) */
  37368. #define BIT_SHIFT_R_MAC_DEBUG_1 0
  37369. #define BIT_MASK_R_MAC_DEBUG_1 0xffffffffL
  37370. #define BIT_R_MAC_DEBUG_1(x) \
  37371. (((x) & BIT_MASK_R_MAC_DEBUG_1) << BIT_SHIFT_R_MAC_DEBUG_1)
  37372. #define BITS_R_MAC_DEBUG_1 (BIT_MASK_R_MAC_DEBUG_1 << BIT_SHIFT_R_MAC_DEBUG_1)
  37373. #define BIT_CLEAR_R_MAC_DEBUG_1(x) ((x) & (~BITS_R_MAC_DEBUG_1))
  37374. #define BIT_GET_R_MAC_DEBUG_1(x) \
  37375. (((x) >> BIT_SHIFT_R_MAC_DEBUG_1) & BIT_MASK_R_MAC_DEBUG_1)
  37376. #define BIT_SET_R_MAC_DEBUG_1(x, v) \
  37377. (BIT_CLEAR_R_MAC_DEBUG_1(x) | BIT_R_MAC_DEBUG_1(v))
  37378. #endif
  37379. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  37380. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  37381. /* 2 REG_WSEC_OPTION (Offset 0x07EC) */
  37382. #define BIT_RXDEC_BM_MGNT BIT(22)
  37383. #define BIT_TXENC_BM_MGNT BIT(21)
  37384. #define BIT_RXDEC_UNI_MGNT BIT(20)
  37385. #define BIT_TXENC_UNI_MGNT BIT(19)
  37386. #endif
  37387. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  37388. /* 2 REG_SEC_OPT_V2 (Offset 0x07EC) */
  37389. #define BIT_MASK_IV BIT(18)
  37390. #endif
  37391. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37392. /* 2 REG_WSEC_OPTION (Offset 0x07EC) */
  37393. #define BIT_WMAC_SEC_MASKIV BIT(18)
  37394. #endif
  37395. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  37396. /* 2 REG_SEC_OPT_V2 (Offset 0x07EC) */
  37397. #define BIT_EIVL_ENDIAN BIT(17)
  37398. #define BIT_EIVH_ENDIAN BIT(16)
  37399. #endif
  37400. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37401. /* 2 REG_WSEC_OPTION (Offset 0x07EC) */
  37402. #define BIT_SHIFT_WMAC_SEC_PN_SEL 16
  37403. #define BIT_MASK_WMAC_SEC_PN_SEL 0x3
  37404. #define BIT_WMAC_SEC_PN_SEL(x) \
  37405. (((x) & BIT_MASK_WMAC_SEC_PN_SEL) << BIT_SHIFT_WMAC_SEC_PN_SEL)
  37406. #define BITS_WMAC_SEC_PN_SEL \
  37407. (BIT_MASK_WMAC_SEC_PN_SEL << BIT_SHIFT_WMAC_SEC_PN_SEL)
  37408. #define BIT_CLEAR_WMAC_SEC_PN_SEL(x) ((x) & (~BITS_WMAC_SEC_PN_SEL))
  37409. #define BIT_GET_WMAC_SEC_PN_SEL(x) \
  37410. (((x) >> BIT_SHIFT_WMAC_SEC_PN_SEL) & BIT_MASK_WMAC_SEC_PN_SEL)
  37411. #define BIT_SET_WMAC_SEC_PN_SEL(x, v) \
  37412. (BIT_CLEAR_WMAC_SEC_PN_SEL(x) | BIT_WMAC_SEC_PN_SEL(v))
  37413. #endif
  37414. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  37415. HALMAC_8814AMP_SUPPORT || HALMAC_8822C_SUPPORT)
  37416. /* 2 REG_WSEC_OPTION (Offset 0x07EC) */
  37417. #define BIT_SHIFT_BT_TIME_CNT 0
  37418. #define BIT_MASK_BT_TIME_CNT 0xff
  37419. #define BIT_BT_TIME_CNT(x) \
  37420. (((x) & BIT_MASK_BT_TIME_CNT) << BIT_SHIFT_BT_TIME_CNT)
  37421. #define BITS_BT_TIME_CNT (BIT_MASK_BT_TIME_CNT << BIT_SHIFT_BT_TIME_CNT)
  37422. #define BIT_CLEAR_BT_TIME_CNT(x) ((x) & (~BITS_BT_TIME_CNT))
  37423. #define BIT_GET_BT_TIME_CNT(x) \
  37424. (((x) >> BIT_SHIFT_BT_TIME_CNT) & BIT_MASK_BT_TIME_CNT)
  37425. #define BIT_SET_BT_TIME_CNT(x, v) \
  37426. (BIT_CLEAR_BT_TIME_CNT(x) | BIT_BT_TIME_CNT(v))
  37427. #endif
  37428. #if (HALMAC_8198F_SUPPORT)
  37429. /* 2 REG_RTS_ADDRESS_0 (Offset 0x07F0) */
  37430. #define BIT_SHIFT_R_WMAC_RTS_ADDR0 0
  37431. #define BIT_MASK_R_WMAC_RTS_ADDR0 0xffffffffffffL
  37432. #define BIT_R_WMAC_RTS_ADDR0(x) \
  37433. (((x) & BIT_MASK_R_WMAC_RTS_ADDR0) << BIT_SHIFT_R_WMAC_RTS_ADDR0)
  37434. #define BITS_R_WMAC_RTS_ADDR0 \
  37435. (BIT_MASK_R_WMAC_RTS_ADDR0 << BIT_SHIFT_R_WMAC_RTS_ADDR0)
  37436. #define BIT_CLEAR_R_WMAC_RTS_ADDR0(x) ((x) & (~BITS_R_WMAC_RTS_ADDR0))
  37437. #define BIT_GET_R_WMAC_RTS_ADDR0(x) \
  37438. (((x) >> BIT_SHIFT_R_WMAC_RTS_ADDR0) & BIT_MASK_R_WMAC_RTS_ADDR0)
  37439. #define BIT_SET_R_WMAC_RTS_ADDR0(x, v) \
  37440. (BIT_CLEAR_R_WMAC_RTS_ADDR0(x) | BIT_R_WMAC_RTS_ADDR0(v))
  37441. #endif
  37442. #if (HALMAC_8814AMP_SUPPORT)
  37443. /* 2 REG_RTS_ADDR0 (Offset 0x07F0) */
  37444. #define BIT_SHIFT_RTS_ADDR0 0
  37445. #define BIT_MASK_RTS_ADDR0 0xffffffffffffL
  37446. #define BIT_RTS_ADDR0(x) (((x) & BIT_MASK_RTS_ADDR0) << BIT_SHIFT_RTS_ADDR0)
  37447. #define BITS_RTS_ADDR0 (BIT_MASK_RTS_ADDR0 << BIT_SHIFT_RTS_ADDR0)
  37448. #define BIT_CLEAR_RTS_ADDR0(x) ((x) & (~BITS_RTS_ADDR0))
  37449. #define BIT_GET_RTS_ADDR0(x) (((x) >> BIT_SHIFT_RTS_ADDR0) & BIT_MASK_RTS_ADDR0)
  37450. #define BIT_SET_RTS_ADDR0(x, v) (BIT_CLEAR_RTS_ADDR0(x) | BIT_RTS_ADDR0(v))
  37451. #endif
  37452. #if (HALMAC_8198F_SUPPORT)
  37453. /* 2 REG_RTS_ADDRESS_1 (Offset 0x07F8) */
  37454. #define BIT_SHIFT_R_WMAC_RTS_ADDR1 0
  37455. #define BIT_MASK_R_WMAC_RTS_ADDR1 0xffffffffffffL
  37456. #define BIT_R_WMAC_RTS_ADDR1(x) \
  37457. (((x) & BIT_MASK_R_WMAC_RTS_ADDR1) << BIT_SHIFT_R_WMAC_RTS_ADDR1)
  37458. #define BITS_R_WMAC_RTS_ADDR1 \
  37459. (BIT_MASK_R_WMAC_RTS_ADDR1 << BIT_SHIFT_R_WMAC_RTS_ADDR1)
  37460. #define BIT_CLEAR_R_WMAC_RTS_ADDR1(x) ((x) & (~BITS_R_WMAC_RTS_ADDR1))
  37461. #define BIT_GET_R_WMAC_RTS_ADDR1(x) \
  37462. (((x) >> BIT_SHIFT_R_WMAC_RTS_ADDR1) & BIT_MASK_R_WMAC_RTS_ADDR1)
  37463. #define BIT_SET_R_WMAC_RTS_ADDR1(x, v) \
  37464. (BIT_CLEAR_R_WMAC_RTS_ADDR1(x) | BIT_R_WMAC_RTS_ADDR1(v))
  37465. #endif
  37466. #if (HALMAC_8814AMP_SUPPORT)
  37467. /* 2 REG_RTS_ADDR1 (Offset 0x07F8) */
  37468. #define BIT_SHIFT_RTS_ADDR1 0
  37469. #define BIT_MASK_RTS_ADDR1 0xffffffffffffL
  37470. #define BIT_RTS_ADDR1(x) (((x) & BIT_MASK_RTS_ADDR1) << BIT_SHIFT_RTS_ADDR1)
  37471. #define BITS_RTS_ADDR1 (BIT_MASK_RTS_ADDR1 << BIT_SHIFT_RTS_ADDR1)
  37472. #define BIT_CLEAR_RTS_ADDR1(x) ((x) & (~BITS_RTS_ADDR1))
  37473. #define BIT_GET_RTS_ADDR1(x) (((x) >> BIT_SHIFT_RTS_ADDR1) & BIT_MASK_RTS_ADDR1)
  37474. #define BIT_SET_RTS_ADDR1(x, v) (BIT_CLEAR_RTS_ADDR1(x) | BIT_RTS_ADDR1(v))
  37475. #endif
  37476. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  37477. /* 2 REG_SYS_CFG3 (Offset 0x1000) */
  37478. #define BIT_FEN_BB_GLB_RSTN_V1 BIT(17)
  37479. #define BIT_FEN_BBRSTB_V1 BIT(16)
  37480. #endif
  37481. #if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  37482. /* 2 REG_SYS_CFG3 (Offset 0x1000) */
  37483. #define BIT_PWC_MA33V BIT(15)
  37484. #endif
  37485. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  37486. /* 2 REG_SYS_CFG3 (Offset 0x1000) */
  37487. #define BIT_PWC_EV25V_1 BIT(14)
  37488. #endif
  37489. #if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  37490. /* 2 REG_SYS_CFG3 (Offset 0x1000) */
  37491. #define BIT_PWC_MA12V BIT(14)
  37492. #define BIT_PWC_MD12V BIT(13)
  37493. #define BIT_PWC_PD12V BIT(12)
  37494. #define BIT_PWC_UD12V BIT(11)
  37495. #define BIT_ISO_MA2MD BIT(1)
  37496. #endif
  37497. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37498. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37499. #define BIT_OCP_L BIT(31)
  37500. #endif
  37501. #if (HALMAC_8814B_SUPPORT)
  37502. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37503. #define BIT_OCP_L_0 BIT(31)
  37504. #endif
  37505. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37506. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37507. #define BIT_POWOCP_L BIT(30)
  37508. #endif
  37509. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37510. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37511. #define BIT_SHIFT_CF_L_V2 28
  37512. #define BIT_MASK_CF_L_V2 0x3
  37513. #define BIT_CF_L_V2(x) (((x) & BIT_MASK_CF_L_V2) << BIT_SHIFT_CF_L_V2)
  37514. #define BITS_CF_L_V2 (BIT_MASK_CF_L_V2 << BIT_SHIFT_CF_L_V2)
  37515. #define BIT_CLEAR_CF_L_V2(x) ((x) & (~BITS_CF_L_V2))
  37516. #define BIT_GET_CF_L_V2(x) (((x) >> BIT_SHIFT_CF_L_V2) & BIT_MASK_CF_L_V2)
  37517. #define BIT_SET_CF_L_V2(x, v) (BIT_CLEAR_CF_L_V2(x) | BIT_CF_L_V2(v))
  37518. #endif
  37519. #if (HALMAC_8814B_SUPPORT)
  37520. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37521. #define BIT_SHIFT_CF_L_1_0 28
  37522. #define BIT_MASK_CF_L_1_0 0x3
  37523. #define BIT_CF_L_1_0(x) (((x) & BIT_MASK_CF_L_1_0) << BIT_SHIFT_CF_L_1_0)
  37524. #define BITS_CF_L_1_0 (BIT_MASK_CF_L_1_0 << BIT_SHIFT_CF_L_1_0)
  37525. #define BIT_CLEAR_CF_L_1_0(x) ((x) & (~BITS_CF_L_1_0))
  37526. #define BIT_GET_CF_L_1_0(x) (((x) >> BIT_SHIFT_CF_L_1_0) & BIT_MASK_CF_L_1_0)
  37527. #define BIT_SET_CF_L_1_0(x, v) (BIT_CLEAR_CF_L_1_0(x) | BIT_CF_L_1_0(v))
  37528. #endif
  37529. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37530. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37531. #define BIT_SHIFT_CFC_L_V2 26
  37532. #define BIT_MASK_CFC_L_V2 0x3
  37533. #define BIT_CFC_L_V2(x) (((x) & BIT_MASK_CFC_L_V2) << BIT_SHIFT_CFC_L_V2)
  37534. #define BITS_CFC_L_V2 (BIT_MASK_CFC_L_V2 << BIT_SHIFT_CFC_L_V2)
  37535. #define BIT_CLEAR_CFC_L_V2(x) ((x) & (~BITS_CFC_L_V2))
  37536. #define BIT_GET_CFC_L_V2(x) (((x) >> BIT_SHIFT_CFC_L_V2) & BIT_MASK_CFC_L_V2)
  37537. #define BIT_SET_CFC_L_V2(x, v) (BIT_CLEAR_CFC_L_V2(x) | BIT_CFC_L_V2(v))
  37538. #endif
  37539. #if (HALMAC_8814B_SUPPORT)
  37540. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37541. #define BIT_SHIFT_CFC_L_1_0 26
  37542. #define BIT_MASK_CFC_L_1_0 0x3
  37543. #define BIT_CFC_L_1_0(x) (((x) & BIT_MASK_CFC_L_1_0) << BIT_SHIFT_CFC_L_1_0)
  37544. #define BITS_CFC_L_1_0 (BIT_MASK_CFC_L_1_0 << BIT_SHIFT_CFC_L_1_0)
  37545. #define BIT_CLEAR_CFC_L_1_0(x) ((x) & (~BITS_CFC_L_1_0))
  37546. #define BIT_GET_CFC_L_1_0(x) (((x) >> BIT_SHIFT_CFC_L_1_0) & BIT_MASK_CFC_L_1_0)
  37547. #define BIT_SET_CFC_L_1_0(x, v) (BIT_CLEAR_CFC_L_1_0(x) | BIT_CFC_L_1_0(v))
  37548. #endif
  37549. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37550. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37551. #define BIT_SHIFT_R3_L_V2 24
  37552. #define BIT_MASK_R3_L_V2 0x3
  37553. #define BIT_R3_L_V2(x) (((x) & BIT_MASK_R3_L_V2) << BIT_SHIFT_R3_L_V2)
  37554. #define BITS_R3_L_V2 (BIT_MASK_R3_L_V2 << BIT_SHIFT_R3_L_V2)
  37555. #define BIT_CLEAR_R3_L_V2(x) ((x) & (~BITS_R3_L_V2))
  37556. #define BIT_GET_R3_L_V2(x) (((x) >> BIT_SHIFT_R3_L_V2) & BIT_MASK_R3_L_V2)
  37557. #define BIT_SET_R3_L_V2(x, v) (BIT_CLEAR_R3_L_V2(x) | BIT_R3_L_V2(v))
  37558. #endif
  37559. #if (HALMAC_8814B_SUPPORT)
  37560. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37561. #define BIT_SHIFT_R3_L_1_0 24
  37562. #define BIT_MASK_R3_L_1_0 0x3
  37563. #define BIT_R3_L_1_0(x) (((x) & BIT_MASK_R3_L_1_0) << BIT_SHIFT_R3_L_1_0)
  37564. #define BITS_R3_L_1_0 (BIT_MASK_R3_L_1_0 << BIT_SHIFT_R3_L_1_0)
  37565. #define BIT_CLEAR_R3_L_1_0(x) ((x) & (~BITS_R3_L_1_0))
  37566. #define BIT_GET_R3_L_1_0(x) (((x) >> BIT_SHIFT_R3_L_1_0) & BIT_MASK_R3_L_1_0)
  37567. #define BIT_SET_R3_L_1_0(x, v) (BIT_CLEAR_R3_L_1_0(x) | BIT_R3_L_1_0(v))
  37568. #endif
  37569. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37570. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37571. #define BIT_SHIFT_R2_L 22
  37572. #define BIT_MASK_R2_L 0x3
  37573. #define BIT_R2_L(x) (((x) & BIT_MASK_R2_L) << BIT_SHIFT_R2_L)
  37574. #define BITS_R2_L (BIT_MASK_R2_L << BIT_SHIFT_R2_L)
  37575. #define BIT_CLEAR_R2_L(x) ((x) & (~BITS_R2_L))
  37576. #define BIT_GET_R2_L(x) (((x) >> BIT_SHIFT_R2_L) & BIT_MASK_R2_L)
  37577. #define BIT_SET_R2_L(x, v) (BIT_CLEAR_R2_L(x) | BIT_R2_L(v))
  37578. #endif
  37579. #if (HALMAC_8814B_SUPPORT)
  37580. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37581. #define BIT_SHIFT_R2_L_1_0 22
  37582. #define BIT_MASK_R2_L_1_0 0x3
  37583. #define BIT_R2_L_1_0(x) (((x) & BIT_MASK_R2_L_1_0) << BIT_SHIFT_R2_L_1_0)
  37584. #define BITS_R2_L_1_0 (BIT_MASK_R2_L_1_0 << BIT_SHIFT_R2_L_1_0)
  37585. #define BIT_CLEAR_R2_L_1_0(x) ((x) & (~BITS_R2_L_1_0))
  37586. #define BIT_GET_R2_L_1_0(x) (((x) >> BIT_SHIFT_R2_L_1_0) & BIT_MASK_R2_L_1_0)
  37587. #define BIT_SET_R2_L_1_0(x, v) (BIT_CLEAR_R2_L_1_0(x) | BIT_R2_L_1_0(v))
  37588. #endif
  37589. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37590. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37591. #define BIT_SHIFT_R1_L 20
  37592. #define BIT_MASK_R1_L 0x3
  37593. #define BIT_R1_L(x) (((x) & BIT_MASK_R1_L) << BIT_SHIFT_R1_L)
  37594. #define BITS_R1_L (BIT_MASK_R1_L << BIT_SHIFT_R1_L)
  37595. #define BIT_CLEAR_R1_L(x) ((x) & (~BITS_R1_L))
  37596. #define BIT_GET_R1_L(x) (((x) >> BIT_SHIFT_R1_L) & BIT_MASK_R1_L)
  37597. #define BIT_SET_R1_L(x, v) (BIT_CLEAR_R1_L(x) | BIT_R1_L(v))
  37598. #endif
  37599. #if (HALMAC_8814B_SUPPORT)
  37600. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37601. #define BIT_SHIFT_R1_L_1_0 20
  37602. #define BIT_MASK_R1_L_1_0 0x3
  37603. #define BIT_R1_L_1_0(x) (((x) & BIT_MASK_R1_L_1_0) << BIT_SHIFT_R1_L_1_0)
  37604. #define BITS_R1_L_1_0 (BIT_MASK_R1_L_1_0 << BIT_SHIFT_R1_L_1_0)
  37605. #define BIT_CLEAR_R1_L_1_0(x) ((x) & (~BITS_R1_L_1_0))
  37606. #define BIT_GET_R1_L_1_0(x) (((x) >> BIT_SHIFT_R1_L_1_0) & BIT_MASK_R1_L_1_0)
  37607. #define BIT_SET_R1_L_1_0(x, v) (BIT_CLEAR_R1_L_1_0(x) | BIT_R1_L_1_0(v))
  37608. #endif
  37609. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37610. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37611. #define BIT_SHIFT_C3_L 18
  37612. #define BIT_MASK_C3_L 0x3
  37613. #define BIT_C3_L(x) (((x) & BIT_MASK_C3_L) << BIT_SHIFT_C3_L)
  37614. #define BITS_C3_L (BIT_MASK_C3_L << BIT_SHIFT_C3_L)
  37615. #define BIT_CLEAR_C3_L(x) ((x) & (~BITS_C3_L))
  37616. #define BIT_GET_C3_L(x) (((x) >> BIT_SHIFT_C3_L) & BIT_MASK_C3_L)
  37617. #define BIT_SET_C3_L(x, v) (BIT_CLEAR_C3_L(x) | BIT_C3_L(v))
  37618. #endif
  37619. #if (HALMAC_8814B_SUPPORT)
  37620. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37621. #define BIT_SHIFT_C3_L_1_0 18
  37622. #define BIT_MASK_C3_L_1_0 0x3
  37623. #define BIT_C3_L_1_0(x) (((x) & BIT_MASK_C3_L_1_0) << BIT_SHIFT_C3_L_1_0)
  37624. #define BITS_C3_L_1_0 (BIT_MASK_C3_L_1_0 << BIT_SHIFT_C3_L_1_0)
  37625. #define BIT_CLEAR_C3_L_1_0(x) ((x) & (~BITS_C3_L_1_0))
  37626. #define BIT_GET_C3_L_1_0(x) (((x) >> BIT_SHIFT_C3_L_1_0) & BIT_MASK_C3_L_1_0)
  37627. #define BIT_SET_C3_L_1_0(x, v) (BIT_CLEAR_C3_L_1_0(x) | BIT_C3_L_1_0(v))
  37628. #endif
  37629. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37630. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37631. #define BIT_SHIFT_C2_L 16
  37632. #define BIT_MASK_C2_L 0x3
  37633. #define BIT_C2_L(x) (((x) & BIT_MASK_C2_L) << BIT_SHIFT_C2_L)
  37634. #define BITS_C2_L (BIT_MASK_C2_L << BIT_SHIFT_C2_L)
  37635. #define BIT_CLEAR_C2_L(x) ((x) & (~BITS_C2_L))
  37636. #define BIT_GET_C2_L(x) (((x) >> BIT_SHIFT_C2_L) & BIT_MASK_C2_L)
  37637. #define BIT_SET_C2_L(x, v) (BIT_CLEAR_C2_L(x) | BIT_C2_L(v))
  37638. #endif
  37639. #if (HALMAC_8814B_SUPPORT)
  37640. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37641. #define BIT_SHIFT_C2_L_1_0 16
  37642. #define BIT_MASK_C2_L_1_0 0x3
  37643. #define BIT_C2_L_1_0(x) (((x) & BIT_MASK_C2_L_1_0) << BIT_SHIFT_C2_L_1_0)
  37644. #define BITS_C2_L_1_0 (BIT_MASK_C2_L_1_0 << BIT_SHIFT_C2_L_1_0)
  37645. #define BIT_CLEAR_C2_L_1_0(x) ((x) & (~BITS_C2_L_1_0))
  37646. #define BIT_GET_C2_L_1_0(x) (((x) >> BIT_SHIFT_C2_L_1_0) & BIT_MASK_C2_L_1_0)
  37647. #define BIT_SET_C2_L_1_0(x, v) (BIT_CLEAR_C2_L_1_0(x) | BIT_C2_L_1_0(v))
  37648. #endif
  37649. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37650. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37651. #define BIT_SHIFT_C1_L_V2 14
  37652. #define BIT_MASK_C1_L_V2 0x3
  37653. #define BIT_C1_L_V2(x) (((x) & BIT_MASK_C1_L_V2) << BIT_SHIFT_C1_L_V2)
  37654. #define BITS_C1_L_V2 (BIT_MASK_C1_L_V2 << BIT_SHIFT_C1_L_V2)
  37655. #define BIT_CLEAR_C1_L_V2(x) ((x) & (~BITS_C1_L_V2))
  37656. #define BIT_GET_C1_L_V2(x) (((x) >> BIT_SHIFT_C1_L_V2) & BIT_MASK_C1_L_V2)
  37657. #define BIT_SET_C1_L_V2(x, v) (BIT_CLEAR_C1_L_V2(x) | BIT_C1_L_V2(v))
  37658. #endif
  37659. #if (HALMAC_8814B_SUPPORT)
  37660. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37661. #define BIT_SHIFT_C1_L_1_0 14
  37662. #define BIT_MASK_C1_L_1_0 0x3
  37663. #define BIT_C1_L_1_0(x) (((x) & BIT_MASK_C1_L_1_0) << BIT_SHIFT_C1_L_1_0)
  37664. #define BITS_C1_L_1_0 (BIT_MASK_C1_L_1_0 << BIT_SHIFT_C1_L_1_0)
  37665. #define BIT_CLEAR_C1_L_1_0(x) ((x) & (~BITS_C1_L_1_0))
  37666. #define BIT_GET_C1_L_1_0(x) (((x) >> BIT_SHIFT_C1_L_1_0) & BIT_MASK_C1_L_1_0)
  37667. #define BIT_SET_C1_L_1_0(x, v) (BIT_CLEAR_C1_L_1_0(x) | BIT_C1_L_1_0(v))
  37668. #endif
  37669. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37670. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37671. #define BIT_REG_TYPE_L_V2 BIT(13)
  37672. #define BIT_REG_PWM_L BIT(12)
  37673. #endif
  37674. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37675. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37676. #define BIT_SHIFT_V15ADJ_L 9
  37677. #define BIT_MASK_V15ADJ_L 0x7
  37678. #define BIT_V15ADJ_L(x) (((x) & BIT_MASK_V15ADJ_L) << BIT_SHIFT_V15ADJ_L)
  37679. #define BITS_V15ADJ_L (BIT_MASK_V15ADJ_L << BIT_SHIFT_V15ADJ_L)
  37680. #define BIT_CLEAR_V15ADJ_L(x) ((x) & (~BITS_V15ADJ_L))
  37681. #define BIT_GET_V15ADJ_L(x) (((x) >> BIT_SHIFT_V15ADJ_L) & BIT_MASK_V15ADJ_L)
  37682. #define BIT_SET_V15ADJ_L(x, v) (BIT_CLEAR_V15ADJ_L(x) | BIT_V15ADJ_L(v))
  37683. #endif
  37684. #if (HALMAC_8814B_SUPPORT)
  37685. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37686. #define BIT_SHIFT_V15ADJ_L_2_0 9
  37687. #define BIT_MASK_V15ADJ_L_2_0 0x7
  37688. #define BIT_V15ADJ_L_2_0(x) \
  37689. (((x) & BIT_MASK_V15ADJ_L_2_0) << BIT_SHIFT_V15ADJ_L_2_0)
  37690. #define BITS_V15ADJ_L_2_0 (BIT_MASK_V15ADJ_L_2_0 << BIT_SHIFT_V15ADJ_L_2_0)
  37691. #define BIT_CLEAR_V15ADJ_L_2_0(x) ((x) & (~BITS_V15ADJ_L_2_0))
  37692. #define BIT_GET_V15ADJ_L_2_0(x) \
  37693. (((x) >> BIT_SHIFT_V15ADJ_L_2_0) & BIT_MASK_V15ADJ_L_2_0)
  37694. #define BIT_SET_V15ADJ_L_2_0(x, v) \
  37695. (BIT_CLEAR_V15ADJ_L_2_0(x) | BIT_V15ADJ_L_2_0(v))
  37696. #endif
  37697. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37698. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37699. #define BIT_SHIFT_IN_L 6
  37700. #define BIT_MASK_IN_L 0x7
  37701. #define BIT_IN_L(x) (((x) & BIT_MASK_IN_L) << BIT_SHIFT_IN_L)
  37702. #define BITS_IN_L (BIT_MASK_IN_L << BIT_SHIFT_IN_L)
  37703. #define BIT_CLEAR_IN_L(x) ((x) & (~BITS_IN_L))
  37704. #define BIT_GET_IN_L(x) (((x) >> BIT_SHIFT_IN_L) & BIT_MASK_IN_L)
  37705. #define BIT_SET_IN_L(x, v) (BIT_CLEAR_IN_L(x) | BIT_IN_L(v))
  37706. #endif
  37707. #if (HALMAC_8814B_SUPPORT)
  37708. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37709. #define BIT_SHIFT_IN_L_2_0 6
  37710. #define BIT_MASK_IN_L_2_0 0x7
  37711. #define BIT_IN_L_2_0(x) (((x) & BIT_MASK_IN_L_2_0) << BIT_SHIFT_IN_L_2_0)
  37712. #define BITS_IN_L_2_0 (BIT_MASK_IN_L_2_0 << BIT_SHIFT_IN_L_2_0)
  37713. #define BIT_CLEAR_IN_L_2_0(x) ((x) & (~BITS_IN_L_2_0))
  37714. #define BIT_GET_IN_L_2_0(x) (((x) >> BIT_SHIFT_IN_L_2_0) & BIT_MASK_IN_L_2_0)
  37715. #define BIT_SET_IN_L_2_0(x, v) (BIT_CLEAR_IN_L_2_0(x) | BIT_IN_L_2_0(v))
  37716. #endif
  37717. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37718. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37719. #define BIT_SHIFT_STD_L 4
  37720. #define BIT_MASK_STD_L 0x3
  37721. #define BIT_STD_L(x) (((x) & BIT_MASK_STD_L) << BIT_SHIFT_STD_L)
  37722. #define BITS_STD_L (BIT_MASK_STD_L << BIT_SHIFT_STD_L)
  37723. #define BIT_CLEAR_STD_L(x) ((x) & (~BITS_STD_L))
  37724. #define BIT_GET_STD_L(x) (((x) >> BIT_SHIFT_STD_L) & BIT_MASK_STD_L)
  37725. #define BIT_SET_STD_L(x, v) (BIT_CLEAR_STD_L(x) | BIT_STD_L(v))
  37726. #endif
  37727. #if (HALMAC_8814B_SUPPORT)
  37728. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37729. #define BIT_SHIFT_STD_L_1_0 4
  37730. #define BIT_MASK_STD_L_1_0 0x3
  37731. #define BIT_STD_L_1_0(x) (((x) & BIT_MASK_STD_L_1_0) << BIT_SHIFT_STD_L_1_0)
  37732. #define BITS_STD_L_1_0 (BIT_MASK_STD_L_1_0 << BIT_SHIFT_STD_L_1_0)
  37733. #define BIT_CLEAR_STD_L_1_0(x) ((x) & (~BITS_STD_L_1_0))
  37734. #define BIT_GET_STD_L_1_0(x) (((x) >> BIT_SHIFT_STD_L_1_0) & BIT_MASK_STD_L_1_0)
  37735. #define BIT_SET_STD_L_1_0(x, v) (BIT_CLEAR_STD_L_1_0(x) | BIT_STD_L_1_0(v))
  37736. #endif
  37737. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37738. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37739. #define BIT_SHIFT_VOL_L 0
  37740. #define BIT_MASK_VOL_L 0xf
  37741. #define BIT_VOL_L(x) (((x) & BIT_MASK_VOL_L) << BIT_SHIFT_VOL_L)
  37742. #define BITS_VOL_L (BIT_MASK_VOL_L << BIT_SHIFT_VOL_L)
  37743. #define BIT_CLEAR_VOL_L(x) ((x) & (~BITS_VOL_L))
  37744. #define BIT_GET_VOL_L(x) (((x) >> BIT_SHIFT_VOL_L) & BIT_MASK_VOL_L)
  37745. #define BIT_SET_VOL_L(x, v) (BIT_CLEAR_VOL_L(x) | BIT_VOL_L(v))
  37746. #endif
  37747. #if (HALMAC_8814B_SUPPORT)
  37748. /* 2 REG_ANAPARSW_MAC_0 (Offset 0x1010) */
  37749. #define BIT_SHIFT_VOL_L_3_0 0
  37750. #define BIT_MASK_VOL_L_3_0 0xf
  37751. #define BIT_VOL_L_3_0(x) (((x) & BIT_MASK_VOL_L_3_0) << BIT_SHIFT_VOL_L_3_0)
  37752. #define BITS_VOL_L_3_0 (BIT_MASK_VOL_L_3_0 << BIT_SHIFT_VOL_L_3_0)
  37753. #define BIT_CLEAR_VOL_L_3_0(x) ((x) & (~BITS_VOL_L_3_0))
  37754. #define BIT_GET_VOL_L_3_0(x) (((x) >> BIT_SHIFT_VOL_L_3_0) & BIT_MASK_VOL_L_3_0)
  37755. #define BIT_SET_VOL_L_3_0(x, v) (BIT_CLEAR_VOL_L_3_0(x) | BIT_VOL_L_3_0(v))
  37756. #endif
  37757. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37758. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37759. #define BIT_SHIFT_OCP_L_PFM 29
  37760. #define BIT_MASK_OCP_L_PFM 0x7
  37761. #define BIT_OCP_L_PFM(x) (((x) & BIT_MASK_OCP_L_PFM) << BIT_SHIFT_OCP_L_PFM)
  37762. #define BITS_OCP_L_PFM (BIT_MASK_OCP_L_PFM << BIT_SHIFT_OCP_L_PFM)
  37763. #define BIT_CLEAR_OCP_L_PFM(x) ((x) & (~BITS_OCP_L_PFM))
  37764. #define BIT_GET_OCP_L_PFM(x) (((x) >> BIT_SHIFT_OCP_L_PFM) & BIT_MASK_OCP_L_PFM)
  37765. #define BIT_SET_OCP_L_PFM(x, v) (BIT_CLEAR_OCP_L_PFM(x) | BIT_OCP_L_PFM(v))
  37766. #define BIT_SHIFT_CFC_L_PFM 27
  37767. #define BIT_MASK_CFC_L_PFM 0x3
  37768. #define BIT_CFC_L_PFM(x) (((x) & BIT_MASK_CFC_L_PFM) << BIT_SHIFT_CFC_L_PFM)
  37769. #define BITS_CFC_L_PFM (BIT_MASK_CFC_L_PFM << BIT_SHIFT_CFC_L_PFM)
  37770. #define BIT_CLEAR_CFC_L_PFM(x) ((x) & (~BITS_CFC_L_PFM))
  37771. #define BIT_GET_CFC_L_PFM(x) (((x) >> BIT_SHIFT_CFC_L_PFM) & BIT_MASK_CFC_L_PFM)
  37772. #define BIT_SET_CFC_L_PFM(x, v) (BIT_CLEAR_CFC_L_PFM(x) | BIT_CFC_L_PFM(v))
  37773. #endif
  37774. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37775. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37776. #define BIT_SHIFT_REG_FREQ_L_V1 20
  37777. #define BIT_MASK_REG_FREQ_L_V1 0x7
  37778. #define BIT_REG_FREQ_L_V1(x) \
  37779. (((x) & BIT_MASK_REG_FREQ_L_V1) << BIT_SHIFT_REG_FREQ_L_V1)
  37780. #define BITS_REG_FREQ_L_V1 (BIT_MASK_REG_FREQ_L_V1 << BIT_SHIFT_REG_FREQ_L_V1)
  37781. #define BIT_CLEAR_REG_FREQ_L_V1(x) ((x) & (~BITS_REG_FREQ_L_V1))
  37782. #define BIT_GET_REG_FREQ_L_V1(x) \
  37783. (((x) >> BIT_SHIFT_REG_FREQ_L_V1) & BIT_MASK_REG_FREQ_L_V1)
  37784. #define BIT_SET_REG_FREQ_L_V1(x, v) \
  37785. (BIT_CLEAR_REG_FREQ_L_V1(x) | BIT_REG_FREQ_L_V1(v))
  37786. #define BIT_EN_DUTY BIT(19)
  37787. #endif
  37788. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37789. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37790. #define BIT_SHIFT_REG_MODE_V2 17
  37791. #define BIT_MASK_REG_MODE_V2 0x3
  37792. #define BIT_REG_MODE_V2(x) \
  37793. (((x) & BIT_MASK_REG_MODE_V2) << BIT_SHIFT_REG_MODE_V2)
  37794. #define BITS_REG_MODE_V2 (BIT_MASK_REG_MODE_V2 << BIT_SHIFT_REG_MODE_V2)
  37795. #define BIT_CLEAR_REG_MODE_V2(x) ((x) & (~BITS_REG_MODE_V2))
  37796. #define BIT_GET_REG_MODE_V2(x) \
  37797. (((x) >> BIT_SHIFT_REG_MODE_V2) & BIT_MASK_REG_MODE_V2)
  37798. #define BIT_SET_REG_MODE_V2(x, v) \
  37799. (BIT_CLEAR_REG_MODE_V2(x) | BIT_REG_MODE_V2(v))
  37800. #endif
  37801. #if (HALMAC_8814B_SUPPORT)
  37802. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37803. #define BIT_SHIFT_REG_MOS_HALF 17
  37804. #define BIT_MASK_REG_MOS_HALF 0x3
  37805. #define BIT_REG_MOS_HALF(x) \
  37806. (((x) & BIT_MASK_REG_MOS_HALF) << BIT_SHIFT_REG_MOS_HALF)
  37807. #define BITS_REG_MOS_HALF (BIT_MASK_REG_MOS_HALF << BIT_SHIFT_REG_MOS_HALF)
  37808. #define BIT_CLEAR_REG_MOS_HALF(x) ((x) & (~BITS_REG_MOS_HALF))
  37809. #define BIT_GET_REG_MOS_HALF(x) \
  37810. (((x) >> BIT_SHIFT_REG_MOS_HALF) & BIT_MASK_REG_MOS_HALF)
  37811. #define BIT_SET_REG_MOS_HALF(x, v) \
  37812. (BIT_CLEAR_REG_MOS_HALF(x) | BIT_REG_MOS_HALF(v))
  37813. #endif
  37814. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37815. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37816. #define BIT_EN_SP BIT(16)
  37817. #endif
  37818. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37819. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37820. #define BIT_REG_AUTO_L_V2 BIT(15)
  37821. #endif
  37822. #if (HALMAC_8814B_SUPPORT)
  37823. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37824. #define BIT_REG_AUTO_L_V1 BIT(15)
  37825. #endif
  37826. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37827. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37828. #define BIT_REG_LDOF_L_V2 BIT(14)
  37829. #define BIT_REG_OCPS_L_V2 BIT(13)
  37830. #endif
  37831. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37832. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37833. #define BIT_VO15_V1P05_H BIT(12)
  37834. #define BIT_ARENB_L_V2 BIT(11)
  37835. #endif
  37836. #if (HALMAC_8814B_SUPPORT)
  37837. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37838. #define BIT_ARENB_L_V1 BIT(11)
  37839. #endif
  37840. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37841. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37842. #define BIT_SHIFT_TBOX_L1_V2 9
  37843. #define BIT_MASK_TBOX_L1_V2 0x3
  37844. #define BIT_TBOX_L1_V2(x) (((x) & BIT_MASK_TBOX_L1_V2) << BIT_SHIFT_TBOX_L1_V2)
  37845. #define BITS_TBOX_L1_V2 (BIT_MASK_TBOX_L1_V2 << BIT_SHIFT_TBOX_L1_V2)
  37846. #define BIT_CLEAR_TBOX_L1_V2(x) ((x) & (~BITS_TBOX_L1_V2))
  37847. #define BIT_GET_TBOX_L1_V2(x) \
  37848. (((x) >> BIT_SHIFT_TBOX_L1_V2) & BIT_MASK_TBOX_L1_V2)
  37849. #define BIT_SET_TBOX_L1_V2(x, v) (BIT_CLEAR_TBOX_L1_V2(x) | BIT_TBOX_L1_V2(v))
  37850. #endif
  37851. #if (HALMAC_8814B_SUPPORT)
  37852. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37853. #define BIT_SHIFT_TBOX_L1_1_0 9
  37854. #define BIT_MASK_TBOX_L1_1_0 0x3
  37855. #define BIT_TBOX_L1_1_0(x) \
  37856. (((x) & BIT_MASK_TBOX_L1_1_0) << BIT_SHIFT_TBOX_L1_1_0)
  37857. #define BITS_TBOX_L1_1_0 (BIT_MASK_TBOX_L1_1_0 << BIT_SHIFT_TBOX_L1_1_0)
  37858. #define BIT_CLEAR_TBOX_L1_1_0(x) ((x) & (~BITS_TBOX_L1_1_0))
  37859. #define BIT_GET_TBOX_L1_1_0(x) \
  37860. (((x) >> BIT_SHIFT_TBOX_L1_1_0) & BIT_MASK_TBOX_L1_1_0)
  37861. #define BIT_SET_TBOX_L1_1_0(x, v) \
  37862. (BIT_CLEAR_TBOX_L1_1_0(x) | BIT_TBOX_L1_1_0(v))
  37863. #endif
  37864. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37865. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37866. #define BIT_SHIFT_REG_DELAY_L 7
  37867. #define BIT_MASK_REG_DELAY_L 0x3
  37868. #define BIT_REG_DELAY_L(x) \
  37869. (((x) & BIT_MASK_REG_DELAY_L) << BIT_SHIFT_REG_DELAY_L)
  37870. #define BITS_REG_DELAY_L (BIT_MASK_REG_DELAY_L << BIT_SHIFT_REG_DELAY_L)
  37871. #define BIT_CLEAR_REG_DELAY_L(x) ((x) & (~BITS_REG_DELAY_L))
  37872. #define BIT_GET_REG_DELAY_L(x) \
  37873. (((x) >> BIT_SHIFT_REG_DELAY_L) & BIT_MASK_REG_DELAY_L)
  37874. #define BIT_SET_REG_DELAY_L(x, v) \
  37875. (BIT_CLEAR_REG_DELAY_L(x) | BIT_REG_DELAY_L(v))
  37876. #endif
  37877. #if (HALMAC_8814B_SUPPORT)
  37878. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37879. #define BIT_SHIFT_REG_DELAY_L_1_0 7
  37880. #define BIT_MASK_REG_DELAY_L_1_0 0x3
  37881. #define BIT_REG_DELAY_L_1_0(x) \
  37882. (((x) & BIT_MASK_REG_DELAY_L_1_0) << BIT_SHIFT_REG_DELAY_L_1_0)
  37883. #define BITS_REG_DELAY_L_1_0 \
  37884. (BIT_MASK_REG_DELAY_L_1_0 << BIT_SHIFT_REG_DELAY_L_1_0)
  37885. #define BIT_CLEAR_REG_DELAY_L_1_0(x) ((x) & (~BITS_REG_DELAY_L_1_0))
  37886. #define BIT_GET_REG_DELAY_L_1_0(x) \
  37887. (((x) >> BIT_SHIFT_REG_DELAY_L_1_0) & BIT_MASK_REG_DELAY_L_1_0)
  37888. #define BIT_SET_REG_DELAY_L_1_0(x, v) \
  37889. (BIT_CLEAR_REG_DELAY_L_1_0(x) | BIT_REG_DELAY_L_1_0(v))
  37890. #endif
  37891. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37892. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37893. #define BIT_REG_CLAMP_D_L BIT(6)
  37894. #endif
  37895. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37896. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37897. #define BIT_REG_BYPASS_L_V2 BIT(5)
  37898. #endif
  37899. #if (HALMAC_8814B_SUPPORT)
  37900. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37901. #define BIT_REG_BYPASS_L_V1 BIT(5)
  37902. #endif
  37903. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37904. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37905. #define BIT_REG_AUTOZCD_L BIT(4)
  37906. #endif
  37907. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37908. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37909. #define BIT_POW_ZCD_L_V2 BIT(3)
  37910. #endif
  37911. #if (HALMAC_8814B_SUPPORT)
  37912. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37913. #define BIT_POW_ZCD_L_V1 BIT(3)
  37914. #endif
  37915. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37916. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37917. #define BIT_REG_HALF_L BIT(2)
  37918. #define BIT_SHIFT_OCP_L_V2 0
  37919. #define BIT_MASK_OCP_L_V2 0x3
  37920. #define BIT_OCP_L_V2(x) (((x) & BIT_MASK_OCP_L_V2) << BIT_SHIFT_OCP_L_V2)
  37921. #define BITS_OCP_L_V2 (BIT_MASK_OCP_L_V2 << BIT_SHIFT_OCP_L_V2)
  37922. #define BIT_CLEAR_OCP_L_V2(x) ((x) & (~BITS_OCP_L_V2))
  37923. #define BIT_GET_OCP_L_V2(x) (((x) >> BIT_SHIFT_OCP_L_V2) & BIT_MASK_OCP_L_V2)
  37924. #define BIT_SET_OCP_L_V2(x, v) (BIT_CLEAR_OCP_L_V2(x) | BIT_OCP_L_V2(v))
  37925. #endif
  37926. #if (HALMAC_8814B_SUPPORT)
  37927. /* 2 REG_ANAPARSW_MAC_1 (Offset 0x1014) */
  37928. #define BIT_SHIFT_OCP_L_2_1 0
  37929. #define BIT_MASK_OCP_L_2_1 0x3
  37930. #define BIT_OCP_L_2_1(x) (((x) & BIT_MASK_OCP_L_2_1) << BIT_SHIFT_OCP_L_2_1)
  37931. #define BITS_OCP_L_2_1 (BIT_MASK_OCP_L_2_1 << BIT_SHIFT_OCP_L_2_1)
  37932. #define BIT_CLEAR_OCP_L_2_1(x) ((x) & (~BITS_OCP_L_2_1))
  37933. #define BIT_GET_OCP_L_2_1(x) (((x) >> BIT_SHIFT_OCP_L_2_1) & BIT_MASK_OCP_L_2_1)
  37934. #define BIT_SET_OCP_L_2_1(x, v) (BIT_CLEAR_OCP_L_2_1(x) | BIT_OCP_L_2_1(v))
  37935. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37936. #define BIT_SHIFT_LPF_C2_1_0 30
  37937. #define BIT_MASK_LPF_C2_1_0 0x3
  37938. #define BIT_LPF_C2_1_0(x) (((x) & BIT_MASK_LPF_C2_1_0) << BIT_SHIFT_LPF_C2_1_0)
  37939. #define BITS_LPF_C2_1_0 (BIT_MASK_LPF_C2_1_0 << BIT_SHIFT_LPF_C2_1_0)
  37940. #define BIT_CLEAR_LPF_C2_1_0(x) ((x) & (~BITS_LPF_C2_1_0))
  37941. #define BIT_GET_LPF_C2_1_0(x) \
  37942. (((x) >> BIT_SHIFT_LPF_C2_1_0) & BIT_MASK_LPF_C2_1_0)
  37943. #define BIT_SET_LPF_C2_1_0(x, v) (BIT_CLEAR_LPF_C2_1_0(x) | BIT_LPF_C2_1_0(v))
  37944. #endif
  37945. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37946. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37947. #define BIT_SHIFT_REG_LPF_R3 29
  37948. #define BIT_MASK_REG_LPF_R3 0x7
  37949. #define BIT_REG_LPF_R3(x) (((x) & BIT_MASK_REG_LPF_R3) << BIT_SHIFT_REG_LPF_R3)
  37950. #define BITS_REG_LPF_R3 (BIT_MASK_REG_LPF_R3 << BIT_SHIFT_REG_LPF_R3)
  37951. #define BIT_CLEAR_REG_LPF_R3(x) ((x) & (~BITS_REG_LPF_R3))
  37952. #define BIT_GET_REG_LPF_R3(x) \
  37953. (((x) >> BIT_SHIFT_REG_LPF_R3) & BIT_MASK_REG_LPF_R3)
  37954. #define BIT_SET_REG_LPF_R3(x, v) (BIT_CLEAR_REG_LPF_R3(x) | BIT_REG_LPF_R3(v))
  37955. #endif
  37956. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  37957. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37958. #define BIT_EN_XTAL_AAC_TRIG BIT(28)
  37959. #define BIT_EN_XTAL_AAC BIT(27)
  37960. #define BIT_EN_XTAL_AAC_DIGI BIT(26)
  37961. #endif
  37962. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37963. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37964. #define BIT_SHIFT_REG_LPF_R2 24
  37965. #define BIT_MASK_REG_LPF_R2 0x1f
  37966. #define BIT_REG_LPF_R2(x) (((x) & BIT_MASK_REG_LPF_R2) << BIT_SHIFT_REG_LPF_R2)
  37967. #define BITS_REG_LPF_R2 (BIT_MASK_REG_LPF_R2 << BIT_SHIFT_REG_LPF_R2)
  37968. #define BIT_CLEAR_REG_LPF_R2(x) ((x) & (~BITS_REG_LPF_R2))
  37969. #define BIT_GET_REG_LPF_R2(x) \
  37970. (((x) >> BIT_SHIFT_REG_LPF_R2) & BIT_MASK_REG_LPF_R2)
  37971. #define BIT_SET_REG_LPF_R2(x, v) (BIT_CLEAR_REG_LPF_R2(x) | BIT_REG_LPF_R2(v))
  37972. #endif
  37973. #if (HALMAC_8814B_SUPPORT)
  37974. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37975. #define BIT_SHIFT_LPF_C1_5_0 24
  37976. #define BIT_MASK_LPF_C1_5_0 0x3f
  37977. #define BIT_LPF_C1_5_0(x) (((x) & BIT_MASK_LPF_C1_5_0) << BIT_SHIFT_LPF_C1_5_0)
  37978. #define BITS_LPF_C1_5_0 (BIT_MASK_LPF_C1_5_0 << BIT_SHIFT_LPF_C1_5_0)
  37979. #define BIT_CLEAR_LPF_C1_5_0(x) ((x) & (~BITS_LPF_C1_5_0))
  37980. #define BIT_GET_LPF_C1_5_0(x) \
  37981. (((x) >> BIT_SHIFT_LPF_C1_5_0) & BIT_MASK_LPF_C1_5_0)
  37982. #define BIT_SET_LPF_C1_5_0(x, v) (BIT_CLEAR_LPF_C1_5_0(x) | BIT_LPF_C1_5_0(v))
  37983. #define BIT_LPF_TIEL BIT(23)
  37984. #define BIT_LPF_TIEH BIT(22)
  37985. #endif
  37986. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  37987. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37988. #define BIT_SHIFT_REG_LPF_C3 21
  37989. #define BIT_MASK_REG_LPF_C3 0x7
  37990. #define BIT_REG_LPF_C3(x) (((x) & BIT_MASK_REG_LPF_C3) << BIT_SHIFT_REG_LPF_C3)
  37991. #define BITS_REG_LPF_C3 (BIT_MASK_REG_LPF_C3 << BIT_SHIFT_REG_LPF_C3)
  37992. #define BIT_CLEAR_REG_LPF_C3(x) ((x) & (~BITS_REG_LPF_C3))
  37993. #define BIT_GET_REG_LPF_C3(x) \
  37994. (((x) >> BIT_SHIFT_REG_LPF_C3) & BIT_MASK_REG_LPF_C3)
  37995. #define BIT_SET_REG_LPF_C3(x, v) (BIT_CLEAR_REG_LPF_C3(x) | BIT_REG_LPF_C3(v))
  37996. #endif
  37997. #if (HALMAC_8814B_SUPPORT)
  37998. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  37999. #define BIT_SHIFT_LOCKDET_VREF_L_1_0 20
  38000. #define BIT_MASK_LOCKDET_VREF_L_1_0 0x3
  38001. #define BIT_LOCKDET_VREF_L_1_0(x) \
  38002. (((x) & BIT_MASK_LOCKDET_VREF_L_1_0) << BIT_SHIFT_LOCKDET_VREF_L_1_0)
  38003. #define BITS_LOCKDET_VREF_L_1_0 \
  38004. (BIT_MASK_LOCKDET_VREF_L_1_0 << BIT_SHIFT_LOCKDET_VREF_L_1_0)
  38005. #define BIT_CLEAR_LOCKDET_VREF_L_1_0(x) ((x) & (~BITS_LOCKDET_VREF_L_1_0))
  38006. #define BIT_GET_LOCKDET_VREF_L_1_0(x) \
  38007. (((x) >> BIT_SHIFT_LOCKDET_VREF_L_1_0) & BIT_MASK_LOCKDET_VREF_L_1_0)
  38008. #define BIT_SET_LOCKDET_VREF_L_1_0(x, v) \
  38009. (BIT_CLEAR_LOCKDET_VREF_L_1_0(x) | BIT_LOCKDET_VREF_L_1_0(v))
  38010. #endif
  38011. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38012. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38013. #define BIT_SHIFT_REG_LPF_C2 18
  38014. #define BIT_MASK_REG_LPF_C2 0x7
  38015. #define BIT_REG_LPF_C2(x) (((x) & BIT_MASK_REG_LPF_C2) << BIT_SHIFT_REG_LPF_C2)
  38016. #define BITS_REG_LPF_C2 (BIT_MASK_REG_LPF_C2 << BIT_SHIFT_REG_LPF_C2)
  38017. #define BIT_CLEAR_REG_LPF_C2(x) ((x) & (~BITS_REG_LPF_C2))
  38018. #define BIT_GET_REG_LPF_C2(x) \
  38019. (((x) >> BIT_SHIFT_REG_LPF_C2) & BIT_MASK_REG_LPF_C2)
  38020. #define BIT_SET_REG_LPF_C2(x, v) (BIT_CLEAR_REG_LPF_C2(x) | BIT_REG_LPF_C2(v))
  38021. #endif
  38022. #if (HALMAC_8814B_SUPPORT)
  38023. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38024. #define BIT_SHIFT_LOCKDET_VREF_H_1_0 18
  38025. #define BIT_MASK_LOCKDET_VREF_H_1_0 0x3
  38026. #define BIT_LOCKDET_VREF_H_1_0(x) \
  38027. (((x) & BIT_MASK_LOCKDET_VREF_H_1_0) << BIT_SHIFT_LOCKDET_VREF_H_1_0)
  38028. #define BITS_LOCKDET_VREF_H_1_0 \
  38029. (BIT_MASK_LOCKDET_VREF_H_1_0 << BIT_SHIFT_LOCKDET_VREF_H_1_0)
  38030. #define BIT_CLEAR_LOCKDET_VREF_H_1_0(x) ((x) & (~BITS_LOCKDET_VREF_H_1_0))
  38031. #define BIT_GET_LOCKDET_VREF_H_1_0(x) \
  38032. (((x) >> BIT_SHIFT_LOCKDET_VREF_H_1_0) & BIT_MASK_LOCKDET_VREF_H_1_0)
  38033. #define BIT_SET_LOCKDET_VREF_H_1_0(x, v) \
  38034. (BIT_CLEAR_LOCKDET_VREF_H_1_0(x) | BIT_LOCKDET_VREF_H_1_0(v))
  38035. #define BIT_SHIFT_LDO_SEL_1_0 16
  38036. #define BIT_MASK_LDO_SEL_1_0 0x3
  38037. #define BIT_LDO_SEL_1_0(x) \
  38038. (((x) & BIT_MASK_LDO_SEL_1_0) << BIT_SHIFT_LDO_SEL_1_0)
  38039. #define BITS_LDO_SEL_1_0 (BIT_MASK_LDO_SEL_1_0 << BIT_SHIFT_LDO_SEL_1_0)
  38040. #define BIT_CLEAR_LDO_SEL_1_0(x) ((x) & (~BITS_LDO_SEL_1_0))
  38041. #define BIT_GET_LDO_SEL_1_0(x) \
  38042. (((x) >> BIT_SHIFT_LDO_SEL_1_0) & BIT_MASK_LDO_SEL_1_0)
  38043. #define BIT_SET_LDO_SEL_1_0(x, v) \
  38044. (BIT_CLEAR_LDO_SEL_1_0(x) | BIT_LDO_SEL_1_0(v))
  38045. #endif
  38046. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38047. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38048. #define BIT_SHIFT_REG_LPF_C1 15
  38049. #define BIT_MASK_REG_LPF_C1 0x7
  38050. #define BIT_REG_LPF_C1(x) (((x) & BIT_MASK_REG_LPF_C1) << BIT_SHIFT_REG_LPF_C1)
  38051. #define BITS_REG_LPF_C1 (BIT_MASK_REG_LPF_C1 << BIT_SHIFT_REG_LPF_C1)
  38052. #define BIT_CLEAR_REG_LPF_C1(x) ((x) & (~BITS_REG_LPF_C1))
  38053. #define BIT_GET_REG_LPF_C1(x) \
  38054. (((x) >> BIT_SHIFT_REG_LPF_C1) & BIT_MASK_REG_LPF_C1)
  38055. #define BIT_SET_REG_LPF_C1(x, v) (BIT_CLEAR_REG_LPF_C1(x) | BIT_REG_LPF_C1(v))
  38056. #define BIT_SHIFT_REG_LDO_SEL_V1 13
  38057. #define BIT_MASK_REG_LDO_SEL_V1 0x3
  38058. #define BIT_REG_LDO_SEL_V1(x) \
  38059. (((x) & BIT_MASK_REG_LDO_SEL_V1) << BIT_SHIFT_REG_LDO_SEL_V1)
  38060. #define BITS_REG_LDO_SEL_V1 \
  38061. (BIT_MASK_REG_LDO_SEL_V1 << BIT_SHIFT_REG_LDO_SEL_V1)
  38062. #define BIT_CLEAR_REG_LDO_SEL_V1(x) ((x) & (~BITS_REG_LDO_SEL_V1))
  38063. #define BIT_GET_REG_LDO_SEL_V1(x) \
  38064. (((x) >> BIT_SHIFT_REG_LDO_SEL_V1) & BIT_MASK_REG_LDO_SEL_V1)
  38065. #define BIT_SET_REG_LDO_SEL_V1(x, v) \
  38066. (BIT_CLEAR_REG_LDO_SEL_V1(x) | BIT_REG_LDO_SEL_V1(v))
  38067. #define BIT_REG_CP_ICPX2 BIT(12)
  38068. #endif
  38069. #if (HALMAC_8814B_SUPPORT)
  38070. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38071. #define BIT_SHIFT_IOFFSET_5_0 10
  38072. #define BIT_MASK_IOFFSET_5_0 0x3f
  38073. #define BIT_IOFFSET_5_0(x) \
  38074. (((x) & BIT_MASK_IOFFSET_5_0) << BIT_SHIFT_IOFFSET_5_0)
  38075. #define BITS_IOFFSET_5_0 (BIT_MASK_IOFFSET_5_0 << BIT_SHIFT_IOFFSET_5_0)
  38076. #define BIT_CLEAR_IOFFSET_5_0(x) ((x) & (~BITS_IOFFSET_5_0))
  38077. #define BIT_GET_IOFFSET_5_0(x) \
  38078. (((x) >> BIT_SHIFT_IOFFSET_5_0) & BIT_MASK_IOFFSET_5_0)
  38079. #define BIT_SET_IOFFSET_5_0(x, v) \
  38080. (BIT_CLEAR_IOFFSET_5_0(x) | BIT_IOFFSET_5_0(v))
  38081. #endif
  38082. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38083. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38084. #define BIT_SHIFT_REG_CP_ICP_SEL_FAST 9
  38085. #define BIT_MASK_REG_CP_ICP_SEL_FAST 0x7
  38086. #define BIT_REG_CP_ICP_SEL_FAST(x) \
  38087. (((x) & BIT_MASK_REG_CP_ICP_SEL_FAST) << BIT_SHIFT_REG_CP_ICP_SEL_FAST)
  38088. #define BITS_REG_CP_ICP_SEL_FAST \
  38089. (BIT_MASK_REG_CP_ICP_SEL_FAST << BIT_SHIFT_REG_CP_ICP_SEL_FAST)
  38090. #define BIT_CLEAR_REG_CP_ICP_SEL_FAST(x) ((x) & (~BITS_REG_CP_ICP_SEL_FAST))
  38091. #define BIT_GET_REG_CP_ICP_SEL_FAST(x) \
  38092. (((x) >> BIT_SHIFT_REG_CP_ICP_SEL_FAST) & BIT_MASK_REG_CP_ICP_SEL_FAST)
  38093. #define BIT_SET_REG_CP_ICP_SEL_FAST(x, v) \
  38094. (BIT_CLEAR_REG_CP_ICP_SEL_FAST(x) | BIT_REG_CP_ICP_SEL_FAST(v))
  38095. #endif
  38096. #if (HALMAC_8814B_SUPPORT)
  38097. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38098. #define BIT_CP_ICPX2 BIT(9)
  38099. #endif
  38100. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  38101. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38102. #define BIT_GM_STEP BIT(7)
  38103. #endif
  38104. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38105. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38106. #define BIT_SHIFT_REG_CP_ICP_SEL 6
  38107. #define BIT_MASK_REG_CP_ICP_SEL 0x7
  38108. #define BIT_REG_CP_ICP_SEL(x) \
  38109. (((x) & BIT_MASK_REG_CP_ICP_SEL) << BIT_SHIFT_REG_CP_ICP_SEL)
  38110. #define BITS_REG_CP_ICP_SEL \
  38111. (BIT_MASK_REG_CP_ICP_SEL << BIT_SHIFT_REG_CP_ICP_SEL)
  38112. #define BIT_CLEAR_REG_CP_ICP_SEL(x) ((x) & (~BITS_REG_CP_ICP_SEL))
  38113. #define BIT_GET_REG_CP_ICP_SEL(x) \
  38114. (((x) >> BIT_SHIFT_REG_CP_ICP_SEL) & BIT_MASK_REG_CP_ICP_SEL)
  38115. #define BIT_SET_REG_CP_ICP_SEL(x, v) \
  38116. (BIT_CLEAR_REG_CP_ICP_SEL(x) | BIT_REG_CP_ICP_SEL(v))
  38117. #define BIT_SHIFT_REG_IB_PI 4
  38118. #define BIT_MASK_REG_IB_PI 0x3
  38119. #define BIT_REG_IB_PI(x) (((x) & BIT_MASK_REG_IB_PI) << BIT_SHIFT_REG_IB_PI)
  38120. #define BITS_REG_IB_PI (BIT_MASK_REG_IB_PI << BIT_SHIFT_REG_IB_PI)
  38121. #define BIT_CLEAR_REG_IB_PI(x) ((x) & (~BITS_REG_IB_PI))
  38122. #define BIT_GET_REG_IB_PI(x) (((x) >> BIT_SHIFT_REG_IB_PI) & BIT_MASK_REG_IB_PI)
  38123. #define BIT_SET_REG_IB_PI(x, v) (BIT_CLEAR_REG_IB_PI(x) | BIT_REG_IB_PI(v))
  38124. #endif
  38125. #if (HALMAC_8814B_SUPPORT)
  38126. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38127. #define BIT_SHIFT_CP_ICP_SEL_4_0 4
  38128. #define BIT_MASK_CP_ICP_SEL_4_0 0x1f
  38129. #define BIT_CP_ICP_SEL_4_0(x) \
  38130. (((x) & BIT_MASK_CP_ICP_SEL_4_0) << BIT_SHIFT_CP_ICP_SEL_4_0)
  38131. #define BITS_CP_ICP_SEL_4_0 \
  38132. (BIT_MASK_CP_ICP_SEL_4_0 << BIT_SHIFT_CP_ICP_SEL_4_0)
  38133. #define BIT_CLEAR_CP_ICP_SEL_4_0(x) ((x) & (~BITS_CP_ICP_SEL_4_0))
  38134. #define BIT_GET_CP_ICP_SEL_4_0(x) \
  38135. (((x) >> BIT_SHIFT_CP_ICP_SEL_4_0) & BIT_MASK_CP_ICP_SEL_4_0)
  38136. #define BIT_SET_CP_ICP_SEL_4_0(x, v) \
  38137. (BIT_CLEAR_CP_ICP_SEL_4_0(x) | BIT_CP_ICP_SEL_4_0(v))
  38138. #endif
  38139. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38140. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38141. #define BIT_LDO2PWRCUT BIT(3)
  38142. #define BIT_VPULSE_LDO BIT(2)
  38143. #endif
  38144. #if (HALMAC_8814B_SUPPORT)
  38145. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38146. #define BIT_SHIFT_IB_PI_1_0 2
  38147. #define BIT_MASK_IB_PI_1_0 0x3
  38148. #define BIT_IB_PI_1_0(x) (((x) & BIT_MASK_IB_PI_1_0) << BIT_SHIFT_IB_PI_1_0)
  38149. #define BITS_IB_PI_1_0 (BIT_MASK_IB_PI_1_0 << BIT_SHIFT_IB_PI_1_0)
  38150. #define BIT_CLEAR_IB_PI_1_0(x) ((x) & (~BITS_IB_PI_1_0))
  38151. #define BIT_GET_IB_PI_1_0(x) (((x) >> BIT_SHIFT_IB_PI_1_0) & BIT_MASK_IB_PI_1_0)
  38152. #define BIT_SET_IB_PI_1_0(x, v) (BIT_CLEAR_IB_PI_1_0(x) | BIT_IB_PI_1_0(v))
  38153. #endif
  38154. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  38155. /* 2 REG_ANAPAR_MAC_0 (Offset 0x1018) */
  38156. #define BIT_OFFSET_PLUS BIT(1)
  38157. #define BIT_SHIFT_LDO_VSEL 0
  38158. #define BIT_MASK_LDO_VSEL 0x3
  38159. #define BIT_LDO_VSEL(x) (((x) & BIT_MASK_LDO_VSEL) << BIT_SHIFT_LDO_VSEL)
  38160. #define BITS_LDO_VSEL (BIT_MASK_LDO_VSEL << BIT_SHIFT_LDO_VSEL)
  38161. #define BIT_CLEAR_LDO_VSEL(x) ((x) & (~BITS_LDO_VSEL))
  38162. #define BIT_GET_LDO_VSEL(x) (((x) >> BIT_SHIFT_LDO_VSEL) & BIT_MASK_LDO_VSEL)
  38163. #define BIT_SET_LDO_VSEL(x, v) (BIT_CLEAR_LDO_VSEL(x) | BIT_LDO_VSEL(v))
  38164. #define BIT_RESET_N BIT(0)
  38165. #endif
  38166. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38167. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38168. #define BIT_SHIFT_REG_CK_MON_SEL 29
  38169. #define BIT_MASK_REG_CK_MON_SEL 0x7
  38170. #define BIT_REG_CK_MON_SEL(x) \
  38171. (((x) & BIT_MASK_REG_CK_MON_SEL) << BIT_SHIFT_REG_CK_MON_SEL)
  38172. #define BITS_REG_CK_MON_SEL \
  38173. (BIT_MASK_REG_CK_MON_SEL << BIT_SHIFT_REG_CK_MON_SEL)
  38174. #define BIT_CLEAR_REG_CK_MON_SEL(x) ((x) & (~BITS_REG_CK_MON_SEL))
  38175. #define BIT_GET_REG_CK_MON_SEL(x) \
  38176. (((x) >> BIT_SHIFT_REG_CK_MON_SEL) & BIT_MASK_REG_CK_MON_SEL)
  38177. #define BIT_SET_REG_CK_MON_SEL(x, v) \
  38178. (BIT_CLEAR_REG_CK_MON_SEL(x) | BIT_REG_CK_MON_SEL(v))
  38179. #endif
  38180. #if (HALMAC_8814B_SUPPORT)
  38181. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38182. #define BIT_SHIFT_CKX_USB_IB_SEL 29
  38183. #define BIT_MASK_CKX_USB_IB_SEL 0x7
  38184. #define BIT_CKX_USB_IB_SEL(x) \
  38185. (((x) & BIT_MASK_CKX_USB_IB_SEL) << BIT_SHIFT_CKX_USB_IB_SEL)
  38186. #define BITS_CKX_USB_IB_SEL \
  38187. (BIT_MASK_CKX_USB_IB_SEL << BIT_SHIFT_CKX_USB_IB_SEL)
  38188. #define BIT_CLEAR_CKX_USB_IB_SEL(x) ((x) & (~BITS_CKX_USB_IB_SEL))
  38189. #define BIT_GET_CKX_USB_IB_SEL(x) \
  38190. (((x) >> BIT_SHIFT_CKX_USB_IB_SEL) & BIT_MASK_CKX_USB_IB_SEL)
  38191. #define BIT_SET_CKX_USB_IB_SEL(x, v) \
  38192. (BIT_CLEAR_CKX_USB_IB_SEL(x) | BIT_CKX_USB_IB_SEL(v))
  38193. #endif
  38194. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38195. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38196. #define BIT_REG_CK_MON_EN BIT(28)
  38197. #endif
  38198. #if (HALMAC_8814B_SUPPORT)
  38199. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38200. #define BIT_PFD_DN_GATED BIT(28)
  38201. #endif
  38202. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38203. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38204. #define BIT_REG_XTAL_FREQ_SEL BIT(27)
  38205. #endif
  38206. #if (HALMAC_8814B_SUPPORT)
  38207. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38208. #define BIT_PFD_UP_GATED BIT(27)
  38209. #endif
  38210. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38211. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38212. #define BIT_REG_XTAL_EDGE_SEL BIT(26)
  38213. #endif
  38214. #if (HALMAC_8814B_SUPPORT)
  38215. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38216. #define BIT_PFD_RESET_GATED BIT(26)
  38217. #endif
  38218. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38219. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38220. #define BIT_REG_VCO_KVCO BIT(25)
  38221. #define BIT_REG_SDM_EDGE_SEL BIT(24)
  38222. #endif
  38223. #if (HALMAC_8814B_SUPPORT)
  38224. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38225. #define BIT_SHIFT_PFD_OUT_DRV_1_0 24
  38226. #define BIT_MASK_PFD_OUT_DRV_1_0 0x3
  38227. #define BIT_PFD_OUT_DRV_1_0(x) \
  38228. (((x) & BIT_MASK_PFD_OUT_DRV_1_0) << BIT_SHIFT_PFD_OUT_DRV_1_0)
  38229. #define BITS_PFD_OUT_DRV_1_0 \
  38230. (BIT_MASK_PFD_OUT_DRV_1_0 << BIT_SHIFT_PFD_OUT_DRV_1_0)
  38231. #define BIT_CLEAR_PFD_OUT_DRV_1_0(x) ((x) & (~BITS_PFD_OUT_DRV_1_0))
  38232. #define BIT_GET_PFD_OUT_DRV_1_0(x) \
  38233. (((x) >> BIT_SHIFT_PFD_OUT_DRV_1_0) & BIT_MASK_PFD_OUT_DRV_1_0)
  38234. #define BIT_SET_PFD_OUT_DRV_1_0(x, v) \
  38235. (BIT_CLEAR_PFD_OUT_DRV_1_0(x) | BIT_PFD_OUT_DRV_1_0(v))
  38236. #endif
  38237. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38238. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38239. #define BIT_REG_SDM_CK_SEL BIT(23)
  38240. #define BIT_REG_SDM_CK_GATED BIT(22)
  38241. #define BIT_REG_PFD_RESET_GATED BIT(21)
  38242. #endif
  38243. #if (HALMAC_8814B_SUPPORT)
  38244. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38245. #define BIT_SHIFT_LPF_TIEMID_2_0 20
  38246. #define BIT_MASK_LPF_TIEMID_2_0 0x7
  38247. #define BIT_LPF_TIEMID_2_0(x) \
  38248. (((x) & BIT_MASK_LPF_TIEMID_2_0) << BIT_SHIFT_LPF_TIEMID_2_0)
  38249. #define BITS_LPF_TIEMID_2_0 \
  38250. (BIT_MASK_LPF_TIEMID_2_0 << BIT_SHIFT_LPF_TIEMID_2_0)
  38251. #define BIT_CLEAR_LPF_TIEMID_2_0(x) ((x) & (~BITS_LPF_TIEMID_2_0))
  38252. #define BIT_GET_LPF_TIEMID_2_0(x) \
  38253. (((x) >> BIT_SHIFT_LPF_TIEMID_2_0) & BIT_MASK_LPF_TIEMID_2_0)
  38254. #define BIT_SET_LPF_TIEMID_2_0(x, v) \
  38255. (BIT_CLEAR_LPF_TIEMID_2_0(x) | BIT_LPF_TIEMID_2_0(v))
  38256. #endif
  38257. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38258. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38259. #define BIT_SHIFT_REG_LPF_R3_FAST 16
  38260. #define BIT_MASK_REG_LPF_R3_FAST 0x1f
  38261. #define BIT_REG_LPF_R3_FAST(x) \
  38262. (((x) & BIT_MASK_REG_LPF_R3_FAST) << BIT_SHIFT_REG_LPF_R3_FAST)
  38263. #define BITS_REG_LPF_R3_FAST \
  38264. (BIT_MASK_REG_LPF_R3_FAST << BIT_SHIFT_REG_LPF_R3_FAST)
  38265. #define BIT_CLEAR_REG_LPF_R3_FAST(x) ((x) & (~BITS_REG_LPF_R3_FAST))
  38266. #define BIT_GET_REG_LPF_R3_FAST(x) \
  38267. (((x) >> BIT_SHIFT_REG_LPF_R3_FAST) & BIT_MASK_REG_LPF_R3_FAST)
  38268. #define BIT_SET_REG_LPF_R3_FAST(x, v) \
  38269. (BIT_CLEAR_REG_LPF_R3_FAST(x) | BIT_REG_LPF_R3_FAST(v))
  38270. #endif
  38271. #if (HALMAC_8814B_SUPPORT)
  38272. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38273. #define BIT_SHIFT_LPF_R3_4_0 15
  38274. #define BIT_MASK_LPF_R3_4_0 0x1f
  38275. #define BIT_LPF_R3_4_0(x) (((x) & BIT_MASK_LPF_R3_4_0) << BIT_SHIFT_LPF_R3_4_0)
  38276. #define BITS_LPF_R3_4_0 (BIT_MASK_LPF_R3_4_0 << BIT_SHIFT_LPF_R3_4_0)
  38277. #define BIT_CLEAR_LPF_R3_4_0(x) ((x) & (~BITS_LPF_R3_4_0))
  38278. #define BIT_GET_LPF_R3_4_0(x) \
  38279. (((x) >> BIT_SHIFT_LPF_R3_4_0) & BIT_MASK_LPF_R3_4_0)
  38280. #define BIT_SET_LPF_R3_4_0(x, v) (BIT_CLEAR_LPF_R3_4_0(x) | BIT_LPF_R3_4_0(v))
  38281. #endif
  38282. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38283. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38284. #define BIT_SHIFT_REG_LPF_R2_FAST 11
  38285. #define BIT_MASK_REG_LPF_R2_FAST 0x1f
  38286. #define BIT_REG_LPF_R2_FAST(x) \
  38287. (((x) & BIT_MASK_REG_LPF_R2_FAST) << BIT_SHIFT_REG_LPF_R2_FAST)
  38288. #define BITS_REG_LPF_R2_FAST \
  38289. (BIT_MASK_REG_LPF_R2_FAST << BIT_SHIFT_REG_LPF_R2_FAST)
  38290. #define BIT_CLEAR_REG_LPF_R2_FAST(x) ((x) & (~BITS_REG_LPF_R2_FAST))
  38291. #define BIT_GET_REG_LPF_R2_FAST(x) \
  38292. (((x) >> BIT_SHIFT_REG_LPF_R2_FAST) & BIT_MASK_REG_LPF_R2_FAST)
  38293. #define BIT_SET_REG_LPF_R2_FAST(x, v) \
  38294. (BIT_CLEAR_REG_LPF_R2_FAST(x) | BIT_REG_LPF_R2_FAST(v))
  38295. #endif
  38296. #if (HALMAC_8814B_SUPPORT)
  38297. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38298. #define BIT_SHIFT_LPF_R2_4_0 10
  38299. #define BIT_MASK_LPF_R2_4_0 0x1f
  38300. #define BIT_LPF_R2_4_0(x) (((x) & BIT_MASK_LPF_R2_4_0) << BIT_SHIFT_LPF_R2_4_0)
  38301. #define BITS_LPF_R2_4_0 (BIT_MASK_LPF_R2_4_0 << BIT_SHIFT_LPF_R2_4_0)
  38302. #define BIT_CLEAR_LPF_R2_4_0(x) ((x) & (~BITS_LPF_R2_4_0))
  38303. #define BIT_GET_LPF_R2_4_0(x) \
  38304. (((x) >> BIT_SHIFT_LPF_R2_4_0) & BIT_MASK_LPF_R2_4_0)
  38305. #define BIT_SET_LPF_R2_4_0(x, v) (BIT_CLEAR_LPF_R2_4_0(x) | BIT_LPF_R2_4_0(v))
  38306. #endif
  38307. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38308. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38309. #define BIT_SHIFT_REG_LPF_C3_FAST 8
  38310. #define BIT_MASK_REG_LPF_C3_FAST 0x7
  38311. #define BIT_REG_LPF_C3_FAST(x) \
  38312. (((x) & BIT_MASK_REG_LPF_C3_FAST) << BIT_SHIFT_REG_LPF_C3_FAST)
  38313. #define BITS_REG_LPF_C3_FAST \
  38314. (BIT_MASK_REG_LPF_C3_FAST << BIT_SHIFT_REG_LPF_C3_FAST)
  38315. #define BIT_CLEAR_REG_LPF_C3_FAST(x) ((x) & (~BITS_REG_LPF_C3_FAST))
  38316. #define BIT_GET_REG_LPF_C3_FAST(x) \
  38317. (((x) >> BIT_SHIFT_REG_LPF_C3_FAST) & BIT_MASK_REG_LPF_C3_FAST)
  38318. #define BIT_SET_REG_LPF_C3_FAST(x, v) \
  38319. (BIT_CLEAR_REG_LPF_C3_FAST(x) | BIT_REG_LPF_C3_FAST(v))
  38320. #define BIT_SHIFT_REG_LPF_C2_FAST 5
  38321. #define BIT_MASK_REG_LPF_C2_FAST 0x7
  38322. #define BIT_REG_LPF_C2_FAST(x) \
  38323. (((x) & BIT_MASK_REG_LPF_C2_FAST) << BIT_SHIFT_REG_LPF_C2_FAST)
  38324. #define BITS_REG_LPF_C2_FAST \
  38325. (BIT_MASK_REG_LPF_C2_FAST << BIT_SHIFT_REG_LPF_C2_FAST)
  38326. #define BIT_CLEAR_REG_LPF_C2_FAST(x) ((x) & (~BITS_REG_LPF_C2_FAST))
  38327. #define BIT_GET_REG_LPF_C2_FAST(x) \
  38328. (((x) >> BIT_SHIFT_REG_LPF_C2_FAST) & BIT_MASK_REG_LPF_C2_FAST)
  38329. #define BIT_SET_REG_LPF_C2_FAST(x, v) \
  38330. (BIT_CLEAR_REG_LPF_C2_FAST(x) | BIT_REG_LPF_C2_FAST(v))
  38331. #endif
  38332. #if (HALMAC_8814B_SUPPORT)
  38333. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38334. #define BIT_SHIFT_LPF_C3_5_0 4
  38335. #define BIT_MASK_LPF_C3_5_0 0x3f
  38336. #define BIT_LPF_C3_5_0(x) (((x) & BIT_MASK_LPF_C3_5_0) << BIT_SHIFT_LPF_C3_5_0)
  38337. #define BITS_LPF_C3_5_0 (BIT_MASK_LPF_C3_5_0 << BIT_SHIFT_LPF_C3_5_0)
  38338. #define BIT_CLEAR_LPF_C3_5_0(x) ((x) & (~BITS_LPF_C3_5_0))
  38339. #define BIT_GET_LPF_C3_5_0(x) \
  38340. (((x) >> BIT_SHIFT_LPF_C3_5_0) & BIT_MASK_LPF_C3_5_0)
  38341. #define BIT_SET_LPF_C3_5_0(x, v) (BIT_CLEAR_LPF_C3_5_0(x) | BIT_LPF_C3_5_0(v))
  38342. #endif
  38343. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38344. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38345. #define BIT_SHIFT_REG_LPF_C1_FAST 2
  38346. #define BIT_MASK_REG_LPF_C1_FAST 0x7
  38347. #define BIT_REG_LPF_C1_FAST(x) \
  38348. (((x) & BIT_MASK_REG_LPF_C1_FAST) << BIT_SHIFT_REG_LPF_C1_FAST)
  38349. #define BITS_REG_LPF_C1_FAST \
  38350. (BIT_MASK_REG_LPF_C1_FAST << BIT_SHIFT_REG_LPF_C1_FAST)
  38351. #define BIT_CLEAR_REG_LPF_C1_FAST(x) ((x) & (~BITS_REG_LPF_C1_FAST))
  38352. #define BIT_GET_REG_LPF_C1_FAST(x) \
  38353. (((x) >> BIT_SHIFT_REG_LPF_C1_FAST) & BIT_MASK_REG_LPF_C1_FAST)
  38354. #define BIT_SET_REG_LPF_C1_FAST(x, v) \
  38355. (BIT_CLEAR_REG_LPF_C1_FAST(x) | BIT_REG_LPF_C1_FAST(v))
  38356. #define BIT_SHIFT_REG_LPF_R3_V1 0
  38357. #define BIT_MASK_REG_LPF_R3_V1 0x3
  38358. #define BIT_REG_LPF_R3_V1(x) \
  38359. (((x) & BIT_MASK_REG_LPF_R3_V1) << BIT_SHIFT_REG_LPF_R3_V1)
  38360. #define BITS_REG_LPF_R3_V1 (BIT_MASK_REG_LPF_R3_V1 << BIT_SHIFT_REG_LPF_R3_V1)
  38361. #define BIT_CLEAR_REG_LPF_R3_V1(x) ((x) & (~BITS_REG_LPF_R3_V1))
  38362. #define BIT_GET_REG_LPF_R3_V1(x) \
  38363. (((x) >> BIT_SHIFT_REG_LPF_R3_V1) & BIT_MASK_REG_LPF_R3_V1)
  38364. #define BIT_SET_REG_LPF_R3_V1(x, v) \
  38365. (BIT_CLEAR_REG_LPF_R3_V1(x) | BIT_REG_LPF_R3_V1(v))
  38366. #endif
  38367. #if (HALMAC_8814B_SUPPORT)
  38368. /* 2 REG_ANAPAR_MAC_1 (Offset 0x101C) */
  38369. #define BIT_SHIFT_LPF_C2_5_2 0
  38370. #define BIT_MASK_LPF_C2_5_2 0xf
  38371. #define BIT_LPF_C2_5_2(x) (((x) & BIT_MASK_LPF_C2_5_2) << BIT_SHIFT_LPF_C2_5_2)
  38372. #define BITS_LPF_C2_5_2 (BIT_MASK_LPF_C2_5_2 << BIT_SHIFT_LPF_C2_5_2)
  38373. #define BIT_CLEAR_LPF_C2_5_2(x) ((x) & (~BITS_LPF_C2_5_2))
  38374. #define BIT_GET_LPF_C2_5_2(x) \
  38375. (((x) >> BIT_SHIFT_LPF_C2_5_2) & BIT_MASK_LPF_C2_5_2)
  38376. #define BIT_SET_LPF_C2_5_2(x, v) (BIT_CLEAR_LPF_C2_5_2(x) | BIT_LPF_C2_5_2(v))
  38377. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38378. #define BIT_CK_PHASE_SEL BIT(31)
  38379. #endif
  38380. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38381. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38382. #define BIT_SHIFT_AGPIO_DRV_V1 30
  38383. #define BIT_MASK_AGPIO_DRV_V1 0x3
  38384. #define BIT_AGPIO_DRV_V1(x) \
  38385. (((x) & BIT_MASK_AGPIO_DRV_V1) << BIT_SHIFT_AGPIO_DRV_V1)
  38386. #define BITS_AGPIO_DRV_V1 (BIT_MASK_AGPIO_DRV_V1 << BIT_SHIFT_AGPIO_DRV_V1)
  38387. #define BIT_CLEAR_AGPIO_DRV_V1(x) ((x) & (~BITS_AGPIO_DRV_V1))
  38388. #define BIT_GET_AGPIO_DRV_V1(x) \
  38389. (((x) >> BIT_SHIFT_AGPIO_DRV_V1) & BIT_MASK_AGPIO_DRV_V1)
  38390. #define BIT_SET_AGPIO_DRV_V1(x, v) \
  38391. (BIT_CLEAR_AGPIO_DRV_V1(x) | BIT_AGPIO_DRV_V1(v))
  38392. #endif
  38393. #if (HALMAC_8814B_SUPPORT)
  38394. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38395. #define BIT_CK960M_EN BIT(30)
  38396. #endif
  38397. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38398. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38399. #define BIT_AGPIO_GPO_V1 BIT(29)
  38400. #endif
  38401. #if (HALMAC_8814B_SUPPORT)
  38402. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38403. #define BIT_CK640M_EN BIT(29)
  38404. #endif
  38405. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38406. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38407. #define BIT_AGPIO_GPE_V1 BIT(28)
  38408. #endif
  38409. #if (HALMAC_8814B_SUPPORT)
  38410. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38411. #define BIT_CK240M_EN BIT(28)
  38412. #endif
  38413. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38414. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38415. #define BIT_SEL_CLK BIT(27)
  38416. #endif
  38417. #if (HALMAC_8814B_SUPPORT)
  38418. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38419. #define BIT_SHIFT_CK_MON_SEL_2_0 25
  38420. #define BIT_MASK_CK_MON_SEL_2_0 0x7
  38421. #define BIT_CK_MON_SEL_2_0(x) \
  38422. (((x) & BIT_MASK_CK_MON_SEL_2_0) << BIT_SHIFT_CK_MON_SEL_2_0)
  38423. #define BITS_CK_MON_SEL_2_0 \
  38424. (BIT_MASK_CK_MON_SEL_2_0 << BIT_SHIFT_CK_MON_SEL_2_0)
  38425. #define BIT_CLEAR_CK_MON_SEL_2_0(x) ((x) & (~BITS_CK_MON_SEL_2_0))
  38426. #define BIT_GET_CK_MON_SEL_2_0(x) \
  38427. (((x) >> BIT_SHIFT_CK_MON_SEL_2_0) & BIT_MASK_CK_MON_SEL_2_0)
  38428. #define BIT_SET_CK_MON_SEL_2_0(x, v) \
  38429. (BIT_CLEAR_CK_MON_SEL_2_0(x) | BIT_CK_MON_SEL_2_0(v))
  38430. #define BIT_CK_MON_EN_V1 BIT(24)
  38431. #endif
  38432. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38433. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38434. #define BIT_SHIFT_LS_XTAL_SEL 23
  38435. #define BIT_MASK_LS_XTAL_SEL 0xf
  38436. #define BIT_LS_XTAL_SEL(x) \
  38437. (((x) & BIT_MASK_LS_XTAL_SEL) << BIT_SHIFT_LS_XTAL_SEL)
  38438. #define BITS_LS_XTAL_SEL (BIT_MASK_LS_XTAL_SEL << BIT_SHIFT_LS_XTAL_SEL)
  38439. #define BIT_CLEAR_LS_XTAL_SEL(x) ((x) & (~BITS_LS_XTAL_SEL))
  38440. #define BIT_GET_LS_XTAL_SEL(x) \
  38441. (((x) >> BIT_SHIFT_LS_XTAL_SEL) & BIT_MASK_LS_XTAL_SEL)
  38442. #define BIT_SET_LS_XTAL_SEL(x, v) \
  38443. (BIT_CLEAR_LS_XTAL_SEL(x) | BIT_LS_XTAL_SEL(v))
  38444. #endif
  38445. #if (HALMAC_8814B_SUPPORT)
  38446. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38447. #define BIT_XTAL_SOURCE_SEL BIT(23)
  38448. #endif
  38449. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38450. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38451. #define BIT_LS_SDM_ORDER_V1 BIT(22)
  38452. #endif
  38453. #if (HALMAC_8814B_SUPPORT)
  38454. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38455. #define BIT_XTAL_FREQ_SEL BIT(22)
  38456. #endif
  38457. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38458. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38459. #define BIT_LS_DELAY_PH BIT(21)
  38460. #endif
  38461. #if (HALMAC_8814B_SUPPORT)
  38462. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38463. #define BIT_XTAL_EDGE_SEL BIT(21)
  38464. #endif
  38465. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38466. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38467. #define BIT_DIVIDER_SEL BIT(20)
  38468. #endif
  38469. #if (HALMAC_8814B_SUPPORT)
  38470. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38471. #define BIT_XTAL_BUF_SEL BIT(20)
  38472. #endif
  38473. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38474. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38475. #define BIT_SHIFT_PCODE 15
  38476. #define BIT_MASK_PCODE 0x1f
  38477. #define BIT_PCODE(x) (((x) & BIT_MASK_PCODE) << BIT_SHIFT_PCODE)
  38478. #define BITS_PCODE (BIT_MASK_PCODE << BIT_SHIFT_PCODE)
  38479. #define BIT_CLEAR_PCODE(x) ((x) & (~BITS_PCODE))
  38480. #define BIT_GET_PCODE(x) (((x) >> BIT_SHIFT_PCODE) & BIT_MASK_PCODE)
  38481. #define BIT_SET_PCODE(x, v) (BIT_CLEAR_PCODE(x) | BIT_PCODE(v))
  38482. #define BIT_SHIFT_NCODE 7
  38483. #define BIT_MASK_NCODE 0xff
  38484. #define BIT_NCODE(x) (((x) & BIT_MASK_NCODE) << BIT_SHIFT_NCODE)
  38485. #define BITS_NCODE (BIT_MASK_NCODE << BIT_SHIFT_NCODE)
  38486. #define BIT_CLEAR_NCODE(x) ((x) & (~BITS_NCODE))
  38487. #define BIT_GET_NCODE(x) (((x) >> BIT_SHIFT_NCODE) & BIT_MASK_NCODE)
  38488. #define BIT_SET_NCODE(x, v) (BIT_CLEAR_NCODE(x) | BIT_NCODE(v))
  38489. #define BIT_REG_BEACON BIT(6)
  38490. #define BIT_REG_MBIASE BIT(5)
  38491. #endif
  38492. #if (HALMAC_8814B_SUPPORT)
  38493. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38494. #define BIT_SHIFT_VCO_CV_7_0 4
  38495. #define BIT_MASK_VCO_CV_7_0 0xff
  38496. #define BIT_VCO_CV_7_0(x) (((x) & BIT_MASK_VCO_CV_7_0) << BIT_SHIFT_VCO_CV_7_0)
  38497. #define BITS_VCO_CV_7_0 (BIT_MASK_VCO_CV_7_0 << BIT_SHIFT_VCO_CV_7_0)
  38498. #define BIT_CLEAR_VCO_CV_7_0(x) ((x) & (~BITS_VCO_CV_7_0))
  38499. #define BIT_GET_VCO_CV_7_0(x) \
  38500. (((x) >> BIT_SHIFT_VCO_CV_7_0) & BIT_MASK_VCO_CV_7_0)
  38501. #define BIT_SET_VCO_CV_7_0(x, v) (BIT_CLEAR_VCO_CV_7_0(x) | BIT_VCO_CV_7_0(v))
  38502. #endif
  38503. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38504. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38505. #define BIT_SHIFT_REG_FAST_SEL 3
  38506. #define BIT_MASK_REG_FAST_SEL 0x3
  38507. #define BIT_REG_FAST_SEL(x) \
  38508. (((x) & BIT_MASK_REG_FAST_SEL) << BIT_SHIFT_REG_FAST_SEL)
  38509. #define BITS_REG_FAST_SEL (BIT_MASK_REG_FAST_SEL << BIT_SHIFT_REG_FAST_SEL)
  38510. #define BIT_CLEAR_REG_FAST_SEL(x) ((x) & (~BITS_REG_FAST_SEL))
  38511. #define BIT_GET_REG_FAST_SEL(x) \
  38512. (((x) >> BIT_SHIFT_REG_FAST_SEL) & BIT_MASK_REG_FAST_SEL)
  38513. #define BIT_SET_REG_FAST_SEL(x, v) \
  38514. (BIT_CLEAR_REG_FAST_SEL(x) | BIT_REG_FAST_SEL(v))
  38515. #endif
  38516. #if (HALMAC_8814B_SUPPORT)
  38517. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38518. #define BIT_VCO_KVCO BIT(3)
  38519. #endif
  38520. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38521. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38522. #define BIT_REG_CK960M_EN BIT(2)
  38523. #endif
  38524. #if (HALMAC_8814B_SUPPORT)
  38525. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38526. #define BIT_SDM_EDGE_SEL BIT(2)
  38527. #endif
  38528. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38529. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38530. #define BIT_REG_CK320M_EN BIT(1)
  38531. #endif
  38532. #if (HALMAC_8814B_SUPPORT)
  38533. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38534. #define BIT_SDM_CK_SEL BIT(1)
  38535. #endif
  38536. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38537. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38538. #define BIT_REG_CK_5M_EN BIT(0)
  38539. #endif
  38540. #if (HALMAC_8814B_SUPPORT)
  38541. /* 2 REG_ANAPAR_MAC_2 (Offset 0x1020) */
  38542. #define BIT_SDM_CK_GATED BIT(0)
  38543. /* 2 REG_ANAPAR_MAC_3 (Offset 0x1024) */
  38544. #define BIT_SHIFT_LCK_WAIT_CYCLE_2_0 28
  38545. #define BIT_MASK_LCK_WAIT_CYCLE_2_0 0x7
  38546. #define BIT_LCK_WAIT_CYCLE_2_0(x) \
  38547. (((x) & BIT_MASK_LCK_WAIT_CYCLE_2_0) << BIT_SHIFT_LCK_WAIT_CYCLE_2_0)
  38548. #define BITS_LCK_WAIT_CYCLE_2_0 \
  38549. (BIT_MASK_LCK_WAIT_CYCLE_2_0 << BIT_SHIFT_LCK_WAIT_CYCLE_2_0)
  38550. #define BIT_CLEAR_LCK_WAIT_CYCLE_2_0(x) ((x) & (~BITS_LCK_WAIT_CYCLE_2_0))
  38551. #define BIT_GET_LCK_WAIT_CYCLE_2_0(x) \
  38552. (((x) >> BIT_SHIFT_LCK_WAIT_CYCLE_2_0) & BIT_MASK_LCK_WAIT_CYCLE_2_0)
  38553. #define BIT_SET_LCK_WAIT_CYCLE_2_0(x, v) \
  38554. (BIT_CLEAR_LCK_WAIT_CYCLE_2_0(x) | BIT_LCK_WAIT_CYCLE_2_0(v))
  38555. #define BIT_SHIFT_LCK_VCO_DIVISOR_1_0 26
  38556. #define BIT_MASK_LCK_VCO_DIVISOR_1_0 0x3
  38557. #define BIT_LCK_VCO_DIVISOR_1_0(x) \
  38558. (((x) & BIT_MASK_LCK_VCO_DIVISOR_1_0) << BIT_SHIFT_LCK_VCO_DIVISOR_1_0)
  38559. #define BITS_LCK_VCO_DIVISOR_1_0 \
  38560. (BIT_MASK_LCK_VCO_DIVISOR_1_0 << BIT_SHIFT_LCK_VCO_DIVISOR_1_0)
  38561. #define BIT_CLEAR_LCK_VCO_DIVISOR_1_0(x) ((x) & (~BITS_LCK_VCO_DIVISOR_1_0))
  38562. #define BIT_GET_LCK_VCO_DIVISOR_1_0(x) \
  38563. (((x) >> BIT_SHIFT_LCK_VCO_DIVISOR_1_0) & BIT_MASK_LCK_VCO_DIVISOR_1_0)
  38564. #define BIT_SET_LCK_VCO_DIVISOR_1_0(x, v) \
  38565. (BIT_CLEAR_LCK_VCO_DIVISOR_1_0(x) | BIT_LCK_VCO_DIVISOR_1_0(v))
  38566. #define BIT_SHIFT_LCK_SEARCH_MODE_1_0 24
  38567. #define BIT_MASK_LCK_SEARCH_MODE_1_0 0x3
  38568. #define BIT_LCK_SEARCH_MODE_1_0(x) \
  38569. (((x) & BIT_MASK_LCK_SEARCH_MODE_1_0) << BIT_SHIFT_LCK_SEARCH_MODE_1_0)
  38570. #define BITS_LCK_SEARCH_MODE_1_0 \
  38571. (BIT_MASK_LCK_SEARCH_MODE_1_0 << BIT_SHIFT_LCK_SEARCH_MODE_1_0)
  38572. #define BIT_CLEAR_LCK_SEARCH_MODE_1_0(x) ((x) & (~BITS_LCK_SEARCH_MODE_1_0))
  38573. #define BIT_GET_LCK_SEARCH_MODE_1_0(x) \
  38574. (((x) >> BIT_SHIFT_LCK_SEARCH_MODE_1_0) & BIT_MASK_LCK_SEARCH_MODE_1_0)
  38575. #define BIT_SET_LCK_SEARCH_MODE_1_0(x, v) \
  38576. (BIT_CLEAR_LCK_SEARCH_MODE_1_0(x) | BIT_LCK_SEARCH_MODE_1_0(v))
  38577. #define BIT_SHIFT_LS_CV_OFFSET_3_0 12
  38578. #define BIT_MASK_LS_CV_OFFSET_3_0 0xf
  38579. #define BIT_LS_CV_OFFSET_3_0(x) \
  38580. (((x) & BIT_MASK_LS_CV_OFFSET_3_0) << BIT_SHIFT_LS_CV_OFFSET_3_0)
  38581. #define BITS_LS_CV_OFFSET_3_0 \
  38582. (BIT_MASK_LS_CV_OFFSET_3_0 << BIT_SHIFT_LS_CV_OFFSET_3_0)
  38583. #define BIT_CLEAR_LS_CV_OFFSET_3_0(x) ((x) & (~BITS_LS_CV_OFFSET_3_0))
  38584. #define BIT_GET_LS_CV_OFFSET_3_0(x) \
  38585. (((x) >> BIT_SHIFT_LS_CV_OFFSET_3_0) & BIT_MASK_LS_CV_OFFSET_3_0)
  38586. #define BIT_SET_LS_CV_OFFSET_3_0(x, v) \
  38587. (BIT_CLEAR_LS_CV_OFFSET_3_0(x) | BIT_LS_CV_OFFSET_3_0(v))
  38588. #define BIT_LS_EN_LC_CK40M BIT(11)
  38589. #define BIT_LS__CV_MANUAL BIT(10)
  38590. #define BIT_LS_PYPASS_PI BIT(9)
  38591. #define BIT_MBIASE BIT(4)
  38592. /* 2 REG_ANAPAR_MAC_4 (Offset 0x1028) */
  38593. #define BIT_LS_TIE_MID_MODE BIT(28)
  38594. #define BIT_SHIFT_LS_SYNC_CYCLE_1_0 26
  38595. #define BIT_MASK_LS_SYNC_CYCLE_1_0 0x3
  38596. #define BIT_LS_SYNC_CYCLE_1_0(x) \
  38597. (((x) & BIT_MASK_LS_SYNC_CYCLE_1_0) << BIT_SHIFT_LS_SYNC_CYCLE_1_0)
  38598. #define BITS_LS_SYNC_CYCLE_1_0 \
  38599. (BIT_MASK_LS_SYNC_CYCLE_1_0 << BIT_SHIFT_LS_SYNC_CYCLE_1_0)
  38600. #define BIT_CLEAR_LS_SYNC_CYCLE_1_0(x) ((x) & (~BITS_LS_SYNC_CYCLE_1_0))
  38601. #define BIT_GET_LS_SYNC_CYCLE_1_0(x) \
  38602. (((x) >> BIT_SHIFT_LS_SYNC_CYCLE_1_0) & BIT_MASK_LS_SYNC_CYCLE_1_0)
  38603. #define BIT_SET_LS_SYNC_CYCLE_1_0(x, v) \
  38604. (BIT_CLEAR_LS_SYNC_CYCLE_1_0(x) | BIT_LS_SYNC_CYCLE_1_0(v))
  38605. #define BIT_LS_SDM_ORDER BIT(25)
  38606. #define BIT_LS_RST_LC_CAL BIT(14)
  38607. #define BIT_LS_RSTB BIT(13)
  38608. #define BIT_LS_POW_LC_CAL_PREP BIT(11)
  38609. #define BIT_SHIFT_LCK_XTAL_DIVISOR_1_0 0
  38610. #define BIT_MASK_LCK_XTAL_DIVISOR_1_0 0x3
  38611. #define BIT_LCK_XTAL_DIVISOR_1_0(x) \
  38612. (((x) & BIT_MASK_LCK_XTAL_DIVISOR_1_0) \
  38613. << BIT_SHIFT_LCK_XTAL_DIVISOR_1_0)
  38614. #define BITS_LCK_XTAL_DIVISOR_1_0 \
  38615. (BIT_MASK_LCK_XTAL_DIVISOR_1_0 << BIT_SHIFT_LCK_XTAL_DIVISOR_1_0)
  38616. #define BIT_CLEAR_LCK_XTAL_DIVISOR_1_0(x) ((x) & (~BITS_LCK_XTAL_DIVISOR_1_0))
  38617. #define BIT_GET_LCK_XTAL_DIVISOR_1_0(x) \
  38618. (((x) >> BIT_SHIFT_LCK_XTAL_DIVISOR_1_0) & \
  38619. BIT_MASK_LCK_XTAL_DIVISOR_1_0)
  38620. #define BIT_SET_LCK_XTAL_DIVISOR_1_0(x, v) \
  38621. (BIT_CLEAR_LCK_XTAL_DIVISOR_1_0(x) | BIT_LCK_XTAL_DIVISOR_1_0(v))
  38622. /* 2 REG_ANAPAR_MAC_5 (Offset 0x102C) */
  38623. #define BIT_SHIFT_LS_XTAL_SEL_3_0 0
  38624. #define BIT_MASK_LS_XTAL_SEL_3_0 0xf
  38625. #define BIT_LS_XTAL_SEL_3_0(x) \
  38626. (((x) & BIT_MASK_LS_XTAL_SEL_3_0) << BIT_SHIFT_LS_XTAL_SEL_3_0)
  38627. #define BITS_LS_XTAL_SEL_3_0 \
  38628. (BIT_MASK_LS_XTAL_SEL_3_0 << BIT_SHIFT_LS_XTAL_SEL_3_0)
  38629. #define BIT_CLEAR_LS_XTAL_SEL_3_0(x) ((x) & (~BITS_LS_XTAL_SEL_3_0))
  38630. #define BIT_GET_LS_XTAL_SEL_3_0(x) \
  38631. (((x) >> BIT_SHIFT_LS_XTAL_SEL_3_0) & BIT_MASK_LS_XTAL_SEL_3_0)
  38632. #define BIT_SET_LS_XTAL_SEL_3_0(x, v) \
  38633. (BIT_CLEAR_LS_XTAL_SEL_3_0(x) | BIT_LS_XTAL_SEL_3_0(v))
  38634. #endif
  38635. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  38636. /* 2 REG_SYS_CFG4 (Offset 0x1034) */
  38637. #define BIT_EF_CSER_1 BIT(26)
  38638. #define BIT_SW_PG_EN_1 BIT(10)
  38639. #endif
  38640. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38641. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38642. #define BIT_XTAL_SC_LPS BIT(31)
  38643. #endif
  38644. #if (HALMAC_8814B_SUPPORT)
  38645. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38646. #define BIT_XTAL_DRV_RF1_0 BIT(31)
  38647. #define BIT_XTAL_GATED_RF1N BIT(30)
  38648. #define BIT_XTAL_GATED_RF1P BIT(29)
  38649. #define BIT_XTAL_GM_SEP_V2 BIT(28)
  38650. #define BIT_SHIFT_XTAL_LDO_1_0 26
  38651. #define BIT_MASK_XTAL_LDO_1_0 0x3
  38652. #define BIT_XTAL_LDO_1_0(x) \
  38653. (((x) & BIT_MASK_XTAL_LDO_1_0) << BIT_SHIFT_XTAL_LDO_1_0)
  38654. #define BITS_XTAL_LDO_1_0 (BIT_MASK_XTAL_LDO_1_0 << BIT_SHIFT_XTAL_LDO_1_0)
  38655. #define BIT_CLEAR_XTAL_LDO_1_0(x) ((x) & (~BITS_XTAL_LDO_1_0))
  38656. #define BIT_GET_XTAL_LDO_1_0(x) \
  38657. (((x) >> BIT_SHIFT_XTAL_LDO_1_0) & BIT_MASK_XTAL_LDO_1_0)
  38658. #define BIT_SET_XTAL_LDO_1_0(x, v) \
  38659. (BIT_CLEAR_XTAL_LDO_1_0(x) | BIT_XTAL_LDO_1_0(v))
  38660. #define BIT_XQSEL_V1 BIT(25)
  38661. #endif
  38662. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38663. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38664. #define BIT_SHIFT_XTAL_SC_INIT 24
  38665. #define BIT_MASK_XTAL_SC_INIT 0x7f
  38666. #define BIT_XTAL_SC_INIT(x) \
  38667. (((x) & BIT_MASK_XTAL_SC_INIT) << BIT_SHIFT_XTAL_SC_INIT)
  38668. #define BITS_XTAL_SC_INIT (BIT_MASK_XTAL_SC_INIT << BIT_SHIFT_XTAL_SC_INIT)
  38669. #define BIT_CLEAR_XTAL_SC_INIT(x) ((x) & (~BITS_XTAL_SC_INIT))
  38670. #define BIT_GET_XTAL_SC_INIT(x) \
  38671. (((x) >> BIT_SHIFT_XTAL_SC_INIT) & BIT_MASK_XTAL_SC_INIT)
  38672. #define BIT_SET_XTAL_SC_INIT(x, v) \
  38673. (BIT_CLEAR_XTAL_SC_INIT(x) | BIT_XTAL_SC_INIT(v))
  38674. #endif
  38675. #if (HALMAC_8814B_SUPPORT)
  38676. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38677. #define BIT_GATED_XTAL_OK0 BIT(24)
  38678. #endif
  38679. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38680. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38681. #define BIT_SHIFT_XTAL_SC_XO 17
  38682. #define BIT_MASK_XTAL_SC_XO 0x7f
  38683. #define BIT_XTAL_SC_XO(x) (((x) & BIT_MASK_XTAL_SC_XO) << BIT_SHIFT_XTAL_SC_XO)
  38684. #define BITS_XTAL_SC_XO (BIT_MASK_XTAL_SC_XO << BIT_SHIFT_XTAL_SC_XO)
  38685. #define BIT_CLEAR_XTAL_SC_XO(x) ((x) & (~BITS_XTAL_SC_XO))
  38686. #define BIT_GET_XTAL_SC_XO(x) \
  38687. (((x) >> BIT_SHIFT_XTAL_SC_XO) & BIT_MASK_XTAL_SC_XO)
  38688. #define BIT_SET_XTAL_SC_XO(x, v) (BIT_CLEAR_XTAL_SC_XO(x) | BIT_XTAL_SC_XO(v))
  38689. #endif
  38690. #if (HALMAC_8814B_SUPPORT)
  38691. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38692. #define BIT_SHIFT_XTAL_SC_XO_6_0 17
  38693. #define BIT_MASK_XTAL_SC_XO_6_0 0x7f
  38694. #define BIT_XTAL_SC_XO_6_0(x) \
  38695. (((x) & BIT_MASK_XTAL_SC_XO_6_0) << BIT_SHIFT_XTAL_SC_XO_6_0)
  38696. #define BITS_XTAL_SC_XO_6_0 \
  38697. (BIT_MASK_XTAL_SC_XO_6_0 << BIT_SHIFT_XTAL_SC_XO_6_0)
  38698. #define BIT_CLEAR_XTAL_SC_XO_6_0(x) ((x) & (~BITS_XTAL_SC_XO_6_0))
  38699. #define BIT_GET_XTAL_SC_XO_6_0(x) \
  38700. (((x) >> BIT_SHIFT_XTAL_SC_XO_6_0) & BIT_MASK_XTAL_SC_XO_6_0)
  38701. #define BIT_SET_XTAL_SC_XO_6_0(x, v) \
  38702. (BIT_CLEAR_XTAL_SC_XO_6_0(x) | BIT_XTAL_SC_XO_6_0(v))
  38703. #endif
  38704. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38705. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38706. #define BIT_SHIFT_XTAL_SC_XI 10
  38707. #define BIT_MASK_XTAL_SC_XI 0x7f
  38708. #define BIT_XTAL_SC_XI(x) (((x) & BIT_MASK_XTAL_SC_XI) << BIT_SHIFT_XTAL_SC_XI)
  38709. #define BITS_XTAL_SC_XI (BIT_MASK_XTAL_SC_XI << BIT_SHIFT_XTAL_SC_XI)
  38710. #define BIT_CLEAR_XTAL_SC_XI(x) ((x) & (~BITS_XTAL_SC_XI))
  38711. #define BIT_GET_XTAL_SC_XI(x) \
  38712. (((x) >> BIT_SHIFT_XTAL_SC_XI) & BIT_MASK_XTAL_SC_XI)
  38713. #define BIT_SET_XTAL_SC_XI(x, v) (BIT_CLEAR_XTAL_SC_XI(x) | BIT_XTAL_SC_XI(v))
  38714. #endif
  38715. #if (HALMAC_8814B_SUPPORT)
  38716. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38717. #define BIT_SHIFT_XTAL_SC_XI_6_0 10
  38718. #define BIT_MASK_XTAL_SC_XI_6_0 0x7f
  38719. #define BIT_XTAL_SC_XI_6_0(x) \
  38720. (((x) & BIT_MASK_XTAL_SC_XI_6_0) << BIT_SHIFT_XTAL_SC_XI_6_0)
  38721. #define BITS_XTAL_SC_XI_6_0 \
  38722. (BIT_MASK_XTAL_SC_XI_6_0 << BIT_SHIFT_XTAL_SC_XI_6_0)
  38723. #define BIT_CLEAR_XTAL_SC_XI_6_0(x) ((x) & (~BITS_XTAL_SC_XI_6_0))
  38724. #define BIT_GET_XTAL_SC_XI_6_0(x) \
  38725. (((x) >> BIT_SHIFT_XTAL_SC_XI_6_0) & BIT_MASK_XTAL_SC_XI_6_0)
  38726. #define BIT_SET_XTAL_SC_XI_6_0(x, v) \
  38727. (BIT_CLEAR_XTAL_SC_XI_6_0(x) | BIT_XTAL_SC_XI_6_0(v))
  38728. #endif
  38729. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38730. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38731. #define BIT_SHIFT_XTAL_GMN_V3 5
  38732. #define BIT_MASK_XTAL_GMN_V3 0x1f
  38733. #define BIT_XTAL_GMN_V3(x) \
  38734. (((x) & BIT_MASK_XTAL_GMN_V3) << BIT_SHIFT_XTAL_GMN_V3)
  38735. #define BITS_XTAL_GMN_V3 (BIT_MASK_XTAL_GMN_V3 << BIT_SHIFT_XTAL_GMN_V3)
  38736. #define BIT_CLEAR_XTAL_GMN_V3(x) ((x) & (~BITS_XTAL_GMN_V3))
  38737. #define BIT_GET_XTAL_GMN_V3(x) \
  38738. (((x) >> BIT_SHIFT_XTAL_GMN_V3) & BIT_MASK_XTAL_GMN_V3)
  38739. #define BIT_SET_XTAL_GMN_V3(x, v) \
  38740. (BIT_CLEAR_XTAL_GMN_V3(x) | BIT_XTAL_GMN_V3(v))
  38741. #endif
  38742. #if (HALMAC_8814B_SUPPORT)
  38743. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38744. #define BIT_SHIFT_XTAL_GMN_4_0 5
  38745. #define BIT_MASK_XTAL_GMN_4_0 0x1f
  38746. #define BIT_XTAL_GMN_4_0(x) \
  38747. (((x) & BIT_MASK_XTAL_GMN_4_0) << BIT_SHIFT_XTAL_GMN_4_0)
  38748. #define BITS_XTAL_GMN_4_0 (BIT_MASK_XTAL_GMN_4_0 << BIT_SHIFT_XTAL_GMN_4_0)
  38749. #define BIT_CLEAR_XTAL_GMN_4_0(x) ((x) & (~BITS_XTAL_GMN_4_0))
  38750. #define BIT_GET_XTAL_GMN_4_0(x) \
  38751. (((x) >> BIT_SHIFT_XTAL_GMN_4_0) & BIT_MASK_XTAL_GMN_4_0)
  38752. #define BIT_SET_XTAL_GMN_4_0(x, v) \
  38753. (BIT_CLEAR_XTAL_GMN_4_0(x) | BIT_XTAL_GMN_4_0(v))
  38754. #endif
  38755. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38756. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38757. #define BIT_SHIFT_XTAL_GMP_V3 0
  38758. #define BIT_MASK_XTAL_GMP_V3 0x1f
  38759. #define BIT_XTAL_GMP_V3(x) \
  38760. (((x) & BIT_MASK_XTAL_GMP_V3) << BIT_SHIFT_XTAL_GMP_V3)
  38761. #define BITS_XTAL_GMP_V3 (BIT_MASK_XTAL_GMP_V3 << BIT_SHIFT_XTAL_GMP_V3)
  38762. #define BIT_CLEAR_XTAL_GMP_V3(x) ((x) & (~BITS_XTAL_GMP_V3))
  38763. #define BIT_GET_XTAL_GMP_V3(x) \
  38764. (((x) >> BIT_SHIFT_XTAL_GMP_V3) & BIT_MASK_XTAL_GMP_V3)
  38765. #define BIT_SET_XTAL_GMP_V3(x, v) \
  38766. (BIT_CLEAR_XTAL_GMP_V3(x) | BIT_XTAL_GMP_V3(v))
  38767. #endif
  38768. #if (HALMAC_8814B_SUPPORT)
  38769. /* 2 REG_ANAPAR_XTAL_0 (Offset 0x1040) */
  38770. #define BIT_SHIFT_XTAL_GMP_4_0 0
  38771. #define BIT_MASK_XTAL_GMP_4_0 0x1f
  38772. #define BIT_XTAL_GMP_4_0(x) \
  38773. (((x) & BIT_MASK_XTAL_GMP_4_0) << BIT_SHIFT_XTAL_GMP_4_0)
  38774. #define BITS_XTAL_GMP_4_0 (BIT_MASK_XTAL_GMP_4_0 << BIT_SHIFT_XTAL_GMP_4_0)
  38775. #define BIT_CLEAR_XTAL_GMP_4_0(x) ((x) & (~BITS_XTAL_GMP_4_0))
  38776. #define BIT_GET_XTAL_GMP_4_0(x) \
  38777. (((x) >> BIT_SHIFT_XTAL_GMP_4_0) & BIT_MASK_XTAL_GMP_4_0)
  38778. #define BIT_SET_XTAL_GMP_4_0(x, v) \
  38779. (BIT_CLEAR_XTAL_GMP_4_0(x) | BIT_XTAL_GMP_4_0(v))
  38780. #endif
  38781. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38782. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38783. #define BIT_XTAL_SEL_TOK_V1 BIT(31)
  38784. #define BIT_XTAL_DELAY_DIGI_V2 BIT(30)
  38785. #endif
  38786. #if (HALMAC_8814B_SUPPORT)
  38787. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38788. #define BIT_SHIFT_XTAL_LDO_OK_1_0 30
  38789. #define BIT_MASK_XTAL_LDO_OK_1_0 0x3
  38790. #define BIT_XTAL_LDO_OK_1_0(x) \
  38791. (((x) & BIT_MASK_XTAL_LDO_OK_1_0) << BIT_SHIFT_XTAL_LDO_OK_1_0)
  38792. #define BITS_XTAL_LDO_OK_1_0 \
  38793. (BIT_MASK_XTAL_LDO_OK_1_0 << BIT_SHIFT_XTAL_LDO_OK_1_0)
  38794. #define BIT_CLEAR_XTAL_LDO_OK_1_0(x) ((x) & (~BITS_XTAL_LDO_OK_1_0))
  38795. #define BIT_GET_XTAL_LDO_OK_1_0(x) \
  38796. (((x) >> BIT_SHIFT_XTAL_LDO_OK_1_0) & BIT_MASK_XTAL_LDO_OK_1_0)
  38797. #define BIT_SET_XTAL_LDO_OK_1_0(x, v) \
  38798. (BIT_CLEAR_XTAL_LDO_OK_1_0(x) | BIT_XTAL_LDO_OK_1_0(v))
  38799. #endif
  38800. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38801. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38802. #define BIT_XTAL_DELAY_USB_V2 BIT(29)
  38803. #define BIT_XTAL_DELAY_AFE_V2 BIT(28)
  38804. #endif
  38805. #if (HALMAC_8814B_SUPPORT)
  38806. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38807. #define BIT_SHIFT_XTAL_XORES_SEL_2_0 27
  38808. #define BIT_MASK_XTAL_XORES_SEL_2_0 0x7
  38809. #define BIT_XTAL_XORES_SEL_2_0(x) \
  38810. (((x) & BIT_MASK_XTAL_XORES_SEL_2_0) << BIT_SHIFT_XTAL_XORES_SEL_2_0)
  38811. #define BITS_XTAL_XORES_SEL_2_0 \
  38812. (BIT_MASK_XTAL_XORES_SEL_2_0 << BIT_SHIFT_XTAL_XORES_SEL_2_0)
  38813. #define BIT_CLEAR_XTAL_XORES_SEL_2_0(x) ((x) & (~BITS_XTAL_XORES_SEL_2_0))
  38814. #define BIT_GET_XTAL_XORES_SEL_2_0(x) \
  38815. (((x) >> BIT_SHIFT_XTAL_XORES_SEL_2_0) & BIT_MASK_XTAL_XORES_SEL_2_0)
  38816. #define BIT_SET_XTAL_XORES_SEL_2_0(x, v) \
  38817. (BIT_CLEAR_XTAL_XORES_SEL_2_0(x) | BIT_XTAL_XORES_SEL_2_0(v))
  38818. #endif
  38819. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38820. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38821. #define BIT_SHIFT_XTAL_DRV_DIGI_V2 26
  38822. #define BIT_MASK_XTAL_DRV_DIGI_V2 0x3
  38823. #define BIT_XTAL_DRV_DIGI_V2(x) \
  38824. (((x) & BIT_MASK_XTAL_DRV_DIGI_V2) << BIT_SHIFT_XTAL_DRV_DIGI_V2)
  38825. #define BITS_XTAL_DRV_DIGI_V2 \
  38826. (BIT_MASK_XTAL_DRV_DIGI_V2 << BIT_SHIFT_XTAL_DRV_DIGI_V2)
  38827. #define BIT_CLEAR_XTAL_DRV_DIGI_V2(x) ((x) & (~BITS_XTAL_DRV_DIGI_V2))
  38828. #define BIT_GET_XTAL_DRV_DIGI_V2(x) \
  38829. (((x) >> BIT_SHIFT_XTAL_DRV_DIGI_V2) & BIT_MASK_XTAL_DRV_DIGI_V2)
  38830. #define BIT_SET_XTAL_DRV_DIGI_V2(x, v) \
  38831. (BIT_CLEAR_XTAL_DRV_DIGI_V2(x) | BIT_XTAL_DRV_DIGI_V2(v))
  38832. #define BIT_EN_XTAL_DRV_LPS BIT(25)
  38833. #endif
  38834. #if (HALMAC_8814B_SUPPORT)
  38835. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38836. #define BIT_SHIFT_XTAL_AAC_PK_SEL_1_0 25
  38837. #define BIT_MASK_XTAL_AAC_PK_SEL_1_0 0x3
  38838. #define BIT_XTAL_AAC_PK_SEL_1_0(x) \
  38839. (((x) & BIT_MASK_XTAL_AAC_PK_SEL_1_0) << BIT_SHIFT_XTAL_AAC_PK_SEL_1_0)
  38840. #define BITS_XTAL_AAC_PK_SEL_1_0 \
  38841. (BIT_MASK_XTAL_AAC_PK_SEL_1_0 << BIT_SHIFT_XTAL_AAC_PK_SEL_1_0)
  38842. #define BIT_CLEAR_XTAL_AAC_PK_SEL_1_0(x) ((x) & (~BITS_XTAL_AAC_PK_SEL_1_0))
  38843. #define BIT_GET_XTAL_AAC_PK_SEL_1_0(x) \
  38844. (((x) >> BIT_SHIFT_XTAL_AAC_PK_SEL_1_0) & BIT_MASK_XTAL_AAC_PK_SEL_1_0)
  38845. #define BIT_SET_XTAL_AAC_PK_SEL_1_0(x, v) \
  38846. (BIT_CLEAR_XTAL_AAC_PK_SEL_1_0(x) | BIT_XTAL_AAC_PK_SEL_1_0(v))
  38847. #endif
  38848. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38849. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38850. #define BIT_EN_XTAL_DRV_DIGI_V2 BIT(24)
  38851. #endif
  38852. #if (HALMAC_8814B_SUPPORT)
  38853. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38854. #define BIT_EN_XTAL_AAC_PKDET BIT(24)
  38855. #define BIT_EN_XTAL_AAC_GM BIT(23)
  38856. #endif
  38857. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38858. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38859. #define BIT_SHIFT_XTAL_DRV_USB 22
  38860. #define BIT_MASK_XTAL_DRV_USB 0x3
  38861. #define BIT_XTAL_DRV_USB(x) \
  38862. (((x) & BIT_MASK_XTAL_DRV_USB) << BIT_SHIFT_XTAL_DRV_USB)
  38863. #define BITS_XTAL_DRV_USB (BIT_MASK_XTAL_DRV_USB << BIT_SHIFT_XTAL_DRV_USB)
  38864. #define BIT_CLEAR_XTAL_DRV_USB(x) ((x) & (~BITS_XTAL_DRV_USB))
  38865. #define BIT_GET_XTAL_DRV_USB(x) \
  38866. (((x) >> BIT_SHIFT_XTAL_DRV_USB) & BIT_MASK_XTAL_DRV_USB)
  38867. #define BIT_SET_XTAL_DRV_USB(x, v) \
  38868. (BIT_CLEAR_XTAL_DRV_USB(x) | BIT_XTAL_DRV_USB(v))
  38869. #endif
  38870. #if (HALMAC_8814B_SUPPORT)
  38871. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38872. #define BIT_XTAL_LPMODE BIT(22)
  38873. #endif
  38874. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38875. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38876. #define BIT_EN_XTAL_DRV_USB BIT(21)
  38877. #define BIT_SHIFT_XTAL_DRV_AFE_V2 19
  38878. #define BIT_MASK_XTAL_DRV_AFE_V2 0x3
  38879. #define BIT_XTAL_DRV_AFE_V2(x) \
  38880. (((x) & BIT_MASK_XTAL_DRV_AFE_V2) << BIT_SHIFT_XTAL_DRV_AFE_V2)
  38881. #define BITS_XTAL_DRV_AFE_V2 \
  38882. (BIT_MASK_XTAL_DRV_AFE_V2 << BIT_SHIFT_XTAL_DRV_AFE_V2)
  38883. #define BIT_CLEAR_XTAL_DRV_AFE_V2(x) ((x) & (~BITS_XTAL_DRV_AFE_V2))
  38884. #define BIT_GET_XTAL_DRV_AFE_V2(x) \
  38885. (((x) >> BIT_SHIFT_XTAL_DRV_AFE_V2) & BIT_MASK_XTAL_DRV_AFE_V2)
  38886. #define BIT_SET_XTAL_DRV_AFE_V2(x, v) \
  38887. (BIT_CLEAR_XTAL_DRV_AFE_V2(x) | BIT_XTAL_DRV_AFE_V2(v))
  38888. #endif
  38889. #if (HALMAC_8814B_SUPPORT)
  38890. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38891. #define BIT_SHIFT_XTAL_SEL_TOK_2_0 19
  38892. #define BIT_MASK_XTAL_SEL_TOK_2_0 0x7
  38893. #define BIT_XTAL_SEL_TOK_2_0(x) \
  38894. (((x) & BIT_MASK_XTAL_SEL_TOK_2_0) << BIT_SHIFT_XTAL_SEL_TOK_2_0)
  38895. #define BITS_XTAL_SEL_TOK_2_0 \
  38896. (BIT_MASK_XTAL_SEL_TOK_2_0 << BIT_SHIFT_XTAL_SEL_TOK_2_0)
  38897. #define BIT_CLEAR_XTAL_SEL_TOK_2_0(x) ((x) & (~BITS_XTAL_SEL_TOK_2_0))
  38898. #define BIT_GET_XTAL_SEL_TOK_2_0(x) \
  38899. (((x) >> BIT_SHIFT_XTAL_SEL_TOK_2_0) & BIT_MASK_XTAL_SEL_TOK_2_0)
  38900. #define BIT_SET_XTAL_SEL_TOK_2_0(x, v) \
  38901. (BIT_CLEAR_XTAL_SEL_TOK_2_0(x) | BIT_XTAL_SEL_TOK_2_0(v))
  38902. #endif
  38903. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38904. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38905. #define BIT_EN_XTAL_DRV_AFE BIT(18)
  38906. #endif
  38907. #if (HALMAC_8814B_SUPPORT)
  38908. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38909. #define BIT_XQSEL_RF_AWAKE_V2 BIT(18)
  38910. #define BIT_XQSEL_RF_INITIAL_V2 BIT(17)
  38911. #endif
  38912. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38913. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38914. #define BIT_SHIFT_XTAL_DRV_RF2_V2 16
  38915. #define BIT_MASK_XTAL_DRV_RF2_V2 0x3
  38916. #define BIT_XTAL_DRV_RF2_V2(x) \
  38917. (((x) & BIT_MASK_XTAL_DRV_RF2_V2) << BIT_SHIFT_XTAL_DRV_RF2_V2)
  38918. #define BITS_XTAL_DRV_RF2_V2 \
  38919. (BIT_MASK_XTAL_DRV_RF2_V2 << BIT_SHIFT_XTAL_DRV_RF2_V2)
  38920. #define BIT_CLEAR_XTAL_DRV_RF2_V2(x) ((x) & (~BITS_XTAL_DRV_RF2_V2))
  38921. #define BIT_GET_XTAL_DRV_RF2_V2(x) \
  38922. (((x) >> BIT_SHIFT_XTAL_DRV_RF2_V2) & BIT_MASK_XTAL_DRV_RF2_V2)
  38923. #define BIT_SET_XTAL_DRV_RF2_V2(x, v) \
  38924. (BIT_CLEAR_XTAL_DRV_RF2_V2(x) | BIT_XTAL_DRV_RF2_V2(v))
  38925. #endif
  38926. #if (HALMAC_8814B_SUPPORT)
  38927. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38928. #define BIT_XTAL_DELAY_USB_V1 BIT(16)
  38929. #endif
  38930. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38931. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38932. #define BIT_EN_XTAL_DRV_RF2 BIT(15)
  38933. #endif
  38934. #if (HALMAC_8814B_SUPPORT)
  38935. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38936. #define BIT_XTAL_DELAY_DIGI_V1 BIT(15)
  38937. #define BIT_XTAL_DELAY_AFE_V1 BIT(14)
  38938. #define BIT_XTAL_DRV_RF_LATCH_V3 BIT(13)
  38939. #endif
  38940. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38941. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38942. #define BIT_EN_XTAL_DRV_RF1 BIT(12)
  38943. #define BIT_XTAL_DRV_RF_LATCH_V4 BIT(11)
  38944. #endif
  38945. #if (HALMAC_8814B_SUPPORT)
  38946. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38947. #define BIT_SHIFT_XTAL_DRV_DIGI_1_0 11
  38948. #define BIT_MASK_XTAL_DRV_DIGI_1_0 0x3
  38949. #define BIT_XTAL_DRV_DIGI_1_0(x) \
  38950. (((x) & BIT_MASK_XTAL_DRV_DIGI_1_0) << BIT_SHIFT_XTAL_DRV_DIGI_1_0)
  38951. #define BITS_XTAL_DRV_DIGI_1_0 \
  38952. (BIT_MASK_XTAL_DRV_DIGI_1_0 << BIT_SHIFT_XTAL_DRV_DIGI_1_0)
  38953. #define BIT_CLEAR_XTAL_DRV_DIGI_1_0(x) ((x) & (~BITS_XTAL_DRV_DIGI_1_0))
  38954. #define BIT_GET_XTAL_DRV_DIGI_1_0(x) \
  38955. (((x) >> BIT_SHIFT_XTAL_DRV_DIGI_1_0) & BIT_MASK_XTAL_DRV_DIGI_1_0)
  38956. #define BIT_SET_XTAL_DRV_DIGI_1_0(x, v) \
  38957. (BIT_CLEAR_XTAL_DRV_DIGI_1_0(x) | BIT_XTAL_DRV_DIGI_1_0(v))
  38958. #endif
  38959. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38960. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38961. #define BIT_XTAL_GM_SEP_V3 BIT(10)
  38962. #endif
  38963. #if (HALMAC_8814B_SUPPORT)
  38964. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38965. #define BIT_XTAL_GATED_DIGIN BIT(10)
  38966. #endif
  38967. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38968. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38969. #define BIT_XQSEL_RF_AWAKE_V3 BIT(9)
  38970. #endif
  38971. #if (HALMAC_8814B_SUPPORT)
  38972. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38973. #define BIT_XTAL_GATED_DIGIP BIT(9)
  38974. #endif
  38975. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38976. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38977. #define BIT_XQSEL_RF_INITIAL_V3 BIT(8)
  38978. #define BIT_XQSEL_V2 BIT(7)
  38979. #endif
  38980. #if (HALMAC_8814B_SUPPORT)
  38981. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38982. #define BIT_SHIFT_XTAL_DRV_USB_1_0 7
  38983. #define BIT_MASK_XTAL_DRV_USB_1_0 0x3
  38984. #define BIT_XTAL_DRV_USB_1_0(x) \
  38985. (((x) & BIT_MASK_XTAL_DRV_USB_1_0) << BIT_SHIFT_XTAL_DRV_USB_1_0)
  38986. #define BITS_XTAL_DRV_USB_1_0 \
  38987. (BIT_MASK_XTAL_DRV_USB_1_0 << BIT_SHIFT_XTAL_DRV_USB_1_0)
  38988. #define BIT_CLEAR_XTAL_DRV_USB_1_0(x) ((x) & (~BITS_XTAL_DRV_USB_1_0))
  38989. #define BIT_GET_XTAL_DRV_USB_1_0(x) \
  38990. (((x) >> BIT_SHIFT_XTAL_DRV_USB_1_0) & BIT_MASK_XTAL_DRV_USB_1_0)
  38991. #define BIT_SET_XTAL_DRV_USB_1_0(x, v) \
  38992. (BIT_CLEAR_XTAL_DRV_USB_1_0(x) | BIT_XTAL_DRV_USB_1_0(v))
  38993. #endif
  38994. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  38995. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  38996. #define BIT_GATED_XTAL_OK0_V2 BIT(6)
  38997. #endif
  38998. #if (HALMAC_8814B_SUPPORT)
  38999. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  39000. #define BIT_XTAL_GATED_USBN BIT(6)
  39001. #define BIT_XTAL_GATED_USBP BIT(5)
  39002. #define BIT_SHIFT_XTAL_DRV_AFE_1_0 3
  39003. #define BIT_MASK_XTAL_DRV_AFE_1_0 0x3
  39004. #define BIT_XTAL_DRV_AFE_1_0(x) \
  39005. (((x) & BIT_MASK_XTAL_DRV_AFE_1_0) << BIT_SHIFT_XTAL_DRV_AFE_1_0)
  39006. #define BITS_XTAL_DRV_AFE_1_0 \
  39007. (BIT_MASK_XTAL_DRV_AFE_1_0 << BIT_SHIFT_XTAL_DRV_AFE_1_0)
  39008. #define BIT_CLEAR_XTAL_DRV_AFE_1_0(x) ((x) & (~BITS_XTAL_DRV_AFE_1_0))
  39009. #define BIT_GET_XTAL_DRV_AFE_1_0(x) \
  39010. (((x) >> BIT_SHIFT_XTAL_DRV_AFE_1_0) & BIT_MASK_XTAL_DRV_AFE_1_0)
  39011. #define BIT_SET_XTAL_DRV_AFE_1_0(x, v) \
  39012. (BIT_CLEAR_XTAL_DRV_AFE_1_0(x) | BIT_XTAL_DRV_AFE_1_0(v))
  39013. #define BIT_XTAL_GATED_AFEN BIT(2)
  39014. #define BIT_XTAL_GATED_AFEP BIT(1)
  39015. #endif
  39016. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39017. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  39018. #define BIT_SHIFT_XTAL_SC_LPS_V2 0
  39019. #define BIT_MASK_XTAL_SC_LPS_V2 0x3f
  39020. #define BIT_XTAL_SC_LPS_V2(x) \
  39021. (((x) & BIT_MASK_XTAL_SC_LPS_V2) << BIT_SHIFT_XTAL_SC_LPS_V2)
  39022. #define BITS_XTAL_SC_LPS_V2 \
  39023. (BIT_MASK_XTAL_SC_LPS_V2 << BIT_SHIFT_XTAL_SC_LPS_V2)
  39024. #define BIT_CLEAR_XTAL_SC_LPS_V2(x) ((x) & (~BITS_XTAL_SC_LPS_V2))
  39025. #define BIT_GET_XTAL_SC_LPS_V2(x) \
  39026. (((x) >> BIT_SHIFT_XTAL_SC_LPS_V2) & BIT_MASK_XTAL_SC_LPS_V2)
  39027. #define BIT_SET_XTAL_SC_LPS_V2(x, v) \
  39028. (BIT_CLEAR_XTAL_SC_LPS_V2(x) | BIT_XTAL_SC_LPS_V2(v))
  39029. #endif
  39030. #if (HALMAC_8814B_SUPPORT)
  39031. /* 2 REG_ANAPAR_XTAL_1 (Offset 0x1044) */
  39032. #define BIT_XTAL_DRV_RF1_1 BIT(0)
  39033. #endif
  39034. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39035. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39036. #define BIT_XTAL_AAC_CAP BIT(31)
  39037. #define BIT_SHIFT_XTAL_PDSW 29
  39038. #define BIT_MASK_XTAL_PDSW 0x3
  39039. #define BIT_XTAL_PDSW(x) (((x) & BIT_MASK_XTAL_PDSW) << BIT_SHIFT_XTAL_PDSW)
  39040. #define BITS_XTAL_PDSW (BIT_MASK_XTAL_PDSW << BIT_SHIFT_XTAL_PDSW)
  39041. #define BIT_CLEAR_XTAL_PDSW(x) ((x) & (~BITS_XTAL_PDSW))
  39042. #define BIT_GET_XTAL_PDSW(x) (((x) >> BIT_SHIFT_XTAL_PDSW) & BIT_MASK_XTAL_PDSW)
  39043. #define BIT_SET_XTAL_PDSW(x, v) (BIT_CLEAR_XTAL_PDSW(x) | BIT_XTAL_PDSW(v))
  39044. #define BIT_SHIFT_XTAL_LPS_BUF_VB 27
  39045. #define BIT_MASK_XTAL_LPS_BUF_VB 0x3
  39046. #define BIT_XTAL_LPS_BUF_VB(x) \
  39047. (((x) & BIT_MASK_XTAL_LPS_BUF_VB) << BIT_SHIFT_XTAL_LPS_BUF_VB)
  39048. #define BITS_XTAL_LPS_BUF_VB \
  39049. (BIT_MASK_XTAL_LPS_BUF_VB << BIT_SHIFT_XTAL_LPS_BUF_VB)
  39050. #define BIT_CLEAR_XTAL_LPS_BUF_VB(x) ((x) & (~BITS_XTAL_LPS_BUF_VB))
  39051. #define BIT_GET_XTAL_LPS_BUF_VB(x) \
  39052. (((x) >> BIT_SHIFT_XTAL_LPS_BUF_VB) & BIT_MASK_XTAL_LPS_BUF_VB)
  39053. #define BIT_SET_XTAL_LPS_BUF_VB(x, v) \
  39054. (BIT_CLEAR_XTAL_LPS_BUF_VB(x) | BIT_XTAL_LPS_BUF_VB(v))
  39055. #define BIT_XTAL_PDCK_MANU BIT(26)
  39056. #define BIT_XTAL_PDCK_OK_MANU BIT(25)
  39057. #define BIT_SHIFT_XTAL_VREF_SEL 20
  39058. #define BIT_MASK_XTAL_VREF_SEL 0x1f
  39059. #define BIT_XTAL_VREF_SEL(x) \
  39060. (((x) & BIT_MASK_XTAL_VREF_SEL) << BIT_SHIFT_XTAL_VREF_SEL)
  39061. #define BITS_XTAL_VREF_SEL (BIT_MASK_XTAL_VREF_SEL << BIT_SHIFT_XTAL_VREF_SEL)
  39062. #define BIT_CLEAR_XTAL_VREF_SEL(x) ((x) & (~BITS_XTAL_VREF_SEL))
  39063. #define BIT_GET_XTAL_VREF_SEL(x) \
  39064. (((x) >> BIT_SHIFT_XTAL_VREF_SEL) & BIT_MASK_XTAL_VREF_SEL)
  39065. #define BIT_SET_XTAL_VREF_SEL(x, v) \
  39066. (BIT_CLEAR_XTAL_VREF_SEL(x) | BIT_XTAL_VREF_SEL(v))
  39067. #define BIT_EN_XTAL_PDCK_VREF BIT(19)
  39068. #define BIT_XTAL_SEL_PWR_V1 BIT(18)
  39069. #define BIT_XTAL_LPS_DIVISOR BIT(17)
  39070. #define BIT_XTAL_CKDIGI_SEL BIT(16)
  39071. #define BIT_EN_XTAL_LPS_CLK BIT(15)
  39072. #define BIT_EN_XTAL_SCHMITT BIT(14)
  39073. #define BIT_XTAL_PK_SEL_OFFSET BIT(13)
  39074. #define BIT_SHIFT_XTAL_MANU_PK_SEL 11
  39075. #define BIT_MASK_XTAL_MANU_PK_SEL 0x3
  39076. #define BIT_XTAL_MANU_PK_SEL(x) \
  39077. (((x) & BIT_MASK_XTAL_MANU_PK_SEL) << BIT_SHIFT_XTAL_MANU_PK_SEL)
  39078. #define BITS_XTAL_MANU_PK_SEL \
  39079. (BIT_MASK_XTAL_MANU_PK_SEL << BIT_SHIFT_XTAL_MANU_PK_SEL)
  39080. #define BIT_CLEAR_XTAL_MANU_PK_SEL(x) ((x) & (~BITS_XTAL_MANU_PK_SEL))
  39081. #define BIT_GET_XTAL_MANU_PK_SEL(x) \
  39082. (((x) >> BIT_SHIFT_XTAL_MANU_PK_SEL) & BIT_MASK_XTAL_MANU_PK_SEL)
  39083. #define BIT_SET_XTAL_MANU_PK_SEL(x, v) \
  39084. (BIT_CLEAR_XTAL_MANU_PK_SEL(x) | BIT_XTAL_MANU_PK_SEL(v))
  39085. #define BIT_XTAL_AACK_PK_MANU BIT(10)
  39086. #define BIT_EN_XTAL_AAC_PKDET_V1 BIT(9)
  39087. #define BIT_EN_XTAL_AAC_GM_V1 BIT(8)
  39088. #define BIT_XTAL_LDO_OPVB_SEL BIT(7)
  39089. #define BIT_SHIFT_XTAL_DUMMY_V1 7
  39090. #define BIT_MASK_XTAL_DUMMY_V1 0x3f
  39091. #define BIT_XTAL_DUMMY_V1(x) \
  39092. (((x) & BIT_MASK_XTAL_DUMMY_V1) << BIT_SHIFT_XTAL_DUMMY_V1)
  39093. #define BITS_XTAL_DUMMY_V1 (BIT_MASK_XTAL_DUMMY_V1 << BIT_SHIFT_XTAL_DUMMY_V1)
  39094. #define BIT_CLEAR_XTAL_DUMMY_V1(x) ((x) & (~BITS_XTAL_DUMMY_V1))
  39095. #define BIT_GET_XTAL_DUMMY_V1(x) \
  39096. (((x) >> BIT_SHIFT_XTAL_DUMMY_V1) & BIT_MASK_XTAL_DUMMY_V1)
  39097. #define BIT_SET_XTAL_DUMMY_V1(x, v) \
  39098. (BIT_CLEAR_XTAL_DUMMY_V1(x) | BIT_XTAL_DUMMY_V1(v))
  39099. #define BIT_XTAL_LDO_NC BIT(6)
  39100. #define BIT_XTAL_EN_LNBUF BIT(6)
  39101. #endif
  39102. #if (HALMAC_8814B_SUPPORT)
  39103. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39104. #define BIT_XTAL_DRV_RF2_LATCH BIT(6)
  39105. #endif
  39106. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39107. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39108. #define BIT_XTAL__AAC_TIE_MID BIT(5)
  39109. #endif
  39110. #if (HALMAC_8814B_SUPPORT)
  39111. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39112. #define BIT_SHIFT_XTAL_DRV_RF2_1_0 4
  39113. #define BIT_MASK_XTAL_DRV_RF2_1_0 0x3
  39114. #define BIT_XTAL_DRV_RF2_1_0(x) \
  39115. (((x) & BIT_MASK_XTAL_DRV_RF2_1_0) << BIT_SHIFT_XTAL_DRV_RF2_1_0)
  39116. #define BITS_XTAL_DRV_RF2_1_0 \
  39117. (BIT_MASK_XTAL_DRV_RF2_1_0 << BIT_SHIFT_XTAL_DRV_RF2_1_0)
  39118. #define BIT_CLEAR_XTAL_DRV_RF2_1_0(x) ((x) & (~BITS_XTAL_DRV_RF2_1_0))
  39119. #define BIT_GET_XTAL_DRV_RF2_1_0(x) \
  39120. (((x) >> BIT_SHIFT_XTAL_DRV_RF2_1_0) & BIT_MASK_XTAL_DRV_RF2_1_0)
  39121. #define BIT_SET_XTAL_DRV_RF2_1_0(x, v) \
  39122. (BIT_CLEAR_XTAL_DRV_RF2_1_0(x) | BIT_XTAL_DRV_RF2_1_0(v))
  39123. #endif
  39124. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39125. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39126. #define BIT_SHIFT_XTAL_LDO_VREF_V2 3
  39127. #define BIT_MASK_XTAL_LDO_VREF_V2 0x7
  39128. #define BIT_XTAL_LDO_VREF_V2(x) \
  39129. (((x) & BIT_MASK_XTAL_LDO_VREF_V2) << BIT_SHIFT_XTAL_LDO_VREF_V2)
  39130. #define BITS_XTAL_LDO_VREF_V2 \
  39131. (BIT_MASK_XTAL_LDO_VREF_V2 << BIT_SHIFT_XTAL_LDO_VREF_V2)
  39132. #define BIT_CLEAR_XTAL_LDO_VREF_V2(x) ((x) & (~BITS_XTAL_LDO_VREF_V2))
  39133. #define BIT_GET_XTAL_LDO_VREF_V2(x) \
  39134. (((x) >> BIT_SHIFT_XTAL_LDO_VREF_V2) & BIT_MASK_XTAL_LDO_VREF_V2)
  39135. #define BIT_SET_XTAL_LDO_VREF_V2(x, v) \
  39136. (BIT_CLEAR_XTAL_LDO_VREF_V2(x) | BIT_XTAL_LDO_VREF_V2(v))
  39137. #define BIT_SHIFT_XTAL_AAC_OPCUR 3
  39138. #define BIT_MASK_XTAL_AAC_OPCUR 0x3
  39139. #define BIT_XTAL_AAC_OPCUR(x) \
  39140. (((x) & BIT_MASK_XTAL_AAC_OPCUR) << BIT_SHIFT_XTAL_AAC_OPCUR)
  39141. #define BITS_XTAL_AAC_OPCUR \
  39142. (BIT_MASK_XTAL_AAC_OPCUR << BIT_SHIFT_XTAL_AAC_OPCUR)
  39143. #define BIT_CLEAR_XTAL_AAC_OPCUR(x) ((x) & (~BITS_XTAL_AAC_OPCUR))
  39144. #define BIT_GET_XTAL_AAC_OPCUR(x) \
  39145. (((x) >> BIT_SHIFT_XTAL_AAC_OPCUR) & BIT_MASK_XTAL_AAC_OPCUR)
  39146. #define BIT_SET_XTAL_AAC_OPCUR(x, v) \
  39147. (BIT_CLEAR_XTAL_AAC_OPCUR(x) | BIT_XTAL_AAC_OPCUR(v))
  39148. #endif
  39149. #if (HALMAC_8814B_SUPPORT)
  39150. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39151. #define BIT_XTAL_GATED_RF2N BIT(3)
  39152. #endif
  39153. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39154. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39155. #define BIT_XTAL_LPMODE_V1 BIT(2)
  39156. #endif
  39157. #if (HALMAC_8814B_SUPPORT)
  39158. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39159. #define BIT_XTAL_GATED_RF2P BIT(2)
  39160. #endif
  39161. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39162. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39163. #define BIT_SHIFT_XTAL_AAC_IOFFSET 1
  39164. #define BIT_MASK_XTAL_AAC_IOFFSET 0x3
  39165. #define BIT_XTAL_AAC_IOFFSET(x) \
  39166. (((x) & BIT_MASK_XTAL_AAC_IOFFSET) << BIT_SHIFT_XTAL_AAC_IOFFSET)
  39167. #define BITS_XTAL_AAC_IOFFSET \
  39168. (BIT_MASK_XTAL_AAC_IOFFSET << BIT_SHIFT_XTAL_AAC_IOFFSET)
  39169. #define BIT_CLEAR_XTAL_AAC_IOFFSET(x) ((x) & (~BITS_XTAL_AAC_IOFFSET))
  39170. #define BIT_GET_XTAL_AAC_IOFFSET(x) \
  39171. (((x) >> BIT_SHIFT_XTAL_AAC_IOFFSET) & BIT_MASK_XTAL_AAC_IOFFSET)
  39172. #define BIT_SET_XTAL_AAC_IOFFSET(x, v) \
  39173. (BIT_CLEAR_XTAL_AAC_IOFFSET(x) | BIT_XTAL_AAC_IOFFSET(v))
  39174. #endif
  39175. #if (HALMAC_8814B_SUPPORT)
  39176. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39177. #define BIT_XTAL_LDO_DI BIT(1)
  39178. #endif
  39179. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39180. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39181. #define BIT_SHIFT_XTAL_SEL_TOK_V3 0
  39182. #define BIT_MASK_XTAL_SEL_TOK_V3 0x3
  39183. #define BIT_XTAL_SEL_TOK_V3(x) \
  39184. (((x) & BIT_MASK_XTAL_SEL_TOK_V3) << BIT_SHIFT_XTAL_SEL_TOK_V3)
  39185. #define BITS_XTAL_SEL_TOK_V3 \
  39186. (BIT_MASK_XTAL_SEL_TOK_V3 << BIT_SHIFT_XTAL_SEL_TOK_V3)
  39187. #define BIT_CLEAR_XTAL_SEL_TOK_V3(x) ((x) & (~BITS_XTAL_SEL_TOK_V3))
  39188. #define BIT_GET_XTAL_SEL_TOK_V3(x) \
  39189. (((x) >> BIT_SHIFT_XTAL_SEL_TOK_V3) & BIT_MASK_XTAL_SEL_TOK_V3)
  39190. #define BIT_SET_XTAL_SEL_TOK_V3(x, v) \
  39191. (BIT_CLEAR_XTAL_SEL_TOK_V3(x) | BIT_XTAL_SEL_TOK_V3(v))
  39192. #define BIT_XTAL_AAC_CAP_V1 BIT(0)
  39193. #endif
  39194. #if (HALMAC_8814B_SUPPORT)
  39195. /* 2 REG_ANAPAR_XTAL_2 (Offset 0x1048) */
  39196. #define BIT_XTAL_SEL_PWR BIT(0)
  39197. /* 2 REG_ANAPAR_XTAL_AAC (Offset 0x104C) */
  39198. #define BIT_SHIFT_GM_MANUAL_4_0 21
  39199. #define BIT_MASK_GM_MANUAL_4_0 0x1f
  39200. #define BIT_GM_MANUAL_4_0(x) \
  39201. (((x) & BIT_MASK_GM_MANUAL_4_0) << BIT_SHIFT_GM_MANUAL_4_0)
  39202. #define BITS_GM_MANUAL_4_0 (BIT_MASK_GM_MANUAL_4_0 << BIT_SHIFT_GM_MANUAL_4_0)
  39203. #define BIT_CLEAR_GM_MANUAL_4_0(x) ((x) & (~BITS_GM_MANUAL_4_0))
  39204. #define BIT_GET_GM_MANUAL_4_0(x) \
  39205. (((x) >> BIT_SHIFT_GM_MANUAL_4_0) & BIT_MASK_GM_MANUAL_4_0)
  39206. #define BIT_SET_GM_MANUAL_4_0(x, v) \
  39207. (BIT_CLEAR_GM_MANUAL_4_0(x) | BIT_GM_MANUAL_4_0(v))
  39208. #define BIT_SHIFT_GM_STUP_4_0 16
  39209. #define BIT_MASK_GM_STUP_4_0 0x1f
  39210. #define BIT_GM_STUP_4_0(x) \
  39211. (((x) & BIT_MASK_GM_STUP_4_0) << BIT_SHIFT_GM_STUP_4_0)
  39212. #define BITS_GM_STUP_4_0 (BIT_MASK_GM_STUP_4_0 << BIT_SHIFT_GM_STUP_4_0)
  39213. #define BIT_CLEAR_GM_STUP_4_0(x) ((x) & (~BITS_GM_STUP_4_0))
  39214. #define BIT_GET_GM_STUP_4_0(x) \
  39215. (((x) >> BIT_SHIFT_GM_STUP_4_0) & BIT_MASK_GM_STUP_4_0)
  39216. #define BIT_SET_GM_STUP_4_0(x, v) \
  39217. (BIT_CLEAR_GM_STUP_4_0(x) | BIT_GM_STUP_4_0(v))
  39218. #define BIT_SHIFT_XTAL_CK_SET_2_0 13
  39219. #define BIT_MASK_XTAL_CK_SET_2_0 0x7
  39220. #define BIT_XTAL_CK_SET_2_0(x) \
  39221. (((x) & BIT_MASK_XTAL_CK_SET_2_0) << BIT_SHIFT_XTAL_CK_SET_2_0)
  39222. #define BITS_XTAL_CK_SET_2_0 \
  39223. (BIT_MASK_XTAL_CK_SET_2_0 << BIT_SHIFT_XTAL_CK_SET_2_0)
  39224. #define BIT_CLEAR_XTAL_CK_SET_2_0(x) ((x) & (~BITS_XTAL_CK_SET_2_0))
  39225. #define BIT_GET_XTAL_CK_SET_2_0(x) \
  39226. (((x) >> BIT_SHIFT_XTAL_CK_SET_2_0) & BIT_MASK_XTAL_CK_SET_2_0)
  39227. #define BIT_SET_XTAL_CK_SET_2_0(x, v) \
  39228. (BIT_CLEAR_XTAL_CK_SET_2_0(x) | BIT_XTAL_CK_SET_2_0(v))
  39229. #define BIT_SHIFT_GM_INIT_4_0 8
  39230. #define BIT_MASK_GM_INIT_4_0 0x1f
  39231. #define BIT_GM_INIT_4_0(x) \
  39232. (((x) & BIT_MASK_GM_INIT_4_0) << BIT_SHIFT_GM_INIT_4_0)
  39233. #define BITS_GM_INIT_4_0 (BIT_MASK_GM_INIT_4_0 << BIT_SHIFT_GM_INIT_4_0)
  39234. #define BIT_CLEAR_GM_INIT_4_0(x) ((x) & (~BITS_GM_INIT_4_0))
  39235. #define BIT_GET_GM_INIT_4_0(x) \
  39236. (((x) >> BIT_SHIFT_GM_INIT_4_0) & BIT_MASK_GM_INIT_4_0)
  39237. #define BIT_SET_GM_INIT_4_0(x, v) \
  39238. (BIT_CLEAR_GM_INIT_4_0(x) | BIT_GM_INIT_4_0(v))
  39239. #define BIT_SHIFT_XAAC_GM_OFFSET_4_0 2
  39240. #define BIT_MASK_XAAC_GM_OFFSET_4_0 0x1f
  39241. #define BIT_XAAC_GM_OFFSET_4_0(x) \
  39242. (((x) & BIT_MASK_XAAC_GM_OFFSET_4_0) << BIT_SHIFT_XAAC_GM_OFFSET_4_0)
  39243. #define BITS_XAAC_GM_OFFSET_4_0 \
  39244. (BIT_MASK_XAAC_GM_OFFSET_4_0 << BIT_SHIFT_XAAC_GM_OFFSET_4_0)
  39245. #define BIT_CLEAR_XAAC_GM_OFFSET_4_0(x) ((x) & (~BITS_XAAC_GM_OFFSET_4_0))
  39246. #define BIT_GET_XAAC_GM_OFFSET_4_0(x) \
  39247. (((x) >> BIT_SHIFT_XAAC_GM_OFFSET_4_0) & BIT_MASK_XAAC_GM_OFFSET_4_0)
  39248. #define BIT_SET_XAAC_GM_OFFSET_4_0(x, v) \
  39249. (BIT_CLEAR_XAAC_GM_OFFSET_4_0(x) | BIT_XAAC_GM_OFFSET_4_0(v))
  39250. /* 2 REG_ANAPAR_XTAL_R_ONLY (Offset 0x1050) */
  39251. #define BIT_XTAL_PKDET_OUT BIT(6)
  39252. #define BIT_SHIFT_XTAL_GM_AAC_4_0 1
  39253. #define BIT_MASK_XTAL_GM_AAC_4_0 0x1f
  39254. #define BIT_XTAL_GM_AAC_4_0(x) \
  39255. (((x) & BIT_MASK_XTAL_GM_AAC_4_0) << BIT_SHIFT_XTAL_GM_AAC_4_0)
  39256. #define BITS_XTAL_GM_AAC_4_0 \
  39257. (BIT_MASK_XTAL_GM_AAC_4_0 << BIT_SHIFT_XTAL_GM_AAC_4_0)
  39258. #define BIT_CLEAR_XTAL_GM_AAC_4_0(x) ((x) & (~BITS_XTAL_GM_AAC_4_0))
  39259. #define BIT_GET_XTAL_GM_AAC_4_0(x) \
  39260. (((x) >> BIT_SHIFT_XTAL_GM_AAC_4_0) & BIT_MASK_XTAL_GM_AAC_4_0)
  39261. #define BIT_SET_XTAL_GM_AAC_4_0(x, v) \
  39262. (BIT_CLEAR_XTAL_GM_AAC_4_0(x) | BIT_XTAL_GM_AAC_4_0(v))
  39263. #define BIT_XAAC_READY BIT(0)
  39264. #endif
  39265. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39266. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39267. #define BIT_XAAC_LPOW BIT(31)
  39268. #define BIT_SHIFT_AAC_MODE 29
  39269. #define BIT_MASK_AAC_MODE 0x3
  39270. #define BIT_AAC_MODE(x) (((x) & BIT_MASK_AAC_MODE) << BIT_SHIFT_AAC_MODE)
  39271. #define BITS_AAC_MODE (BIT_MASK_AAC_MODE << BIT_SHIFT_AAC_MODE)
  39272. #define BIT_CLEAR_AAC_MODE(x) ((x) & (~BITS_AAC_MODE))
  39273. #define BIT_GET_AAC_MODE(x) (((x) >> BIT_SHIFT_AAC_MODE) & BIT_MASK_AAC_MODE)
  39274. #define BIT_SET_AAC_MODE(x, v) (BIT_CLEAR_AAC_MODE(x) | BIT_AAC_MODE(v))
  39275. #define BIT_SHIFT_GM_MANUAL 21
  39276. #define BIT_MASK_GM_MANUAL 0x1f
  39277. #define BIT_GM_MANUAL(x) (((x) & BIT_MASK_GM_MANUAL) << BIT_SHIFT_GM_MANUAL)
  39278. #define BITS_GM_MANUAL (BIT_MASK_GM_MANUAL << BIT_SHIFT_GM_MANUAL)
  39279. #define BIT_CLEAR_GM_MANUAL(x) ((x) & (~BITS_GM_MANUAL))
  39280. #define BIT_GET_GM_MANUAL(x) (((x) >> BIT_SHIFT_GM_MANUAL) & BIT_MASK_GM_MANUAL)
  39281. #define BIT_SET_GM_MANUAL(x, v) (BIT_CLEAR_GM_MANUAL(x) | BIT_GM_MANUAL(v))
  39282. #define BIT_SHIFT_XTAL_LDO_LPS 21
  39283. #define BIT_MASK_XTAL_LDO_LPS 0x7
  39284. #define BIT_XTAL_LDO_LPS(x) \
  39285. (((x) & BIT_MASK_XTAL_LDO_LPS) << BIT_SHIFT_XTAL_LDO_LPS)
  39286. #define BITS_XTAL_LDO_LPS (BIT_MASK_XTAL_LDO_LPS << BIT_SHIFT_XTAL_LDO_LPS)
  39287. #define BIT_CLEAR_XTAL_LDO_LPS(x) ((x) & (~BITS_XTAL_LDO_LPS))
  39288. #define BIT_GET_XTAL_LDO_LPS(x) \
  39289. (((x) >> BIT_SHIFT_XTAL_LDO_LPS) & BIT_MASK_XTAL_LDO_LPS)
  39290. #define BIT_SET_XTAL_LDO_LPS(x, v) \
  39291. (BIT_CLEAR_XTAL_LDO_LPS(x) | BIT_XTAL_LDO_LPS(v))
  39292. #define BIT_SHIFT_GM_STUP 16
  39293. #define BIT_MASK_GM_STUP 0x1f
  39294. #define BIT_GM_STUP(x) (((x) & BIT_MASK_GM_STUP) << BIT_SHIFT_GM_STUP)
  39295. #define BITS_GM_STUP (BIT_MASK_GM_STUP << BIT_SHIFT_GM_STUP)
  39296. #define BIT_CLEAR_GM_STUP(x) ((x) & (~BITS_GM_STUP))
  39297. #define BIT_GET_GM_STUP(x) (((x) >> BIT_SHIFT_GM_STUP) & BIT_MASK_GM_STUP)
  39298. #define BIT_SET_GM_STUP(x, v) (BIT_CLEAR_GM_STUP(x) | BIT_GM_STUP(v))
  39299. #define BIT_SHIFT_XTAL_WAIT_CYC 15
  39300. #define BIT_MASK_XTAL_WAIT_CYC 0x3f
  39301. #define BIT_XTAL_WAIT_CYC(x) \
  39302. (((x) & BIT_MASK_XTAL_WAIT_CYC) << BIT_SHIFT_XTAL_WAIT_CYC)
  39303. #define BITS_XTAL_WAIT_CYC (BIT_MASK_XTAL_WAIT_CYC << BIT_SHIFT_XTAL_WAIT_CYC)
  39304. #define BIT_CLEAR_XTAL_WAIT_CYC(x) ((x) & (~BITS_XTAL_WAIT_CYC))
  39305. #define BIT_GET_XTAL_WAIT_CYC(x) \
  39306. (((x) >> BIT_SHIFT_XTAL_WAIT_CYC) & BIT_MASK_XTAL_WAIT_CYC)
  39307. #define BIT_SET_XTAL_WAIT_CYC(x, v) \
  39308. (BIT_CLEAR_XTAL_WAIT_CYC(x) | BIT_XTAL_WAIT_CYC(v))
  39309. #define BIT_SHIFT_XTAL_CK_SET 13
  39310. #define BIT_MASK_XTAL_CK_SET 0x7
  39311. #define BIT_XTAL_CK_SET(x) \
  39312. (((x) & BIT_MASK_XTAL_CK_SET) << BIT_SHIFT_XTAL_CK_SET)
  39313. #define BITS_XTAL_CK_SET (BIT_MASK_XTAL_CK_SET << BIT_SHIFT_XTAL_CK_SET)
  39314. #define BIT_CLEAR_XTAL_CK_SET(x) ((x) & (~BITS_XTAL_CK_SET))
  39315. #define BIT_GET_XTAL_CK_SET(x) \
  39316. (((x) >> BIT_SHIFT_XTAL_CK_SET) & BIT_MASK_XTAL_CK_SET)
  39317. #define BIT_SET_XTAL_CK_SET(x, v) \
  39318. (BIT_CLEAR_XTAL_CK_SET(x) | BIT_XTAL_CK_SET(v))
  39319. #define BIT_SHIFT_XTAL_LDO_OK 12
  39320. #define BIT_MASK_XTAL_LDO_OK 0x7
  39321. #define BIT_XTAL_LDO_OK(x) \
  39322. (((x) & BIT_MASK_XTAL_LDO_OK) << BIT_SHIFT_XTAL_LDO_OK)
  39323. #define BITS_XTAL_LDO_OK (BIT_MASK_XTAL_LDO_OK << BIT_SHIFT_XTAL_LDO_OK)
  39324. #define BIT_CLEAR_XTAL_LDO_OK(x) ((x) & (~BITS_XTAL_LDO_OK))
  39325. #define BIT_GET_XTAL_LDO_OK(x) \
  39326. (((x) >> BIT_SHIFT_XTAL_LDO_OK) & BIT_MASK_XTAL_LDO_OK)
  39327. #define BIT_SET_XTAL_LDO_OK(x, v) \
  39328. (BIT_CLEAR_XTAL_LDO_OK(x) | BIT_XTAL_LDO_OK(v))
  39329. #endif
  39330. #if (HALMAC_8814B_SUPPORT)
  39331. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39332. #define BIT_SHIFT_CPHY_LDO_PD 12
  39333. #define BIT_MASK_CPHY_LDO_PD 0x3
  39334. #define BIT_CPHY_LDO_PD(x) \
  39335. (((x) & BIT_MASK_CPHY_LDO_PD) << BIT_SHIFT_CPHY_LDO_PD)
  39336. #define BITS_CPHY_LDO_PD (BIT_MASK_CPHY_LDO_PD << BIT_SHIFT_CPHY_LDO_PD)
  39337. #define BIT_CLEAR_CPHY_LDO_PD(x) ((x) & (~BITS_CPHY_LDO_PD))
  39338. #define BIT_GET_CPHY_LDO_PD(x) \
  39339. (((x) >> BIT_SHIFT_CPHY_LDO_PD) & BIT_MASK_CPHY_LDO_PD)
  39340. #define BIT_SET_CPHY_LDO_PD(x, v) \
  39341. (BIT_CLEAR_CPHY_LDO_PD(x) | BIT_CPHY_LDO_PD(v))
  39342. #endif
  39343. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39344. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39345. #define BIT_XTAL_MD_LPOW BIT(11)
  39346. #endif
  39347. #if (HALMAC_8814B_SUPPORT)
  39348. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39349. #define BIT_SHIFT_CPHY_LDO_SR 10
  39350. #define BIT_MASK_CPHY_LDO_SR 0x3
  39351. #define BIT_CPHY_LDO_SR(x) \
  39352. (((x) & BIT_MASK_CPHY_LDO_SR) << BIT_SHIFT_CPHY_LDO_SR)
  39353. #define BITS_CPHY_LDO_SR (BIT_MASK_CPHY_LDO_SR << BIT_SHIFT_CPHY_LDO_SR)
  39354. #define BIT_CLEAR_CPHY_LDO_SR(x) ((x) & (~BITS_CPHY_LDO_SR))
  39355. #define BIT_GET_CPHY_LDO_SR(x) \
  39356. (((x) >> BIT_SHIFT_CPHY_LDO_SR) & BIT_MASK_CPHY_LDO_SR)
  39357. #define BIT_SET_CPHY_LDO_SR(x, v) \
  39358. (BIT_CLEAR_CPHY_LDO_SR(x) | BIT_CPHY_LDO_SR(v))
  39359. #endif
  39360. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39361. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39362. #define BIT_SHIFT_XTAL_OV_RATIO 9
  39363. #define BIT_MASK_XTAL_OV_RATIO 0x3
  39364. #define BIT_XTAL_OV_RATIO(x) \
  39365. (((x) & BIT_MASK_XTAL_OV_RATIO) << BIT_SHIFT_XTAL_OV_RATIO)
  39366. #define BITS_XTAL_OV_RATIO (BIT_MASK_XTAL_OV_RATIO << BIT_SHIFT_XTAL_OV_RATIO)
  39367. #define BIT_CLEAR_XTAL_OV_RATIO(x) ((x) & (~BITS_XTAL_OV_RATIO))
  39368. #define BIT_GET_XTAL_OV_RATIO(x) \
  39369. (((x) >> BIT_SHIFT_XTAL_OV_RATIO) & BIT_MASK_XTAL_OV_RATIO)
  39370. #define BIT_SET_XTAL_OV_RATIO(x, v) \
  39371. (BIT_CLEAR_XTAL_OV_RATIO(x) | BIT_XTAL_OV_RATIO(v))
  39372. #define BIT_SHIFT_GM_INIT 8
  39373. #define BIT_MASK_GM_INIT 0x1f
  39374. #define BIT_GM_INIT(x) (((x) & BIT_MASK_GM_INIT) << BIT_SHIFT_GM_INIT)
  39375. #define BITS_GM_INIT (BIT_MASK_GM_INIT << BIT_SHIFT_GM_INIT)
  39376. #define BIT_CLEAR_GM_INIT(x) ((x) & (~BITS_GM_INIT))
  39377. #define BIT_GET_GM_INIT(x) (((x) >> BIT_SHIFT_GM_INIT) & BIT_MASK_GM_INIT)
  39378. #define BIT_SET_GM_INIT(x, v) (BIT_CLEAR_GM_INIT(x) | BIT_GM_INIT(v))
  39379. #endif
  39380. #if (HALMAC_8814B_SUPPORT)
  39381. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39382. #define BIT_SHIFT_CPHY_LDO_TUNEREF 8
  39383. #define BIT_MASK_CPHY_LDO_TUNEREF 0x3
  39384. #define BIT_CPHY_LDO_TUNEREF(x) \
  39385. (((x) & BIT_MASK_CPHY_LDO_TUNEREF) << BIT_SHIFT_CPHY_LDO_TUNEREF)
  39386. #define BITS_CPHY_LDO_TUNEREF \
  39387. (BIT_MASK_CPHY_LDO_TUNEREF << BIT_SHIFT_CPHY_LDO_TUNEREF)
  39388. #define BIT_CLEAR_CPHY_LDO_TUNEREF(x) ((x) & (~BITS_CPHY_LDO_TUNEREF))
  39389. #define BIT_GET_CPHY_LDO_TUNEREF(x) \
  39390. (((x) >> BIT_SHIFT_CPHY_LDO_TUNEREF) & BIT_MASK_CPHY_LDO_TUNEREF)
  39391. #define BIT_SET_CPHY_LDO_TUNEREF(x, v) \
  39392. (BIT_CLEAR_CPHY_LDO_TUNEREF(x) | BIT_CPHY_LDO_TUNEREF(v))
  39393. #endif
  39394. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39395. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39396. #define BIT_SHIFT_XTAL_OV_UNIT 6
  39397. #define BIT_MASK_XTAL_OV_UNIT 0x7
  39398. #define BIT_XTAL_OV_UNIT(x) \
  39399. (((x) & BIT_MASK_XTAL_OV_UNIT) << BIT_SHIFT_XTAL_OV_UNIT)
  39400. #define BITS_XTAL_OV_UNIT (BIT_MASK_XTAL_OV_UNIT << BIT_SHIFT_XTAL_OV_UNIT)
  39401. #define BIT_CLEAR_XTAL_OV_UNIT(x) ((x) & (~BITS_XTAL_OV_UNIT))
  39402. #define BIT_GET_XTAL_OV_UNIT(x) \
  39403. (((x) >> BIT_SHIFT_XTAL_OV_UNIT) & BIT_MASK_XTAL_OV_UNIT)
  39404. #define BIT_SET_XTAL_OV_UNIT(x, v) \
  39405. (BIT_CLEAR_XTAL_OV_UNIT(x) | BIT_XTAL_OV_UNIT(v))
  39406. #endif
  39407. #if (HALMAC_8814B_SUPPORT)
  39408. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39409. #define BIT_SHIFT_CPHY_LDO_TUNE_VO 5
  39410. #define BIT_MASK_CPHY_LDO_TUNE_VO 0x7
  39411. #define BIT_CPHY_LDO_TUNE_VO(x) \
  39412. (((x) & BIT_MASK_CPHY_LDO_TUNE_VO) << BIT_SHIFT_CPHY_LDO_TUNE_VO)
  39413. #define BITS_CPHY_LDO_TUNE_VO \
  39414. (BIT_MASK_CPHY_LDO_TUNE_VO << BIT_SHIFT_CPHY_LDO_TUNE_VO)
  39415. #define BIT_CLEAR_CPHY_LDO_TUNE_VO(x) ((x) & (~BITS_CPHY_LDO_TUNE_VO))
  39416. #define BIT_GET_CPHY_LDO_TUNE_VO(x) \
  39417. (((x) >> BIT_SHIFT_CPHY_LDO_TUNE_VO) & BIT_MASK_CPHY_LDO_TUNE_VO)
  39418. #define BIT_SET_CPHY_LDO_TUNE_VO(x, v) \
  39419. (BIT_CLEAR_CPHY_LDO_TUNE_VO(x) | BIT_CPHY_LDO_TUNE_VO(v))
  39420. #endif
  39421. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39422. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39423. #define BIT_SHIFT_XTAL_MODE_MANUAL 4
  39424. #define BIT_MASK_XTAL_MODE_MANUAL 0x3
  39425. #define BIT_XTAL_MODE_MANUAL(x) \
  39426. (((x) & BIT_MASK_XTAL_MODE_MANUAL) << BIT_SHIFT_XTAL_MODE_MANUAL)
  39427. #define BITS_XTAL_MODE_MANUAL \
  39428. (BIT_MASK_XTAL_MODE_MANUAL << BIT_SHIFT_XTAL_MODE_MANUAL)
  39429. #define BIT_CLEAR_XTAL_MODE_MANUAL(x) ((x) & (~BITS_XTAL_MODE_MANUAL))
  39430. #define BIT_GET_XTAL_MODE_MANUAL(x) \
  39431. (((x) >> BIT_SHIFT_XTAL_MODE_MANUAL) & BIT_MASK_XTAL_MODE_MANUAL)
  39432. #define BIT_SET_XTAL_MODE_MANUAL(x, v) \
  39433. (BIT_CLEAR_XTAL_MODE_MANUAL(x) | BIT_XTAL_MODE_MANUAL(v))
  39434. #define BIT_SHIFT_PK_END_AR 3
  39435. #define BIT_MASK_PK_END_AR 0x3
  39436. #define BIT_PK_END_AR(x) (((x) & BIT_MASK_PK_END_AR) << BIT_SHIFT_PK_END_AR)
  39437. #define BITS_PK_END_AR (BIT_MASK_PK_END_AR << BIT_SHIFT_PK_END_AR)
  39438. #define BIT_CLEAR_PK_END_AR(x) ((x) & (~BITS_PK_END_AR))
  39439. #define BIT_GET_PK_END_AR(x) (((x) >> BIT_SHIFT_PK_END_AR) & BIT_MASK_PK_END_AR)
  39440. #define BIT_SET_PK_END_AR(x, v) (BIT_CLEAR_PK_END_AR(x) | BIT_PK_END_AR(v))
  39441. #define BIT_XTAL_MANU_SEL BIT(3)
  39442. #define BIT_SHIFT_XAAC_GM_OFFSET 2
  39443. #define BIT_MASK_XAAC_GM_OFFSET 0x1f
  39444. #define BIT_XAAC_GM_OFFSET(x) \
  39445. (((x) & BIT_MASK_XAAC_GM_OFFSET) << BIT_SHIFT_XAAC_GM_OFFSET)
  39446. #define BITS_XAAC_GM_OFFSET \
  39447. (BIT_MASK_XAAC_GM_OFFSET << BIT_SHIFT_XAAC_GM_OFFSET)
  39448. #define BIT_CLEAR_XAAC_GM_OFFSET(x) ((x) & (~BITS_XAAC_GM_OFFSET))
  39449. #define BIT_GET_XAAC_GM_OFFSET(x) \
  39450. (((x) >> BIT_SHIFT_XAAC_GM_OFFSET) & BIT_MASK_XAAC_GM_OFFSET)
  39451. #define BIT_SET_XAAC_GM_OFFSET(x, v) \
  39452. (BIT_CLEAR_XAAC_GM_OFFSET(x) | BIT_XAAC_GM_OFFSET(v))
  39453. #endif
  39454. #if (HALMAC_8814B_SUPPORT)
  39455. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39456. #define BIT_SHIFT_CPHY_LDO_OCP_VTH 2
  39457. #define BIT_MASK_CPHY_LDO_OCP_VTH 0x7
  39458. #define BIT_CPHY_LDO_OCP_VTH(x) \
  39459. (((x) & BIT_MASK_CPHY_LDO_OCP_VTH) << BIT_SHIFT_CPHY_LDO_OCP_VTH)
  39460. #define BITS_CPHY_LDO_OCP_VTH \
  39461. (BIT_MASK_CPHY_LDO_OCP_VTH << BIT_SHIFT_CPHY_LDO_OCP_VTH)
  39462. #define BIT_CLEAR_CPHY_LDO_OCP_VTH(x) ((x) & (~BITS_CPHY_LDO_OCP_VTH))
  39463. #define BIT_GET_CPHY_LDO_OCP_VTH(x) \
  39464. (((x) >> BIT_SHIFT_CPHY_LDO_OCP_VTH) & BIT_MASK_CPHY_LDO_OCP_VTH)
  39465. #define BIT_SET_CPHY_LDO_OCP_VTH(x, v) \
  39466. (BIT_CLEAR_CPHY_LDO_OCP_VTH(x) | BIT_CPHY_LDO_OCP_VTH(v))
  39467. #endif
  39468. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  39469. /* 2 REG_ANAPAR_XTAL_AACK_0 (Offset 0x1054) */
  39470. #define BIT_SHIFT_PK_START_AR 1
  39471. #define BIT_MASK_PK_START_AR 0x3
  39472. #define BIT_PK_START_AR(x) \
  39473. (((x) & BIT_MASK_PK_START_AR) << BIT_SHIFT_PK_START_AR)
  39474. #define BITS_PK_START_AR (BIT_MASK_PK_START_AR << BIT_SHIFT_PK_START_AR)
  39475. #define BIT_CLEAR_PK_START_AR(x) ((x) & (~BITS_PK_START_AR))
  39476. #define BIT_GET_PK_START_AR(x) \
  39477. (((x) >> BIT_SHIFT_PK_START_AR) & BIT_MASK_PK_START_AR)
  39478. #define BIT_SET_PK_START_AR(x, v) \
  39479. (BIT_CLEAR_PK_START_AR(x) | BIT_PK_START_AR(v))
  39480. #define BIT_XTAL_MODE BIT(1)
  39481. #define BIT_XAAC_LUT_MANUAL_EN BIT(0)
  39482. #define BIT_RESET_N_DECODER BIT(0)
  39483. #endif
  39484. #if (HALMAC_8814B_SUPPORT)
  39485. /* 2 REG_CPHY_LDO (Offset 0x1054) */
  39486. #define BIT_SHIFT_VREF_LDO_OK 0
  39487. #define BIT_MASK_VREF_LDO_OK 0x3
  39488. #define BIT_VREF_LDO_OK(x) \
  39489. (((x) & BIT_MASK_VREF_LDO_OK) << BIT_SHIFT_VREF_LDO_OK)
  39490. #define BITS_VREF_LDO_OK (BIT_MASK_VREF_LDO_OK << BIT_SHIFT_VREF_LDO_OK)
  39491. #define BIT_CLEAR_VREF_LDO_OK(x) ((x) & (~BITS_VREF_LDO_OK))
  39492. #define BIT_GET_VREF_LDO_OK(x) \
  39493. (((x) >> BIT_SHIFT_VREF_LDO_OK) & BIT_MASK_VREF_LDO_OK)
  39494. #define BIT_SET_VREF_LDO_OK(x, v) \
  39495. (BIT_CLEAR_VREF_LDO_OK(x) | BIT_VREF_LDO_OK(v))
  39496. /* 2 REG_CPHY_BG (Offset 0x1058) */
  39497. #define BIT_TXBCN_OK_PORT4 BIT(31)
  39498. #define BIT_ATIMEND_PORT4 BIT(31)
  39499. #define BIT_TXBCN_OK_PORT3 BIT(30)
  39500. #define BIT_ATIMEND_PORT3 BIT(30)
  39501. #define BIT_TXBCN_OK_PORT2 BIT(29)
  39502. #define BIT_ATIMEND_PORT2 BIT(29)
  39503. #define BIT_TXBCN_OK_PORT1 BIT(28)
  39504. #define BIT_ATIMEND_PORT1 BIT(28)
  39505. #define BIT_TXBCN15OK BIT(23)
  39506. #define BIT_BCNDMAINT15 BIT(23)
  39507. #define BIT_ATIMEND15 BIT(23)
  39508. #define BIT_TXBCN14OK BIT(22)
  39509. #define BIT_BCNDMAINT14 BIT(22)
  39510. #define BIT_ATIMEND14 BIT(22)
  39511. #define BIT_TXBCN13OK BIT(21)
  39512. #define BIT_BCNDMAINT13 BIT(21)
  39513. #define BIT_ATIMEND13 BIT(21)
  39514. #define BIT_TXBCN12OK BIT(20)
  39515. #define BIT_BCNDMAINT12 BIT(20)
  39516. #define BIT_ATIMEND12 BIT(20)
  39517. #define BIT_TXBCN11OK BIT(19)
  39518. #define BIT_BCNDMAINT11 BIT(19)
  39519. #define BIT_ATIMEND11 BIT(19)
  39520. #define BIT_TXBCN10OK BIT(18)
  39521. #define BIT_BCNDMAINT10 BIT(18)
  39522. #define BIT_ATIMEND10 BIT(18)
  39523. #define BIT_TXBCN9OK BIT(17)
  39524. #define BIT_BCNDMAINT9 BIT(17)
  39525. #define BIT_ATIMEND9 BIT(17)
  39526. #define BIT_TXBCN8OK BIT(16)
  39527. #define BIT_BCNDMAINT8 BIT(16)
  39528. #define BIT_ATIMEND8 BIT(16)
  39529. #define BIT_BCNDERR_PORT4 BIT(15)
  39530. #define BIT_BCNDERR_PORT3 BIT(14)
  39531. #define BIT_BCNDERR_PORT2 BIT(13)
  39532. #define BIT_BCNDERR_PORT1 BIT(12)
  39533. #define BIT_TXBCN15ERR BIT(7)
  39534. #define BIT_BCNDERR15 BIT(7)
  39535. #define BIT_TXBCN14ERR BIT(6)
  39536. #define BIT_BCNDERR14 BIT(6)
  39537. #define BIT_TXBCN13ERR BIT(5)
  39538. #define BIT_BCNDERR13 BIT(5)
  39539. #define BIT_PS_TIMER_EARLY_INT_5 BIT(5)
  39540. #define BIT_TXBCN12ERR BIT(4)
  39541. #define BIT_BCNDERR12 BIT(4)
  39542. #define BIT_PS_TIMER_EARLY_INT_4 BIT(4)
  39543. #define BIT_TXBCN11ERR BIT(3)
  39544. #define BIT_BCNDERR11 BIT(3)
  39545. #define BIT_PS_TIMER_EARLY_INT_3 BIT(3)
  39546. #define BIT_TXBCN10ERR BIT(2)
  39547. #define BIT_BCNDERR10 BIT(2)
  39548. #define BIT_PS_TIMER_EARLY_INT_2 BIT(2)
  39549. #define BIT_TXBCN9ERR BIT(1)
  39550. #define BIT_BCNDERR9 BIT(1)
  39551. #define BIT_PS_TIMER_EARLY_INT_1 BIT(1)
  39552. #define BIT_SHIFT_BG 0
  39553. #define BIT_MASK_BG 0x7
  39554. #define BIT_BG(x) (((x) & BIT_MASK_BG) << BIT_SHIFT_BG)
  39555. #define BITS_BG (BIT_MASK_BG << BIT_SHIFT_BG)
  39556. #define BIT_CLEAR_BG(x) ((x) & (~BITS_BG))
  39557. #define BIT_GET_BG(x) (((x) >> BIT_SHIFT_BG) & BIT_MASK_BG)
  39558. #define BIT_SET_BG(x, v) (BIT_CLEAR_BG(x) | BIT_BG(v))
  39559. #define BIT_TXBCN8ERR BIT(0)
  39560. #define BIT_BCNDERR8 BIT(0)
  39561. #define BIT_PS_TIMER_EARLY_INT_0 BIT(0)
  39562. #endif
  39563. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  39564. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  39565. /* 2 REG_SYS_CFG5 (Offset 0x1070) */
  39566. #define BIT_LPS_STATUS BIT(3)
  39567. #define BIT_HCI_TXDMA_BUSY BIT(2)
  39568. #define BIT_HCI_TXDMA_ALLOW BIT(1)
  39569. #define BIT_FW_CTRL_HCI_TXDMA_EN BIT(0)
  39570. #endif
  39571. #if (HALMAC_8812F_SUPPORT)
  39572. /* 2 REG_REGU_32K_1 (Offset 0x1078) */
  39573. #define BIT_OUT_SEL BIT(26)
  39574. #define BIT_SHIFT_FREQ_SEL 24
  39575. #define BIT_MASK_FREQ_SEL 0x3
  39576. #define BIT_FREQ_SEL(x) (((x) & BIT_MASK_FREQ_SEL) << BIT_SHIFT_FREQ_SEL)
  39577. #define BITS_FREQ_SEL (BIT_MASK_FREQ_SEL << BIT_SHIFT_FREQ_SEL)
  39578. #define BIT_CLEAR_FREQ_SEL(x) ((x) & (~BITS_FREQ_SEL))
  39579. #define BIT_GET_FREQ_SEL(x) (((x) >> BIT_SHIFT_FREQ_SEL) & BIT_MASK_FREQ_SEL)
  39580. #define BIT_SET_FREQ_SEL(x, v) (BIT_CLEAR_FREQ_SEL(x) | BIT_FREQ_SEL(v))
  39581. #define BIT_SHIFT_CLKGEN0 16
  39582. #define BIT_MASK_CLKGEN0 0xff
  39583. #define BIT_CLKGEN0(x) (((x) & BIT_MASK_CLKGEN0) << BIT_SHIFT_CLKGEN0)
  39584. #define BITS_CLKGEN0 (BIT_MASK_CLKGEN0 << BIT_SHIFT_CLKGEN0)
  39585. #define BIT_CLEAR_CLKGEN0(x) ((x) & (~BITS_CLKGEN0))
  39586. #define BIT_GET_CLKGEN0(x) (((x) >> BIT_SHIFT_CLKGEN0) & BIT_MASK_CLKGEN0)
  39587. #define BIT_SET_CLKGEN0(x, v) (BIT_CLEAR_CLKGEN0(x) | BIT_CLKGEN0(v))
  39588. #define BIT_SHIFT_TEMP_COMP 12
  39589. #define BIT_MASK_TEMP_COMP 0xf
  39590. #define BIT_TEMP_COMP(x) (((x) & BIT_MASK_TEMP_COMP) << BIT_SHIFT_TEMP_COMP)
  39591. #define BITS_TEMP_COMP (BIT_MASK_TEMP_COMP << BIT_SHIFT_TEMP_COMP)
  39592. #define BIT_CLEAR_TEMP_COMP(x) ((x) & (~BITS_TEMP_COMP))
  39593. #define BIT_GET_TEMP_COMP(x) (((x) >> BIT_SHIFT_TEMP_COMP) & BIT_MASK_TEMP_COMP)
  39594. #define BIT_SET_TEMP_COMP(x, v) (BIT_CLEAR_TEMP_COMP(x) | BIT_TEMP_COMP(v))
  39595. #define BIT_SHIFT_LDO_V18ADJ 8
  39596. #define BIT_MASK_LDO_V18ADJ 0xf
  39597. #define BIT_LDO_V18ADJ(x) (((x) & BIT_MASK_LDO_V18ADJ) << BIT_SHIFT_LDO_V18ADJ)
  39598. #define BITS_LDO_V18ADJ (BIT_MASK_LDO_V18ADJ << BIT_SHIFT_LDO_V18ADJ)
  39599. #define BIT_CLEAR_LDO_V18ADJ(x) ((x) & (~BITS_LDO_V18ADJ))
  39600. #define BIT_GET_LDO_V18ADJ(x) \
  39601. (((x) >> BIT_SHIFT_LDO_V18ADJ) & BIT_MASK_LDO_V18ADJ)
  39602. #define BIT_SET_LDO_V18ADJ(x, v) (BIT_CLEAR_LDO_V18ADJ(x) | BIT_LDO_V18ADJ(v))
  39603. #define BIT_SHIFT_COMP_LOAD_CUR 5
  39604. #define BIT_MASK_COMP_LOAD_CUR 0x3
  39605. #define BIT_COMP_LOAD_CUR(x) \
  39606. (((x) & BIT_MASK_COMP_LOAD_CUR) << BIT_SHIFT_COMP_LOAD_CUR)
  39607. #define BITS_COMP_LOAD_CUR (BIT_MASK_COMP_LOAD_CUR << BIT_SHIFT_COMP_LOAD_CUR)
  39608. #define BIT_CLEAR_COMP_LOAD_CUR(x) ((x) & (~BITS_COMP_LOAD_CUR))
  39609. #define BIT_GET_COMP_LOAD_CUR(x) \
  39610. (((x) >> BIT_SHIFT_COMP_LOAD_CUR) & BIT_MASK_COMP_LOAD_CUR)
  39611. #define BIT_SET_COMP_LOAD_CUR(x, v) \
  39612. (BIT_CLEAR_COMP_LOAD_CUR(x) | BIT_COMP_LOAD_CUR(v))
  39613. #define BIT_SHIFT_COMP_LATCH_CUR 3
  39614. #define BIT_MASK_COMP_LATCH_CUR 0x3
  39615. #define BIT_COMP_LATCH_CUR(x) \
  39616. (((x) & BIT_MASK_COMP_LATCH_CUR) << BIT_SHIFT_COMP_LATCH_CUR)
  39617. #define BITS_COMP_LATCH_CUR \
  39618. (BIT_MASK_COMP_LATCH_CUR << BIT_SHIFT_COMP_LATCH_CUR)
  39619. #define BIT_CLEAR_COMP_LATCH_CUR(x) ((x) & (~BITS_COMP_LATCH_CUR))
  39620. #define BIT_GET_COMP_LATCH_CUR(x) \
  39621. (((x) >> BIT_SHIFT_COMP_LATCH_CUR) & BIT_MASK_COMP_LATCH_CUR)
  39622. #define BIT_SET_COMP_LATCH_CUR(x, v) \
  39623. (BIT_CLEAR_COMP_LATCH_CUR(x) | BIT_COMP_LATCH_CUR(v))
  39624. #define BIT_SHIFT_COMP_GM_CUR 1
  39625. #define BIT_MASK_COMP_GM_CUR 0x3
  39626. #define BIT_COMP_GM_CUR(x) \
  39627. (((x) & BIT_MASK_COMP_GM_CUR) << BIT_SHIFT_COMP_GM_CUR)
  39628. #define BITS_COMP_GM_CUR (BIT_MASK_COMP_GM_CUR << BIT_SHIFT_COMP_GM_CUR)
  39629. #define BIT_CLEAR_COMP_GM_CUR(x) ((x) & (~BITS_COMP_GM_CUR))
  39630. #define BIT_GET_COMP_GM_CUR(x) \
  39631. (((x) >> BIT_SHIFT_COMP_GM_CUR) & BIT_MASK_COMP_GM_CUR)
  39632. #define BIT_SET_COMP_GM_CUR(x, v) \
  39633. (BIT_CLEAR_COMP_GM_CUR(x) | BIT_COMP_GM_CUR(v))
  39634. /* 2 REG_REGU_32K_2 (Offset 0x107C) */
  39635. #define BIT_SEL_RCAL_SOURCE BIT(16)
  39636. #define BIT_SHIFT_RCAL 0
  39637. #define BIT_MASK_RCAL 0x3f
  39638. #define BIT_RCAL(x) (((x) & BIT_MASK_RCAL) << BIT_SHIFT_RCAL)
  39639. #define BITS_RCAL (BIT_MASK_RCAL << BIT_SHIFT_RCAL)
  39640. #define BIT_CLEAR_RCAL(x) ((x) & (~BITS_RCAL))
  39641. #define BIT_GET_RCAL(x) (((x) >> BIT_SHIFT_RCAL) & BIT_MASK_RCAL)
  39642. #define BIT_SET_RCAL(x, v) (BIT_CLEAR_RCAL(x) | BIT_RCAL(v))
  39643. #endif
  39644. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  39645. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39646. #define BIT_SCH_PHY_TXOP_SIFS_INT BIT(23)
  39647. #endif
  39648. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  39649. HALMAC_8822C_SUPPORT)
  39650. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39651. #define BIT_WDT_AUTO_MODE BIT(22)
  39652. #define BIT_WDT_PLATFORM_EN BIT(21)
  39653. #define BIT_WDT_CPU_EN BIT(20)
  39654. #endif
  39655. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  39656. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  39657. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39658. #define BIT_WDT_OPT_IOWRAPPER BIT(19)
  39659. #endif
  39660. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  39661. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  39662. HALMAC_8822C_SUPPORT)
  39663. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39664. #define BIT_ANA_PORT_IDLE BIT(18)
  39665. #endif
  39666. #if (HALMAC_8192F_SUPPORT)
  39667. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39668. #define BIT_TEST_EPHY_BY_REG BIT(17)
  39669. #endif
  39670. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  39671. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  39672. HALMAC_8822C_SUPPORT)
  39673. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39674. #define BIT_MAC_PORT_IDLE BIT(17)
  39675. #endif
  39676. #if (HALMAC_8192F_SUPPORT)
  39677. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39678. #define BIT_SYM_FEN_WLPLT BIT(16)
  39679. #define BIT_TEST_UPHY_BY_REG BIT(16)
  39680. #endif
  39681. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  39682. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  39683. HALMAC_8822C_SUPPORT)
  39684. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39685. #define BIT_WL_PLATFORM_RST BIT(16)
  39686. #define BIT_WL_SECURITY_CLK BIT(15)
  39687. #endif
  39688. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  39689. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39690. #define BIT_DDMA_EN BIT(8)
  39691. #endif
  39692. #if (HALMAC_8192F_SUPPORT)
  39693. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39694. #define BIT_UPHY_SLB_HW_PRD BIT(7)
  39695. #define BIT_UPHY_FS_SLB_OK BIT(6)
  39696. #define BIT_UPHY_HS_SLB_OK BIT(5)
  39697. #define BIT_UPHY_SLB_CMD BIT(4)
  39698. #define BIT_UPHY_SLB_FAIL BIT(3)
  39699. #define BIT_UPHY_SLB_DONE BIT(2)
  39700. #define BIT_UPHY_FORCE_SLB BIT(1)
  39701. #define BIT_SHIFT_SYM_CPU_DMEN_CON 0
  39702. #define BIT_MASK_SYM_CPU_DMEN_CON 0xff
  39703. #define BIT_SYM_CPU_DMEN_CON(x) \
  39704. (((x) & BIT_MASK_SYM_CPU_DMEN_CON) << BIT_SHIFT_SYM_CPU_DMEN_CON)
  39705. #define BITS_SYM_CPU_DMEN_CON \
  39706. (BIT_MASK_SYM_CPU_DMEN_CON << BIT_SHIFT_SYM_CPU_DMEN_CON)
  39707. #define BIT_CLEAR_SYM_CPU_DMEN_CON(x) ((x) & (~BITS_SYM_CPU_DMEN_CON))
  39708. #define BIT_GET_SYM_CPU_DMEN_CON(x) \
  39709. (((x) >> BIT_SHIFT_SYM_CPU_DMEN_CON) & BIT_MASK_SYM_CPU_DMEN_CON)
  39710. #define BIT_SET_SYM_CPU_DMEN_CON(x, v) \
  39711. (BIT_CLEAR_SYM_CPU_DMEN_CON(x) | BIT_SYM_CPU_DMEN_CON(v))
  39712. #define BIT_SHIFT_BCAM_CTRL 0
  39713. #define BIT_MASK_BCAM_CTRL 0xffffffffL
  39714. #define BIT_BCAM_CTRL(x) (((x) & BIT_MASK_BCAM_CTRL) << BIT_SHIFT_BCAM_CTRL)
  39715. #define BITS_BCAM_CTRL (BIT_MASK_BCAM_CTRL << BIT_SHIFT_BCAM_CTRL)
  39716. #define BIT_CLEAR_BCAM_CTRL(x) ((x) & (~BITS_BCAM_CTRL))
  39717. #define BIT_GET_BCAM_CTRL(x) (((x) >> BIT_SHIFT_BCAM_CTRL) & BIT_MASK_BCAM_CTRL)
  39718. #define BIT_SET_BCAM_CTRL(x, v) (BIT_CLEAR_BCAM_CTRL(x) | BIT_BCAM_CTRL(v))
  39719. #define BIT_UPHY_SLB_HS BIT(0)
  39720. #endif
  39721. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  39722. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  39723. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  39724. /* 2 REG_CPU_DMEM_CON (Offset 0x1080) */
  39725. #define BIT_SHIFT_CPU_DMEM_CON 0
  39726. #define BIT_MASK_CPU_DMEM_CON 0xff
  39727. #define BIT_CPU_DMEM_CON(x) \
  39728. (((x) & BIT_MASK_CPU_DMEM_CON) << BIT_SHIFT_CPU_DMEM_CON)
  39729. #define BITS_CPU_DMEM_CON (BIT_MASK_CPU_DMEM_CON << BIT_SHIFT_CPU_DMEM_CON)
  39730. #define BIT_CLEAR_CPU_DMEM_CON(x) ((x) & (~BITS_CPU_DMEM_CON))
  39731. #define BIT_GET_CPU_DMEM_CON(x) \
  39732. (((x) >> BIT_SHIFT_CPU_DMEM_CON) & BIT_MASK_CPU_DMEM_CON)
  39733. #define BIT_SET_CPU_DMEM_CON(x, v) \
  39734. (BIT_CLEAR_CPU_DMEM_CON(x) | BIT_CPU_DMEM_CON(v))
  39735. #endif
  39736. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  39737. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  39738. /* 2 REG_BOOT_REASON (Offset 0x1088) */
  39739. #define BIT_SHIFT_BOOT_REASON_V1 0
  39740. #define BIT_MASK_BOOT_REASON_V1 0x7
  39741. #define BIT_BOOT_REASON_V1(x) \
  39742. (((x) & BIT_MASK_BOOT_REASON_V1) << BIT_SHIFT_BOOT_REASON_V1)
  39743. #define BITS_BOOT_REASON_V1 \
  39744. (BIT_MASK_BOOT_REASON_V1 << BIT_SHIFT_BOOT_REASON_V1)
  39745. #define BIT_CLEAR_BOOT_REASON_V1(x) ((x) & (~BITS_BOOT_REASON_V1))
  39746. #define BIT_GET_BOOT_REASON_V1(x) \
  39747. (((x) >> BIT_SHIFT_BOOT_REASON_V1) & BIT_MASK_BOOT_REASON_V1)
  39748. #define BIT_SET_BOOT_REASON_V1(x, v) \
  39749. (BIT_CLEAR_BOOT_REASON_V1(x) | BIT_BOOT_REASON_V1(v))
  39750. #endif
  39751. #if (HALMAC_8198F_SUPPORT)
  39752. /* 2 REG_HIMR4 (Offset 0x1090) */
  39753. #define BIT_ATIM_END_INT16_MSK BIT(32)
  39754. #define BIT_ATIM_END_INT15_MSK BIT(31)
  39755. #endif
  39756. #if (HALMAC_8814B_SUPPORT)
  39757. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39758. #define BIT_DATA_FW_READY BIT(31)
  39759. #endif
  39760. #if (HALMAC_8198F_SUPPORT)
  39761. /* 2 REG_HIMR4 (Offset 0x1090) */
  39762. #define BIT_ATIM_END_INT14_MSK BIT(30)
  39763. #define BIT_ATIM_END_INT13_MSK BIT(29)
  39764. #define BIT_ATIM_END_INT12_MSK BIT(28)
  39765. #define BIT_ATIM_END_INT11_MSK BIT(27)
  39766. #define BIT_ATIM_END_INT10_MSK BIT(26)
  39767. #define BIT_ATIM_END_INT9_MSK BIT(25)
  39768. #define BIT_ATIM_END_INT8_MSK BIT(24)
  39769. #define BIT_TX_BCN_ERR_INT15_MSK BIT(23)
  39770. #define BIT_TX_BCN_ERR_INT14_MSK BIT(22)
  39771. #define BIT_TX_BCN_ERR_INT13_MSK BIT(21)
  39772. #define BIT_TX_BCN_ERR_INT12_MSK BIT(20)
  39773. #define BIT_TX_BCN_ERR_INT11_MSK BIT(19)
  39774. #define BIT_TX_BCN_ERR_INT10_MSK BIT(18)
  39775. #define BIT_TX_BCN_ERR_INT9_MSK BIT(17)
  39776. #define BIT_TX_BCN_ERR_INT8_MSK BIT(16)
  39777. #define BIT_TX_BCN_OK_INT15_MSK BIT(15)
  39778. #define BIT_TX_BCN_OK_INT14_MSK BIT(14)
  39779. #define BIT_TX_BCN_OK_INT13_MSK BIT(13)
  39780. #endif
  39781. #if (HALMAC_8814B_SUPPORT)
  39782. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39783. #define BIT_WDT_SYS_RST BIT(13)
  39784. #endif
  39785. #if (HALMAC_8198F_SUPPORT)
  39786. /* 2 REG_HIMR4 (Offset 0x1090) */
  39787. #define BIT_TX_BCN_OK_INT12_MSK BIT(12)
  39788. #endif
  39789. #if (HALMAC_8814B_SUPPORT)
  39790. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39791. #define BIT_WDT_ENABLE BIT(12)
  39792. #endif
  39793. #if (HALMAC_8198F_SUPPORT)
  39794. /* 2 REG_HIMR4 (Offset 0x1090) */
  39795. #define BIT_TX_BCN_OK_INT11_MSK BIT(11)
  39796. #define BIT_TX_BCN_OK_INT10_MSK BIT(10)
  39797. #define BIT_TX_BCN_OK_INT9_MSK BIT(9)
  39798. #define BIT_TX_BCN_OK_INT8_MSK BIT(8)
  39799. #define BIT_BCN_DMA_INT15_MSK BIT(7)
  39800. #define BIT_BCN_DMA_INT14_MSK BIT(6)
  39801. #endif
  39802. #if (HALMAC_8814B_SUPPORT)
  39803. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39804. #define BIT_SHIFT_BOOT_SEL 6
  39805. #define BIT_MASK_BOOT_SEL 0x3
  39806. #define BIT_BOOT_SEL(x) (((x) & BIT_MASK_BOOT_SEL) << BIT_SHIFT_BOOT_SEL)
  39807. #define BITS_BOOT_SEL (BIT_MASK_BOOT_SEL << BIT_SHIFT_BOOT_SEL)
  39808. #define BIT_CLEAR_BOOT_SEL(x) ((x) & (~BITS_BOOT_SEL))
  39809. #define BIT_GET_BOOT_SEL(x) (((x) >> BIT_SHIFT_BOOT_SEL) & BIT_MASK_BOOT_SEL)
  39810. #define BIT_SET_BOOT_SEL(x, v) (BIT_CLEAR_BOOT_SEL(x) | BIT_BOOT_SEL(v))
  39811. #endif
  39812. #if (HALMAC_8198F_SUPPORT)
  39813. /* 2 REG_HIMR4 (Offset 0x1090) */
  39814. #define BIT_BCN_DMA_INT13_MSK BIT(5)
  39815. #define BIT_BCN_DMA_INT12_MSK BIT(4)
  39816. #endif
  39817. #if (HALMAC_8814B_SUPPORT)
  39818. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39819. #define BIT_CLK_SEL BIT(4)
  39820. #endif
  39821. #if (HALMAC_8198F_SUPPORT)
  39822. /* 2 REG_HIMR4 (Offset 0x1090) */
  39823. #define BIT_BCN_DMA_INT11_MSK BIT(3)
  39824. #define BIT_BCN_DMA_INT10_MSK BIT(2)
  39825. #define BIT_BCN_DMA_INT9_MSK BIT(1)
  39826. #endif
  39827. #if (HALMAC_8814B_SUPPORT)
  39828. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39829. #define BIT_DATA_PLATFORM_RST BIT(1)
  39830. #endif
  39831. #if (HALMAC_8198F_SUPPORT)
  39832. /* 2 REG_HIMR4 (Offset 0x1090) */
  39833. #define BIT_BCN_DMA_INT8_MSK BIT(0)
  39834. #endif
  39835. #if (HALMAC_8814B_SUPPORT)
  39836. /* 2 REG_DATA_CPU_CTL0 (Offset 0x1090) */
  39837. #define BIT_DATA_CPU_RST BIT(0)
  39838. #endif
  39839. #if (HALMAC_8198F_SUPPORT)
  39840. /* 2 REG_HISR4 (Offset 0x1094) */
  39841. #define BIT_TX_BCN_ERR_INT15 BIT(23)
  39842. #define BIT_TX_BCN_ERR_INT14 BIT(22)
  39843. #define BIT_TX_BCN_ERR_INT13 BIT(21)
  39844. #define BIT_TX_BCN_ERR_INT12 BIT(20)
  39845. #define BIT_TX_BCN_ERR_INT11 BIT(19)
  39846. #define BIT_TX_BCN_ERR_INT10 BIT(18)
  39847. #define BIT_TX_BCN_ERR_INT9 BIT(17)
  39848. #define BIT_TX_BCN_ERR_INT8 BIT(16)
  39849. #define BIT_TX_BCN_OK_INT15 BIT(15)
  39850. #define BIT_TX_BCN_OK_INT14 BIT(14)
  39851. #define BIT_TX_BCN_OK_INT13 BIT(13)
  39852. #define BIT_TX_BCN_OK_INT12 BIT(12)
  39853. #define BIT_TX_BCN_OK_INT11 BIT(11)
  39854. #define BIT_TX_BCN_OK_INT10 BIT(10)
  39855. #define BIT_TX_BCN_OK_INT9 BIT(9)
  39856. #define BIT_TX_BCN_OK_INT8 BIT(8)
  39857. #define BIT_BCN_DMA_INT15 BIT(7)
  39858. #endif
  39859. #if (HALMAC_8814B_SUPPORT)
  39860. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39861. #define BIT_HOST_INTERFACE_IO_PATH BIT(7)
  39862. #endif
  39863. #if (HALMAC_8198F_SUPPORT)
  39864. /* 2 REG_HISR4 (Offset 0x1094) */
  39865. #define BIT_BCN_DMA_INT14 BIT(6)
  39866. #endif
  39867. #if (HALMAC_8814B_SUPPORT)
  39868. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39869. #define BIT_EN_TXDMA_OFLD BIT(6)
  39870. #endif
  39871. #if (HALMAC_8198F_SUPPORT)
  39872. /* 2 REG_HISR4 (Offset 0x1094) */
  39873. #define BIT_BCN_DMA_INT13 BIT(5)
  39874. #endif
  39875. #if (HALMAC_8814B_SUPPORT)
  39876. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39877. #define BIT_EN_RXDMA_OFLD BIT(5)
  39878. #endif
  39879. #if (HALMAC_8198F_SUPPORT)
  39880. /* 2 REG_HISR4 (Offset 0x1094) */
  39881. #define BIT_BCN_DMA_INT12 BIT(4)
  39882. #endif
  39883. #if (HALMAC_8814B_SUPPORT)
  39884. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39885. #define BIT_EN_HCI_DMA_TX BIT(4)
  39886. #endif
  39887. #if (HALMAC_8198F_SUPPORT)
  39888. /* 2 REG_HISR4 (Offset 0x1094) */
  39889. #define BIT_BCN_DMA_INT11 BIT(3)
  39890. #endif
  39891. #if (HALMAC_8814B_SUPPORT)
  39892. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39893. #define BIT_EN_HCI_DMA_RX BIT(3)
  39894. #endif
  39895. #if (HALMAC_8198F_SUPPORT)
  39896. /* 2 REG_HISR4 (Offset 0x1094) */
  39897. #define BIT_BCN_DMA_INT10 BIT(2)
  39898. #endif
  39899. #if (HALMAC_8814B_SUPPORT)
  39900. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39901. #define BIT_EN_AXI_DMA_TX BIT(2)
  39902. #endif
  39903. #if (HALMAC_8198F_SUPPORT)
  39904. /* 2 REG_HISR4 (Offset 0x1094) */
  39905. #define BIT_BCN_DMA_INT9 BIT(1)
  39906. #endif
  39907. #if (HALMAC_8814B_SUPPORT)
  39908. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39909. #define BIT_EN_AXI_DMA_RX BIT(1)
  39910. #endif
  39911. #if (HALMAC_8198F_SUPPORT)
  39912. /* 2 REG_HISR4 (Offset 0x1094) */
  39913. #define BIT_BCN_DMA_INT8 BIT(0)
  39914. #endif
  39915. #if (HALMAC_8814B_SUPPORT)
  39916. /* 2 REG_DATA_CPU_CTL1 (Offset 0x1094) */
  39917. #define BIT_EN_PKT_ENG BIT(0)
  39918. #endif
  39919. #if (HALMAC_8198F_SUPPORT)
  39920. /* 2 REG_HIMR5 (Offset 0x1098) */
  39921. #define BIT_BCN_QDMA_ERR_INT15_MSK BIT(7)
  39922. #define BIT_BCN_QDMA_ERR_INT14_MSK BIT(6)
  39923. #define BIT_BCN_QDMA_ERR_INT13_MSK BIT(5)
  39924. #define BIT_BCN_QDMA_ERR_INT12_MSK BIT(4)
  39925. #define BIT_BCN_QDMA_ERR_INT11_MSK BIT(3)
  39926. #define BIT_BCN_QDMA_ERR_INT10_MSK BIT(2)
  39927. #define BIT_BCN_QDMA_ERR_INT9_MSK BIT(1)
  39928. #define BIT_BCN_QDMA_ERR_INT8_MSK BIT(0)
  39929. #endif
  39930. #if (HALMAC_8814B_SUPPORT)
  39931. /* 2 REG_TXDMA_STOP_HIMR (Offset 0x1098) */
  39932. #define BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK 0
  39933. #define BIT_MASK_NTH_TXDMA_STOP_INT_MSK 0x1ffff
  39934. #define BIT_NTH_TXDMA_STOP_INT_MSK(x) \
  39935. (((x) & BIT_MASK_NTH_TXDMA_STOP_INT_MSK) \
  39936. << BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK)
  39937. #define BITS_NTH_TXDMA_STOP_INT_MSK \
  39938. (BIT_MASK_NTH_TXDMA_STOP_INT_MSK << BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK)
  39939. #define BIT_CLEAR_NTH_TXDMA_STOP_INT_MSK(x) \
  39940. ((x) & (~BITS_NTH_TXDMA_STOP_INT_MSK))
  39941. #define BIT_GET_NTH_TXDMA_STOP_INT_MSK(x) \
  39942. (((x) >> BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK) & \
  39943. BIT_MASK_NTH_TXDMA_STOP_INT_MSK)
  39944. #define BIT_SET_NTH_TXDMA_STOP_INT_MSK(x, v) \
  39945. (BIT_CLEAR_NTH_TXDMA_STOP_INT_MSK(x) | BIT_NTH_TXDMA_STOP_INT_MSK(v))
  39946. #endif
  39947. #if (HALMAC_8198F_SUPPORT)
  39948. /* 2 REG_HISR5 (Offset 0x109C) */
  39949. #define BIT_BCN_QDMA_ERR_INT15 BIT(7)
  39950. #define BIT_BCN_QDMA_ERR_INT14 BIT(6)
  39951. #define BIT_BCN_QDMA_ERR_INT13 BIT(5)
  39952. #define BIT_BCN_QDMA_ERR_INT12 BIT(4)
  39953. #define BIT_BCN_QDMA_ERR_INT11 BIT(3)
  39954. #define BIT_BCN_QDMA_ERR_INT10 BIT(2)
  39955. #define BIT_BCN_QDMA_ERR_INT9 BIT(1)
  39956. #define BIT_BCN_QDMA_ERR_INT8 BIT(0)
  39957. #endif
  39958. #if (HALMAC_8814B_SUPPORT)
  39959. /* 2 REG_TXDMA_STOP_HISR (Offset 0x109C) */
  39960. #define BIT_SHIFT_NTH_TXDMA_STOP_INT 0
  39961. #define BIT_MASK_NTH_TXDMA_STOP_INT 0x1ffff
  39962. #define BIT_NTH_TXDMA_STOP_INT(x) \
  39963. (((x) & BIT_MASK_NTH_TXDMA_STOP_INT) << BIT_SHIFT_NTH_TXDMA_STOP_INT)
  39964. #define BITS_NTH_TXDMA_STOP_INT \
  39965. (BIT_MASK_NTH_TXDMA_STOP_INT << BIT_SHIFT_NTH_TXDMA_STOP_INT)
  39966. #define BIT_CLEAR_NTH_TXDMA_STOP_INT(x) ((x) & (~BITS_NTH_TXDMA_STOP_INT))
  39967. #define BIT_GET_NTH_TXDMA_STOP_INT(x) \
  39968. (((x) >> BIT_SHIFT_NTH_TXDMA_STOP_INT) & BIT_MASK_NTH_TXDMA_STOP_INT)
  39969. #define BIT_SET_NTH_TXDMA_STOP_INT(x, v) \
  39970. (BIT_CLEAR_NTH_TXDMA_STOP_INT(x) | BIT_NTH_TXDMA_STOP_INT(v))
  39971. /* 2 REG_TXDMA_START_HIMR (Offset 0x10A0) */
  39972. #define BIT_SHIFT_NTH_TXDMA_START_INT_MSK 0
  39973. #define BIT_MASK_NTH_TXDMA_START_INT_MSK 0x1ffff
  39974. #define BIT_NTH_TXDMA_START_INT_MSK(x) \
  39975. (((x) & BIT_MASK_NTH_TXDMA_START_INT_MSK) \
  39976. << BIT_SHIFT_NTH_TXDMA_START_INT_MSK)
  39977. #define BITS_NTH_TXDMA_START_INT_MSK \
  39978. (BIT_MASK_NTH_TXDMA_START_INT_MSK << BIT_SHIFT_NTH_TXDMA_START_INT_MSK)
  39979. #define BIT_CLEAR_NTH_TXDMA_START_INT_MSK(x) \
  39980. ((x) & (~BITS_NTH_TXDMA_START_INT_MSK))
  39981. #define BIT_GET_NTH_TXDMA_START_INT_MSK(x) \
  39982. (((x) >> BIT_SHIFT_NTH_TXDMA_START_INT_MSK) & \
  39983. BIT_MASK_NTH_TXDMA_START_INT_MSK)
  39984. #define BIT_SET_NTH_TXDMA_START_INT_MSK(x, v) \
  39985. (BIT_CLEAR_NTH_TXDMA_START_INT_MSK(x) | BIT_NTH_TXDMA_START_INT_MSK(v))
  39986. /* 2 REG_TXDMA_START_HISR (Offset 0x10A4) */
  39987. #define BIT_SHIFT_NTH_TXDMA_START_INT 0
  39988. #define BIT_MASK_NTH_TXDMA_START_INT 0x1ffff
  39989. #define BIT_NTH_TXDMA_START_INT(x) \
  39990. (((x) & BIT_MASK_NTH_TXDMA_START_INT) << BIT_SHIFT_NTH_TXDMA_START_INT)
  39991. #define BITS_NTH_TXDMA_START_INT \
  39992. (BIT_MASK_NTH_TXDMA_START_INT << BIT_SHIFT_NTH_TXDMA_START_INT)
  39993. #define BIT_CLEAR_NTH_TXDMA_START_INT(x) ((x) & (~BITS_NTH_TXDMA_START_INT))
  39994. #define BIT_GET_NTH_TXDMA_START_INT(x) \
  39995. (((x) >> BIT_SHIFT_NTH_TXDMA_START_INT) & BIT_MASK_NTH_TXDMA_START_INT)
  39996. #define BIT_SET_NTH_TXDMA_START_INT(x, v) \
  39997. (BIT_CLEAR_NTH_TXDMA_START_INT(x) | BIT_NTH_TXDMA_START_INT(v))
  39998. #endif
  39999. #if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  40000. /* 2 REG_NFCPAD_CTRL (Offset 0x10A8) */
  40001. #define BIT_PAD_SHUTDW BIT(18)
  40002. #define BIT_SYSON_NFC_PAD BIT(17)
  40003. #define BIT_NFC_INT_PAD_CTRL BIT(16)
  40004. #define BIT_NFC_RFDIS_PAD_CTRL BIT(15)
  40005. #define BIT_NFC_CLK_PAD_CTRL BIT(14)
  40006. #define BIT_NFC_DATA_PAD_CTRL BIT(13)
  40007. #define BIT_NFC_PAD_PULL_CTRL BIT(12)
  40008. #define BIT_SHIFT_NFCPAD_IO_SEL 8
  40009. #define BIT_MASK_NFCPAD_IO_SEL 0xf
  40010. #define BIT_NFCPAD_IO_SEL(x) \
  40011. (((x) & BIT_MASK_NFCPAD_IO_SEL) << BIT_SHIFT_NFCPAD_IO_SEL)
  40012. #define BITS_NFCPAD_IO_SEL (BIT_MASK_NFCPAD_IO_SEL << BIT_SHIFT_NFCPAD_IO_SEL)
  40013. #define BIT_CLEAR_NFCPAD_IO_SEL(x) ((x) & (~BITS_NFCPAD_IO_SEL))
  40014. #define BIT_GET_NFCPAD_IO_SEL(x) \
  40015. (((x) >> BIT_SHIFT_NFCPAD_IO_SEL) & BIT_MASK_NFCPAD_IO_SEL)
  40016. #define BIT_SET_NFCPAD_IO_SEL(x, v) \
  40017. (BIT_CLEAR_NFCPAD_IO_SEL(x) | BIT_NFCPAD_IO_SEL(v))
  40018. #define BIT_SHIFT_NFCPAD_OUT 4
  40019. #define BIT_MASK_NFCPAD_OUT 0xf
  40020. #define BIT_NFCPAD_OUT(x) (((x) & BIT_MASK_NFCPAD_OUT) << BIT_SHIFT_NFCPAD_OUT)
  40021. #define BITS_NFCPAD_OUT (BIT_MASK_NFCPAD_OUT << BIT_SHIFT_NFCPAD_OUT)
  40022. #define BIT_CLEAR_NFCPAD_OUT(x) ((x) & (~BITS_NFCPAD_OUT))
  40023. #define BIT_GET_NFCPAD_OUT(x) \
  40024. (((x) >> BIT_SHIFT_NFCPAD_OUT) & BIT_MASK_NFCPAD_OUT)
  40025. #define BIT_SET_NFCPAD_OUT(x, v) (BIT_CLEAR_NFCPAD_OUT(x) | BIT_NFCPAD_OUT(v))
  40026. #define BIT_SHIFT_NFCPAD_IN 0
  40027. #define BIT_MASK_NFCPAD_IN 0xf
  40028. #define BIT_NFCPAD_IN(x) (((x) & BIT_MASK_NFCPAD_IN) << BIT_SHIFT_NFCPAD_IN)
  40029. #define BITS_NFCPAD_IN (BIT_MASK_NFCPAD_IN << BIT_SHIFT_NFCPAD_IN)
  40030. #define BIT_CLEAR_NFCPAD_IN(x) ((x) & (~BITS_NFCPAD_IN))
  40031. #define BIT_GET_NFCPAD_IN(x) (((x) >> BIT_SHIFT_NFCPAD_IN) & BIT_MASK_NFCPAD_IN)
  40032. #define BIT_SET_NFCPAD_IN(x, v) (BIT_CLEAR_NFCPAD_IN(x) | BIT_NFCPAD_IN(v))
  40033. #endif
  40034. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40035. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40036. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40037. HALMAC_8822C_SUPPORT)
  40038. /* 2 REG_HIMR2 (Offset 0x10B0) */
  40039. #define BIT_BCNDMAINT_P4_MSK BIT(31)
  40040. #define BIT_BCNDMAINT_P4 BIT(31)
  40041. #define BIT_BCNDMAINT_P3_MSK BIT(30)
  40042. #define BIT_BCNDMAINT_P3 BIT(30)
  40043. #define BIT_BCNDMAINT_P2_MSK BIT(29)
  40044. #define BIT_BCNDMAINT_P2 BIT(29)
  40045. #define BIT_BCNDMAINT_P1_MSK BIT(28)
  40046. #define BIT_BCNDMAINT_P1 BIT(28)
  40047. #endif
  40048. #if (HALMAC_8814B_SUPPORT)
  40049. /* 2 REG_HIMR2 (Offset 0x10B0) */
  40050. #define BIT_SCH_PHY_TXOP_SIFS_INT_MSK BIT(23)
  40051. #endif
  40052. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40053. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40054. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40055. HALMAC_8822C_SUPPORT)
  40056. /* 2 REG_HIMR2 (Offset 0x10B0) */
  40057. #define BIT_ATIMEND7_MSK BIT(22)
  40058. #define BIT_ATIMEND7 BIT(22)
  40059. #define BIT_ATIMEND6_MSK BIT(21)
  40060. #define BIT_ATIMEND6 BIT(21)
  40061. #define BIT_ATIMEND5_MSK BIT(20)
  40062. #define BIT_ATIMEND5 BIT(20)
  40063. #define BIT_ATIMEND4_MSK BIT(19)
  40064. #define BIT_ATIMEND4 BIT(19)
  40065. #define BIT_ATIMEND3_MSK BIT(18)
  40066. #define BIT_ATIMEND3 BIT(18)
  40067. #define BIT_ATIMEND2_MSK BIT(17)
  40068. #define BIT_ATIMEND2 BIT(17)
  40069. #define BIT_ATIMEND1_MSK BIT(16)
  40070. #define BIT_ATIMEND1 BIT(16)
  40071. #define BIT_TXBCN7OK_MSK BIT(14)
  40072. #define BIT_TXBCN7OK BIT(14)
  40073. #define BIT_TXBCN6OK_MSK BIT(13)
  40074. #define BIT_TXBCN6OK BIT(13)
  40075. #define BIT_TXBCN5OK_MSK BIT(12)
  40076. #define BIT_TXBCN5OK BIT(12)
  40077. #define BIT_TXBCN4OK_MSK BIT(11)
  40078. #define BIT_TXBCN4OK BIT(11)
  40079. #define BIT_TXBCN3OK_MSK BIT(10)
  40080. #define BIT_TXBCN3OK BIT(10)
  40081. #define BIT_TXBCN2OK_MSK BIT(9)
  40082. #define BIT_TXBCN2OK BIT(9)
  40083. #define BIT_TXBCN1OK_MSK_V1 BIT(8)
  40084. #define BIT_TXBCN1OK BIT(8)
  40085. #define BIT_TXBCN7ERR_MSK BIT(6)
  40086. #define BIT_TXBCN7ERR BIT(6)
  40087. #define BIT_TXBCN6ERR_MSK BIT(5)
  40088. #define BIT_TXBCN6ERR BIT(5)
  40089. #define BIT_TXBCN5ERR_MSK BIT(4)
  40090. #define BIT_TXBCN5ERR BIT(4)
  40091. #define BIT_TXBCN4ERR_MSK BIT(3)
  40092. #define BIT_TXBCN4ERR BIT(3)
  40093. #define BIT_TXBCN3ERR_MSK BIT(2)
  40094. #define BIT_TXBCN3ERR BIT(2)
  40095. #define BIT_TXBCN2ERR_MSK BIT(1)
  40096. #define BIT_TXBCN2ERR BIT(1)
  40097. #define BIT_TXBCN1ERR_MSK_V1 BIT(0)
  40098. #define BIT_TXBCN1ERR BIT(0)
  40099. #endif
  40100. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40101. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40102. #define BIT_GTINT12 BIT(24)
  40103. #endif
  40104. #if (HALMAC_8814B_SUPPORT)
  40105. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40106. #define BIT_GTINT12_MSK BIT(24)
  40107. #endif
  40108. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40109. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40110. #define BIT_GTINT11 BIT(23)
  40111. #endif
  40112. #if (HALMAC_8814B_SUPPORT)
  40113. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40114. #define BIT_GTINT11_MSK BIT(23)
  40115. #endif
  40116. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40117. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40118. #define BIT_GTINT10 BIT(22)
  40119. #endif
  40120. #if (HALMAC_8814B_SUPPORT)
  40121. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40122. #define BIT_GTINT10_MSK BIT(22)
  40123. #endif
  40124. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40125. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40126. #define BIT_GTINT9 BIT(21)
  40127. #endif
  40128. #if (HALMAC_8814B_SUPPORT)
  40129. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40130. #define BIT_GTINT9_MSK BIT(21)
  40131. #endif
  40132. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40133. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40134. #define BIT_RX_DESC_BUF_FULL BIT(20)
  40135. #endif
  40136. #if (HALMAC_8814B_SUPPORT)
  40137. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40138. #define BIT_RX_DESC_BUF_FULL_MSK BIT(20)
  40139. #endif
  40140. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40141. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40142. #define BIT_CPHY_LDO_OCP_DET_INT BIT(19)
  40143. #endif
  40144. #if (HALMAC_8814B_SUPPORT)
  40145. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40146. #define BIT_CPHY_LDO_OCP_DET_INT_MSK BIT(19)
  40147. #endif
  40148. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40149. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40150. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40151. #define BIT_WDT_PLATFORM_INT_MSK BIT(18)
  40152. #define BIT_WDT_PLATFORM_INT BIT(18)
  40153. #define BIT_WDT_CPU_INT_MSK BIT(17)
  40154. #define BIT_WDT_CPU_INT BIT(17)
  40155. #endif
  40156. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40157. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40158. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40159. HALMAC_8822C_SUPPORT)
  40160. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40161. #define BIT_SETH2CDOK_MASK BIT(16)
  40162. #define BIT_SETH2CDOK BIT(16)
  40163. #define BIT_H2C_CMD_FULL_MASK BIT(15)
  40164. #define BIT_H2C_CMD_FULL BIT(15)
  40165. #endif
  40166. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40167. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40168. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40169. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40170. #define BIT_PWR_INT_127_MASK BIT(14)
  40171. #endif
  40172. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40173. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40174. #define BIT_PKT_TRANS_ERR BIT(14)
  40175. #endif
  40176. #if (HALMAC_8814B_SUPPORT)
  40177. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40178. #define BIT_PKT_TRANS_ERR_MASK BIT(14)
  40179. #endif
  40180. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40181. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40182. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40183. HALMAC_8822C_SUPPORT)
  40184. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40185. #define BIT_TXSHORTCUT_TXDESUPDATEOK_MASK BIT(13)
  40186. #define BIT_TXSHORTCUT_TXDESUPDATEOK BIT(13)
  40187. #define BIT_TXSHORTCUT_BKUPDATEOK_MASK BIT(12)
  40188. #define BIT_TXSHORTCUT_BKUPDATEOK BIT(12)
  40189. #define BIT_TXSHORTCUT_BEUPDATEOK_MASK BIT(11)
  40190. #define BIT_TXSHORTCUT_BEUPDATEOK BIT(11)
  40191. #define BIT_TXSHORTCUT_VIUPDATEOK_MAS BIT(10)
  40192. #define BIT_TXSHORTCUT_VIUPDATEOK BIT(10)
  40193. #define BIT_TXSHORTCUT_VOUPDATEOK_MASK BIT(9)
  40194. #define BIT_TXSHORTCUT_VOUPDATEOK BIT(9)
  40195. #endif
  40196. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40197. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40198. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40199. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40200. #define BIT_PWR_INT_127_MASK_V1 BIT(8)
  40201. #endif
  40202. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40203. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40204. #define BIT_SEARCH_FAIL BIT(8)
  40205. #endif
  40206. #if (HALMAC_8814B_SUPPORT)
  40207. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40208. #define BIT_SEARCH_FAIL_MSK BIT(8)
  40209. #endif
  40210. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40211. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40212. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40213. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40214. #define BIT_PWR_INT_126TO96_MASK BIT(7)
  40215. #endif
  40216. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40217. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40218. #define BIT_PWR_INT_127TO96 BIT(7)
  40219. #endif
  40220. #if (HALMAC_8814B_SUPPORT)
  40221. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40222. #define BIT_PWR_INT_127TO96_MASK BIT(7)
  40223. #endif
  40224. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40225. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40226. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40227. HALMAC_8822C_SUPPORT)
  40228. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40229. #define BIT_PWR_INT_95TO64_MASK BIT(6)
  40230. #define BIT_PWR_INT_95TO64 BIT(6)
  40231. #define BIT_PWR_INT_63TO32_MASK BIT(5)
  40232. #define BIT_PWR_INT_63TO32 BIT(5)
  40233. #define BIT_PWR_INT_31TO0_MASK BIT(4)
  40234. #define BIT_PWR_INT_31TO0 BIT(4)
  40235. #endif
  40236. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  40237. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40238. #define BIT_RX_DMA_STUCK_MSK BIT(3)
  40239. #define BIT_RX_DMA_STUCK BIT(3)
  40240. #define BIT_TX_DMA_STUCK_MSK BIT(2)
  40241. #define BIT_TX_DMA_STUCK BIT(2)
  40242. #endif
  40243. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40244. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40245. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40246. HALMAC_8822C_SUPPORT)
  40247. /* 2 REG_HIMR3 (Offset 0x10B8) */
  40248. #define BIT_DDMA0_LP_INT_MSK BIT(1)
  40249. #define BIT_DDMA0_LP_INT BIT(1)
  40250. #define BIT_DDMA0_HP_INT_MSK BIT(0)
  40251. #define BIT_DDMA0_HP_INT BIT(0)
  40252. #endif
  40253. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40254. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40255. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40256. /* 2 REG_HISR3 (Offset 0x10BC) */
  40257. #define BIT_PWR_INT_127 BIT(14)
  40258. #define BIT_PWR_INT_127_V1 BIT(8)
  40259. #define BIT_PWR_INT_126TO96 BIT(7)
  40260. #define BIT_ECRC_EN_V1 BIT(7)
  40261. #define BIT_MDIO_RFLAG_V1 BIT(6)
  40262. #define BIT_MDIO_WFLAG_V1 BIT(5)
  40263. #endif
  40264. #if (HALMAC_8192F_SUPPORT)
  40265. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40266. #define BIT_WLDSS_RST_N_0 BIT(27)
  40267. #define BIT_WLDSS_RST_N_1 BIT(27)
  40268. #define BIT_WLDSS_RST_N_2 BIT(27)
  40269. #define BIT_WLDSS_ENCLK_0 BIT(26)
  40270. #define BIT_WLDSS_ENCLK_1 BIT(26)
  40271. #define BIT_WLDSS_ENCLK_2 BIT(26)
  40272. #define BIT_WLDSS_SPEED_EN_0 BIT(25)
  40273. #define BIT_WLDSS_SPEED_EN_1 BIT(25)
  40274. #define BIT_WLDSS_SPEED_EN_2 BIT(25)
  40275. #define BIT_WLDSS_WIRE_SEL_0 BIT(24)
  40276. #define BIT_WLDSS_WIRE_SEL_1 BIT(24)
  40277. #define BIT_WLDSS_WIRE_SEL_2 BIT(24)
  40278. #endif
  40279. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40280. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40281. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40282. #define BIT_DIS_TIMEOUT_IO BIT(24)
  40283. #endif
  40284. #if (HALMAC_8192F_SUPPORT)
  40285. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40286. #define BIT_WLDSS_READY_0 BIT(21)
  40287. #define BIT_WLDSS_READY_1 BIT(21)
  40288. #define BIT_WLDSS_READY_2 BIT(21)
  40289. #define BIT_SHIFT_WLDSS_RO_SEL_0 20
  40290. #define BIT_MASK_WLDSS_RO_SEL_0 0x7
  40291. #define BIT_WLDSS_RO_SEL_0(x) \
  40292. (((x) & BIT_MASK_WLDSS_RO_SEL_0) << BIT_SHIFT_WLDSS_RO_SEL_0)
  40293. #define BITS_WLDSS_RO_SEL_0 \
  40294. (BIT_MASK_WLDSS_RO_SEL_0 << BIT_SHIFT_WLDSS_RO_SEL_0)
  40295. #define BIT_CLEAR_WLDSS_RO_SEL_0(x) ((x) & (~BITS_WLDSS_RO_SEL_0))
  40296. #define BIT_GET_WLDSS_RO_SEL_0(x) \
  40297. (((x) >> BIT_SHIFT_WLDSS_RO_SEL_0) & BIT_MASK_WLDSS_RO_SEL_0)
  40298. #define BIT_SET_WLDSS_RO_SEL_0(x, v) \
  40299. (BIT_CLEAR_WLDSS_RO_SEL_0(x) | BIT_WLDSS_RO_SEL_0(v))
  40300. #define BIT_WLDSS_WSORT_GO_0 BIT(20)
  40301. #define BIT_SHIFT_WLDSS_RO_SEL_1 20
  40302. #define BIT_MASK_WLDSS_RO_SEL_1 0x7
  40303. #define BIT_WLDSS_RO_SEL_1(x) \
  40304. (((x) & BIT_MASK_WLDSS_RO_SEL_1) << BIT_SHIFT_WLDSS_RO_SEL_1)
  40305. #define BITS_WLDSS_RO_SEL_1 \
  40306. (BIT_MASK_WLDSS_RO_SEL_1 << BIT_SHIFT_WLDSS_RO_SEL_1)
  40307. #define BIT_CLEAR_WLDSS_RO_SEL_1(x) ((x) & (~BITS_WLDSS_RO_SEL_1))
  40308. #define BIT_GET_WLDSS_RO_SEL_1(x) \
  40309. (((x) >> BIT_SHIFT_WLDSS_RO_SEL_1) & BIT_MASK_WLDSS_RO_SEL_1)
  40310. #define BIT_SET_WLDSS_RO_SEL_1(x, v) \
  40311. (BIT_CLEAR_WLDSS_RO_SEL_1(x) | BIT_WLDSS_RO_SEL_1(v))
  40312. #define BIT_WLDSS_WSORT_GO_1 BIT(20)
  40313. #define BIT_SHIFT_WLDSS_RO_SEL_2 20
  40314. #define BIT_MASK_WLDSS_RO_SEL_2 0x7
  40315. #define BIT_WLDSS_RO_SEL_2(x) \
  40316. (((x) & BIT_MASK_WLDSS_RO_SEL_2) << BIT_SHIFT_WLDSS_RO_SEL_2)
  40317. #define BITS_WLDSS_RO_SEL_2 \
  40318. (BIT_MASK_WLDSS_RO_SEL_2 << BIT_SHIFT_WLDSS_RO_SEL_2)
  40319. #define BIT_CLEAR_WLDSS_RO_SEL_2(x) ((x) & (~BITS_WLDSS_RO_SEL_2))
  40320. #define BIT_GET_WLDSS_RO_SEL_2(x) \
  40321. (((x) >> BIT_SHIFT_WLDSS_RO_SEL_2) & BIT_MASK_WLDSS_RO_SEL_2)
  40322. #define BIT_SET_WLDSS_RO_SEL_2(x, v) \
  40323. (BIT_CLEAR_WLDSS_RO_SEL_2(x) | BIT_WLDSS_RO_SEL_2(v))
  40324. #define BIT_WLDSS_WSORT_GO_2 BIT(20)
  40325. #endif
  40326. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  40327. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40328. #define BIT_SUS_PL BIT(18)
  40329. #define BIT_SOP_ESUS BIT(17)
  40330. #define BIT_SOP_DLDO BIT(16)
  40331. #define BIT_R_OCP_ST_CLR BIT(8)
  40332. #define BIT_SW_USB3_MD_SEL BIT(5)
  40333. #define BIT_SW_PCIE_MD_SEL BIT(4)
  40334. #endif
  40335. #if (HALMAC_8192F_SUPPORT)
  40336. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40337. #define BIT_SYM_SW_PCIE_MDSL BIT(3)
  40338. #define BIT_SYM_SW_PCIE_MDCK BIT(2)
  40339. #endif
  40340. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  40341. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40342. #define BIT_SW_MDCK BIT(2)
  40343. #endif
  40344. #if (HALMAC_8192F_SUPPORT)
  40345. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40346. #define BIT_SYM_SW_PCIE_MDI BIT(1)
  40347. #endif
  40348. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  40349. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40350. #define BIT_SW_MDI BIT(1)
  40351. #endif
  40352. #if (HALMAC_8192F_SUPPORT)
  40353. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40354. #define BIT_SYM_SW_PCIE_MDO BIT(0)
  40355. #define BIT_SHIFT_WLDSS_DATA_IN_0 0
  40356. #define BIT_MASK_WLDSS_DATA_IN_0 0xfffff
  40357. #define BIT_WLDSS_DATA_IN_0(x) \
  40358. (((x) & BIT_MASK_WLDSS_DATA_IN_0) << BIT_SHIFT_WLDSS_DATA_IN_0)
  40359. #define BITS_WLDSS_DATA_IN_0 \
  40360. (BIT_MASK_WLDSS_DATA_IN_0 << BIT_SHIFT_WLDSS_DATA_IN_0)
  40361. #define BIT_CLEAR_WLDSS_DATA_IN_0(x) ((x) & (~BITS_WLDSS_DATA_IN_0))
  40362. #define BIT_GET_WLDSS_DATA_IN_0(x) \
  40363. (((x) >> BIT_SHIFT_WLDSS_DATA_IN_0) & BIT_MASK_WLDSS_DATA_IN_0)
  40364. #define BIT_SET_WLDSS_DATA_IN_0(x, v) \
  40365. (BIT_CLEAR_WLDSS_DATA_IN_0(x) | BIT_WLDSS_DATA_IN_0(v))
  40366. #define BIT_SHIFT_WLDSS_COUNT_OUT_0 0
  40367. #define BIT_MASK_WLDSS_COUNT_OUT_0 0xfffff
  40368. #define BIT_WLDSS_COUNT_OUT_0(x) \
  40369. (((x) & BIT_MASK_WLDSS_COUNT_OUT_0) << BIT_SHIFT_WLDSS_COUNT_OUT_0)
  40370. #define BITS_WLDSS_COUNT_OUT_0 \
  40371. (BIT_MASK_WLDSS_COUNT_OUT_0 << BIT_SHIFT_WLDSS_COUNT_OUT_0)
  40372. #define BIT_CLEAR_WLDSS_COUNT_OUT_0(x) ((x) & (~BITS_WLDSS_COUNT_OUT_0))
  40373. #define BIT_GET_WLDSS_COUNT_OUT_0(x) \
  40374. (((x) >> BIT_SHIFT_WLDSS_COUNT_OUT_0) & BIT_MASK_WLDSS_COUNT_OUT_0)
  40375. #define BIT_SET_WLDSS_COUNT_OUT_0(x, v) \
  40376. (BIT_CLEAR_WLDSS_COUNT_OUT_0(x) | BIT_WLDSS_COUNT_OUT_0(v))
  40377. #define BIT_SHIFT_WLDSS_DATA_IN_1 0
  40378. #define BIT_MASK_WLDSS_DATA_IN_1 0xfffff
  40379. #define BIT_WLDSS_DATA_IN_1(x) \
  40380. (((x) & BIT_MASK_WLDSS_DATA_IN_1) << BIT_SHIFT_WLDSS_DATA_IN_1)
  40381. #define BITS_WLDSS_DATA_IN_1 \
  40382. (BIT_MASK_WLDSS_DATA_IN_1 << BIT_SHIFT_WLDSS_DATA_IN_1)
  40383. #define BIT_CLEAR_WLDSS_DATA_IN_1(x) ((x) & (~BITS_WLDSS_DATA_IN_1))
  40384. #define BIT_GET_WLDSS_DATA_IN_1(x) \
  40385. (((x) >> BIT_SHIFT_WLDSS_DATA_IN_1) & BIT_MASK_WLDSS_DATA_IN_1)
  40386. #define BIT_SET_WLDSS_DATA_IN_1(x, v) \
  40387. (BIT_CLEAR_WLDSS_DATA_IN_1(x) | BIT_WLDSS_DATA_IN_1(v))
  40388. #define BIT_SHIFT_WLDSS_COUNT_OUT_1 0
  40389. #define BIT_MASK_WLDSS_COUNT_OUT_1 0xfffff
  40390. #define BIT_WLDSS_COUNT_OUT_1(x) \
  40391. (((x) & BIT_MASK_WLDSS_COUNT_OUT_1) << BIT_SHIFT_WLDSS_COUNT_OUT_1)
  40392. #define BITS_WLDSS_COUNT_OUT_1 \
  40393. (BIT_MASK_WLDSS_COUNT_OUT_1 << BIT_SHIFT_WLDSS_COUNT_OUT_1)
  40394. #define BIT_CLEAR_WLDSS_COUNT_OUT_1(x) ((x) & (~BITS_WLDSS_COUNT_OUT_1))
  40395. #define BIT_GET_WLDSS_COUNT_OUT_1(x) \
  40396. (((x) >> BIT_SHIFT_WLDSS_COUNT_OUT_1) & BIT_MASK_WLDSS_COUNT_OUT_1)
  40397. #define BIT_SET_WLDSS_COUNT_OUT_1(x, v) \
  40398. (BIT_CLEAR_WLDSS_COUNT_OUT_1(x) | BIT_WLDSS_COUNT_OUT_1(v))
  40399. #define BIT_SHIFT_WLDSS_DATA_IN_2 0
  40400. #define BIT_MASK_WLDSS_DATA_IN_2 0xfffff
  40401. #define BIT_WLDSS_DATA_IN_2(x) \
  40402. (((x) & BIT_MASK_WLDSS_DATA_IN_2) << BIT_SHIFT_WLDSS_DATA_IN_2)
  40403. #define BITS_WLDSS_DATA_IN_2 \
  40404. (BIT_MASK_WLDSS_DATA_IN_2 << BIT_SHIFT_WLDSS_DATA_IN_2)
  40405. #define BIT_CLEAR_WLDSS_DATA_IN_2(x) ((x) & (~BITS_WLDSS_DATA_IN_2))
  40406. #define BIT_GET_WLDSS_DATA_IN_2(x) \
  40407. (((x) >> BIT_SHIFT_WLDSS_DATA_IN_2) & BIT_MASK_WLDSS_DATA_IN_2)
  40408. #define BIT_SET_WLDSS_DATA_IN_2(x, v) \
  40409. (BIT_CLEAR_WLDSS_DATA_IN_2(x) | BIT_WLDSS_DATA_IN_2(v))
  40410. #define BIT_SHIFT_WLDSS_COUNT_OUT_2 0
  40411. #define BIT_MASK_WLDSS_COUNT_OUT_2 0xfffff
  40412. #define BIT_WLDSS_COUNT_OUT_2(x) \
  40413. (((x) & BIT_MASK_WLDSS_COUNT_OUT_2) << BIT_SHIFT_WLDSS_COUNT_OUT_2)
  40414. #define BITS_WLDSS_COUNT_OUT_2 \
  40415. (BIT_MASK_WLDSS_COUNT_OUT_2 << BIT_SHIFT_WLDSS_COUNT_OUT_2)
  40416. #define BIT_CLEAR_WLDSS_COUNT_OUT_2(x) ((x) & (~BITS_WLDSS_COUNT_OUT_2))
  40417. #define BIT_GET_WLDSS_COUNT_OUT_2(x) \
  40418. (((x) >> BIT_SHIFT_WLDSS_COUNT_OUT_2) & BIT_MASK_WLDSS_COUNT_OUT_2)
  40419. #define BIT_SET_WLDSS_COUNT_OUT_2(x, v) \
  40420. (BIT_CLEAR_WLDSS_COUNT_OUT_2(x) | BIT_WLDSS_COUNT_OUT_2(v))
  40421. #endif
  40422. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  40423. /* 2 REG_SW_MDIO (Offset 0x10C0) */
  40424. #define BIT_MDO BIT(0)
  40425. #endif
  40426. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40427. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  40428. /* 2 REG_SW_FLUSH (Offset 0x10C4) */
  40429. #define BIT_FLUSH_HOLDN_EN BIT(25)
  40430. #define BIT_FLUSH_WR_EN BIT(24)
  40431. #define BIT_SW_FLASH_CONTROL BIT(23)
  40432. #define BIT_SW_FLASH_WEN_E BIT(19)
  40433. #define BIT_SW_FLASH_HOLDN_E BIT(18)
  40434. #define BIT_SW_FLASH_SO_E BIT(17)
  40435. #define BIT_SW_FLASH_SI_E BIT(16)
  40436. #define BIT_SW_FLASH_SK_O BIT(13)
  40437. #define BIT_SW_FLASH_CEN_O BIT(12)
  40438. #define BIT_SW_FLASH_WEN_O BIT(11)
  40439. #define BIT_SW_FLASH_HOLDN_O BIT(10)
  40440. #define BIT_SW_FLASH_SO_O BIT(9)
  40441. #define BIT_SW_FLASH_SI_O BIT(8)
  40442. #define BIT_SW_FLASH_WEN_I BIT(3)
  40443. #define BIT_SW_FLASH_HOLDN_I BIT(2)
  40444. #define BIT_SW_FLASH_SO_I BIT(1)
  40445. #define BIT_SW_FLASH_SI_I BIT(0)
  40446. #endif
  40447. #if (HALMAC_8814B_SUPPORT)
  40448. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40449. #define BIT_DATA_CPU_WDT_INT_MSK BIT(31)
  40450. #define BIT_OFLD_TXDMA_ERR_MSK BIT(30)
  40451. #define BIT_OFLD_TXDMA_FULL_MSK BIT(29)
  40452. #define BIT_OFLD_RXDMA_OVR_MSK BIT(28)
  40453. #define BIT_OFLD_RXDMA_ERR_MSK BIT(27)
  40454. #define BIT_OFLD_RXDMA_DES_UA_MSK BIT(26)
  40455. #endif
  40456. #if (HALMAC_8198F_SUPPORT)
  40457. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40458. #define BIT_SHIFT_WL_DSS_CLKEN_BACKDOOR 24
  40459. #define BIT_MASK_WL_DSS_CLKEN_BACKDOOR 0x3
  40460. #define BIT_WL_DSS_CLKEN_BACKDOOR(x) \
  40461. (((x) & BIT_MASK_WL_DSS_CLKEN_BACKDOOR) \
  40462. << BIT_SHIFT_WL_DSS_CLKEN_BACKDOOR)
  40463. #define BITS_WL_DSS_CLKEN_BACKDOOR \
  40464. (BIT_MASK_WL_DSS_CLKEN_BACKDOOR << BIT_SHIFT_WL_DSS_CLKEN_BACKDOOR)
  40465. #define BIT_CLEAR_WL_DSS_CLKEN_BACKDOOR(x) ((x) & (~BITS_WL_DSS_CLKEN_BACKDOOR))
  40466. #define BIT_GET_WL_DSS_CLKEN_BACKDOOR(x) \
  40467. (((x) >> BIT_SHIFT_WL_DSS_CLKEN_BACKDOOR) & \
  40468. BIT_MASK_WL_DSS_CLKEN_BACKDOOR)
  40469. #define BIT_SET_WL_DSS_CLKEN_BACKDOOR(x, v) \
  40470. (BIT_CLEAR_WL_DSS_CLKEN_BACKDOOR(x) | BIT_WL_DSS_CLKEN_BACKDOOR(v))
  40471. #endif
  40472. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40473. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40474. #define BIT_SHIFT_DBG_GPIO_BMUX_7 21
  40475. #define BIT_MASK_DBG_GPIO_BMUX_7 0x7
  40476. #define BIT_DBG_GPIO_BMUX_7(x) \
  40477. (((x) & BIT_MASK_DBG_GPIO_BMUX_7) << BIT_SHIFT_DBG_GPIO_BMUX_7)
  40478. #define BITS_DBG_GPIO_BMUX_7 \
  40479. (BIT_MASK_DBG_GPIO_BMUX_7 << BIT_SHIFT_DBG_GPIO_BMUX_7)
  40480. #define BIT_CLEAR_DBG_GPIO_BMUX_7(x) ((x) & (~BITS_DBG_GPIO_BMUX_7))
  40481. #define BIT_GET_DBG_GPIO_BMUX_7(x) \
  40482. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_7) & BIT_MASK_DBG_GPIO_BMUX_7)
  40483. #define BIT_SET_DBG_GPIO_BMUX_7(x, v) \
  40484. (BIT_CLEAR_DBG_GPIO_BMUX_7(x) | BIT_DBG_GPIO_BMUX_7(v))
  40485. #define BIT_SHIFT_DBG_GPIO_BMUX_6 18
  40486. #define BIT_MASK_DBG_GPIO_BMUX_6 0x7
  40487. #define BIT_DBG_GPIO_BMUX_6(x) \
  40488. (((x) & BIT_MASK_DBG_GPIO_BMUX_6) << BIT_SHIFT_DBG_GPIO_BMUX_6)
  40489. #define BITS_DBG_GPIO_BMUX_6 \
  40490. (BIT_MASK_DBG_GPIO_BMUX_6 << BIT_SHIFT_DBG_GPIO_BMUX_6)
  40491. #define BIT_CLEAR_DBG_GPIO_BMUX_6(x) ((x) & (~BITS_DBG_GPIO_BMUX_6))
  40492. #define BIT_GET_DBG_GPIO_BMUX_6(x) \
  40493. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_6) & BIT_MASK_DBG_GPIO_BMUX_6)
  40494. #define BIT_SET_DBG_GPIO_BMUX_6(x, v) \
  40495. (BIT_CLEAR_DBG_GPIO_BMUX_6(x) | BIT_DBG_GPIO_BMUX_6(v))
  40496. #endif
  40497. #if (HALMAC_8814B_SUPPORT)
  40498. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40499. #define BIT_TXDMAOK_CHANNEL_16_MSK BIT(16)
  40500. #endif
  40501. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40502. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40503. #define BIT_SHIFT_DBG_GPIO_BMUX_5 15
  40504. #define BIT_MASK_DBG_GPIO_BMUX_5 0x7
  40505. #define BIT_DBG_GPIO_BMUX_5(x) \
  40506. (((x) & BIT_MASK_DBG_GPIO_BMUX_5) << BIT_SHIFT_DBG_GPIO_BMUX_5)
  40507. #define BITS_DBG_GPIO_BMUX_5 \
  40508. (BIT_MASK_DBG_GPIO_BMUX_5 << BIT_SHIFT_DBG_GPIO_BMUX_5)
  40509. #define BIT_CLEAR_DBG_GPIO_BMUX_5(x) ((x) & (~BITS_DBG_GPIO_BMUX_5))
  40510. #define BIT_GET_DBG_GPIO_BMUX_5(x) \
  40511. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_5) & BIT_MASK_DBG_GPIO_BMUX_5)
  40512. #define BIT_SET_DBG_GPIO_BMUX_5(x, v) \
  40513. (BIT_CLEAR_DBG_GPIO_BMUX_5(x) | BIT_DBG_GPIO_BMUX_5(v))
  40514. #endif
  40515. #if (HALMAC_8814B_SUPPORT)
  40516. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40517. #define BIT_TXDMAOK_CHANNEL_13_MSK BIT(13)
  40518. #endif
  40519. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40520. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40521. #define BIT_SHIFT_DBG_GPIO_BMUX_4 12
  40522. #define BIT_MASK_DBG_GPIO_BMUX_4 0x7
  40523. #define BIT_DBG_GPIO_BMUX_4(x) \
  40524. (((x) & BIT_MASK_DBG_GPIO_BMUX_4) << BIT_SHIFT_DBG_GPIO_BMUX_4)
  40525. #define BITS_DBG_GPIO_BMUX_4 \
  40526. (BIT_MASK_DBG_GPIO_BMUX_4 << BIT_SHIFT_DBG_GPIO_BMUX_4)
  40527. #define BIT_CLEAR_DBG_GPIO_BMUX_4(x) ((x) & (~BITS_DBG_GPIO_BMUX_4))
  40528. #define BIT_GET_DBG_GPIO_BMUX_4(x) \
  40529. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_4) & BIT_MASK_DBG_GPIO_BMUX_4)
  40530. #define BIT_SET_DBG_GPIO_BMUX_4(x, v) \
  40531. (BIT_CLEAR_DBG_GPIO_BMUX_4(x) | BIT_DBG_GPIO_BMUX_4(v))
  40532. #endif
  40533. #if (HALMAC_8814B_SUPPORT)
  40534. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40535. #define BIT_TXDMAOK_CHANNEL_12_MSK BIT(12)
  40536. #define BIT_TXDMAOK_CHANNEL_11_MSK BIT(11)
  40537. #define BIT_TXDMAOK_CHANNEL_10_MSK BIT(10)
  40538. #endif
  40539. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40540. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40541. #define BIT_SHIFT_DBG_GPIO_BMUX_3 9
  40542. #define BIT_MASK_DBG_GPIO_BMUX_3 0x7
  40543. #define BIT_DBG_GPIO_BMUX_3(x) \
  40544. (((x) & BIT_MASK_DBG_GPIO_BMUX_3) << BIT_SHIFT_DBG_GPIO_BMUX_3)
  40545. #define BITS_DBG_GPIO_BMUX_3 \
  40546. (BIT_MASK_DBG_GPIO_BMUX_3 << BIT_SHIFT_DBG_GPIO_BMUX_3)
  40547. #define BIT_CLEAR_DBG_GPIO_BMUX_3(x) ((x) & (~BITS_DBG_GPIO_BMUX_3))
  40548. #define BIT_GET_DBG_GPIO_BMUX_3(x) \
  40549. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_3) & BIT_MASK_DBG_GPIO_BMUX_3)
  40550. #define BIT_SET_DBG_GPIO_BMUX_3(x, v) \
  40551. (BIT_CLEAR_DBG_GPIO_BMUX_3(x) | BIT_DBG_GPIO_BMUX_3(v))
  40552. #endif
  40553. #if (HALMAC_8814B_SUPPORT)
  40554. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40555. #define BIT_TXDMAOK_CHANNEL_9_MSK BIT(9)
  40556. #define BIT_TXDMAOK_CHANNEL_8_MSK BIT(8)
  40557. #define BIT_TXDMAOK_CHANNEL_7_MSK BIT(7)
  40558. #endif
  40559. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40560. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40561. #define BIT_SHIFT_DBG_GPIO_BMUX_2 6
  40562. #define BIT_MASK_DBG_GPIO_BMUX_2 0x7
  40563. #define BIT_DBG_GPIO_BMUX_2(x) \
  40564. (((x) & BIT_MASK_DBG_GPIO_BMUX_2) << BIT_SHIFT_DBG_GPIO_BMUX_2)
  40565. #define BITS_DBG_GPIO_BMUX_2 \
  40566. (BIT_MASK_DBG_GPIO_BMUX_2 << BIT_SHIFT_DBG_GPIO_BMUX_2)
  40567. #define BIT_CLEAR_DBG_GPIO_BMUX_2(x) ((x) & (~BITS_DBG_GPIO_BMUX_2))
  40568. #define BIT_GET_DBG_GPIO_BMUX_2(x) \
  40569. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_2) & BIT_MASK_DBG_GPIO_BMUX_2)
  40570. #define BIT_SET_DBG_GPIO_BMUX_2(x, v) \
  40571. (BIT_CLEAR_DBG_GPIO_BMUX_2(x) | BIT_DBG_GPIO_BMUX_2(v))
  40572. #endif
  40573. #if (HALMAC_8814B_SUPPORT)
  40574. /* 2 REG_HIMR_7 (Offset 0x10C8) */
  40575. #define BIT_TXDMAOK_CHANNEL_6_MSK BIT(6)
  40576. #define BIT_TXDMAOK_CHANNEL_5_MSK BIT(5)
  40577. #define BIT_TXDMAOK_CHANNEL_4_MSK BIT(4)
  40578. #endif
  40579. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40580. /* 2 REG_DBG_GPIO_BMUX (Offset 0x10C8) */
  40581. #define BIT_SHIFT_DBG_GPIO_BMUX_1 3
  40582. #define BIT_MASK_DBG_GPIO_BMUX_1 0x7
  40583. #define BIT_DBG_GPIO_BMUX_1(x) \
  40584. (((x) & BIT_MASK_DBG_GPIO_BMUX_1) << BIT_SHIFT_DBG_GPIO_BMUX_1)
  40585. #define BITS_DBG_GPIO_BMUX_1 \
  40586. (BIT_MASK_DBG_GPIO_BMUX_1 << BIT_SHIFT_DBG_GPIO_BMUX_1)
  40587. #define BIT_CLEAR_DBG_GPIO_BMUX_1(x) ((x) & (~BITS_DBG_GPIO_BMUX_1))
  40588. #define BIT_GET_DBG_GPIO_BMUX_1(x) \
  40589. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_1) & BIT_MASK_DBG_GPIO_BMUX_1)
  40590. #define BIT_SET_DBG_GPIO_BMUX_1(x, v) \
  40591. (BIT_CLEAR_DBG_GPIO_BMUX_1(x) | BIT_DBG_GPIO_BMUX_1(v))
  40592. #define BIT_SHIFT_DBG_GPIO_BMUX_0 0
  40593. #define BIT_MASK_DBG_GPIO_BMUX_0 0x7
  40594. #define BIT_DBG_GPIO_BMUX_0(x) \
  40595. (((x) & BIT_MASK_DBG_GPIO_BMUX_0) << BIT_SHIFT_DBG_GPIO_BMUX_0)
  40596. #define BITS_DBG_GPIO_BMUX_0 \
  40597. (BIT_MASK_DBG_GPIO_BMUX_0 << BIT_SHIFT_DBG_GPIO_BMUX_0)
  40598. #define BIT_CLEAR_DBG_GPIO_BMUX_0(x) ((x) & (~BITS_DBG_GPIO_BMUX_0))
  40599. #define BIT_GET_DBG_GPIO_BMUX_0(x) \
  40600. (((x) >> BIT_SHIFT_DBG_GPIO_BMUX_0) & BIT_MASK_DBG_GPIO_BMUX_0)
  40601. #define BIT_SET_DBG_GPIO_BMUX_0(x, v) \
  40602. (BIT_CLEAR_DBG_GPIO_BMUX_0(x) | BIT_DBG_GPIO_BMUX_0(v))
  40603. #endif
  40604. #if (HALMAC_8814B_SUPPORT)
  40605. /* 2 REG_HISR_7 (Offset 0x10CC) */
  40606. #define BIT_DATA_CPU_WDT_INT BIT(31)
  40607. #define BIT_OFLD_TXDMA_ERR BIT(30)
  40608. #define BIT_OFLD_TXDMA_FULL BIT(29)
  40609. #define BIT_OFLD_RXDMA_OVR BIT(28)
  40610. #define BIT_OFLD_RXDMA_ERR BIT(27)
  40611. #define BIT_OFLD_RXDMA_DES_UA BIT(26)
  40612. #endif
  40613. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40614. /* 2 REG_FPGA_TAG (Offset 0x10CC) */
  40615. #define BIT_WL_DSS_SPEED_EN BIT(25)
  40616. #endif
  40617. #if (HALMAC_8814B_SUPPORT)
  40618. /* 2 REG_HISR_7 (Offset 0x10CC) */
  40619. #define BIT_TXDMAOK_CHANNEL_16 BIT(16)
  40620. #define BIT_TXDMAOK_CHANNEL_13 BIT(13)
  40621. #define BIT_TXDMAOK_CHANNEL_12 BIT(12)
  40622. #define BIT_TXDMAOK_CHANNEL_11 BIT(11)
  40623. #define BIT_TXDMAOK_CHANNEL_10 BIT(10)
  40624. #define BIT_TXDMAOK_CHANNEL_9 BIT(9)
  40625. #define BIT_TXDMAOK_CHANNEL_8 BIT(8)
  40626. #define BIT_TXDMAOK_CHANNEL_7 BIT(7)
  40627. #define BIT_TXDMAOK_CHANNEL_6 BIT(6)
  40628. #define BIT_TXDMAOK_CHANNEL_5 BIT(5)
  40629. #define BIT_TXDMAOK_CHANNEL_4 BIT(4)
  40630. #endif
  40631. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  40632. /* 2 REG_FPGA_TAG (Offset 0x10CC) */
  40633. #define BIT_SHIFT_FPGA_TAG 0
  40634. #define BIT_MASK_FPGA_TAG 0xffffffffL
  40635. #define BIT_FPGA_TAG(x) (((x) & BIT_MASK_FPGA_TAG) << BIT_SHIFT_FPGA_TAG)
  40636. #define BITS_FPGA_TAG (BIT_MASK_FPGA_TAG << BIT_SHIFT_FPGA_TAG)
  40637. #define BIT_CLEAR_FPGA_TAG(x) ((x) & (~BITS_FPGA_TAG))
  40638. #define BIT_GET_FPGA_TAG(x) (((x) >> BIT_SHIFT_FPGA_TAG) & BIT_MASK_FPGA_TAG)
  40639. #define BIT_SET_FPGA_TAG(x, v) (BIT_CLEAR_FPGA_TAG(x) | BIT_FPGA_TAG(v))
  40640. #define BIT_SHIFT_WL_DSS_COUNT_OUT 0
  40641. #define BIT_MASK_WL_DSS_COUNT_OUT 0xfffff
  40642. #define BIT_WL_DSS_COUNT_OUT(x) \
  40643. (((x) & BIT_MASK_WL_DSS_COUNT_OUT) << BIT_SHIFT_WL_DSS_COUNT_OUT)
  40644. #define BITS_WL_DSS_COUNT_OUT \
  40645. (BIT_MASK_WL_DSS_COUNT_OUT << BIT_SHIFT_WL_DSS_COUNT_OUT)
  40646. #define BIT_CLEAR_WL_DSS_COUNT_OUT(x) ((x) & (~BITS_WL_DSS_COUNT_OUT))
  40647. #define BIT_GET_WL_DSS_COUNT_OUT(x) \
  40648. (((x) >> BIT_SHIFT_WL_DSS_COUNT_OUT) & BIT_MASK_WL_DSS_COUNT_OUT)
  40649. #define BIT_SET_WL_DSS_COUNT_OUT(x, v) \
  40650. (BIT_CLEAR_WL_DSS_COUNT_OUT(x) | BIT_WL_DSS_COUNT_OUT(v))
  40651. #endif
  40652. #if (HALMAC_8198F_SUPPORT)
  40653. /* 2 REG_WL_DSS_CTRL0 (Offset 0x10D0) */
  40654. #define BIT_SHIFT_WL_DSS_DBG0_5_0 26
  40655. #define BIT_MASK_WL_DSS_DBG0_5_0 0x3f
  40656. #define BIT_WL_DSS_DBG0_5_0(x) \
  40657. (((x) & BIT_MASK_WL_DSS_DBG0_5_0) << BIT_SHIFT_WL_DSS_DBG0_5_0)
  40658. #define BITS_WL_DSS_DBG0_5_0 \
  40659. (BIT_MASK_WL_DSS_DBG0_5_0 << BIT_SHIFT_WL_DSS_DBG0_5_0)
  40660. #define BIT_CLEAR_WL_DSS_DBG0_5_0(x) ((x) & (~BITS_WL_DSS_DBG0_5_0))
  40661. #define BIT_GET_WL_DSS_DBG0_5_0(x) \
  40662. (((x) >> BIT_SHIFT_WL_DSS_DBG0_5_0) & BIT_MASK_WL_DSS_DBG0_5_0)
  40663. #define BIT_SET_WL_DSS_DBG0_5_0(x, v) \
  40664. (BIT_CLEAR_WL_DSS_DBG0_5_0(x) | BIT_WL_DSS_DBG0_5_0(v))
  40665. #define BIT_SHIFT_WL_DSS_DATA_IN_V1 5
  40666. #define BIT_MASK_WL_DSS_DATA_IN_V1 0xfffff
  40667. #define BIT_WL_DSS_DATA_IN_V1(x) \
  40668. (((x) & BIT_MASK_WL_DSS_DATA_IN_V1) << BIT_SHIFT_WL_DSS_DATA_IN_V1)
  40669. #define BITS_WL_DSS_DATA_IN_V1 \
  40670. (BIT_MASK_WL_DSS_DATA_IN_V1 << BIT_SHIFT_WL_DSS_DATA_IN_V1)
  40671. #define BIT_CLEAR_WL_DSS_DATA_IN_V1(x) ((x) & (~BITS_WL_DSS_DATA_IN_V1))
  40672. #define BIT_GET_WL_DSS_DATA_IN_V1(x) \
  40673. (((x) >> BIT_SHIFT_WL_DSS_DATA_IN_V1) & BIT_MASK_WL_DSS_DATA_IN_V1)
  40674. #define BIT_SET_WL_DSS_DATA_IN_V1(x, v) \
  40675. (BIT_CLEAR_WL_DSS_DATA_IN_V1(x) | BIT_WL_DSS_DATA_IN_V1(v))
  40676. #define BIT_WL_DSS_WIRE_SEL_V1 BIT(4)
  40677. #define BIT_SHIFT_WL_DSS_RO_SEL_V1 1
  40678. #define BIT_MASK_WL_DSS_RO_SEL_V1 0x7
  40679. #define BIT_WL_DSS_RO_SEL_V1(x) \
  40680. (((x) & BIT_MASK_WL_DSS_RO_SEL_V1) << BIT_SHIFT_WL_DSS_RO_SEL_V1)
  40681. #define BITS_WL_DSS_RO_SEL_V1 \
  40682. (BIT_MASK_WL_DSS_RO_SEL_V1 << BIT_SHIFT_WL_DSS_RO_SEL_V1)
  40683. #define BIT_CLEAR_WL_DSS_RO_SEL_V1(x) ((x) & (~BITS_WL_DSS_RO_SEL_V1))
  40684. #define BIT_GET_WL_DSS_RO_SEL_V1(x) \
  40685. (((x) >> BIT_SHIFT_WL_DSS_RO_SEL_V1) & BIT_MASK_WL_DSS_RO_SEL_V1)
  40686. #define BIT_SET_WL_DSS_RO_SEL_V1(x, v) \
  40687. (BIT_CLEAR_WL_DSS_RO_SEL_V1(x) | BIT_WL_DSS_RO_SEL_V1(v))
  40688. #define BIT_WL_DSS_RSTN_V1 BIT(0)
  40689. #endif
  40690. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40691. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40692. /* 2 REG_H2C_PKT_READADDR (Offset 0x10D0) */
  40693. #define BIT_SHIFT_H2C_PKT_READADDR 0
  40694. #define BIT_MASK_H2C_PKT_READADDR 0x3ffff
  40695. #define BIT_H2C_PKT_READADDR(x) \
  40696. (((x) & BIT_MASK_H2C_PKT_READADDR) << BIT_SHIFT_H2C_PKT_READADDR)
  40697. #define BITS_H2C_PKT_READADDR \
  40698. (BIT_MASK_H2C_PKT_READADDR << BIT_SHIFT_H2C_PKT_READADDR)
  40699. #define BIT_CLEAR_H2C_PKT_READADDR(x) ((x) & (~BITS_H2C_PKT_READADDR))
  40700. #define BIT_GET_H2C_PKT_READADDR(x) \
  40701. (((x) >> BIT_SHIFT_H2C_PKT_READADDR) & BIT_MASK_H2C_PKT_READADDR)
  40702. #define BIT_SET_H2C_PKT_READADDR(x, v) \
  40703. (BIT_CLEAR_H2C_PKT_READADDR(x) | BIT_H2C_PKT_READADDR(v))
  40704. #endif
  40705. #if (HALMAC_8198F_SUPPORT)
  40706. /* 2 REG_WL_DSS_STATUS0 (Offset 0x10D4) */
  40707. #define BIT_SHIFT_WL_DSS_DBG0_15_6 22
  40708. #define BIT_MASK_WL_DSS_DBG0_15_6 0x3ff
  40709. #define BIT_WL_DSS_DBG0_15_6(x) \
  40710. (((x) & BIT_MASK_WL_DSS_DBG0_15_6) << BIT_SHIFT_WL_DSS_DBG0_15_6)
  40711. #define BITS_WL_DSS_DBG0_15_6 \
  40712. (BIT_MASK_WL_DSS_DBG0_15_6 << BIT_SHIFT_WL_DSS_DBG0_15_6)
  40713. #define BIT_CLEAR_WL_DSS_DBG0_15_6(x) ((x) & (~BITS_WL_DSS_DBG0_15_6))
  40714. #define BIT_GET_WL_DSS_DBG0_15_6(x) \
  40715. (((x) >> BIT_SHIFT_WL_DSS_DBG0_15_6) & BIT_MASK_WL_DSS_DBG0_15_6)
  40716. #define BIT_SET_WL_DSS_DBG0_15_6(x, v) \
  40717. (BIT_CLEAR_WL_DSS_DBG0_15_6(x) | BIT_WL_DSS_DBG0_15_6(v))
  40718. #define BIT_WL_DSS_WSORT_GO_V1 BIT(21)
  40719. #define BIT_WL_DSS_READY_V1 BIT(20)
  40720. #endif
  40721. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40722. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40723. /* 2 REG_H2C_PKT_WRITEADDR (Offset 0x10D4) */
  40724. #define BIT_SHIFT_H2C_PKT_WRITEADDR 0
  40725. #define BIT_MASK_H2C_PKT_WRITEADDR 0x3ffff
  40726. #define BIT_H2C_PKT_WRITEADDR(x) \
  40727. (((x) & BIT_MASK_H2C_PKT_WRITEADDR) << BIT_SHIFT_H2C_PKT_WRITEADDR)
  40728. #define BITS_H2C_PKT_WRITEADDR \
  40729. (BIT_MASK_H2C_PKT_WRITEADDR << BIT_SHIFT_H2C_PKT_WRITEADDR)
  40730. #define BIT_CLEAR_H2C_PKT_WRITEADDR(x) ((x) & (~BITS_H2C_PKT_WRITEADDR))
  40731. #define BIT_GET_H2C_PKT_WRITEADDR(x) \
  40732. (((x) >> BIT_SHIFT_H2C_PKT_WRITEADDR) & BIT_MASK_H2C_PKT_WRITEADDR)
  40733. #define BIT_SET_H2C_PKT_WRITEADDR(x, v) \
  40734. (BIT_CLEAR_H2C_PKT_WRITEADDR(x) | BIT_H2C_PKT_WRITEADDR(v))
  40735. #endif
  40736. #if (HALMAC_8198F_SUPPORT)
  40737. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40738. #define BIT_SHIFT_WL_DSS_DBG1_5_0 26
  40739. #define BIT_MASK_WL_DSS_DBG1_5_0 0x3f
  40740. #define BIT_WL_DSS_DBG1_5_0(x) \
  40741. (((x) & BIT_MASK_WL_DSS_DBG1_5_0) << BIT_SHIFT_WL_DSS_DBG1_5_0)
  40742. #define BITS_WL_DSS_DBG1_5_0 \
  40743. (BIT_MASK_WL_DSS_DBG1_5_0 << BIT_SHIFT_WL_DSS_DBG1_5_0)
  40744. #define BIT_CLEAR_WL_DSS_DBG1_5_0(x) ((x) & (~BITS_WL_DSS_DBG1_5_0))
  40745. #define BIT_GET_WL_DSS_DBG1_5_0(x) \
  40746. (((x) >> BIT_SHIFT_WL_DSS_DBG1_5_0) & BIT_MASK_WL_DSS_DBG1_5_0)
  40747. #define BIT_SET_WL_DSS_DBG1_5_0(x, v) \
  40748. (BIT_CLEAR_WL_DSS_DBG1_5_0(x) | BIT_WL_DSS_DBG1_5_0(v))
  40749. #define BIT_WL_DSS_SPEED_EN1 BIT(25)
  40750. #endif
  40751. #if (HALMAC_8197F_SUPPORT)
  40752. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40753. #define BIT_WL_DSS_WIRE_SEL BIT(24)
  40754. #define BIT_SHIFT_WL_DSS_RO_SEL 20
  40755. #define BIT_MASK_WL_DSS_RO_SEL 0x7
  40756. #define BIT_WL_DSS_RO_SEL(x) \
  40757. (((x) & BIT_MASK_WL_DSS_RO_SEL) << BIT_SHIFT_WL_DSS_RO_SEL)
  40758. #define BITS_WL_DSS_RO_SEL (BIT_MASK_WL_DSS_RO_SEL << BIT_SHIFT_WL_DSS_RO_SEL)
  40759. #define BIT_CLEAR_WL_DSS_RO_SEL(x) ((x) & (~BITS_WL_DSS_RO_SEL))
  40760. #define BIT_GET_WL_DSS_RO_SEL(x) \
  40761. (((x) >> BIT_SHIFT_WL_DSS_RO_SEL) & BIT_MASK_WL_DSS_RO_SEL)
  40762. #define BIT_SET_WL_DSS_RO_SEL(x, v) \
  40763. (BIT_CLEAR_WL_DSS_RO_SEL(x) | BIT_WL_DSS_RO_SEL(v))
  40764. #endif
  40765. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  40766. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40767. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40768. #define BIT_MEM_BB_SD BIT(17)
  40769. #define BIT_MEM_BB_DS BIT(16)
  40770. #endif
  40771. #if (HALMAC_8814B_SUPPORT)
  40772. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40773. #define BIT_MEM_DENG_LS BIT(13)
  40774. #define BIT_MEM_DENG_DS BIT(12)
  40775. #endif
  40776. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40777. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40778. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40779. #define BIT_MEM_BT_DS BIT(10)
  40780. #define BIT_MEM_SDIO_LS BIT(9)
  40781. #define BIT_MEM_SDIO_DS BIT(8)
  40782. #define BIT_MEM_USB_LS BIT(7)
  40783. #define BIT_MEM_USB_DS BIT(6)
  40784. #endif
  40785. #if (HALMAC_8198F_SUPPORT)
  40786. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40787. #define BIT_SHIFT_WL_DSS_DATA_IN1 5
  40788. #define BIT_MASK_WL_DSS_DATA_IN1 0xfffff
  40789. #define BIT_WL_DSS_DATA_IN1(x) \
  40790. (((x) & BIT_MASK_WL_DSS_DATA_IN1) << BIT_SHIFT_WL_DSS_DATA_IN1)
  40791. #define BITS_WL_DSS_DATA_IN1 \
  40792. (BIT_MASK_WL_DSS_DATA_IN1 << BIT_SHIFT_WL_DSS_DATA_IN1)
  40793. #define BIT_CLEAR_WL_DSS_DATA_IN1(x) ((x) & (~BITS_WL_DSS_DATA_IN1))
  40794. #define BIT_GET_WL_DSS_DATA_IN1(x) \
  40795. (((x) >> BIT_SHIFT_WL_DSS_DATA_IN1) & BIT_MASK_WL_DSS_DATA_IN1)
  40796. #define BIT_SET_WL_DSS_DATA_IN1(x, v) \
  40797. (BIT_CLEAR_WL_DSS_DATA_IN1(x) | BIT_WL_DSS_DATA_IN1(v))
  40798. #endif
  40799. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40800. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40801. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40802. #define BIT_MEM_PCI_LS BIT(5)
  40803. #endif
  40804. #if (HALMAC_8198F_SUPPORT)
  40805. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40806. #define BIT_WL_DSS_WIRE_SEL1 BIT(4)
  40807. #endif
  40808. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40809. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40810. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40811. #define BIT_MEM_PCI_DS BIT(4)
  40812. #define BIT_MEM_WLMAC_LS BIT(3)
  40813. #define BIT_MEM_WLMAC_DS BIT(2)
  40814. #endif
  40815. #if (HALMAC_8198F_SUPPORT)
  40816. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40817. #define BIT_SHIFT_WL_DSS_RO_SEL1 1
  40818. #define BIT_MASK_WL_DSS_RO_SEL1 0x7
  40819. #define BIT_WL_DSS_RO_SEL1(x) \
  40820. (((x) & BIT_MASK_WL_DSS_RO_SEL1) << BIT_SHIFT_WL_DSS_RO_SEL1)
  40821. #define BITS_WL_DSS_RO_SEL1 \
  40822. (BIT_MASK_WL_DSS_RO_SEL1 << BIT_SHIFT_WL_DSS_RO_SEL1)
  40823. #define BIT_CLEAR_WL_DSS_RO_SEL1(x) ((x) & (~BITS_WL_DSS_RO_SEL1))
  40824. #define BIT_GET_WL_DSS_RO_SEL1(x) \
  40825. (((x) >> BIT_SHIFT_WL_DSS_RO_SEL1) & BIT_MASK_WL_DSS_RO_SEL1)
  40826. #define BIT_SET_WL_DSS_RO_SEL1(x, v) \
  40827. (BIT_CLEAR_WL_DSS_RO_SEL1(x) | BIT_WL_DSS_RO_SEL1(v))
  40828. #endif
  40829. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40830. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40831. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40832. #define BIT_MEM_WLMCU_LS BIT(1)
  40833. #endif
  40834. #if (HALMAC_8197F_SUPPORT)
  40835. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40836. #define BIT_SHIFT_WL_DSS_DATA_IN 0
  40837. #define BIT_MASK_WL_DSS_DATA_IN 0xfffff
  40838. #define BIT_WL_DSS_DATA_IN(x) \
  40839. (((x) & BIT_MASK_WL_DSS_DATA_IN) << BIT_SHIFT_WL_DSS_DATA_IN)
  40840. #define BITS_WL_DSS_DATA_IN \
  40841. (BIT_MASK_WL_DSS_DATA_IN << BIT_SHIFT_WL_DSS_DATA_IN)
  40842. #define BIT_CLEAR_WL_DSS_DATA_IN(x) ((x) & (~BITS_WL_DSS_DATA_IN))
  40843. #define BIT_GET_WL_DSS_DATA_IN(x) \
  40844. (((x) >> BIT_SHIFT_WL_DSS_DATA_IN) & BIT_MASK_WL_DSS_DATA_IN)
  40845. #define BIT_SET_WL_DSS_DATA_IN(x, v) \
  40846. (BIT_CLEAR_WL_DSS_DATA_IN(x) | BIT_WL_DSS_DATA_IN(v))
  40847. #endif
  40848. #if (HALMAC_8198F_SUPPORT)
  40849. /* 2 REG_WL_DSS_CTRL1 (Offset 0x10D8) */
  40850. #define BIT_WL_DSS_RSTN1 BIT(0)
  40851. #endif
  40852. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  40853. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40854. /* 2 REG_MEM_PWR_CRTL (Offset 0x10D8) */
  40855. #define BIT_MEM_WLMCU_DS BIT(0)
  40856. #endif
  40857. #if (HALMAC_8198F_SUPPORT)
  40858. /* 2 REG_WL_DSS_STATUS1 (Offset 0x10DC) */
  40859. #define BIT_SHIFT_WL_DSS_DBG1_15_6 22
  40860. #define BIT_MASK_WL_DSS_DBG1_15_6 0x3ff
  40861. #define BIT_WL_DSS_DBG1_15_6(x) \
  40862. (((x) & BIT_MASK_WL_DSS_DBG1_15_6) << BIT_SHIFT_WL_DSS_DBG1_15_6)
  40863. #define BITS_WL_DSS_DBG1_15_6 \
  40864. (BIT_MASK_WL_DSS_DBG1_15_6 << BIT_SHIFT_WL_DSS_DBG1_15_6)
  40865. #define BIT_CLEAR_WL_DSS_DBG1_15_6(x) ((x) & (~BITS_WL_DSS_DBG1_15_6))
  40866. #define BIT_GET_WL_DSS_DBG1_15_6(x) \
  40867. (((x) >> BIT_SHIFT_WL_DSS_DBG1_15_6) & BIT_MASK_WL_DSS_DBG1_15_6)
  40868. #define BIT_SET_WL_DSS_DBG1_15_6(x, v) \
  40869. (BIT_CLEAR_WL_DSS_DBG1_15_6(x) | BIT_WL_DSS_DBG1_15_6(v))
  40870. #endif
  40871. #if (HALMAC_8197F_SUPPORT)
  40872. /* 2 REG_WL_DSS_STATUS1 (Offset 0x10DC) */
  40873. #define BIT_WL_DSS_READY BIT(21)
  40874. #define BIT_WL_DSS_WSORT_GO BIT(20)
  40875. #endif
  40876. #if (HALMAC_8814B_SUPPORT)
  40877. /* 2 REG_FW_DRV_HANDSHAKE (Offset 0x10DC) */
  40878. #define BIT_SHIFT_FW_DRV_HANDSHAKE 0
  40879. #define BIT_MASK_FW_DRV_HANDSHAKE 0xffffffffL
  40880. #define BIT_FW_DRV_HANDSHAKE(x) \
  40881. (((x) & BIT_MASK_FW_DRV_HANDSHAKE) << BIT_SHIFT_FW_DRV_HANDSHAKE)
  40882. #define BITS_FW_DRV_HANDSHAKE \
  40883. (BIT_MASK_FW_DRV_HANDSHAKE << BIT_SHIFT_FW_DRV_HANDSHAKE)
  40884. #define BIT_CLEAR_FW_DRV_HANDSHAKE(x) ((x) & (~BITS_FW_DRV_HANDSHAKE))
  40885. #define BIT_GET_FW_DRV_HANDSHAKE(x) \
  40886. (((x) >> BIT_SHIFT_FW_DRV_HANDSHAKE) & BIT_MASK_FW_DRV_HANDSHAKE)
  40887. #define BIT_SET_FW_DRV_HANDSHAKE(x, v) \
  40888. (BIT_CLEAR_FW_DRV_HANDSHAKE(x) | BIT_FW_DRV_HANDSHAKE(v))
  40889. #endif
  40890. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  40891. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  40892. /* 2 REG_FW_DBG0 (Offset 0x10E0) */
  40893. #define BIT_SHIFT_FW_DBG0 0
  40894. #define BIT_MASK_FW_DBG0 0xffffffffL
  40895. #define BIT_FW_DBG0(x) (((x) & BIT_MASK_FW_DBG0) << BIT_SHIFT_FW_DBG0)
  40896. #define BITS_FW_DBG0 (BIT_MASK_FW_DBG0 << BIT_SHIFT_FW_DBG0)
  40897. #define BIT_CLEAR_FW_DBG0(x) ((x) & (~BITS_FW_DBG0))
  40898. #define BIT_GET_FW_DBG0(x) (((x) >> BIT_SHIFT_FW_DBG0) & BIT_MASK_FW_DBG0)
  40899. #define BIT_SET_FW_DBG0(x, v) (BIT_CLEAR_FW_DBG0(x) | BIT_FW_DBG0(v))
  40900. /* 2 REG_FW_DBG1 (Offset 0x10E4) */
  40901. #define BIT_SHIFT_FW_DBG1 0
  40902. #define BIT_MASK_FW_DBG1 0xffffffffL
  40903. #define BIT_FW_DBG1(x) (((x) & BIT_MASK_FW_DBG1) << BIT_SHIFT_FW_DBG1)
  40904. #define BITS_FW_DBG1 (BIT_MASK_FW_DBG1 << BIT_SHIFT_FW_DBG1)
  40905. #define BIT_CLEAR_FW_DBG1(x) ((x) & (~BITS_FW_DBG1))
  40906. #define BIT_GET_FW_DBG1(x) (((x) >> BIT_SHIFT_FW_DBG1) & BIT_MASK_FW_DBG1)
  40907. #define BIT_SET_FW_DBG1(x, v) (BIT_CLEAR_FW_DBG1(x) | BIT_FW_DBG1(v))
  40908. #endif
  40909. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40910. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  40911. HALMAC_8822B_SUPPORT)
  40912. /* 2 REG_FW_DBG2 (Offset 0x10E8) */
  40913. #define BIT_SHIFT_FW_DBG2 0
  40914. #define BIT_MASK_FW_DBG2 0xffffffffL
  40915. #define BIT_FW_DBG2(x) (((x) & BIT_MASK_FW_DBG2) << BIT_SHIFT_FW_DBG2)
  40916. #define BITS_FW_DBG2 (BIT_MASK_FW_DBG2 << BIT_SHIFT_FW_DBG2)
  40917. #define BIT_CLEAR_FW_DBG2(x) ((x) & (~BITS_FW_DBG2))
  40918. #define BIT_GET_FW_DBG2(x) (((x) >> BIT_SHIFT_FW_DBG2) & BIT_MASK_FW_DBG2)
  40919. #define BIT_SET_FW_DBG2(x, v) (BIT_CLEAR_FW_DBG2(x) | BIT_FW_DBG2(v))
  40920. /* 2 REG_FW_DBG3 (Offset 0x10EC) */
  40921. #define BIT_SHIFT_FW_DBG3 0
  40922. #define BIT_MASK_FW_DBG3 0xffffffffL
  40923. #define BIT_FW_DBG3(x) (((x) & BIT_MASK_FW_DBG3) << BIT_SHIFT_FW_DBG3)
  40924. #define BITS_FW_DBG3 (BIT_MASK_FW_DBG3 << BIT_SHIFT_FW_DBG3)
  40925. #define BIT_CLEAR_FW_DBG3(x) ((x) & (~BITS_FW_DBG3))
  40926. #define BIT_GET_FW_DBG3(x) (((x) >> BIT_SHIFT_FW_DBG3) & BIT_MASK_FW_DBG3)
  40927. #define BIT_SET_FW_DBG3(x, v) (BIT_CLEAR_FW_DBG3(x) | BIT_FW_DBG3(v))
  40928. /* 2 REG_FW_DBG4 (Offset 0x10F0) */
  40929. #define BIT_SHIFT_FW_DBG4 0
  40930. #define BIT_MASK_FW_DBG4 0xffffffffL
  40931. #define BIT_FW_DBG4(x) (((x) & BIT_MASK_FW_DBG4) << BIT_SHIFT_FW_DBG4)
  40932. #define BITS_FW_DBG4 (BIT_MASK_FW_DBG4 << BIT_SHIFT_FW_DBG4)
  40933. #define BIT_CLEAR_FW_DBG4(x) ((x) & (~BITS_FW_DBG4))
  40934. #define BIT_GET_FW_DBG4(x) (((x) >> BIT_SHIFT_FW_DBG4) & BIT_MASK_FW_DBG4)
  40935. #define BIT_SET_FW_DBG4(x, v) (BIT_CLEAR_FW_DBG4(x) | BIT_FW_DBG4(v))
  40936. /* 2 REG_FW_DBG5 (Offset 0x10F4) */
  40937. #define BIT_SHIFT_FW_DBG5 0
  40938. #define BIT_MASK_FW_DBG5 0xffffffffL
  40939. #define BIT_FW_DBG5(x) (((x) & BIT_MASK_FW_DBG5) << BIT_SHIFT_FW_DBG5)
  40940. #define BITS_FW_DBG5 (BIT_MASK_FW_DBG5 << BIT_SHIFT_FW_DBG5)
  40941. #define BIT_CLEAR_FW_DBG5(x) ((x) & (~BITS_FW_DBG5))
  40942. #define BIT_GET_FW_DBG5(x) (((x) >> BIT_SHIFT_FW_DBG5) & BIT_MASK_FW_DBG5)
  40943. #define BIT_SET_FW_DBG5(x, v) (BIT_CLEAR_FW_DBG5(x) | BIT_FW_DBG5(v))
  40944. #endif
  40945. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  40946. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  40947. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  40948. HALMAC_8822C_SUPPORT)
  40949. /* 2 REG_FW_DBG6 (Offset 0x10F8) */
  40950. #define BIT_SHIFT_FW_DBG6 0
  40951. #define BIT_MASK_FW_DBG6 0xffffffffL
  40952. #define BIT_FW_DBG6(x) (((x) & BIT_MASK_FW_DBG6) << BIT_SHIFT_FW_DBG6)
  40953. #define BITS_FW_DBG6 (BIT_MASK_FW_DBG6 << BIT_SHIFT_FW_DBG6)
  40954. #define BIT_CLEAR_FW_DBG6(x) ((x) & (~BITS_FW_DBG6))
  40955. #define BIT_GET_FW_DBG6(x) (((x) >> BIT_SHIFT_FW_DBG6) & BIT_MASK_FW_DBG6)
  40956. #define BIT_SET_FW_DBG6(x, v) (BIT_CLEAR_FW_DBG6(x) | BIT_FW_DBG6(v))
  40957. /* 2 REG_FW_DBG7 (Offset 0x10FC) */
  40958. #define BIT_SHIFT_FW_DBG7 0
  40959. #define BIT_MASK_FW_DBG7 0xffffffffL
  40960. #define BIT_FW_DBG7(x) (((x) & BIT_MASK_FW_DBG7) << BIT_SHIFT_FW_DBG7)
  40961. #define BITS_FW_DBG7 (BIT_MASK_FW_DBG7 << BIT_SHIFT_FW_DBG7)
  40962. #define BIT_CLEAR_FW_DBG7(x) ((x) & (~BITS_FW_DBG7))
  40963. #define BIT_GET_FW_DBG7(x) (((x) >> BIT_SHIFT_FW_DBG7) & BIT_MASK_FW_DBG7)
  40964. #define BIT_SET_FW_DBG7(x, v) (BIT_CLEAR_FW_DBG7(x) | BIT_FW_DBG7(v))
  40965. #endif
  40966. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  40967. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  40968. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  40969. /* 2 REG_CR_EXT (Offset 0x1100) */
  40970. #define BIT_SHIFT_PHY_REQ_DELAY 24
  40971. #define BIT_MASK_PHY_REQ_DELAY 0xf
  40972. #define BIT_PHY_REQ_DELAY(x) \
  40973. (((x) & BIT_MASK_PHY_REQ_DELAY) << BIT_SHIFT_PHY_REQ_DELAY)
  40974. #define BITS_PHY_REQ_DELAY (BIT_MASK_PHY_REQ_DELAY << BIT_SHIFT_PHY_REQ_DELAY)
  40975. #define BIT_CLEAR_PHY_REQ_DELAY(x) ((x) & (~BITS_PHY_REQ_DELAY))
  40976. #define BIT_GET_PHY_REQ_DELAY(x) \
  40977. (((x) >> BIT_SHIFT_PHY_REQ_DELAY) & BIT_MASK_PHY_REQ_DELAY)
  40978. #define BIT_SET_PHY_REQ_DELAY(x, v) \
  40979. (BIT_CLEAR_PHY_REQ_DELAY(x) | BIT_PHY_REQ_DELAY(v))
  40980. #define BIT_SPD_DOWN BIT(16)
  40981. #define BIT_SHIFT_NETYPE4 4
  40982. #define BIT_MASK_NETYPE4 0x3
  40983. #define BIT_NETYPE4(x) (((x) & BIT_MASK_NETYPE4) << BIT_SHIFT_NETYPE4)
  40984. #define BITS_NETYPE4 (BIT_MASK_NETYPE4 << BIT_SHIFT_NETYPE4)
  40985. #define BIT_CLEAR_NETYPE4(x) ((x) & (~BITS_NETYPE4))
  40986. #define BIT_GET_NETYPE4(x) (((x) >> BIT_SHIFT_NETYPE4) & BIT_MASK_NETYPE4)
  40987. #define BIT_SET_NETYPE4(x, v) (BIT_CLEAR_NETYPE4(x) | BIT_NETYPE4(v))
  40988. #define BIT_SHIFT_NETYPE3 2
  40989. #define BIT_MASK_NETYPE3 0x3
  40990. #define BIT_NETYPE3(x) (((x) & BIT_MASK_NETYPE3) << BIT_SHIFT_NETYPE3)
  40991. #define BITS_NETYPE3 (BIT_MASK_NETYPE3 << BIT_SHIFT_NETYPE3)
  40992. #define BIT_CLEAR_NETYPE3(x) ((x) & (~BITS_NETYPE3))
  40993. #define BIT_GET_NETYPE3(x) (((x) >> BIT_SHIFT_NETYPE3) & BIT_MASK_NETYPE3)
  40994. #define BIT_SET_NETYPE3(x, v) (BIT_CLEAR_NETYPE3(x) | BIT_NETYPE3(v))
  40995. #define BIT_SHIFT_NETYPE2 0
  40996. #define BIT_MASK_NETYPE2 0x3
  40997. #define BIT_NETYPE2(x) (((x) & BIT_MASK_NETYPE2) << BIT_SHIFT_NETYPE2)
  40998. #define BITS_NETYPE2 (BIT_MASK_NETYPE2 << BIT_SHIFT_NETYPE2)
  40999. #define BIT_CLEAR_NETYPE2(x) ((x) & (~BITS_NETYPE2))
  41000. #define BIT_GET_NETYPE2(x) (((x) >> BIT_SHIFT_NETYPE2) & BIT_MASK_NETYPE2)
  41001. #define BIT_SET_NETYPE2(x, v) (BIT_CLEAR_NETYPE2(x) | BIT_NETYPE2(v))
  41002. #endif
  41003. #if (HALMAC_8814B_SUPPORT)
  41004. /* 2 REG_TC9_CTRL (Offset 0x1104) */
  41005. #define BIT_TC9INT_EN BIT(26)
  41006. #define BIT_TC9MODE BIT(25)
  41007. #define BIT_TC9EN BIT(24)
  41008. #define BIT_SHIFT_TC9DATA 0
  41009. #define BIT_MASK_TC9DATA 0xffffff
  41010. #define BIT_TC9DATA(x) (((x) & BIT_MASK_TC9DATA) << BIT_SHIFT_TC9DATA)
  41011. #define BITS_TC9DATA (BIT_MASK_TC9DATA << BIT_SHIFT_TC9DATA)
  41012. #define BIT_CLEAR_TC9DATA(x) ((x) & (~BITS_TC9DATA))
  41013. #define BIT_GET_TC9DATA(x) (((x) >> BIT_SHIFT_TC9DATA) & BIT_MASK_TC9DATA)
  41014. #define BIT_SET_TC9DATA(x, v) (BIT_CLEAR_TC9DATA(x) | BIT_TC9DATA(v))
  41015. /* 2 REG_TC10_CTRL (Offset 0x1108) */
  41016. #define BIT_TC10INT_EN BIT(26)
  41017. #define BIT_TC10MODE BIT(25)
  41018. #define BIT_TC10EN BIT(24)
  41019. #define BIT_SHIFT_TC10DATA 0
  41020. #define BIT_MASK_TC10DATA 0xffffff
  41021. #define BIT_TC10DATA(x) (((x) & BIT_MASK_TC10DATA) << BIT_SHIFT_TC10DATA)
  41022. #define BITS_TC10DATA (BIT_MASK_TC10DATA << BIT_SHIFT_TC10DATA)
  41023. #define BIT_CLEAR_TC10DATA(x) ((x) & (~BITS_TC10DATA))
  41024. #define BIT_GET_TC10DATA(x) (((x) >> BIT_SHIFT_TC10DATA) & BIT_MASK_TC10DATA)
  41025. #define BIT_SET_TC10DATA(x, v) (BIT_CLEAR_TC10DATA(x) | BIT_TC10DATA(v))
  41026. /* 2 REG_TC11_CTRL (Offset 0x110C) */
  41027. #define BIT_TC11INT_EN BIT(26)
  41028. #define BIT_TC11MODE BIT(25)
  41029. #define BIT_TC11EN BIT(24)
  41030. #define BIT_SHIFT_TC11DATA 0
  41031. #define BIT_MASK_TC11DATA 0xffffff
  41032. #define BIT_TC11DATA(x) (((x) & BIT_MASK_TC11DATA) << BIT_SHIFT_TC11DATA)
  41033. #define BITS_TC11DATA (BIT_MASK_TC11DATA << BIT_SHIFT_TC11DATA)
  41034. #define BIT_CLEAR_TC11DATA(x) ((x) & (~BITS_TC11DATA))
  41035. #define BIT_GET_TC11DATA(x) (((x) >> BIT_SHIFT_TC11DATA) & BIT_MASK_TC11DATA)
  41036. #define BIT_SET_TC11DATA(x, v) (BIT_CLEAR_TC11DATA(x) | BIT_TC11DATA(v))
  41037. /* 2 REG_TC12_CTRL (Offset 0x1110) */
  41038. #define BIT_TC12INT_EN BIT(26)
  41039. #define BIT_TC12MODE BIT(25)
  41040. #define BIT_TC12EN BIT(24)
  41041. #define BIT_P2P_PWROFF_NOA2_ERLY_INT BIT(22)
  41042. #define BIT_P2P_PWROFF_NOA1_ERLY_INT BIT(21)
  41043. #define BIT_P2P_PWROFF_NOA0_ERLY_INT BIT(20)
  41044. #define BIT_SHIFT_TC12DATA 0
  41045. #define BIT_MASK_TC12DATA 0xffffff
  41046. #define BIT_TC12DATA(x) (((x) & BIT_MASK_TC12DATA) << BIT_SHIFT_TC12DATA)
  41047. #define BITS_TC12DATA (BIT_MASK_TC12DATA << BIT_SHIFT_TC12DATA)
  41048. #define BIT_CLEAR_TC12DATA(x) ((x) & (~BITS_TC12DATA))
  41049. #define BIT_GET_TC12DATA(x) (((x) >> BIT_SHIFT_TC12DATA) & BIT_MASK_TC12DATA)
  41050. #define BIT_SET_TC12DATA(x, v) (BIT_CLEAR_TC12DATA(x) | BIT_TC12DATA(v))
  41051. #endif
  41052. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  41053. HALMAC_8814AMP_SUPPORT)
  41054. /* 2 REG_FWFF (Offset 0x1114) */
  41055. #define BIT_SHIFT_PKTNUM_TH 24
  41056. #define BIT_MASK_PKTNUM_TH 0xff
  41057. #define BIT_PKTNUM_TH(x) (((x) & BIT_MASK_PKTNUM_TH) << BIT_SHIFT_PKTNUM_TH)
  41058. #define BITS_PKTNUM_TH (BIT_MASK_PKTNUM_TH << BIT_SHIFT_PKTNUM_TH)
  41059. #define BIT_CLEAR_PKTNUM_TH(x) ((x) & (~BITS_PKTNUM_TH))
  41060. #define BIT_GET_PKTNUM_TH(x) (((x) >> BIT_SHIFT_PKTNUM_TH) & BIT_MASK_PKTNUM_TH)
  41061. #define BIT_SET_PKTNUM_TH(x, v) (BIT_CLEAR_PKTNUM_TH(x) | BIT_PKTNUM_TH(v))
  41062. #endif
  41063. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41064. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41065. /* 2 REG_FWFF (Offset 0x1114) */
  41066. #define BIT_SHIFT_PKTNUM_TH_V1 24
  41067. #define BIT_MASK_PKTNUM_TH_V1 0xff
  41068. #define BIT_PKTNUM_TH_V1(x) \
  41069. (((x) & BIT_MASK_PKTNUM_TH_V1) << BIT_SHIFT_PKTNUM_TH_V1)
  41070. #define BITS_PKTNUM_TH_V1 (BIT_MASK_PKTNUM_TH_V1 << BIT_SHIFT_PKTNUM_TH_V1)
  41071. #define BIT_CLEAR_PKTNUM_TH_V1(x) ((x) & (~BITS_PKTNUM_TH_V1))
  41072. #define BIT_GET_PKTNUM_TH_V1(x) \
  41073. (((x) >> BIT_SHIFT_PKTNUM_TH_V1) & BIT_MASK_PKTNUM_TH_V1)
  41074. #define BIT_SET_PKTNUM_TH_V1(x, v) \
  41075. (BIT_CLEAR_PKTNUM_TH_V1(x) | BIT_PKTNUM_TH_V1(v))
  41076. #endif
  41077. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41078. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41079. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41080. /* 2 REG_FWFF (Offset 0x1114) */
  41081. #define BIT_SHIFT_TIMER_TH 16
  41082. #define BIT_MASK_TIMER_TH 0xff
  41083. #define BIT_TIMER_TH(x) (((x) & BIT_MASK_TIMER_TH) << BIT_SHIFT_TIMER_TH)
  41084. #define BITS_TIMER_TH (BIT_MASK_TIMER_TH << BIT_SHIFT_TIMER_TH)
  41085. #define BIT_CLEAR_TIMER_TH(x) ((x) & (~BITS_TIMER_TH))
  41086. #define BIT_GET_TIMER_TH(x) (((x) >> BIT_SHIFT_TIMER_TH) & BIT_MASK_TIMER_TH)
  41087. #define BIT_SET_TIMER_TH(x, v) (BIT_CLEAR_TIMER_TH(x) | BIT_TIMER_TH(v))
  41088. #define BIT_SHIFT_RXPKT1ENADDR 0
  41089. #define BIT_MASK_RXPKT1ENADDR 0xffff
  41090. #define BIT_RXPKT1ENADDR(x) \
  41091. (((x) & BIT_MASK_RXPKT1ENADDR) << BIT_SHIFT_RXPKT1ENADDR)
  41092. #define BITS_RXPKT1ENADDR (BIT_MASK_RXPKT1ENADDR << BIT_SHIFT_RXPKT1ENADDR)
  41093. #define BIT_CLEAR_RXPKT1ENADDR(x) ((x) & (~BITS_RXPKT1ENADDR))
  41094. #define BIT_GET_RXPKT1ENADDR(x) \
  41095. (((x) >> BIT_SHIFT_RXPKT1ENADDR) & BIT_MASK_RXPKT1ENADDR)
  41096. #define BIT_SET_RXPKT1ENADDR(x, v) \
  41097. (BIT_CLEAR_RXPKT1ENADDR(x) | BIT_RXPKT1ENADDR(v))
  41098. #endif
  41099. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41100. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41101. /* 2 REG_FE2IMR (Offset 0x1120) */
  41102. #define BIT__FE4ISR__IND_MSK BIT(29)
  41103. #endif
  41104. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41105. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  41106. HALMAC_8822C_SUPPORT)
  41107. /* 2 REG_FE2IMR (Offset 0x1120) */
  41108. #define BIT_FS_TXSC_DESC_DONE_INT_EN BIT(28)
  41109. #define BIT_FS_TXSC_BKDONE_INT_EN BIT(27)
  41110. #define BIT_FS_TXSC_BEDONE_INT_EN BIT(26)
  41111. #define BIT_FS_TXSC_VIDONE_INT_EN BIT(25)
  41112. #define BIT_FS_TXSC_VODONE_INT_EN BIT(24)
  41113. #endif
  41114. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41115. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41116. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41117. /* 2 REG_FE2IMR (Offset 0x1120) */
  41118. #define BIT_FS_ATIM_MB7_INT_EN BIT(23)
  41119. #define BIT_FS_ATIM_MB6_INT_EN BIT(22)
  41120. #define BIT_FS_ATIM_MB5_INT_EN BIT(21)
  41121. #define BIT_FS_ATIM_MB4_INT_EN BIT(20)
  41122. #define BIT_FS_ATIM_MB3_INT_EN BIT(19)
  41123. #define BIT_FS_ATIM_MB2_INT_EN BIT(18)
  41124. #define BIT_FS_ATIM_MB1_INT_EN BIT(17)
  41125. #define BIT_FS_ATIM_MB0_INT_EN BIT(16)
  41126. #define BIT_FS_TBTT4INT_EN BIT(11)
  41127. #define BIT_FS_TBTT3INT_EN BIT(10)
  41128. #define BIT_FS_TBTT2INT_EN BIT(9)
  41129. #define BIT_FS_TBTT1INT_EN BIT(8)
  41130. #define BIT_FS_TBTT0_MB7INT_EN BIT(7)
  41131. #define BIT_FS_TBTT0_MB6INT_EN BIT(6)
  41132. #define BIT_FS_TBTT0_MB5INT_EN BIT(5)
  41133. #define BIT_FS_TBTT0_MB4INT_EN BIT(4)
  41134. #define BIT_FS_TBTT0_MB3INT_EN BIT(3)
  41135. #define BIT_FS_TBTT0_MB2INT_EN BIT(2)
  41136. #define BIT_FS_TBTT0_MB1INT_EN BIT(1)
  41137. #define BIT_FS_TBTT0_INT_EN BIT(0)
  41138. #endif
  41139. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41140. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41141. /* 2 REG_FE2ISR (Offset 0x1124) */
  41142. #define BIT__FE4ISR__IND_INT BIT(29)
  41143. #endif
  41144. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41145. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  41146. HALMAC_8822C_SUPPORT)
  41147. /* 2 REG_FE2ISR (Offset 0x1124) */
  41148. #define BIT_FS_TXSC_DESC_DONE_INT BIT(28)
  41149. #define BIT_FS_TXSC_BKDONE_INT BIT(27)
  41150. #define BIT_FS_TXSC_BEDONE_INT BIT(26)
  41151. #define BIT_FS_TXSC_VIDONE_INT BIT(25)
  41152. #define BIT_FS_TXSC_VODONE_INT BIT(24)
  41153. #endif
  41154. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41155. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41156. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41157. /* 2 REG_FE2ISR (Offset 0x1124) */
  41158. #define BIT_FS_ATIM_MB7_INT BIT(23)
  41159. #define BIT_FS_ATIM_MB6_INT BIT(22)
  41160. #define BIT_FS_ATIM_MB5_INT BIT(21)
  41161. #define BIT_FS_ATIM_MB4_INT BIT(20)
  41162. #define BIT_FS_ATIM_MB3_INT BIT(19)
  41163. #define BIT_FS_ATIM_MB2_INT BIT(18)
  41164. #define BIT_FS_ATIM_MB1_INT BIT(17)
  41165. #define BIT_FS_ATIM_MB0_INT BIT(16)
  41166. #define BIT_FS_TBTT4INT BIT(11)
  41167. #define BIT_FS_TBTT3INT BIT(10)
  41168. #define BIT_FS_TBTT2INT BIT(9)
  41169. #define BIT_FS_TBTT1INT BIT(8)
  41170. #define BIT_FS_TBTT0_MB7INT BIT(7)
  41171. #define BIT_FS_TBTT0_MB6INT BIT(6)
  41172. #define BIT_FS_TBTT0_MB5INT BIT(5)
  41173. #define BIT_FS_TBTT0_MB4INT BIT(4)
  41174. #define BIT_FS_TBTT0_MB3INT BIT(3)
  41175. #define BIT_FS_TBTT0_MB2INT BIT(2)
  41176. #define BIT_FS_TBTT0_MB1INT BIT(1)
  41177. #define BIT_FS_TBTT0_INT BIT(0)
  41178. #endif
  41179. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41180. /* 2 REG_FE3IMR (Offset 0x1128) */
  41181. #define BIT_FS_BCNELY4_AGGR_INT_EN BIT(31)
  41182. #endif
  41183. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41184. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41185. /* 2 REG_FE3IMR (Offset 0x1128) */
  41186. #define BIT_FS_CLI3_MTI_BCNIVLEAR_INT__EN BIT(31)
  41187. #endif
  41188. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41189. /* 2 REG_FE3IMR (Offset 0x1128) */
  41190. #define BIT_FS_BCNELY3_AGGR_INT_EN BIT(30)
  41191. #endif
  41192. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41193. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41194. /* 2 REG_FE3IMR (Offset 0x1128) */
  41195. #define BIT_FS_CLI2_MTI_BCNIVLEAR_INT__EN BIT(30)
  41196. #endif
  41197. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41198. /* 2 REG_FE3IMR (Offset 0x1128) */
  41199. #define BIT_FS_BCNELY2_AGGR_INT_EN BIT(29)
  41200. #endif
  41201. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41202. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41203. /* 2 REG_FE3IMR (Offset 0x1128) */
  41204. #define BIT_FS_CLI1_MTI_BCNIVLEAR_INT__EN BIT(29)
  41205. #endif
  41206. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41207. /* 2 REG_FE3IMR (Offset 0x1128) */
  41208. #define BIT_FS_BCNELY1_AGGR_INT_EN BIT(28)
  41209. #endif
  41210. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41211. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41212. /* 2 REG_FE3IMR (Offset 0x1128) */
  41213. #define BIT_FS_CLI0_MTI_BCNIVLEAR_INT__EN BIT(28)
  41214. #endif
  41215. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41216. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41217. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41218. /* 2 REG_FE3IMR (Offset 0x1128) */
  41219. #define BIT_FS_BCNDMA4_INT_EN BIT(27)
  41220. #define BIT_FS_BCNDMA3_INT_EN BIT(26)
  41221. #define BIT_FS_BCNDMA2_INT_EN BIT(25)
  41222. #define BIT_FS_BCNDMA1_INT_EN BIT(24)
  41223. #define BIT_FS_BCNDMA0_MB7_INT_EN BIT(23)
  41224. #define BIT_FS_BCNDMA0_MB6_INT_EN BIT(22)
  41225. #define BIT_FS_BCNDMA0_MB5_INT_EN BIT(21)
  41226. #define BIT_FS_BCNDMA0_MB4_INT_EN BIT(20)
  41227. #define BIT_FS_BCNDMA0_MB3_INT_EN BIT(19)
  41228. #define BIT_FS_BCNDMA0_MB2_INT_EN BIT(18)
  41229. #define BIT_FS_BCNDMA0_MB1_INT_EN BIT(17)
  41230. #define BIT_FS_BCNDMA0_INT_EN BIT(16)
  41231. #define BIT_FS_MTI_BCNIVLEAR_INT__EN BIT(15)
  41232. #define BIT_FS_BCNERLY4_INT_EN BIT(11)
  41233. #define BIT_FS_BCNERLY3_INT_EN BIT(10)
  41234. #define BIT_FS_BCNERLY2_INT_EN BIT(9)
  41235. #define BIT_FS_BCNERLY1_INT_EN BIT(8)
  41236. #define BIT_FS_BCNERLY0_MB7INT_EN BIT(7)
  41237. #define BIT_FS_BCNERLY0_MB6INT_EN BIT(6)
  41238. #define BIT_FS_BCNERLY0_MB5INT_EN BIT(5)
  41239. #define BIT_FS_BCNERLY0_MB4INT_EN BIT(4)
  41240. #define BIT_FS_BCNERLY0_MB3INT_EN BIT(3)
  41241. #define BIT_FS_BCNERLY0_MB2INT_EN BIT(2)
  41242. #define BIT_FS_BCNERLY0_MB1INT_EN BIT(1)
  41243. #define BIT_FS_BCNERLY0_INT_EN BIT(0)
  41244. #endif
  41245. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41246. /* 2 REG_FE3ISR (Offset 0x112C) */
  41247. #define BIT_FS_BCNELY4_AGGR_INT BIT(31)
  41248. #endif
  41249. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41250. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41251. /* 2 REG_FE3ISR (Offset 0x112C) */
  41252. #define BIT_FS_CLI3_MTI_BCNIVLEAR_INT BIT(31)
  41253. #endif
  41254. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41255. /* 2 REG_FE3ISR (Offset 0x112C) */
  41256. #define BIT_FS_BCNELY3_AGGR_INT BIT(30)
  41257. #endif
  41258. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41259. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41260. /* 2 REG_FE3ISR (Offset 0x112C) */
  41261. #define BIT_FS_CLI2_MTI_BCNIVLEAR_INT BIT(30)
  41262. #endif
  41263. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41264. /* 2 REG_FE3ISR (Offset 0x112C) */
  41265. #define BIT_FS_BCNELY2_AGGR_INT BIT(29)
  41266. #endif
  41267. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41268. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41269. /* 2 REG_FE3ISR (Offset 0x112C) */
  41270. #define BIT_FS_CLI1_MTI_BCNIVLEAR_INT BIT(29)
  41271. #endif
  41272. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41273. /* 2 REG_FE3ISR (Offset 0x112C) */
  41274. #define BIT_FS_BCNELY1_AGGR_INT BIT(28)
  41275. #endif
  41276. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41277. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41278. /* 2 REG_FE3ISR (Offset 0x112C) */
  41279. #define BIT_FS_CLI0_MTI_BCNIVLEAR_INT BIT(28)
  41280. #endif
  41281. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41282. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41283. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41284. /* 2 REG_FE3ISR (Offset 0x112C) */
  41285. #define BIT_FS_BCNDMA4_INT BIT(27)
  41286. #define BIT_FS_BCNDMA3_INT BIT(26)
  41287. #define BIT_FS_BCNDMA2_INT BIT(25)
  41288. #define BIT_FS_BCNDMA1_INT BIT(24)
  41289. #define BIT_FS_BCNDMA0_MB7_INT BIT(23)
  41290. #define BIT_FS_BCNDMA0_MB6_INT BIT(22)
  41291. #define BIT_FS_BCNDMA0_MB5_INT BIT(21)
  41292. #define BIT_FS_BCNDMA0_MB4_INT BIT(20)
  41293. #define BIT_FS_BCNDMA0_MB3_INT BIT(19)
  41294. #define BIT_FS_BCNDMA0_MB2_INT BIT(18)
  41295. #define BIT_FS_BCNDMA0_MB1_INT BIT(17)
  41296. #define BIT_FS_BCNDMA0_INT BIT(16)
  41297. #define BIT_FS_MTI_BCNIVLEAR_INT BIT(15)
  41298. #define BIT_FS_BCNERLY4_INT BIT(11)
  41299. #define BIT_FS_BCNERLY3_INT BIT(10)
  41300. #define BIT_FS_BCNERLY2_INT BIT(9)
  41301. #define BIT_FS_BCNERLY1_INT BIT(8)
  41302. #define BIT_FS_BCNERLY0_MB7INT BIT(7)
  41303. #define BIT_FS_BCNERLY0_MB6INT BIT(6)
  41304. #define BIT_FS_BCNERLY0_MB5INT BIT(5)
  41305. #define BIT_FS_BCNERLY0_MB4INT BIT(4)
  41306. #define BIT_FS_BCNERLY0_MB3INT BIT(3)
  41307. #define BIT_FS_BCNERLY0_MB2INT BIT(2)
  41308. #define BIT_FS_BCNERLY0_MB1INT BIT(1)
  41309. #define BIT_FS_BCNERLY0_INT BIT(0)
  41310. #endif
  41311. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41312. /* 2 REG_FE4IMR (Offset 0x1130) */
  41313. #define BIT_PORT4_PKTIN_INT_EN BIT(19)
  41314. #endif
  41315. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41316. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41317. /* 2 REG_FE4IMR (Offset 0x1130) */
  41318. #define BIT_FS_CLI3_TXPKTIN_INT_EN BIT(19)
  41319. #endif
  41320. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41321. /* 2 REG_FE4IMR (Offset 0x1130) */
  41322. #define BIT_PORT3_PKTIN_INT_EN BIT(18)
  41323. #endif
  41324. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41325. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41326. /* 2 REG_FE4IMR (Offset 0x1130) */
  41327. #define BIT_FS_CLI2_TXPKTIN_INT_EN BIT(18)
  41328. #endif
  41329. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41330. /* 2 REG_FE4IMR (Offset 0x1130) */
  41331. #define BIT_PORT2_PKTIN_INT_EN BIT(17)
  41332. #endif
  41333. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41334. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41335. /* 2 REG_FE4IMR (Offset 0x1130) */
  41336. #define BIT_FS_CLI1_TXPKTIN_INT_EN BIT(17)
  41337. #endif
  41338. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41339. /* 2 REG_FE4IMR (Offset 0x1130) */
  41340. #define BIT_PORT1_PKTIN_INT_EN BIT(16)
  41341. #endif
  41342. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41343. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41344. /* 2 REG_FE4IMR (Offset 0x1130) */
  41345. #define BIT_FS_CLI0_TXPKTIN_INT_EN BIT(16)
  41346. #endif
  41347. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41348. /* 2 REG_FE4IMR (Offset 0x1130) */
  41349. #define BIT_PORT4_RXUCMD0_OK_INT_EN BIT(15)
  41350. #endif
  41351. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41352. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41353. /* 2 REG_FE4IMR (Offset 0x1130) */
  41354. #define BIT_FS_CLI3_RX_UMD0_INT_EN BIT(15)
  41355. #endif
  41356. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41357. /* 2 REG_FE4IMR (Offset 0x1130) */
  41358. #define BIT_PORT4_RXUCMD1_OK_INT_EN BIT(14)
  41359. #endif
  41360. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41361. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41362. /* 2 REG_FE4IMR (Offset 0x1130) */
  41363. #define BIT_FS_CLI3_RX_UMD1_INT_EN BIT(14)
  41364. #endif
  41365. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41366. /* 2 REG_FE4IMR (Offset 0x1130) */
  41367. #define BIT_PORT4_RXBCMD0_OK_INT_EN BIT(13)
  41368. #endif
  41369. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41370. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41371. /* 2 REG_FE4IMR (Offset 0x1130) */
  41372. #define BIT_FS_CLI3_RX_BMD0_INT_EN BIT(13)
  41373. #endif
  41374. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41375. /* 2 REG_FE4IMR (Offset 0x1130) */
  41376. #define BIT_PORT4_RXBCMD1_OK_INT_EN BIT(12)
  41377. #endif
  41378. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41379. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41380. /* 2 REG_FE4IMR (Offset 0x1130) */
  41381. #define BIT_FS_CLI3_RX_BMD1_INT_EN BIT(12)
  41382. #endif
  41383. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41384. /* 2 REG_FE4IMR (Offset 0x1130) */
  41385. #define BIT_PORT3_RXUCMD0_OK_INT_EN BIT(11)
  41386. #endif
  41387. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41388. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41389. /* 2 REG_FE4IMR (Offset 0x1130) */
  41390. #define BIT_FS_CLI2_RX_UMD0_INT_EN BIT(11)
  41391. #endif
  41392. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41393. /* 2 REG_FE4IMR (Offset 0x1130) */
  41394. #define BIT_PORT3_RXUCMD1_OK_INT_EN BIT(10)
  41395. #endif
  41396. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41397. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41398. /* 2 REG_FE4IMR (Offset 0x1130) */
  41399. #define BIT_FS_CLI2_RX_UMD1_INT_EN BIT(10)
  41400. #endif
  41401. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41402. /* 2 REG_FE4IMR (Offset 0x1130) */
  41403. #define BIT_PORT3_RXBCMD0_OK_INT_EN BIT(9)
  41404. #endif
  41405. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41406. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41407. /* 2 REG_FE4IMR (Offset 0x1130) */
  41408. #define BIT_FS_CLI2_RX_BMD0_INT_EN BIT(9)
  41409. #endif
  41410. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41411. /* 2 REG_FE4IMR (Offset 0x1130) */
  41412. #define BIT_PORT3_RXBCMD1_OK_INT_EN BIT(8)
  41413. #endif
  41414. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41415. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41416. /* 2 REG_FE4IMR (Offset 0x1130) */
  41417. #define BIT_FS_CLI2_RX_BMD1_INT_EN BIT(8)
  41418. #endif
  41419. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41420. /* 2 REG_FE4IMR (Offset 0x1130) */
  41421. #define BIT_PORT2_RXUCMD0_OK_INT_EN BIT(7)
  41422. #endif
  41423. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41424. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41425. /* 2 REG_FE4IMR (Offset 0x1130) */
  41426. #define BIT_FS_CLI1_RX_UMD0_INT_EN BIT(7)
  41427. #endif
  41428. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41429. /* 2 REG_FE4IMR (Offset 0x1130) */
  41430. #define BIT_PORT2_RXUCMD1_OK_INT_EN BIT(6)
  41431. #endif
  41432. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41433. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41434. /* 2 REG_FE4IMR (Offset 0x1130) */
  41435. #define BIT_FS_CLI1_RX_UMD1_INT_EN BIT(6)
  41436. #endif
  41437. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41438. /* 2 REG_FE4IMR (Offset 0x1130) */
  41439. #define BIT_PORT2_RXBCMD0_OK_INT_EN BIT(5)
  41440. #endif
  41441. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41442. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41443. /* 2 REG_FE4IMR (Offset 0x1130) */
  41444. #define BIT_FS_CLI1_RX_BMD0_INT_EN BIT(5)
  41445. #endif
  41446. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41447. /* 2 REG_FE4IMR (Offset 0x1130) */
  41448. #define BIT_PORT2_RXBCMD1_OK_INT_EN BIT(4)
  41449. #endif
  41450. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41451. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41452. /* 2 REG_FE4IMR (Offset 0x1130) */
  41453. #define BIT_FS_CLI1_RX_BMD1_INT_EN BIT(4)
  41454. #endif
  41455. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41456. /* 2 REG_FE4IMR (Offset 0x1130) */
  41457. #define BIT_PORT1_RXUCMD0_OK_INT_EN BIT(3)
  41458. #endif
  41459. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41460. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41461. /* 2 REG_FE4IMR (Offset 0x1130) */
  41462. #define BIT_FS_CLI0_RX_UMD0_INT_EN BIT(3)
  41463. #endif
  41464. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41465. /* 2 REG_FE4IMR (Offset 0x1130) */
  41466. #define BIT_PORT1_RXUCMD1_OK_INT_EN BIT(2)
  41467. #endif
  41468. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41469. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41470. /* 2 REG_FE4IMR (Offset 0x1130) */
  41471. #define BIT_FS_CLI0_RX_UMD1_INT_EN BIT(2)
  41472. #endif
  41473. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  41474. /* 2 REG_FE4IMR (Offset 0x1130) */
  41475. #define BIT_FS_DMEM1_WPTR_UPDATE_INT_EN BIT(2)
  41476. #endif
  41477. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41478. /* 2 REG_FE4IMR (Offset 0x1130) */
  41479. #define BIT_PORT1_RXBCMD0_OK_INT_EN BIT(1)
  41480. #endif
  41481. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41482. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41483. /* 2 REG_FE4IMR (Offset 0x1130) */
  41484. #define BIT_FS_CLI0_RX_BMD0_INT_EN BIT(1)
  41485. #endif
  41486. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41487. /* 2 REG_FE4IMR (Offset 0x1130) */
  41488. #define BIT_PORT1_RXBCMD1_OK_INT_EN BIT(0)
  41489. #endif
  41490. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41491. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41492. /* 2 REG_FE4IMR (Offset 0x1130) */
  41493. #define BIT_FS_CLI0_RX_BMD1_INT_EN BIT(0)
  41494. #endif
  41495. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41496. /* 2 REG_FE4ISR (Offset 0x1134) */
  41497. #define BIT_PORT4_PKTIN_INT BIT(19)
  41498. #endif
  41499. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41500. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41501. /* 2 REG_FE4ISR (Offset 0x1134) */
  41502. #define BIT_FS_CLI3_TXPKTIN_INT BIT(19)
  41503. #endif
  41504. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41505. /* 2 REG_FE4ISR (Offset 0x1134) */
  41506. #define BIT_PORT3_PKTIN_INT BIT(18)
  41507. #endif
  41508. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41509. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41510. /* 2 REG_FE4ISR (Offset 0x1134) */
  41511. #define BIT_FS_CLI2_TXPKTIN_INT BIT(18)
  41512. #endif
  41513. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41514. /* 2 REG_FE4ISR (Offset 0x1134) */
  41515. #define BIT_PORT2_PKTIN_INT BIT(17)
  41516. #endif
  41517. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41518. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41519. /* 2 REG_FE4ISR (Offset 0x1134) */
  41520. #define BIT_FS_CLI1_TXPKTIN_INT BIT(17)
  41521. #endif
  41522. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41523. /* 2 REG_FE4ISR (Offset 0x1134) */
  41524. #define BIT_PORT1_PKTIN_INT BIT(16)
  41525. #endif
  41526. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41527. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41528. /* 2 REG_FE4ISR (Offset 0x1134) */
  41529. #define BIT_FS_CLI0_TXPKTIN_INT BIT(16)
  41530. #endif
  41531. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41532. /* 2 REG_FE4ISR (Offset 0x1134) */
  41533. #define BIT_PORT4_RXUCMD0_OK_INT BIT(15)
  41534. #endif
  41535. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41536. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41537. /* 2 REG_FE4ISR (Offset 0x1134) */
  41538. #define BIT_FS_CLI3_RX_UMD0_INT BIT(15)
  41539. #endif
  41540. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41541. /* 2 REG_FE4ISR (Offset 0x1134) */
  41542. #define BIT_PORT4_RXUCMD1_OK_INT BIT(14)
  41543. #endif
  41544. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41545. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41546. /* 2 REG_FE4ISR (Offset 0x1134) */
  41547. #define BIT_FS_CLI3_RX_UMD1_INT BIT(14)
  41548. #endif
  41549. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41550. /* 2 REG_FE4ISR (Offset 0x1134) */
  41551. #define BIT_PORT4_RXBCMD0_OK_INT BIT(13)
  41552. #endif
  41553. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41554. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41555. /* 2 REG_FE4ISR (Offset 0x1134) */
  41556. #define BIT_FS_CLI3_RX_BMD0_INT BIT(13)
  41557. #endif
  41558. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41559. /* 2 REG_FE4ISR (Offset 0x1134) */
  41560. #define BIT_PORT4_RXBCMD1_OK_INT BIT(12)
  41561. #endif
  41562. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41563. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41564. /* 2 REG_FE4ISR (Offset 0x1134) */
  41565. #define BIT_FS_CLI3_RX_BMD1_INT BIT(12)
  41566. #endif
  41567. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41568. /* 2 REG_FE4ISR (Offset 0x1134) */
  41569. #define BIT_PORT3_RXUCMD0_OK_INT BIT(11)
  41570. #endif
  41571. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41572. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41573. /* 2 REG_FE4ISR (Offset 0x1134) */
  41574. #define BIT_FS_CLI2_RX_UMD0_INT BIT(11)
  41575. #endif
  41576. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41577. /* 2 REG_FE4ISR (Offset 0x1134) */
  41578. #define BIT_PORT3_RXUCMD1_OK_INT BIT(10)
  41579. #endif
  41580. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41581. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41582. /* 2 REG_FE4ISR (Offset 0x1134) */
  41583. #define BIT_FS_CLI2_RX_UMD1_INT BIT(10)
  41584. #endif
  41585. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41586. /* 2 REG_FE4ISR (Offset 0x1134) */
  41587. #define BIT_PORT3_RXBCMD0_OK_INT BIT(9)
  41588. #endif
  41589. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41590. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41591. /* 2 REG_FE4ISR (Offset 0x1134) */
  41592. #define BIT_FS_CLI2_RX_BMD0_INT BIT(9)
  41593. #endif
  41594. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41595. /* 2 REG_FE4ISR (Offset 0x1134) */
  41596. #define BIT_PORT3_RXBCMD1_OK_INT BIT(8)
  41597. #endif
  41598. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41599. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41600. /* 2 REG_FE4ISR (Offset 0x1134) */
  41601. #define BIT_FS_CLI2_RX_BMD1_INT BIT(8)
  41602. #endif
  41603. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41604. /* 2 REG_FE4ISR (Offset 0x1134) */
  41605. #define BIT_PORT2_RXUCMD0_OK_INT BIT(7)
  41606. #endif
  41607. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41608. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41609. /* 2 REG_FE4ISR (Offset 0x1134) */
  41610. #define BIT_FS_CLI1_RX_UMD0_INT BIT(7)
  41611. #endif
  41612. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41613. /* 2 REG_FE4ISR (Offset 0x1134) */
  41614. #define BIT_PORT2_RXUCMD1_OK_INT BIT(6)
  41615. #endif
  41616. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41617. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41618. /* 2 REG_FE4ISR (Offset 0x1134) */
  41619. #define BIT_FS_CLI1_RX_UMD1_INT BIT(6)
  41620. #endif
  41621. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41622. /* 2 REG_FE4ISR (Offset 0x1134) */
  41623. #define BIT_PORT2_RXBCMD0_OK_INT BIT(5)
  41624. #endif
  41625. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41626. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41627. /* 2 REG_FE4ISR (Offset 0x1134) */
  41628. #define BIT_FS_CLI1_RX_BMD0_INT BIT(5)
  41629. #endif
  41630. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41631. /* 2 REG_FE4ISR (Offset 0x1134) */
  41632. #define BIT_PORT2_RXBCMD1_OK_INT BIT(4)
  41633. #endif
  41634. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41635. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41636. /* 2 REG_FE4ISR (Offset 0x1134) */
  41637. #define BIT_FS_CLI1_RX_BMD1_INT BIT(4)
  41638. #endif
  41639. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41640. /* 2 REG_FE4ISR (Offset 0x1134) */
  41641. #define BIT_PORT1_RXUCMD0_OK_INT BIT(3)
  41642. #endif
  41643. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41644. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41645. /* 2 REG_FE4ISR (Offset 0x1134) */
  41646. #define BIT_FS_CLI0_RX_UMD0_INT BIT(3)
  41647. #endif
  41648. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41649. /* 2 REG_FE4ISR (Offset 0x1134) */
  41650. #define BIT_PORT1_RXUCMD1_OK_INT BIT(2)
  41651. #endif
  41652. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41653. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41654. /* 2 REG_FE4ISR (Offset 0x1134) */
  41655. #define BIT_FS_CLI0_RX_UMD1_INT BIT(2)
  41656. #endif
  41657. #if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)
  41658. /* 2 REG_FE4ISR (Offset 0x1134) */
  41659. #define BIT_FS_DMEM1_WPTR_UPDATE_INT BIT(2)
  41660. #endif
  41661. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41662. /* 2 REG_FE4ISR (Offset 0x1134) */
  41663. #define BIT_PORT1_RXBCMD0_OK_INT BIT(1)
  41664. #endif
  41665. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41666. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41667. /* 2 REG_FE4ISR (Offset 0x1134) */
  41668. #define BIT_FS_CLI0_RX_BMD0_INT BIT(1)
  41669. #endif
  41670. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  41671. /* 2 REG_FE4ISR (Offset 0x1134) */
  41672. #define BIT_PORT1_RXBCMD1_OK_INT BIT(0)
  41673. #endif
  41674. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41675. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41676. /* 2 REG_FE4ISR (Offset 0x1134) */
  41677. #define BIT_FS_CLI0_RX_BMD1_INT BIT(0)
  41678. #endif
  41679. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41680. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  41681. HALMAC_8822C_SUPPORT)
  41682. /* 2 REG_FT1IMR (Offset 0x1138) */
  41683. #define BIT__FT2ISR__IND_MSK BIT(30)
  41684. #define BIT_FTM_PTT_INT_EN BIT(29)
  41685. #define BIT_RXFTMREQ_INT_EN BIT(28)
  41686. #define BIT_RXFTM_INT_EN BIT(27)
  41687. #define BIT_TXFTM_INT_EN BIT(26)
  41688. #endif
  41689. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41690. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41691. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41692. /* 2 REG_FT1IMR (Offset 0x1138) */
  41693. #define BIT_FS_H2C_CMD_OK_INT_EN BIT(25)
  41694. #define BIT_FS_H2C_CMD_FULL_INT_EN BIT(24)
  41695. #endif
  41696. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41697. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  41698. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41699. /* 2 REG_FT1IMR (Offset 0x1138) */
  41700. #define BIT_FS_MACID_PWRCHANGE5_INT_EN BIT(23)
  41701. #define BIT_FS_MACID_PWRCHANGE4_INT_EN BIT(22)
  41702. #endif
  41703. #if (HALMAC_8814B_SUPPORT)
  41704. /* 2 REG_FT1IMR (Offset 0x1138) */
  41705. #define BIT_FS_MACID_SEARCH_FAIL_INT_EN BIT(22)
  41706. #endif
  41707. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41708. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41709. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41710. /* 2 REG_FT1IMR (Offset 0x1138) */
  41711. #define BIT_FS_MACID_PWRCHANGE3_INT_EN BIT(21)
  41712. #define BIT_FS_MACID_PWRCHANGE2_INT_EN BIT(20)
  41713. #define BIT_FS_MACID_PWRCHANGE1_INT_EN BIT(19)
  41714. #define BIT_FS_MACID_PWRCHANGE0_INT_EN BIT(18)
  41715. #define BIT_FS_CTWEND2_INT_EN BIT(17)
  41716. #define BIT_FS_CTWEND1_INT_EN BIT(16)
  41717. #define BIT_FS_CTWEND0_INT_EN BIT(15)
  41718. #define BIT_FS_TX_NULL1_INT_EN BIT(14)
  41719. #define BIT_FS_TX_NULL0_INT_EN BIT(13)
  41720. #define BIT_FS_TSF_BIT32_TOGGLE_EN BIT(12)
  41721. #define BIT_FS_P2P_RFON2_INT_EN BIT(11)
  41722. #define BIT_FS_P2P_RFOFF2_INT_EN BIT(10)
  41723. #define BIT_FS_P2P_RFON1_INT_EN BIT(9)
  41724. #define BIT_FS_P2P_RFOFF1_INT_EN BIT(8)
  41725. #define BIT_FS_P2P_RFON0_INT_EN BIT(7)
  41726. #define BIT_FS_P2P_RFOFF0_INT_EN BIT(6)
  41727. #define BIT_FS_RX_UAPSDMD1_EN BIT(5)
  41728. #define BIT_FS_RX_UAPSDMD0_EN BIT(4)
  41729. #define BIT_FS_TRIGGER_PKT_EN BIT(3)
  41730. #define BIT_FS_EOSP_INT_EN BIT(2)
  41731. #define BIT_FS_RPWM2_INT_EN BIT(1)
  41732. #define BIT_FS_RPWM_INT_EN BIT(0)
  41733. #endif
  41734. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41735. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  41736. HALMAC_8822C_SUPPORT)
  41737. /* 2 REG_FT1ISR (Offset 0x113C) */
  41738. #define BIT__FT2ISR__IND_INT BIT(30)
  41739. #define BIT_FTM_PTT_INT BIT(29)
  41740. #define BIT_RXFTMREQ_INT BIT(28)
  41741. #define BIT_RXFTM_INT BIT(27)
  41742. #define BIT_TXFTM_INT BIT(26)
  41743. #endif
  41744. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41745. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41746. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41747. /* 2 REG_FT1ISR (Offset 0x113C) */
  41748. #define BIT_FS_H2C_CMD_OK_INT BIT(25)
  41749. #define BIT_FS_H2C_CMD_FULL_INT BIT(24)
  41750. #endif
  41751. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41752. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  41753. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41754. /* 2 REG_FT1ISR (Offset 0x113C) */
  41755. #define BIT_FS_MACID_PWRCHANGE5_INT BIT(23)
  41756. #define BIT_FS_MACID_PWRCHANGE4_INT BIT(22)
  41757. #endif
  41758. #if (HALMAC_8814B_SUPPORT)
  41759. /* 2 REG_FT1ISR (Offset 0x113C) */
  41760. #define BIT_FS_MACID_SEARCH_FAIL_INT BIT(22)
  41761. #endif
  41762. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41763. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41764. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41765. /* 2 REG_FT1ISR (Offset 0x113C) */
  41766. #define BIT_FS_MACID_PWRCHANGE3_INT BIT(21)
  41767. #define BIT_FS_MACID_PWRCHANGE2_INT BIT(20)
  41768. #define BIT_FS_MACID_PWRCHANGE1_INT BIT(19)
  41769. #define BIT_FS_MACID_PWRCHANGE0_INT BIT(18)
  41770. #define BIT_FS_CTWEND2_INT BIT(17)
  41771. #define BIT_FS_CTWEND1_INT BIT(16)
  41772. #define BIT_FS_CTWEND0_INT BIT(15)
  41773. #define BIT_FS_TX_NULL1_INT BIT(14)
  41774. #define BIT_FS_TX_NULL0_INT BIT(13)
  41775. #define BIT_FS_TSF_BIT32_TOGGLE_INT BIT(12)
  41776. #define BIT_FS_P2P_RFON2_INT BIT(11)
  41777. #endif
  41778. #if (HALMAC_8814B_SUPPORT)
  41779. /* 2 REG_FT1ISR (Offset 0x113C) */
  41780. #define BIT_FS_TXBCNOK_PORT4_INT_EN BIT(11)
  41781. #endif
  41782. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41783. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41784. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41785. /* 2 REG_FT1ISR (Offset 0x113C) */
  41786. #define BIT_FS_P2P_RFOFF2_INT BIT(10)
  41787. #endif
  41788. #if (HALMAC_8814B_SUPPORT)
  41789. /* 2 REG_FT1ISR (Offset 0x113C) */
  41790. #define BIT_FS_TXBCNOK_PORT3_INT_EN BIT(10)
  41791. #endif
  41792. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41793. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41794. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41795. /* 2 REG_FT1ISR (Offset 0x113C) */
  41796. #define BIT_FS_P2P_RFON1_INT BIT(9)
  41797. #endif
  41798. #if (HALMAC_8814B_SUPPORT)
  41799. /* 2 REG_FT1ISR (Offset 0x113C) */
  41800. #define BIT_FS_TXBCNOK_PORT2_INT_EN BIT(9)
  41801. #endif
  41802. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41803. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41804. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41805. /* 2 REG_FT1ISR (Offset 0x113C) */
  41806. #define BIT_FS_P2P_RFOFF1_INT BIT(8)
  41807. #endif
  41808. #if (HALMAC_8814B_SUPPORT)
  41809. /* 2 REG_FT1ISR (Offset 0x113C) */
  41810. #define BIT_FS_TXBCNOK_PORT1_INT_EN BIT(8)
  41811. #endif
  41812. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41813. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41814. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41815. /* 2 REG_FT1ISR (Offset 0x113C) */
  41816. #define BIT_FS_P2P_RFON0_INT BIT(7)
  41817. #endif
  41818. #if (HALMAC_8814B_SUPPORT)
  41819. /* 2 REG_FT1ISR (Offset 0x113C) */
  41820. #define BIT_FS_TXBCNERR_PORT4_INT_EN BIT(7)
  41821. #endif
  41822. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41823. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41824. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41825. /* 2 REG_FT1ISR (Offset 0x113C) */
  41826. #define BIT_FS_P2P_RFOFF0_INT BIT(6)
  41827. #endif
  41828. #if (HALMAC_8814B_SUPPORT)
  41829. /* 2 REG_FT1ISR (Offset 0x113C) */
  41830. #define BIT_FS_TXBCNERR_PORT3_INT_EN BIT(6)
  41831. #endif
  41832. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41833. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41834. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41835. /* 2 REG_FT1ISR (Offset 0x113C) */
  41836. #define BIT_FS_RX_UAPSDMD1_INT BIT(5)
  41837. #endif
  41838. #if (HALMAC_8814B_SUPPORT)
  41839. /* 2 REG_FT1ISR (Offset 0x113C) */
  41840. #define BIT_FS_TXBCNERR_PORT2_INT_EN BIT(5)
  41841. #endif
  41842. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41843. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41844. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41845. /* 2 REG_FT1ISR (Offset 0x113C) */
  41846. #define BIT_FS_RX_UAPSDMD0_INT BIT(4)
  41847. #endif
  41848. #if (HALMAC_8814B_SUPPORT)
  41849. /* 2 REG_FT1ISR (Offset 0x113C) */
  41850. #define BIT_FS_TXBCNERR_PORT1_INT_EN BIT(4)
  41851. #endif
  41852. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41853. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41854. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41855. /* 2 REG_FT1ISR (Offset 0x113C) */
  41856. #define BIT_FS_TRIGGER_PKT_INT BIT(3)
  41857. #endif
  41858. #if (HALMAC_8814B_SUPPORT)
  41859. /* 2 REG_FT1ISR (Offset 0x113C) */
  41860. #define BIT_FS_ATIM_PORT4_INT_EN BIT(3)
  41861. #endif
  41862. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41863. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41864. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41865. /* 2 REG_FT1ISR (Offset 0x113C) */
  41866. #define BIT_FS_EOSP_INT BIT(2)
  41867. #endif
  41868. #if (HALMAC_8814B_SUPPORT)
  41869. /* 2 REG_FT1ISR (Offset 0x113C) */
  41870. #define BIT_FS_ATIM_PORT3_INT_EN BIT(2)
  41871. #endif
  41872. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41873. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41874. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41875. /* 2 REG_FT1ISR (Offset 0x113C) */
  41876. #define BIT_FS_RPWM2_INT BIT(1)
  41877. #endif
  41878. #if (HALMAC_8814B_SUPPORT)
  41879. /* 2 REG_FT1ISR (Offset 0x113C) */
  41880. #define BIT_FS_ATIM_PORT2_INT_EN BIT(1)
  41881. #endif
  41882. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41883. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41884. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41885. /* 2 REG_FT1ISR (Offset 0x113C) */
  41886. #define BIT_FS_RPWM_INT BIT(0)
  41887. #endif
  41888. #if (HALMAC_8814B_SUPPORT)
  41889. /* 2 REG_FT1ISR (Offset 0x113C) */
  41890. #define BIT_FS_ATIM_PORT1_INT_EN BIT(0)
  41891. #endif
  41892. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  41893. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  41894. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  41895. /* 2 REG_SPWR0 (Offset 0x1140) */
  41896. #define BIT_SHIFT_MID_31TO0 0
  41897. #define BIT_MASK_MID_31TO0 0xffffffffL
  41898. #define BIT_MID_31TO0(x) (((x) & BIT_MASK_MID_31TO0) << BIT_SHIFT_MID_31TO0)
  41899. #define BITS_MID_31TO0 (BIT_MASK_MID_31TO0 << BIT_SHIFT_MID_31TO0)
  41900. #define BIT_CLEAR_MID_31TO0(x) ((x) & (~BITS_MID_31TO0))
  41901. #define BIT_GET_MID_31TO0(x) (((x) >> BIT_SHIFT_MID_31TO0) & BIT_MASK_MID_31TO0)
  41902. #define BIT_SET_MID_31TO0(x, v) (BIT_CLEAR_MID_31TO0(x) | BIT_MID_31TO0(v))
  41903. /* 2 REG_SPWR1 (Offset 0x1144) */
  41904. #define BIT_SHIFT_MID_63TO32 0
  41905. #define BIT_MASK_MID_63TO32 0xffffffffL
  41906. #define BIT_MID_63TO32(x) (((x) & BIT_MASK_MID_63TO32) << BIT_SHIFT_MID_63TO32)
  41907. #define BITS_MID_63TO32 (BIT_MASK_MID_63TO32 << BIT_SHIFT_MID_63TO32)
  41908. #define BIT_CLEAR_MID_63TO32(x) ((x) & (~BITS_MID_63TO32))
  41909. #define BIT_GET_MID_63TO32(x) \
  41910. (((x) >> BIT_SHIFT_MID_63TO32) & BIT_MASK_MID_63TO32)
  41911. #define BIT_SET_MID_63TO32(x, v) (BIT_CLEAR_MID_63TO32(x) | BIT_MID_63TO32(v))
  41912. /* 2 REG_SPWR2 (Offset 0x1148) */
  41913. #define BIT_SHIFT_MID_95O64 0
  41914. #define BIT_MASK_MID_95O64 0xffffffffL
  41915. #define BIT_MID_95O64(x) (((x) & BIT_MASK_MID_95O64) << BIT_SHIFT_MID_95O64)
  41916. #define BITS_MID_95O64 (BIT_MASK_MID_95O64 << BIT_SHIFT_MID_95O64)
  41917. #define BIT_CLEAR_MID_95O64(x) ((x) & (~BITS_MID_95O64))
  41918. #define BIT_GET_MID_95O64(x) (((x) >> BIT_SHIFT_MID_95O64) & BIT_MASK_MID_95O64)
  41919. #define BIT_SET_MID_95O64(x, v) (BIT_CLEAR_MID_95O64(x) | BIT_MID_95O64(v))
  41920. /* 2 REG_SPWR3 (Offset 0x114C) */
  41921. #define BIT_SHIFT_MID_127TO96 0
  41922. #define BIT_MASK_MID_127TO96 0xffffffffL
  41923. #define BIT_MID_127TO96(x) \
  41924. (((x) & BIT_MASK_MID_127TO96) << BIT_SHIFT_MID_127TO96)
  41925. #define BITS_MID_127TO96 (BIT_MASK_MID_127TO96 << BIT_SHIFT_MID_127TO96)
  41926. #define BIT_CLEAR_MID_127TO96(x) ((x) & (~BITS_MID_127TO96))
  41927. #define BIT_GET_MID_127TO96(x) \
  41928. (((x) >> BIT_SHIFT_MID_127TO96) & BIT_MASK_MID_127TO96)
  41929. #define BIT_SET_MID_127TO96(x, v) \
  41930. (BIT_CLEAR_MID_127TO96(x) | BIT_MID_127TO96(v))
  41931. /* 2 REG_POWSEQ (Offset 0x1150) */
  41932. #define BIT_SHIFT_REF_MID 0
  41933. #define BIT_MASK_REF_MID 0x7f
  41934. #define BIT_REF_MID(x) (((x) & BIT_MASK_REF_MID) << BIT_SHIFT_REF_MID)
  41935. #define BITS_REF_MID (BIT_MASK_REF_MID << BIT_SHIFT_REF_MID)
  41936. #define BIT_CLEAR_REF_MID(x) ((x) & (~BITS_REF_MID))
  41937. #define BIT_GET_REF_MID(x) (((x) >> BIT_SHIFT_REF_MID) & BIT_MASK_REF_MID)
  41938. #define BIT_SET_REF_MID(x, v) (BIT_CLEAR_REF_MID(x) | BIT_REF_MID(v))
  41939. /* 2 REG_TC7_CTRL_V1 (Offset 0x1158) */
  41940. #define BIT_TC7INT_EN BIT(26)
  41941. #define BIT_TC7MODE BIT(25)
  41942. #define BIT_TC7EN BIT(24)
  41943. #define BIT_SHIFT_TC7DATA 0
  41944. #define BIT_MASK_TC7DATA 0xffffff
  41945. #define BIT_TC7DATA(x) (((x) & BIT_MASK_TC7DATA) << BIT_SHIFT_TC7DATA)
  41946. #define BITS_TC7DATA (BIT_MASK_TC7DATA << BIT_SHIFT_TC7DATA)
  41947. #define BIT_CLEAR_TC7DATA(x) ((x) & (~BITS_TC7DATA))
  41948. #define BIT_GET_TC7DATA(x) (((x) >> BIT_SHIFT_TC7DATA) & BIT_MASK_TC7DATA)
  41949. #define BIT_SET_TC7DATA(x, v) (BIT_CLEAR_TC7DATA(x) | BIT_TC7DATA(v))
  41950. /* 2 REG_TC8_CTRL_V1 (Offset 0x115C) */
  41951. #define BIT_TC8INT_EN BIT(26)
  41952. #define BIT_TC8MODE BIT(25)
  41953. #define BIT_TC8EN BIT(24)
  41954. #define BIT_SHIFT_TC8DATA 0
  41955. #define BIT_MASK_TC8DATA 0xffffff
  41956. #define BIT_TC8DATA(x) (((x) & BIT_MASK_TC8DATA) << BIT_SHIFT_TC8DATA)
  41957. #define BITS_TC8DATA (BIT_MASK_TC8DATA << BIT_SHIFT_TC8DATA)
  41958. #define BIT_CLEAR_TC8DATA(x) ((x) & (~BITS_TC8DATA))
  41959. #define BIT_GET_TC8DATA(x) (((x) >> BIT_SHIFT_TC8DATA) & BIT_MASK_TC8DATA)
  41960. #define BIT_SET_TC8DATA(x, v) (BIT_CLEAR_TC8DATA(x) | BIT_TC8DATA(v))
  41961. #endif
  41962. #if (HALMAC_8198F_SUPPORT)
  41963. /* 2 REG_RXBCN_TBTT_INTERVAL_PORT0TO3 (Offset 0x1160) */
  41964. #define BIT_SHIFT_PORT3_RXBCN_TBTT_INTERVAL 24
  41965. #define BIT_MASK_PORT3_RXBCN_TBTT_INTERVAL 0xff
  41966. #define BIT_PORT3_RXBCN_TBTT_INTERVAL(x) \
  41967. (((x) & BIT_MASK_PORT3_RXBCN_TBTT_INTERVAL) \
  41968. << BIT_SHIFT_PORT3_RXBCN_TBTT_INTERVAL)
  41969. #define BITS_PORT3_RXBCN_TBTT_INTERVAL \
  41970. (BIT_MASK_PORT3_RXBCN_TBTT_INTERVAL \
  41971. << BIT_SHIFT_PORT3_RXBCN_TBTT_INTERVAL)
  41972. #define BIT_CLEAR_PORT3_RXBCN_TBTT_INTERVAL(x) \
  41973. ((x) & (~BITS_PORT3_RXBCN_TBTT_INTERVAL))
  41974. #define BIT_GET_PORT3_RXBCN_TBTT_INTERVAL(x) \
  41975. (((x) >> BIT_SHIFT_PORT3_RXBCN_TBTT_INTERVAL) & \
  41976. BIT_MASK_PORT3_RXBCN_TBTT_INTERVAL)
  41977. #define BIT_SET_PORT3_RXBCN_TBTT_INTERVAL(x, v) \
  41978. (BIT_CLEAR_PORT3_RXBCN_TBTT_INTERVAL(x) | \
  41979. BIT_PORT3_RXBCN_TBTT_INTERVAL(v))
  41980. #endif
  41981. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  41982. HALMAC_8822C_SUPPORT)
  41983. /* 2 REG_RX_BCN_TBTT_ITVL0 (Offset 0x1160) */
  41984. #define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2 24
  41985. #define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2 0xff
  41986. #define BIT_RX_BCN_TBTT_ITVL_CLIENT2(x) \
  41987. (((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2) \
  41988. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2)
  41989. #define BITS_RX_BCN_TBTT_ITVL_CLIENT2 \
  41990. (BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2 \
  41991. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2)
  41992. #define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT2(x) \
  41993. ((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT2))
  41994. #define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT2(x) \
  41995. (((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2) & \
  41996. BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2)
  41997. #define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT2(x, v) \
  41998. (BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT2(x) | \
  41999. BIT_RX_BCN_TBTT_ITVL_CLIENT2(v))
  42000. #endif
  42001. #if (HALMAC_8198F_SUPPORT)
  42002. /* 2 REG_RXBCN_TBTT_INTERVAL_PORT0TO3 (Offset 0x1160) */
  42003. #define BIT_SHIFT_PORT2_RXBCN_TBTT_INTERVAL 16
  42004. #define BIT_MASK_PORT2_RXBCN_TBTT_INTERVAL 0xff
  42005. #define BIT_PORT2_RXBCN_TBTT_INTERVAL(x) \
  42006. (((x) & BIT_MASK_PORT2_RXBCN_TBTT_INTERVAL) \
  42007. << BIT_SHIFT_PORT2_RXBCN_TBTT_INTERVAL)
  42008. #define BITS_PORT2_RXBCN_TBTT_INTERVAL \
  42009. (BIT_MASK_PORT2_RXBCN_TBTT_INTERVAL \
  42010. << BIT_SHIFT_PORT2_RXBCN_TBTT_INTERVAL)
  42011. #define BIT_CLEAR_PORT2_RXBCN_TBTT_INTERVAL(x) \
  42012. ((x) & (~BITS_PORT2_RXBCN_TBTT_INTERVAL))
  42013. #define BIT_GET_PORT2_RXBCN_TBTT_INTERVAL(x) \
  42014. (((x) >> BIT_SHIFT_PORT2_RXBCN_TBTT_INTERVAL) & \
  42015. BIT_MASK_PORT2_RXBCN_TBTT_INTERVAL)
  42016. #define BIT_SET_PORT2_RXBCN_TBTT_INTERVAL(x, v) \
  42017. (BIT_CLEAR_PORT2_RXBCN_TBTT_INTERVAL(x) | \
  42018. BIT_PORT2_RXBCN_TBTT_INTERVAL(v))
  42019. #endif
  42020. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42021. HALMAC_8822C_SUPPORT)
  42022. /* 2 REG_RX_BCN_TBTT_ITVL0 (Offset 0x1160) */
  42023. #define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1 16
  42024. #define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1 0xff
  42025. #define BIT_RX_BCN_TBTT_ITVL_CLIENT1(x) \
  42026. (((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1) \
  42027. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1)
  42028. #define BITS_RX_BCN_TBTT_ITVL_CLIENT1 \
  42029. (BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1 \
  42030. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1)
  42031. #define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT1(x) \
  42032. ((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT1))
  42033. #define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT1(x) \
  42034. (((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1) & \
  42035. BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1)
  42036. #define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT1(x, v) \
  42037. (BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT1(x) | \
  42038. BIT_RX_BCN_TBTT_ITVL_CLIENT1(v))
  42039. #endif
  42040. #if (HALMAC_8198F_SUPPORT)
  42041. /* 2 REG_RXBCN_TBTT_INTERVAL_PORT0TO3 (Offset 0x1160) */
  42042. #define BIT_SHIFT_PORT1_RXBCN_TBTT_INTERVAL 8
  42043. #define BIT_MASK_PORT1_RXBCN_TBTT_INTERVAL 0xff
  42044. #define BIT_PORT1_RXBCN_TBTT_INTERVAL(x) \
  42045. (((x) & BIT_MASK_PORT1_RXBCN_TBTT_INTERVAL) \
  42046. << BIT_SHIFT_PORT1_RXBCN_TBTT_INTERVAL)
  42047. #define BITS_PORT1_RXBCN_TBTT_INTERVAL \
  42048. (BIT_MASK_PORT1_RXBCN_TBTT_INTERVAL \
  42049. << BIT_SHIFT_PORT1_RXBCN_TBTT_INTERVAL)
  42050. #define BIT_CLEAR_PORT1_RXBCN_TBTT_INTERVAL(x) \
  42051. ((x) & (~BITS_PORT1_RXBCN_TBTT_INTERVAL))
  42052. #define BIT_GET_PORT1_RXBCN_TBTT_INTERVAL(x) \
  42053. (((x) >> BIT_SHIFT_PORT1_RXBCN_TBTT_INTERVAL) & \
  42054. BIT_MASK_PORT1_RXBCN_TBTT_INTERVAL)
  42055. #define BIT_SET_PORT1_RXBCN_TBTT_INTERVAL(x, v) \
  42056. (BIT_CLEAR_PORT1_RXBCN_TBTT_INTERVAL(x) | \
  42057. BIT_PORT1_RXBCN_TBTT_INTERVAL(v))
  42058. #endif
  42059. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42060. HALMAC_8822C_SUPPORT)
  42061. /* 2 REG_RX_BCN_TBTT_ITVL0 (Offset 0x1160) */
  42062. #define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0 8
  42063. #define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0 0xff
  42064. #define BIT_RX_BCN_TBTT_ITVL_CLIENT0(x) \
  42065. (((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0) \
  42066. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0)
  42067. #define BITS_RX_BCN_TBTT_ITVL_CLIENT0 \
  42068. (BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0 \
  42069. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0)
  42070. #define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT0(x) \
  42071. ((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT0))
  42072. #define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT0(x) \
  42073. (((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0) & \
  42074. BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0)
  42075. #define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT0(x, v) \
  42076. (BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT0(x) | \
  42077. BIT_RX_BCN_TBTT_ITVL_CLIENT0(v))
  42078. #endif
  42079. #if (HALMAC_8198F_SUPPORT)
  42080. /* 2 REG_RXBCN_TBTT_INTERVAL_PORT0TO3 (Offset 0x1160) */
  42081. #define BIT_SHIFT_PORT0_RXBCN_TBTT_INTERVAL 0
  42082. #define BIT_MASK_PORT0_RXBCN_TBTT_INTERVAL 0xff
  42083. #define BIT_PORT0_RXBCN_TBTT_INTERVAL(x) \
  42084. (((x) & BIT_MASK_PORT0_RXBCN_TBTT_INTERVAL) \
  42085. << BIT_SHIFT_PORT0_RXBCN_TBTT_INTERVAL)
  42086. #define BITS_PORT0_RXBCN_TBTT_INTERVAL \
  42087. (BIT_MASK_PORT0_RXBCN_TBTT_INTERVAL \
  42088. << BIT_SHIFT_PORT0_RXBCN_TBTT_INTERVAL)
  42089. #define BIT_CLEAR_PORT0_RXBCN_TBTT_INTERVAL(x) \
  42090. ((x) & (~BITS_PORT0_RXBCN_TBTT_INTERVAL))
  42091. #define BIT_GET_PORT0_RXBCN_TBTT_INTERVAL(x) \
  42092. (((x) >> BIT_SHIFT_PORT0_RXBCN_TBTT_INTERVAL) & \
  42093. BIT_MASK_PORT0_RXBCN_TBTT_INTERVAL)
  42094. #define BIT_SET_PORT0_RXBCN_TBTT_INTERVAL(x, v) \
  42095. (BIT_CLEAR_PORT0_RXBCN_TBTT_INTERVAL(x) | \
  42096. BIT_PORT0_RXBCN_TBTT_INTERVAL(v))
  42097. #endif
  42098. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42099. HALMAC_8822C_SUPPORT)
  42100. /* 2 REG_RX_BCN_TBTT_ITVL0 (Offset 0x1160) */
  42101. #define BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0 0
  42102. #define BIT_MASK_RX_BCN_TBTT_ITVL_PORT0 0xff
  42103. #define BIT_RX_BCN_TBTT_ITVL_PORT0(x) \
  42104. (((x) & BIT_MASK_RX_BCN_TBTT_ITVL_PORT0) \
  42105. << BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0)
  42106. #define BITS_RX_BCN_TBTT_ITVL_PORT0 \
  42107. (BIT_MASK_RX_BCN_TBTT_ITVL_PORT0 << BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0)
  42108. #define BIT_CLEAR_RX_BCN_TBTT_ITVL_PORT0(x) \
  42109. ((x) & (~BITS_RX_BCN_TBTT_ITVL_PORT0))
  42110. #define BIT_GET_RX_BCN_TBTT_ITVL_PORT0(x) \
  42111. (((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0) & \
  42112. BIT_MASK_RX_BCN_TBTT_ITVL_PORT0)
  42113. #define BIT_SET_RX_BCN_TBTT_ITVL_PORT0(x, v) \
  42114. (BIT_CLEAR_RX_BCN_TBTT_ITVL_PORT0(x) | BIT_RX_BCN_TBTT_ITVL_PORT0(v))
  42115. #endif
  42116. #if (HALMAC_8198F_SUPPORT)
  42117. /* 2 REG_RXBCN_TBTT_INTERVAL_PORT4 (Offset 0x1164) */
  42118. #define BIT_SHIFT_PORT4_RXBCN_TBTT_INTERVAL 0
  42119. #define BIT_MASK_PORT4_RXBCN_TBTT_INTERVAL 0xff
  42120. #define BIT_PORT4_RXBCN_TBTT_INTERVAL(x) \
  42121. (((x) & BIT_MASK_PORT4_RXBCN_TBTT_INTERVAL) \
  42122. << BIT_SHIFT_PORT4_RXBCN_TBTT_INTERVAL)
  42123. #define BITS_PORT4_RXBCN_TBTT_INTERVAL \
  42124. (BIT_MASK_PORT4_RXBCN_TBTT_INTERVAL \
  42125. << BIT_SHIFT_PORT4_RXBCN_TBTT_INTERVAL)
  42126. #define BIT_CLEAR_PORT4_RXBCN_TBTT_INTERVAL(x) \
  42127. ((x) & (~BITS_PORT4_RXBCN_TBTT_INTERVAL))
  42128. #define BIT_GET_PORT4_RXBCN_TBTT_INTERVAL(x) \
  42129. (((x) >> BIT_SHIFT_PORT4_RXBCN_TBTT_INTERVAL) & \
  42130. BIT_MASK_PORT4_RXBCN_TBTT_INTERVAL)
  42131. #define BIT_SET_PORT4_RXBCN_TBTT_INTERVAL(x, v) \
  42132. (BIT_CLEAR_PORT4_RXBCN_TBTT_INTERVAL(x) | \
  42133. BIT_PORT4_RXBCN_TBTT_INTERVAL(v))
  42134. #endif
  42135. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42136. HALMAC_8822C_SUPPORT)
  42137. /* 2 REG_RX_BCN_TBTT_ITVL1 (Offset 0x1164) */
  42138. #define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3 0
  42139. #define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3 0xff
  42140. #define BIT_RX_BCN_TBTT_ITVL_CLIENT3(x) \
  42141. (((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3) \
  42142. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3)
  42143. #define BITS_RX_BCN_TBTT_ITVL_CLIENT3 \
  42144. (BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3 \
  42145. << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3)
  42146. #define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT3(x) \
  42147. ((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT3))
  42148. #define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT3(x) \
  42149. (((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3) & \
  42150. BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3)
  42151. #define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT3(x, v) \
  42152. (BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT3(x) | \
  42153. BIT_RX_BCN_TBTT_ITVL_CLIENT3(v))
  42154. #endif
  42155. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  42156. /* 2 REG_FWIMR1 (Offset 0x1168) */
  42157. #define BIT_FS_ATIM_MB15_INT_EN BIT(31)
  42158. #define BIT_FS_ATIM_MB14_INT_EN BIT(30)
  42159. #define BIT_FS_ATIM_MB13_INT_EN BIT(29)
  42160. #define BIT_FS_ATIM_MB12_INT_EN BIT(28)
  42161. #define BIT_FS_ATIM_MB11_INT_EN BIT(27)
  42162. #define BIT_FS_ATIM_MB10_INT_EN BIT(26)
  42163. #define BIT_FS_ATIM_MB9_INT_EN BIT(25)
  42164. #define BIT_FS_ATIM_MB8_INT_EN BIT(24)
  42165. #define BIT_FS_TXBCNERR_MB15_INT_EN BIT(23)
  42166. #define BIT_FS_TXBCNERR_MB14_INT_EN BIT(22)
  42167. #define BIT_FS_TXBCNERR_MB13_INT_EN BIT(21)
  42168. #define BIT_FS_TXBCNERR_MB12_INT_EN BIT(20)
  42169. #define BIT_FS_TXBCNERR_MB11_INT_EN BIT(19)
  42170. #define BIT_FS_TXBCNERR_MB10_INT_EN BIT(18)
  42171. #define BIT_FS_TXBCNERR_MB9_INT_EN BIT(17)
  42172. #define BIT_FS_TXBCNERR_MB8_INT_EN BIT(16)
  42173. #define BIT_FS_TXBCNOK_MB15_INT_EN BIT(15)
  42174. #define BIT_FS_TXBCNOK_MB14_INT_EN BIT(14)
  42175. #define BIT_FS_TXBCNOK_MB13_INT_EN BIT(13)
  42176. #define BIT_FS_TXBCNOK_MB12_INT_EN BIT(12)
  42177. #define BIT_FS_TXBCNOK_MB11_INT_EN BIT(11)
  42178. #define BIT_FS_TXBCNOK_MB10_INT_EN BIT(10)
  42179. #define BIT_FS_TXBCNOK_MB9_INT_EN BIT(9)
  42180. #define BIT_FS_TXBCNOK_MB8_INT_EN BIT(8)
  42181. #define BIT_FS_BCNERLY0_MB15INT_EN BIT(7)
  42182. #define BIT_FS_BCNERLY0_MB14INT_EN BIT(6)
  42183. #define BIT_FS_BCNERLY0_MB13INT_EN BIT(5)
  42184. #define BIT_FS_BCNERLY0_MB12INT_EN BIT(4)
  42185. #define BIT_FS_BCNERLY0_MB11INT_EN BIT(3)
  42186. #define BIT_FS_BCNERLY0_MB10INT_EN BIT(2)
  42187. #define BIT_FS_BCNERLY0_MB9INT_EN BIT(1)
  42188. #define BIT_FS_BCNERLY0_MB8INT_EN BIT(0)
  42189. /* 2 REG_FWISR1 (Offset 0x116C) */
  42190. #define BIT_FS_ATIM_MB15_INT BIT(31)
  42191. #define BIT_FS_ATIM_MB14_INT BIT(30)
  42192. #define BIT_FS_ATIM_MB13_INT BIT(29)
  42193. #define BIT_FS_ATIM_MB12_INT BIT(28)
  42194. #define BIT_FS_ATIM_MB11_INT BIT(27)
  42195. #define BIT_FS_ATIM_MB10_INT BIT(26)
  42196. #define BIT_FS_ATIM_MB9_INT BIT(25)
  42197. #define BIT_FS_ATIM_MB8_INT BIT(24)
  42198. #define BIT_FS_TXBCNERR_MB15_INT BIT(23)
  42199. #define BIT_FS_TXBCNERR_MB14_INT BIT(22)
  42200. #define BIT_FS_TXBCNERR_MB13_INT BIT(21)
  42201. #define BIT_FS_TXBCNERR_MB12_INT BIT(20)
  42202. #define BIT_FS_TXBCNERR_MB11_INT BIT(19)
  42203. #define BIT_FS_TXBCNERR_MB10_INT BIT(18)
  42204. #define BIT_FS_TXBCNERR_MB9_INT BIT(17)
  42205. #define BIT_FS_TXBCNERR_MB8_INT BIT(16)
  42206. #define BIT_FS_TXBCNOK_MB15_INT BIT(15)
  42207. #define BIT_FS_TXBCNOK_MB14_INT BIT(14)
  42208. #define BIT_FS_TXBCNOK_MB13_INT BIT(13)
  42209. #define BIT_FS_TXBCNOK_MB12_INT BIT(12)
  42210. #define BIT_FS_TXBCNOK_MB11_INT BIT(11)
  42211. #define BIT_FS_TXBCNOK_MB10_INT BIT(10)
  42212. #define BIT_FS_TXBCNOK_MB9_INT BIT(9)
  42213. #define BIT_FS_TXBCNOK_MB8_INT BIT(8)
  42214. #define BIT_FS_BCNERLY0_MB15INT BIT(7)
  42215. #define BIT_FS_BCNERLY0_MB14INT BIT(6)
  42216. #define BIT_FS_BCNERLY0_MB13INT BIT(5)
  42217. #define BIT_FS_BCNERLY0_MB12INT BIT(4)
  42218. #define BIT_FS_BCNERLY0_MB11INT BIT(3)
  42219. #define BIT_FS_BCNERLY0_MB10INT BIT(2)
  42220. #define BIT_FS_BCNERLY0_MB9INT BIT(1)
  42221. #define BIT_FS_BCNERLY0_MB8INT BIT(0)
  42222. /* 2 REG_FWIMR2 (Offset 0x1170) */
  42223. #define BIT_FS_BCNDMA0_MB15_INT_EN BIT(15)
  42224. #define BIT_FS_BCNDMA0_MB14_INT_EN BIT(14)
  42225. #define BIT_FS_BCNDMA0_MB13_INT_EN BIT(13)
  42226. #define BIT_FS_BCNDMA0_MB12_INT_EN BIT(12)
  42227. #define BIT_FS_BCNDMA0_MB11_INT_EN BIT(11)
  42228. #define BIT_FS_BCNDMA0_MB10_INT_EN BIT(10)
  42229. #define BIT_FS_BCNDMA0_MB9_INT_EN BIT(9)
  42230. #define BIT_FS_BCNDMA0_MB8_INT_EN BIT(8)
  42231. #define BIT_FS_TBTT0_MB15INT_EN BIT(7)
  42232. #define BIT_FS_TBTT0_MB14INT_EN BIT(6)
  42233. #define BIT_FS_TBTT0_MB13INT_EN BIT(5)
  42234. #define BIT_FS_TBTT0_MB12INT_EN BIT(4)
  42235. #define BIT_FS_TBTT0_MB11INT_EN BIT(3)
  42236. #define BIT_FS_TBTT0_MB10INT_EN BIT(2)
  42237. #define BIT_FS_TBTT0_MB9INT_EN BIT(1)
  42238. #define BIT_FS_TBTT0_MB8INT_EN BIT(0)
  42239. #endif
  42240. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42241. HALMAC_8822C_SUPPORT)
  42242. /* 2 REG_IO_WRAP_ERR_FLAG (Offset 0x1170) */
  42243. #define BIT_IO_WRAP_ERR BIT(0)
  42244. #endif
  42245. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  42246. /* 2 REG_FWISR2 (Offset 0x1174) */
  42247. #define BIT_FS_BCNDMA0_MB15_INT BIT(15)
  42248. #define BIT_FS_BCNDMA0_MB14_INT BIT(14)
  42249. #define BIT_FS_BCNDMA0_MB13_INT BIT(13)
  42250. #define BIT_FS_BCNDMA0_MB12_INT BIT(12)
  42251. #define BIT_FS_BCNDMA0_MB11_INT BIT(11)
  42252. #define BIT_FS_BCNDMA0_MB10_INT BIT(10)
  42253. #define BIT_FS_BCNDMA0_MB9_INT BIT(9)
  42254. #define BIT_FS_BCNDMA0_MB8_INT BIT(8)
  42255. #define BIT_FS_TBTT0_MB15INT BIT(7)
  42256. #define BIT_FS_TBTT0_MB14INT BIT(6)
  42257. #define BIT_FS_TBTT0_MB13INT BIT(5)
  42258. #define BIT_FS_TBTT0_MB12INT BIT(4)
  42259. #define BIT_FS_TBTT0_MB11INT BIT(3)
  42260. #define BIT_FS_TBTT0_MB10INT BIT(2)
  42261. #define BIT_FS_TBTT0_MB9INT BIT(1)
  42262. #define BIT_FS_TBTT0_MB8INT BIT(0)
  42263. #endif
  42264. #if (HALMAC_8814B_SUPPORT)
  42265. /* 2 REG_FWISR3 (Offset 0x117C) */
  42266. #define BIT_FS_TXBCNOK_PORT4_INT BIT(11)
  42267. #define BIT_FS_TXBCNOK_PORT3_INT BIT(10)
  42268. #define BIT_FS_TXBCNOK_PORT2_INT BIT(9)
  42269. #define BIT_FS_TXBCNOK_PORT1_INT BIT(8)
  42270. #define BIT_FS_TXBCNERR_PORT4_INT BIT(7)
  42271. #define BIT_FS_TXBCNERR_PORT3_INT BIT(6)
  42272. #define BIT_FS_TXBCNERR_PORT2_INT BIT(5)
  42273. #define BIT_FS_TXBCNERR_PORT1_INT BIT(4)
  42274. #define BIT_FS_ATIM_PORT4_INT BIT(3)
  42275. #define BIT_FS_ATIM_PORT3_INT BIT(2)
  42276. #define BIT_FS_ATIM_PORT2_INT BIT(1)
  42277. #define BIT_FS_ATIM_PORT1_INT BIT(0)
  42278. #endif
  42279. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42280. HALMAC_8822C_SUPPORT)
  42281. /* 2 REG_SPEED_SENSOR (Offset 0x1180) */
  42282. #define BIT_DSS_1_RST_N BIT(31)
  42283. #define BIT_DSS_1_SPEED_EN BIT(30)
  42284. #define BIT_DSS_1_WIRE_SEL BIT(29)
  42285. #define BIT_DSS_ENCLK BIT(28)
  42286. #define BIT_SHIFT_DSS_1_RO_SEL 24
  42287. #define BIT_MASK_DSS_1_RO_SEL 0x7
  42288. #define BIT_DSS_1_RO_SEL(x) \
  42289. (((x) & BIT_MASK_DSS_1_RO_SEL) << BIT_SHIFT_DSS_1_RO_SEL)
  42290. #define BITS_DSS_1_RO_SEL (BIT_MASK_DSS_1_RO_SEL << BIT_SHIFT_DSS_1_RO_SEL)
  42291. #define BIT_CLEAR_DSS_1_RO_SEL(x) ((x) & (~BITS_DSS_1_RO_SEL))
  42292. #define BIT_GET_DSS_1_RO_SEL(x) \
  42293. (((x) >> BIT_SHIFT_DSS_1_RO_SEL) & BIT_MASK_DSS_1_RO_SEL)
  42294. #define BIT_SET_DSS_1_RO_SEL(x, v) \
  42295. (BIT_CLEAR_DSS_1_RO_SEL(x) | BIT_DSS_1_RO_SEL(v))
  42296. #define BIT_SHIFT_DSS_1_DATA_IN 0
  42297. #define BIT_MASK_DSS_1_DATA_IN 0xfffff
  42298. #define BIT_DSS_1_DATA_IN(x) \
  42299. (((x) & BIT_MASK_DSS_1_DATA_IN) << BIT_SHIFT_DSS_1_DATA_IN)
  42300. #define BITS_DSS_1_DATA_IN (BIT_MASK_DSS_1_DATA_IN << BIT_SHIFT_DSS_1_DATA_IN)
  42301. #define BIT_CLEAR_DSS_1_DATA_IN(x) ((x) & (~BITS_DSS_1_DATA_IN))
  42302. #define BIT_GET_DSS_1_DATA_IN(x) \
  42303. (((x) >> BIT_SHIFT_DSS_1_DATA_IN) & BIT_MASK_DSS_1_DATA_IN)
  42304. #define BIT_SET_DSS_1_DATA_IN(x, v) \
  42305. (BIT_CLEAR_DSS_1_DATA_IN(x) | BIT_DSS_1_DATA_IN(v))
  42306. /* 2 REG_SPEED_SENSOR1 (Offset 0x1184) */
  42307. #define BIT_DSS_1_READY BIT(31)
  42308. #define BIT_DSS_1_WSORT_GO BIT(30)
  42309. #define BIT_SHIFT_DSS_1_COUNT_OUT 0
  42310. #define BIT_MASK_DSS_1_COUNT_OUT 0xfffff
  42311. #define BIT_DSS_1_COUNT_OUT(x) \
  42312. (((x) & BIT_MASK_DSS_1_COUNT_OUT) << BIT_SHIFT_DSS_1_COUNT_OUT)
  42313. #define BITS_DSS_1_COUNT_OUT \
  42314. (BIT_MASK_DSS_1_COUNT_OUT << BIT_SHIFT_DSS_1_COUNT_OUT)
  42315. #define BIT_CLEAR_DSS_1_COUNT_OUT(x) ((x) & (~BITS_DSS_1_COUNT_OUT))
  42316. #define BIT_GET_DSS_1_COUNT_OUT(x) \
  42317. (((x) >> BIT_SHIFT_DSS_1_COUNT_OUT) & BIT_MASK_DSS_1_COUNT_OUT)
  42318. #define BIT_SET_DSS_1_COUNT_OUT(x, v) \
  42319. (BIT_CLEAR_DSS_1_COUNT_OUT(x) | BIT_DSS_1_COUNT_OUT(v))
  42320. /* 2 REG_SPEED_SENSOR2 (Offset 0x1188) */
  42321. #define BIT_DSS_2_RST_N BIT(31)
  42322. #define BIT_DSS_2_SPEED_EN BIT(30)
  42323. #define BIT_DSS_2_WIRE_SEL BIT(29)
  42324. #define BIT_SHIFT_DSS_2_RO_SEL 24
  42325. #define BIT_MASK_DSS_2_RO_SEL 0x7
  42326. #define BIT_DSS_2_RO_SEL(x) \
  42327. (((x) & BIT_MASK_DSS_2_RO_SEL) << BIT_SHIFT_DSS_2_RO_SEL)
  42328. #define BITS_DSS_2_RO_SEL (BIT_MASK_DSS_2_RO_SEL << BIT_SHIFT_DSS_2_RO_SEL)
  42329. #define BIT_CLEAR_DSS_2_RO_SEL(x) ((x) & (~BITS_DSS_2_RO_SEL))
  42330. #define BIT_GET_DSS_2_RO_SEL(x) \
  42331. (((x) >> BIT_SHIFT_DSS_2_RO_SEL) & BIT_MASK_DSS_2_RO_SEL)
  42332. #define BIT_SET_DSS_2_RO_SEL(x, v) \
  42333. (BIT_CLEAR_DSS_2_RO_SEL(x) | BIT_DSS_2_RO_SEL(v))
  42334. #define BIT_SHIFT_DSS_2_DATA_IN 0
  42335. #define BIT_MASK_DSS_2_DATA_IN 0xfffff
  42336. #define BIT_DSS_2_DATA_IN(x) \
  42337. (((x) & BIT_MASK_DSS_2_DATA_IN) << BIT_SHIFT_DSS_2_DATA_IN)
  42338. #define BITS_DSS_2_DATA_IN (BIT_MASK_DSS_2_DATA_IN << BIT_SHIFT_DSS_2_DATA_IN)
  42339. #define BIT_CLEAR_DSS_2_DATA_IN(x) ((x) & (~BITS_DSS_2_DATA_IN))
  42340. #define BIT_GET_DSS_2_DATA_IN(x) \
  42341. (((x) >> BIT_SHIFT_DSS_2_DATA_IN) & BIT_MASK_DSS_2_DATA_IN)
  42342. #define BIT_SET_DSS_2_DATA_IN(x, v) \
  42343. (BIT_CLEAR_DSS_2_DATA_IN(x) | BIT_DSS_2_DATA_IN(v))
  42344. /* 2 REG_SPEED_SENSOR3 (Offset 0x118C) */
  42345. #define BIT_DSS_2_READY BIT(31)
  42346. #define BIT_DSS_2_WSORT_GO BIT(30)
  42347. #define BIT_SHIFT_DSS_2_COUNT_OUT 0
  42348. #define BIT_MASK_DSS_2_COUNT_OUT 0xfffff
  42349. #define BIT_DSS_2_COUNT_OUT(x) \
  42350. (((x) & BIT_MASK_DSS_2_COUNT_OUT) << BIT_SHIFT_DSS_2_COUNT_OUT)
  42351. #define BITS_DSS_2_COUNT_OUT \
  42352. (BIT_MASK_DSS_2_COUNT_OUT << BIT_SHIFT_DSS_2_COUNT_OUT)
  42353. #define BIT_CLEAR_DSS_2_COUNT_OUT(x) ((x) & (~BITS_DSS_2_COUNT_OUT))
  42354. #define BIT_GET_DSS_2_COUNT_OUT(x) \
  42355. (((x) >> BIT_SHIFT_DSS_2_COUNT_OUT) & BIT_MASK_DSS_2_COUNT_OUT)
  42356. #define BIT_SET_DSS_2_COUNT_OUT(x, v) \
  42357. (BIT_CLEAR_DSS_2_COUNT_OUT(x) | BIT_DSS_2_COUNT_OUT(v))
  42358. /* 2 REG_SPEED_SENSOR4 (Offset 0x1190) */
  42359. #define BIT_DSS_3_RST_N BIT(31)
  42360. #define BIT_DSS_3_SPEED_EN BIT(30)
  42361. #define BIT_DSS_3_WIRE_SEL BIT(29)
  42362. #define BIT_SHIFT_DSS_3_RO_SEL 24
  42363. #define BIT_MASK_DSS_3_RO_SEL 0x7
  42364. #define BIT_DSS_3_RO_SEL(x) \
  42365. (((x) & BIT_MASK_DSS_3_RO_SEL) << BIT_SHIFT_DSS_3_RO_SEL)
  42366. #define BITS_DSS_3_RO_SEL (BIT_MASK_DSS_3_RO_SEL << BIT_SHIFT_DSS_3_RO_SEL)
  42367. #define BIT_CLEAR_DSS_3_RO_SEL(x) ((x) & (~BITS_DSS_3_RO_SEL))
  42368. #define BIT_GET_DSS_3_RO_SEL(x) \
  42369. (((x) >> BIT_SHIFT_DSS_3_RO_SEL) & BIT_MASK_DSS_3_RO_SEL)
  42370. #define BIT_SET_DSS_3_RO_SEL(x, v) \
  42371. (BIT_CLEAR_DSS_3_RO_SEL(x) | BIT_DSS_3_RO_SEL(v))
  42372. #define BIT_SHIFT_DSS_3_DATA_IN 0
  42373. #define BIT_MASK_DSS_3_DATA_IN 0xfffff
  42374. #define BIT_DSS_3_DATA_IN(x) \
  42375. (((x) & BIT_MASK_DSS_3_DATA_IN) << BIT_SHIFT_DSS_3_DATA_IN)
  42376. #define BITS_DSS_3_DATA_IN (BIT_MASK_DSS_3_DATA_IN << BIT_SHIFT_DSS_3_DATA_IN)
  42377. #define BIT_CLEAR_DSS_3_DATA_IN(x) ((x) & (~BITS_DSS_3_DATA_IN))
  42378. #define BIT_GET_DSS_3_DATA_IN(x) \
  42379. (((x) >> BIT_SHIFT_DSS_3_DATA_IN) & BIT_MASK_DSS_3_DATA_IN)
  42380. #define BIT_SET_DSS_3_DATA_IN(x, v) \
  42381. (BIT_CLEAR_DSS_3_DATA_IN(x) | BIT_DSS_3_DATA_IN(v))
  42382. /* 2 REG_SPEED_SENSOR5 (Offset 0x1194) */
  42383. #define BIT_DSS_3_READY BIT(31)
  42384. #define BIT_DSS_3_WSORT_GO BIT(30)
  42385. #define BIT_SHIFT_DSS_3_COUNT_OUT 0
  42386. #define BIT_MASK_DSS_3_COUNT_OUT 0xfffff
  42387. #define BIT_DSS_3_COUNT_OUT(x) \
  42388. (((x) & BIT_MASK_DSS_3_COUNT_OUT) << BIT_SHIFT_DSS_3_COUNT_OUT)
  42389. #define BITS_DSS_3_COUNT_OUT \
  42390. (BIT_MASK_DSS_3_COUNT_OUT << BIT_SHIFT_DSS_3_COUNT_OUT)
  42391. #define BIT_CLEAR_DSS_3_COUNT_OUT(x) ((x) & (~BITS_DSS_3_COUNT_OUT))
  42392. #define BIT_GET_DSS_3_COUNT_OUT(x) \
  42393. (((x) >> BIT_SHIFT_DSS_3_COUNT_OUT) & BIT_MASK_DSS_3_COUNT_OUT)
  42394. #define BIT_SET_DSS_3_COUNT_OUT(x, v) \
  42395. (BIT_CLEAR_DSS_3_COUNT_OUT(x) | BIT_DSS_3_COUNT_OUT(v))
  42396. #endif
  42397. #if (HALMAC_8814B_SUPPORT)
  42398. /* 2 REG_RXPKTBUF_1_MAX_ADDR (Offset 0x1198) */
  42399. #define BIT_SHIFT_RXPKTBUF_SIZE 30
  42400. #define BIT_MASK_RXPKTBUF_SIZE 0x3
  42401. #define BIT_RXPKTBUF_SIZE(x) \
  42402. (((x) & BIT_MASK_RXPKTBUF_SIZE) << BIT_SHIFT_RXPKTBUF_SIZE)
  42403. #define BITS_RXPKTBUF_SIZE (BIT_MASK_RXPKTBUF_SIZE << BIT_SHIFT_RXPKTBUF_SIZE)
  42404. #define BIT_CLEAR_RXPKTBUF_SIZE(x) ((x) & (~BITS_RXPKTBUF_SIZE))
  42405. #define BIT_GET_RXPKTBUF_SIZE(x) \
  42406. (((x) >> BIT_SHIFT_RXPKTBUF_SIZE) & BIT_MASK_RXPKTBUF_SIZE)
  42407. #define BIT_SET_RXPKTBUF_SIZE(x, v) \
  42408. (BIT_CLEAR_RXPKTBUF_SIZE(x) | BIT_RXPKTBUF_SIZE(v))
  42409. #define BIT_RXPKTBUF_DBG_SEL BIT(29)
  42410. #define BIT_SHIFT_RXPKTBUF_1_MAX_ADDR 0
  42411. #define BIT_MASK_RXPKTBUF_1_MAX_ADDR 0x3ffff
  42412. #define BIT_RXPKTBUF_1_MAX_ADDR(x) \
  42413. (((x) & BIT_MASK_RXPKTBUF_1_MAX_ADDR) << BIT_SHIFT_RXPKTBUF_1_MAX_ADDR)
  42414. #define BITS_RXPKTBUF_1_MAX_ADDR \
  42415. (BIT_MASK_RXPKTBUF_1_MAX_ADDR << BIT_SHIFT_RXPKTBUF_1_MAX_ADDR)
  42416. #define BIT_CLEAR_RXPKTBUF_1_MAX_ADDR(x) ((x) & (~BITS_RXPKTBUF_1_MAX_ADDR))
  42417. #define BIT_GET_RXPKTBUF_1_MAX_ADDR(x) \
  42418. (((x) >> BIT_SHIFT_RXPKTBUF_1_MAX_ADDR) & BIT_MASK_RXPKTBUF_1_MAX_ADDR)
  42419. #define BIT_SET_RXPKTBUF_1_MAX_ADDR(x, v) \
  42420. (BIT_CLEAR_RXPKTBUF_1_MAX_ADDR(x) | BIT_RXPKTBUF_1_MAX_ADDR(v))
  42421. /* 2 REG_RXFWBUF_1_MAX_ADDR (Offset 0x119C) */
  42422. #define BIT_SHIFT_RXFWBUF_1_MAX_ADDR 0
  42423. #define BIT_MASK_RXFWBUF_1_MAX_ADDR 0xffff
  42424. #define BIT_RXFWBUF_1_MAX_ADDR(x) \
  42425. (((x) & BIT_MASK_RXFWBUF_1_MAX_ADDR) << BIT_SHIFT_RXFWBUF_1_MAX_ADDR)
  42426. #define BITS_RXFWBUF_1_MAX_ADDR \
  42427. (BIT_MASK_RXFWBUF_1_MAX_ADDR << BIT_SHIFT_RXFWBUF_1_MAX_ADDR)
  42428. #define BIT_CLEAR_RXFWBUF_1_MAX_ADDR(x) ((x) & (~BITS_RXFWBUF_1_MAX_ADDR))
  42429. #define BIT_GET_RXFWBUF_1_MAX_ADDR(x) \
  42430. (((x) >> BIT_SHIFT_RXFWBUF_1_MAX_ADDR) & BIT_MASK_RXFWBUF_1_MAX_ADDR)
  42431. #define BIT_SET_RXFWBUF_1_MAX_ADDR(x, v) \
  42432. (BIT_CLEAR_RXFWBUF_1_MAX_ADDR(x) | BIT_RXFWBUF_1_MAX_ADDR(v))
  42433. /* 2 REG_RXPKTBUF_1_READ (Offset 0x11A4) */
  42434. #define BIT_SHIFT_RXPKTBUF_1_READ 0
  42435. #define BIT_MASK_RXPKTBUF_1_READ 0x3ffff
  42436. #define BIT_RXPKTBUF_1_READ(x) \
  42437. (((x) & BIT_MASK_RXPKTBUF_1_READ) << BIT_SHIFT_RXPKTBUF_1_READ)
  42438. #define BITS_RXPKTBUF_1_READ \
  42439. (BIT_MASK_RXPKTBUF_1_READ << BIT_SHIFT_RXPKTBUF_1_READ)
  42440. #define BIT_CLEAR_RXPKTBUF_1_READ(x) ((x) & (~BITS_RXPKTBUF_1_READ))
  42441. #define BIT_GET_RXPKTBUF_1_READ(x) \
  42442. (((x) >> BIT_SHIFT_RXPKTBUF_1_READ) & BIT_MASK_RXPKTBUF_1_READ)
  42443. #define BIT_SET_RXPKTBUF_1_READ(x, v) \
  42444. (BIT_CLEAR_RXPKTBUF_1_READ(x) | BIT_RXPKTBUF_1_READ(v))
  42445. /* 2 REG_RXPKTBUF_1_WRITE (Offset 0x11A8) */
  42446. #define BIT_SHIFT_R_OQT_DBG_SEL 16
  42447. #define BIT_MASK_R_OQT_DBG_SEL 0xff
  42448. #define BIT_R_OQT_DBG_SEL(x) \
  42449. (((x) & BIT_MASK_R_OQT_DBG_SEL) << BIT_SHIFT_R_OQT_DBG_SEL)
  42450. #define BITS_R_OQT_DBG_SEL (BIT_MASK_R_OQT_DBG_SEL << BIT_SHIFT_R_OQT_DBG_SEL)
  42451. #define BIT_CLEAR_R_OQT_DBG_SEL(x) ((x) & (~BITS_R_OQT_DBG_SEL))
  42452. #define BIT_GET_R_OQT_DBG_SEL(x) \
  42453. (((x) >> BIT_SHIFT_R_OQT_DBG_SEL) & BIT_MASK_R_OQT_DBG_SEL)
  42454. #define BIT_SET_R_OQT_DBG_SEL(x, v) \
  42455. (BIT_CLEAR_R_OQT_DBG_SEL(x) | BIT_R_OQT_DBG_SEL(v))
  42456. #define BIT_SHIFT_R_TXPKTBF_DBG_SEL 8
  42457. #define BIT_MASK_R_TXPKTBF_DBG_SEL 0x7
  42458. #define BIT_R_TXPKTBF_DBG_SEL(x) \
  42459. (((x) & BIT_MASK_R_TXPKTBF_DBG_SEL) << BIT_SHIFT_R_TXPKTBF_DBG_SEL)
  42460. #define BITS_R_TXPKTBF_DBG_SEL \
  42461. (BIT_MASK_R_TXPKTBF_DBG_SEL << BIT_SHIFT_R_TXPKTBF_DBG_SEL)
  42462. #define BIT_CLEAR_R_TXPKTBF_DBG_SEL(x) ((x) & (~BITS_R_TXPKTBF_DBG_SEL))
  42463. #define BIT_GET_R_TXPKTBF_DBG_SEL(x) \
  42464. (((x) >> BIT_SHIFT_R_TXPKTBF_DBG_SEL) & BIT_MASK_R_TXPKTBF_DBG_SEL)
  42465. #define BIT_SET_R_TXPKTBF_DBG_SEL(x, v) \
  42466. (BIT_CLEAR_R_TXPKTBF_DBG_SEL(x) | BIT_R_TXPKTBF_DBG_SEL(v))
  42467. #define BIT_SHIFT_R_RXPKT_DBG_SEL 6
  42468. #define BIT_MASK_R_RXPKT_DBG_SEL 0x3
  42469. #define BIT_R_RXPKT_DBG_SEL(x) \
  42470. (((x) & BIT_MASK_R_RXPKT_DBG_SEL) << BIT_SHIFT_R_RXPKT_DBG_SEL)
  42471. #define BITS_R_RXPKT_DBG_SEL \
  42472. (BIT_MASK_R_RXPKT_DBG_SEL << BIT_SHIFT_R_RXPKT_DBG_SEL)
  42473. #define BIT_CLEAR_R_RXPKT_DBG_SEL(x) ((x) & (~BITS_R_RXPKT_DBG_SEL))
  42474. #define BIT_GET_R_RXPKT_DBG_SEL(x) \
  42475. (((x) >> BIT_SHIFT_R_RXPKT_DBG_SEL) & BIT_MASK_R_RXPKT_DBG_SEL)
  42476. #define BIT_SET_R_RXPKT_DBG_SEL(x, v) \
  42477. (BIT_CLEAR_R_RXPKT_DBG_SEL(x) | BIT_R_RXPKT_DBG_SEL(v))
  42478. #define BIT_SHIFT_RXPKTBUF_1_WRITE 0
  42479. #define BIT_MASK_RXPKTBUF_1_WRITE 0x3ffff
  42480. #define BIT_RXPKTBUF_1_WRITE(x) \
  42481. (((x) & BIT_MASK_RXPKTBUF_1_WRITE) << BIT_SHIFT_RXPKTBUF_1_WRITE)
  42482. #define BITS_RXPKTBUF_1_WRITE \
  42483. (BIT_MASK_RXPKTBUF_1_WRITE << BIT_SHIFT_RXPKTBUF_1_WRITE)
  42484. #define BIT_CLEAR_RXPKTBUF_1_WRITE(x) ((x) & (~BITS_RXPKTBUF_1_WRITE))
  42485. #define BIT_GET_RXPKTBUF_1_WRITE(x) \
  42486. (((x) >> BIT_SHIFT_RXPKTBUF_1_WRITE) & BIT_MASK_RXPKTBUF_1_WRITE)
  42487. #define BIT_SET_RXPKTBUF_1_WRITE(x, v) \
  42488. (BIT_CLEAR_RXPKTBUF_1_WRITE(x) | BIT_RXPKTBUF_1_WRITE(v))
  42489. #define BIT_SHIFT_R_RXPKTBF_DBG_SEL 0
  42490. #define BIT_MASK_R_RXPKTBF_DBG_SEL 0x3
  42491. #define BIT_R_RXPKTBF_DBG_SEL(x) \
  42492. (((x) & BIT_MASK_R_RXPKTBF_DBG_SEL) << BIT_SHIFT_R_RXPKTBF_DBG_SEL)
  42493. #define BITS_R_RXPKTBF_DBG_SEL \
  42494. (BIT_MASK_R_RXPKTBF_DBG_SEL << BIT_SHIFT_R_RXPKTBF_DBG_SEL)
  42495. #define BIT_CLEAR_R_RXPKTBF_DBG_SEL(x) ((x) & (~BITS_R_RXPKTBF_DBG_SEL))
  42496. #define BIT_GET_R_RXPKTBF_DBG_SEL(x) \
  42497. (((x) >> BIT_SHIFT_R_RXPKTBF_DBG_SEL) & BIT_MASK_R_RXPKTBF_DBG_SEL)
  42498. #define BIT_SET_R_RXPKTBF_DBG_SEL(x, v) \
  42499. (BIT_CLEAR_R_RXPKTBF_DBG_SEL(x) | BIT_R_RXPKTBF_DBG_SEL(v))
  42500. /* 2 REG_RFE_CTRL_PAD_E2 (Offset 0x11B0) */
  42501. #define BIT_RFE_CTRL_ANTSW_E2 BIT(16)
  42502. #define BIT_RFE_CTRL_PIN15_E2 BIT(15)
  42503. #define BIT_RFE_CTRL_PIN14_E2 BIT(14)
  42504. #define BIT_RFE_CTRL_PIN13_E2 BIT(13)
  42505. #define BIT_RFE_CTRL_PIN12_E2 BIT(12)
  42506. #define BIT_RFE_CTRL_PIN11_E2 BIT(11)
  42507. #define BIT_RFE_CTRL_PIN10_E2 BIT(10)
  42508. #define BIT_RFE_CTRL_PIN9_E2 BIT(9)
  42509. #define BIT_RFE_CTRL_PIN8_E2 BIT(8)
  42510. #define BIT_RFE_CTRL_PIN7_E2 BIT(7)
  42511. #define BIT_RFE_CTRL_PIN6_E2 BIT(6)
  42512. #define BIT_RFE_CTRL_PIN5_E2 BIT(5)
  42513. #define BIT_RFE_CTRL_PIN4_E2 BIT(4)
  42514. #define BIT_RFE_CTRL_PIN3_E2 BIT(3)
  42515. #define BIT_RFE_CTRL_PIN2_E2 BIT(2)
  42516. #define BIT_RFE_CTRL_PIN1_E2 BIT(1)
  42517. #define BIT_RFE_CTRL_PIN0_E2 BIT(0)
  42518. /* 2 REG_RFE_CTRL_PAD_SR (Offset 0x11B4) */
  42519. #define BIT_RFE_CTRL_ANTSW_SR BIT(16)
  42520. #define BIT_RFE_CTRL_PIN15_SR BIT(15)
  42521. #define BIT_RFE_CTRL_PIN14_SR BIT(14)
  42522. #define BIT_RFE_CTRL_PIN13_SR BIT(13)
  42523. #define BIT_RFE_CTRL_PIN12_SR BIT(12)
  42524. #define BIT_RFE_CTRL_PIN11_SR BIT(11)
  42525. #define BIT_RFE_CTRL_PIN10_SR BIT(10)
  42526. #define BIT_RFE_CTRL_PIN9_SR BIT(9)
  42527. #define BIT_RFE_CTRL_PIN8_SR BIT(8)
  42528. #define BIT_RFE_CTRL_PIN7_SR BIT(7)
  42529. #define BIT_RFE_CTRL_PIN6_SR BIT(6)
  42530. #define BIT_RFE_CTRL_PIN5_SR BIT(5)
  42531. #define BIT_RFE_CTRL_PIN4_SR BIT(4)
  42532. #define BIT_RFE_CTRL_PIN3_SR BIT(3)
  42533. #define BIT_RFE_CTRL_PIN2_SR BIT(2)
  42534. #define BIT_RFE_CTRL_PIN1_SR BIT(1)
  42535. #define BIT_RFE_CTRL_PIN0_SR BIT(0)
  42536. #endif
  42537. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42538. /* 2 REG_EXT_QUEUE_REG (Offset 0x11C0) */
  42539. #define BIT_SHIFT_PCIE_PRIORITY_SEL 0
  42540. #define BIT_MASK_PCIE_PRIORITY_SEL 0x3
  42541. #define BIT_PCIE_PRIORITY_SEL(x) \
  42542. (((x) & BIT_MASK_PCIE_PRIORITY_SEL) << BIT_SHIFT_PCIE_PRIORITY_SEL)
  42543. #define BITS_PCIE_PRIORITY_SEL \
  42544. (BIT_MASK_PCIE_PRIORITY_SEL << BIT_SHIFT_PCIE_PRIORITY_SEL)
  42545. #define BIT_CLEAR_PCIE_PRIORITY_SEL(x) ((x) & (~BITS_PCIE_PRIORITY_SEL))
  42546. #define BIT_GET_PCIE_PRIORITY_SEL(x) \
  42547. (((x) >> BIT_SHIFT_PCIE_PRIORITY_SEL) & BIT_MASK_PCIE_PRIORITY_SEL)
  42548. #define BIT_SET_PCIE_PRIORITY_SEL(x, v) \
  42549. (BIT_CLEAR_PCIE_PRIORITY_SEL(x) | BIT_PCIE_PRIORITY_SEL(v))
  42550. #endif
  42551. #if (HALMAC_8814B_SUPPORT)
  42552. /* 2 REG_H2C_PRIORITY_SEL (Offset 0x11C0) */
  42553. #define BIT_SHIFT_H2C_PRIORITY_SEL 0
  42554. #define BIT_MASK_H2C_PRIORITY_SEL 0x3
  42555. #define BIT_H2C_PRIORITY_SEL(x) \
  42556. (((x) & BIT_MASK_H2C_PRIORITY_SEL) << BIT_SHIFT_H2C_PRIORITY_SEL)
  42557. #define BITS_H2C_PRIORITY_SEL \
  42558. (BIT_MASK_H2C_PRIORITY_SEL << BIT_SHIFT_H2C_PRIORITY_SEL)
  42559. #define BIT_CLEAR_H2C_PRIORITY_SEL(x) ((x) & (~BITS_H2C_PRIORITY_SEL))
  42560. #define BIT_GET_H2C_PRIORITY_SEL(x) \
  42561. (((x) >> BIT_SHIFT_H2C_PRIORITY_SEL) & BIT_MASK_H2C_PRIORITY_SEL)
  42562. #define BIT_SET_H2C_PRIORITY_SEL(x, v) \
  42563. (BIT_CLEAR_H2C_PRIORITY_SEL(x) | BIT_H2C_PRIORITY_SEL(v))
  42564. #endif
  42565. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42566. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42567. #define BIT_EN_USB_CNT BIT(5)
  42568. #endif
  42569. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42570. HALMAC_8822C_SUPPORT)
  42571. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42572. #define BIT_USB_COUNT_EN BIT(5)
  42573. #endif
  42574. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42575. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42576. #define BIT_EN_PCIE_CNT BIT(4)
  42577. #endif
  42578. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42579. HALMAC_8822C_SUPPORT)
  42580. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42581. #define BIT_PCIE_COUNT_EN BIT(4)
  42582. #endif
  42583. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42584. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42585. #define BIT_RQPN_CNT BIT(3)
  42586. #endif
  42587. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42588. HALMAC_8822C_SUPPORT)
  42589. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42590. #define BIT_RQPN_COUNT_EN BIT(3)
  42591. #endif
  42592. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42593. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42594. #define BIT_RDE_CNT BIT(2)
  42595. #endif
  42596. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42597. HALMAC_8822C_SUPPORT)
  42598. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42599. #define BIT_RDE_COUNT_EN BIT(2)
  42600. #endif
  42601. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42602. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42603. #define BIT_TDE_CNT BIT(1)
  42604. #endif
  42605. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42606. HALMAC_8822C_SUPPORT)
  42607. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42608. #define BIT_TDE_COUNT_EN BIT(1)
  42609. #endif
  42610. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42611. /* 2 REG_COUNTER_CONTROL (Offset 0x11C4) */
  42612. #define BIT_DIS_CNT BIT(0)
  42613. #endif
  42614. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42615. HALMAC_8822C_SUPPORT)
  42616. /* 2 REG_COUNTER_CTRL (Offset 0x11C4) */
  42617. #define BIT_DISABLE_COUNTER BIT(0)
  42618. #endif
  42619. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42620. /* 2 REG_COUNTER_TH (Offset 0x11C8) */
  42621. #define BIT_CNT_ALL_MACID BIT(31)
  42622. #endif
  42623. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42624. HALMAC_8822C_SUPPORT)
  42625. /* 2 REG_COUNTER_THRESHOLD (Offset 0x11C8) */
  42626. #define BIT_SEL_ALL_MACID BIT(31)
  42627. #endif
  42628. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42629. /* 2 REG_COUNTER_TH (Offset 0x11C8) */
  42630. #define BIT_SHIFT_CNT_MACID 24
  42631. #define BIT_MASK_CNT_MACID 0x7f
  42632. #define BIT_CNT_MACID(x) (((x) & BIT_MASK_CNT_MACID) << BIT_SHIFT_CNT_MACID)
  42633. #define BITS_CNT_MACID (BIT_MASK_CNT_MACID << BIT_SHIFT_CNT_MACID)
  42634. #define BIT_CLEAR_CNT_MACID(x) ((x) & (~BITS_CNT_MACID))
  42635. #define BIT_GET_CNT_MACID(x) (((x) >> BIT_SHIFT_CNT_MACID) & BIT_MASK_CNT_MACID)
  42636. #define BIT_SET_CNT_MACID(x, v) (BIT_CLEAR_CNT_MACID(x) | BIT_CNT_MACID(v))
  42637. #endif
  42638. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42639. HALMAC_8822C_SUPPORT)
  42640. /* 2 REG_COUNTER_THRESHOLD (Offset 0x11C8) */
  42641. #define BIT_SHIFT_COUNTER_MACID 24
  42642. #define BIT_MASK_COUNTER_MACID 0x7f
  42643. #define BIT_COUNTER_MACID(x) \
  42644. (((x) & BIT_MASK_COUNTER_MACID) << BIT_SHIFT_COUNTER_MACID)
  42645. #define BITS_COUNTER_MACID (BIT_MASK_COUNTER_MACID << BIT_SHIFT_COUNTER_MACID)
  42646. #define BIT_CLEAR_COUNTER_MACID(x) ((x) & (~BITS_COUNTER_MACID))
  42647. #define BIT_GET_COUNTER_MACID(x) \
  42648. (((x) >> BIT_SHIFT_COUNTER_MACID) & BIT_MASK_COUNTER_MACID)
  42649. #define BIT_SET_COUNTER_MACID(x, v) \
  42650. (BIT_CLEAR_COUNTER_MACID(x) | BIT_COUNTER_MACID(v))
  42651. #endif
  42652. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42653. /* 2 REG_COUNTER_SET (Offset 0x11CC) */
  42654. #define BIT_RTS_RST BIT(24)
  42655. #define BIT_PTCL_RST BIT(23)
  42656. #define BIT_SCH_RST BIT(22)
  42657. #define BIT_EDCA_RST BIT(21)
  42658. #define BIT_RQPN_RST BIT(20)
  42659. #define BIT_USB_RST BIT(19)
  42660. #define BIT_PCIE_RST BIT(18)
  42661. #define BIT_RXDMA_RST BIT(17)
  42662. #define BIT_TXDMA_RST BIT(16)
  42663. #endif
  42664. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42665. HALMAC_8822C_SUPPORT)
  42666. /* 2 REG_COUNTER_SET (Offset 0x11CC) */
  42667. #define BIT_SHIFT_REQUEST_RESET 16
  42668. #define BIT_MASK_REQUEST_RESET 0xffff
  42669. #define BIT_REQUEST_RESET(x) \
  42670. (((x) & BIT_MASK_REQUEST_RESET) << BIT_SHIFT_REQUEST_RESET)
  42671. #define BITS_REQUEST_RESET (BIT_MASK_REQUEST_RESET << BIT_SHIFT_REQUEST_RESET)
  42672. #define BIT_CLEAR_REQUEST_RESET(x) ((x) & (~BITS_REQUEST_RESET))
  42673. #define BIT_GET_REQUEST_RESET(x) \
  42674. (((x) >> BIT_SHIFT_REQUEST_RESET) & BIT_MASK_REQUEST_RESET)
  42675. #define BIT_SET_REQUEST_RESET(x, v) \
  42676. (BIT_CLEAR_REQUEST_RESET(x) | BIT_REQUEST_RESET(v))
  42677. #endif
  42678. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42679. /* 2 REG_COUNTER_SET (Offset 0x11CC) */
  42680. #define BIT_EN_RTS_START BIT(8)
  42681. #define BIT_EN_PTCL_START BIT(7)
  42682. #define BIT_EN_SCH_START BIT(6)
  42683. #define BIT_EN_EDCA_START BIT(5)
  42684. #define BIT_EN_RQPN_START BIT(4)
  42685. #define BIT_EN_USB_START BIT(3)
  42686. #define BIT_EN_PCIE_START BIT(2)
  42687. #define BIT_EN_RXDMA_START BIT(1)
  42688. #define BIT_EN_TXDMA_START BIT(0)
  42689. #endif
  42690. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42691. HALMAC_8822C_SUPPORT)
  42692. /* 2 REG_COUNTER_SET (Offset 0x11CC) */
  42693. #define BIT_SHIFT_REQUEST_START 0
  42694. #define BIT_MASK_REQUEST_START 0xffff
  42695. #define BIT_REQUEST_START(x) \
  42696. (((x) & BIT_MASK_REQUEST_START) << BIT_SHIFT_REQUEST_START)
  42697. #define BITS_REQUEST_START (BIT_MASK_REQUEST_START << BIT_SHIFT_REQUEST_START)
  42698. #define BIT_CLEAR_REQUEST_START(x) ((x) & (~BITS_REQUEST_START))
  42699. #define BIT_GET_REQUEST_START(x) \
  42700. (((x) >> BIT_SHIFT_REQUEST_START) & BIT_MASK_REQUEST_START)
  42701. #define BIT_SET_REQUEST_START(x, v) \
  42702. (BIT_CLEAR_REQUEST_START(x) | BIT_REQUEST_START(v))
  42703. #endif
  42704. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42705. /* 2 REG_COUNTER_OVERFLOW (Offset 0x11D0) */
  42706. #define BIT_RTS_OVF BIT(8)
  42707. #define BIT_PTCL_OVF BIT(7)
  42708. #define BIT_SCH_OVF BIT(6)
  42709. #define BIT_EDCA_OVF BIT(5)
  42710. #define BIT_RQPN_OVF BIT(4)
  42711. #define BIT_USB_OVF BIT(3)
  42712. #define BIT_PCIE_OVF BIT(2)
  42713. #define BIT_RXDMA_OVF BIT(1)
  42714. #define BIT_TXDMA_OVF BIT(0)
  42715. #endif
  42716. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42717. HALMAC_8822C_SUPPORT)
  42718. /* 2 REG_COUNTER_OVERFLOW (Offset 0x11D0) */
  42719. #define BIT_SHIFT_CNT_OVF_REG 0
  42720. #define BIT_MASK_CNT_OVF_REG 0xffff
  42721. #define BIT_CNT_OVF_REG(x) \
  42722. (((x) & BIT_MASK_CNT_OVF_REG) << BIT_SHIFT_CNT_OVF_REG)
  42723. #define BITS_CNT_OVF_REG (BIT_MASK_CNT_OVF_REG << BIT_SHIFT_CNT_OVF_REG)
  42724. #define BIT_CLEAR_CNT_OVF_REG(x) ((x) & (~BITS_CNT_OVF_REG))
  42725. #define BIT_GET_CNT_OVF_REG(x) \
  42726. (((x) >> BIT_SHIFT_CNT_OVF_REG) & BIT_MASK_CNT_OVF_REG)
  42727. #define BIT_SET_CNT_OVF_REG(x, v) \
  42728. (BIT_CLEAR_CNT_OVF_REG(x) | BIT_CNT_OVF_REG(v))
  42729. #endif
  42730. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42731. /* 2 REG_TDE_LEN_TH (Offset 0x11D4) */
  42732. #define BIT_SHIFT_TXDMA_LEN_TH0 16
  42733. #define BIT_MASK_TXDMA_LEN_TH0 0xffff
  42734. #define BIT_TXDMA_LEN_TH0(x) \
  42735. (((x) & BIT_MASK_TXDMA_LEN_TH0) << BIT_SHIFT_TXDMA_LEN_TH0)
  42736. #define BITS_TXDMA_LEN_TH0 (BIT_MASK_TXDMA_LEN_TH0 << BIT_SHIFT_TXDMA_LEN_TH0)
  42737. #define BIT_CLEAR_TXDMA_LEN_TH0(x) ((x) & (~BITS_TXDMA_LEN_TH0))
  42738. #define BIT_GET_TXDMA_LEN_TH0(x) \
  42739. (((x) >> BIT_SHIFT_TXDMA_LEN_TH0) & BIT_MASK_TXDMA_LEN_TH0)
  42740. #define BIT_SET_TXDMA_LEN_TH0(x, v) \
  42741. (BIT_CLEAR_TXDMA_LEN_TH0(x) | BIT_TXDMA_LEN_TH0(v))
  42742. #endif
  42743. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42744. HALMAC_8822C_SUPPORT)
  42745. /* 2 REG_TXDMA_LEN_THRESHOLD (Offset 0x11D4) */
  42746. #define BIT_SHIFT_TDE_LEN_TH1 16
  42747. #define BIT_MASK_TDE_LEN_TH1 0xffff
  42748. #define BIT_TDE_LEN_TH1(x) \
  42749. (((x) & BIT_MASK_TDE_LEN_TH1) << BIT_SHIFT_TDE_LEN_TH1)
  42750. #define BITS_TDE_LEN_TH1 (BIT_MASK_TDE_LEN_TH1 << BIT_SHIFT_TDE_LEN_TH1)
  42751. #define BIT_CLEAR_TDE_LEN_TH1(x) ((x) & (~BITS_TDE_LEN_TH1))
  42752. #define BIT_GET_TDE_LEN_TH1(x) \
  42753. (((x) >> BIT_SHIFT_TDE_LEN_TH1) & BIT_MASK_TDE_LEN_TH1)
  42754. #define BIT_SET_TDE_LEN_TH1(x, v) \
  42755. (BIT_CLEAR_TDE_LEN_TH1(x) | BIT_TDE_LEN_TH1(v))
  42756. #endif
  42757. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42758. /* 2 REG_TDE_LEN_TH (Offset 0x11D4) */
  42759. #define BIT_SHIFT_TXDMA_LEN_TH1 0
  42760. #define BIT_MASK_TXDMA_LEN_TH1 0xffff
  42761. #define BIT_TXDMA_LEN_TH1(x) \
  42762. (((x) & BIT_MASK_TXDMA_LEN_TH1) << BIT_SHIFT_TXDMA_LEN_TH1)
  42763. #define BITS_TXDMA_LEN_TH1 (BIT_MASK_TXDMA_LEN_TH1 << BIT_SHIFT_TXDMA_LEN_TH1)
  42764. #define BIT_CLEAR_TXDMA_LEN_TH1(x) ((x) & (~BITS_TXDMA_LEN_TH1))
  42765. #define BIT_GET_TXDMA_LEN_TH1(x) \
  42766. (((x) >> BIT_SHIFT_TXDMA_LEN_TH1) & BIT_MASK_TXDMA_LEN_TH1)
  42767. #define BIT_SET_TXDMA_LEN_TH1(x, v) \
  42768. (BIT_CLEAR_TXDMA_LEN_TH1(x) | BIT_TXDMA_LEN_TH1(v))
  42769. #endif
  42770. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42771. HALMAC_8822C_SUPPORT)
  42772. /* 2 REG_TXDMA_LEN_THRESHOLD (Offset 0x11D4) */
  42773. #define BIT_SHIFT_TDE_LEN_TH0 0
  42774. #define BIT_MASK_TDE_LEN_TH0 0xffff
  42775. #define BIT_TDE_LEN_TH0(x) \
  42776. (((x) & BIT_MASK_TDE_LEN_TH0) << BIT_SHIFT_TDE_LEN_TH0)
  42777. #define BITS_TDE_LEN_TH0 (BIT_MASK_TDE_LEN_TH0 << BIT_SHIFT_TDE_LEN_TH0)
  42778. #define BIT_CLEAR_TDE_LEN_TH0(x) ((x) & (~BITS_TDE_LEN_TH0))
  42779. #define BIT_GET_TDE_LEN_TH0(x) \
  42780. (((x) >> BIT_SHIFT_TDE_LEN_TH0) & BIT_MASK_TDE_LEN_TH0)
  42781. #define BIT_SET_TDE_LEN_TH0(x, v) \
  42782. (BIT_CLEAR_TDE_LEN_TH0(x) | BIT_TDE_LEN_TH0(v))
  42783. #endif
  42784. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42785. /* 2 REG_RDE_LEN_TH (Offset 0x11D8) */
  42786. #define BIT_SHIFT_RXDMA_LEN_TH0 16
  42787. #define BIT_MASK_RXDMA_LEN_TH0 0xffff
  42788. #define BIT_RXDMA_LEN_TH0(x) \
  42789. (((x) & BIT_MASK_RXDMA_LEN_TH0) << BIT_SHIFT_RXDMA_LEN_TH0)
  42790. #define BITS_RXDMA_LEN_TH0 (BIT_MASK_RXDMA_LEN_TH0 << BIT_SHIFT_RXDMA_LEN_TH0)
  42791. #define BIT_CLEAR_RXDMA_LEN_TH0(x) ((x) & (~BITS_RXDMA_LEN_TH0))
  42792. #define BIT_GET_RXDMA_LEN_TH0(x) \
  42793. (((x) >> BIT_SHIFT_RXDMA_LEN_TH0) & BIT_MASK_RXDMA_LEN_TH0)
  42794. #define BIT_SET_RXDMA_LEN_TH0(x, v) \
  42795. (BIT_CLEAR_RXDMA_LEN_TH0(x) | BIT_RXDMA_LEN_TH0(v))
  42796. #endif
  42797. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42798. HALMAC_8822C_SUPPORT)
  42799. /* 2 REG_RXDMA_LEN_THRESHOLD (Offset 0x11D8) */
  42800. #define BIT_SHIFT_RDE_LEN_TH1 16
  42801. #define BIT_MASK_RDE_LEN_TH1 0xffff
  42802. #define BIT_RDE_LEN_TH1(x) \
  42803. (((x) & BIT_MASK_RDE_LEN_TH1) << BIT_SHIFT_RDE_LEN_TH1)
  42804. #define BITS_RDE_LEN_TH1 (BIT_MASK_RDE_LEN_TH1 << BIT_SHIFT_RDE_LEN_TH1)
  42805. #define BIT_CLEAR_RDE_LEN_TH1(x) ((x) & (~BITS_RDE_LEN_TH1))
  42806. #define BIT_GET_RDE_LEN_TH1(x) \
  42807. (((x) >> BIT_SHIFT_RDE_LEN_TH1) & BIT_MASK_RDE_LEN_TH1)
  42808. #define BIT_SET_RDE_LEN_TH1(x, v) \
  42809. (BIT_CLEAR_RDE_LEN_TH1(x) | BIT_RDE_LEN_TH1(v))
  42810. #endif
  42811. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42812. /* 2 REG_RDE_LEN_TH (Offset 0x11D8) */
  42813. #define BIT_SHIFT_RXDMA_LEN_TH1 0
  42814. #define BIT_MASK_RXDMA_LEN_TH1 0xffff
  42815. #define BIT_RXDMA_LEN_TH1(x) \
  42816. (((x) & BIT_MASK_RXDMA_LEN_TH1) << BIT_SHIFT_RXDMA_LEN_TH1)
  42817. #define BITS_RXDMA_LEN_TH1 (BIT_MASK_RXDMA_LEN_TH1 << BIT_SHIFT_RXDMA_LEN_TH1)
  42818. #define BIT_CLEAR_RXDMA_LEN_TH1(x) ((x) & (~BITS_RXDMA_LEN_TH1))
  42819. #define BIT_GET_RXDMA_LEN_TH1(x) \
  42820. (((x) >> BIT_SHIFT_RXDMA_LEN_TH1) & BIT_MASK_RXDMA_LEN_TH1)
  42821. #define BIT_SET_RXDMA_LEN_TH1(x, v) \
  42822. (BIT_CLEAR_RXDMA_LEN_TH1(x) | BIT_RXDMA_LEN_TH1(v))
  42823. #endif
  42824. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42825. HALMAC_8822C_SUPPORT)
  42826. /* 2 REG_RXDMA_LEN_THRESHOLD (Offset 0x11D8) */
  42827. #define BIT_SHIFT_RDE_LEN_TH0 0
  42828. #define BIT_MASK_RDE_LEN_TH0 0xffff
  42829. #define BIT_RDE_LEN_TH0(x) \
  42830. (((x) & BIT_MASK_RDE_LEN_TH0) << BIT_SHIFT_RDE_LEN_TH0)
  42831. #define BITS_RDE_LEN_TH0 (BIT_MASK_RDE_LEN_TH0 << BIT_SHIFT_RDE_LEN_TH0)
  42832. #define BIT_CLEAR_RDE_LEN_TH0(x) ((x) & (~BITS_RDE_LEN_TH0))
  42833. #define BIT_GET_RDE_LEN_TH0(x) \
  42834. (((x) >> BIT_SHIFT_RDE_LEN_TH0) & BIT_MASK_RDE_LEN_TH0)
  42835. #define BIT_SET_RDE_LEN_TH0(x, v) \
  42836. (BIT_CLEAR_RDE_LEN_TH0(x) | BIT_RDE_LEN_TH0(v))
  42837. #endif
  42838. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42839. /* 2 REG_PCIE_EXEC_TIME (Offset 0x11DC) */
  42840. #define BIT_SHIFT_COUNTER_INTERVAL_SEL 16
  42841. #define BIT_MASK_COUNTER_INTERVAL_SEL 0x3
  42842. #define BIT_COUNTER_INTERVAL_SEL(x) \
  42843. (((x) & BIT_MASK_COUNTER_INTERVAL_SEL) \
  42844. << BIT_SHIFT_COUNTER_INTERVAL_SEL)
  42845. #define BITS_COUNTER_INTERVAL_SEL \
  42846. (BIT_MASK_COUNTER_INTERVAL_SEL << BIT_SHIFT_COUNTER_INTERVAL_SEL)
  42847. #define BIT_CLEAR_COUNTER_INTERVAL_SEL(x) ((x) & (~BITS_COUNTER_INTERVAL_SEL))
  42848. #define BIT_GET_COUNTER_INTERVAL_SEL(x) \
  42849. (((x) >> BIT_SHIFT_COUNTER_INTERVAL_SEL) & \
  42850. BIT_MASK_COUNTER_INTERVAL_SEL)
  42851. #define BIT_SET_COUNTER_INTERVAL_SEL(x, v) \
  42852. (BIT_CLEAR_COUNTER_INTERVAL_SEL(x) | BIT_COUNTER_INTERVAL_SEL(v))
  42853. #endif
  42854. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42855. HALMAC_8822C_SUPPORT)
  42856. /* 2 REG_PCIE_EXEC_TIME_THRESHOLD (Offset 0x11DC) */
  42857. #define BIT_SHIFT_COUNT_INT_SEL 16
  42858. #define BIT_MASK_COUNT_INT_SEL 0x3
  42859. #define BIT_COUNT_INT_SEL(x) \
  42860. (((x) & BIT_MASK_COUNT_INT_SEL) << BIT_SHIFT_COUNT_INT_SEL)
  42861. #define BITS_COUNT_INT_SEL (BIT_MASK_COUNT_INT_SEL << BIT_SHIFT_COUNT_INT_SEL)
  42862. #define BIT_CLEAR_COUNT_INT_SEL(x) ((x) & (~BITS_COUNT_INT_SEL))
  42863. #define BIT_GET_COUNT_INT_SEL(x) \
  42864. (((x) >> BIT_SHIFT_COUNT_INT_SEL) & BIT_MASK_COUNT_INT_SEL)
  42865. #define BIT_SET_COUNT_INT_SEL(x, v) \
  42866. (BIT_CLEAR_COUNT_INT_SEL(x) | BIT_COUNT_INT_SEL(v))
  42867. #endif
  42868. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)
  42869. /* 2 REG_PCIE_EXEC_TIME (Offset 0x11DC) */
  42870. #define BIT_SHIFT_PCIE_TRANS_DATA_TH1 0
  42871. #define BIT_MASK_PCIE_TRANS_DATA_TH1 0xffff
  42872. #define BIT_PCIE_TRANS_DATA_TH1(x) \
  42873. (((x) & BIT_MASK_PCIE_TRANS_DATA_TH1) << BIT_SHIFT_PCIE_TRANS_DATA_TH1)
  42874. #define BITS_PCIE_TRANS_DATA_TH1 \
  42875. (BIT_MASK_PCIE_TRANS_DATA_TH1 << BIT_SHIFT_PCIE_TRANS_DATA_TH1)
  42876. #define BIT_CLEAR_PCIE_TRANS_DATA_TH1(x) ((x) & (~BITS_PCIE_TRANS_DATA_TH1))
  42877. #define BIT_GET_PCIE_TRANS_DATA_TH1(x) \
  42878. (((x) >> BIT_SHIFT_PCIE_TRANS_DATA_TH1) & BIT_MASK_PCIE_TRANS_DATA_TH1)
  42879. #define BIT_SET_PCIE_TRANS_DATA_TH1(x, v) \
  42880. (BIT_CLEAR_PCIE_TRANS_DATA_TH1(x) | BIT_PCIE_TRANS_DATA_TH1(v))
  42881. #endif
  42882. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42883. HALMAC_8822C_SUPPORT)
  42884. /* 2 REG_PCIE_EXEC_TIME_THRESHOLD (Offset 0x11DC) */
  42885. #define BIT_SHIFT_EXEC_TIME_TH 0
  42886. #define BIT_MASK_EXEC_TIME_TH 0xffff
  42887. #define BIT_EXEC_TIME_TH(x) \
  42888. (((x) & BIT_MASK_EXEC_TIME_TH) << BIT_SHIFT_EXEC_TIME_TH)
  42889. #define BITS_EXEC_TIME_TH (BIT_MASK_EXEC_TIME_TH << BIT_SHIFT_EXEC_TIME_TH)
  42890. #define BIT_CLEAR_EXEC_TIME_TH(x) ((x) & (~BITS_EXEC_TIME_TH))
  42891. #define BIT_GET_EXEC_TIME_TH(x) \
  42892. (((x) >> BIT_SHIFT_EXEC_TIME_TH) & BIT_MASK_EXEC_TIME_TH)
  42893. #define BIT_SET_EXEC_TIME_TH(x, v) \
  42894. (BIT_CLEAR_EXEC_TIME_TH(x) | BIT_EXEC_TIME_TH(v))
  42895. #endif
  42896. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42897. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42898. #define BIT_PORT4_RX_UCMD1_UAPSD0_OK_INT_EN BIT(31)
  42899. #endif
  42900. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42901. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42902. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42903. #define BIT_FS_CLI3_RX_UAPSDMD1_EN BIT(31)
  42904. #endif
  42905. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42906. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42907. #define BIT_PORT4_RX_UCMD0_UAPSD0_OK_INT_EN BIT(30)
  42908. #endif
  42909. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42910. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42911. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42912. #define BIT_FS_CLI3_RX_UAPSDMD0_EN BIT(30)
  42913. #endif
  42914. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42915. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42916. #define BIT_PORT4_TRIPKT_OK_INT_EN BIT(29)
  42917. #endif
  42918. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42919. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42920. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42921. #define BIT_FS_CLI3_TRIGGER_PKT_EN BIT(29)
  42922. #endif
  42923. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42924. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42925. #define BIT_PORT4_RX_EOSP_OK_INT_EN BIT(28)
  42926. #endif
  42927. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42928. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42929. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42930. #define BIT_FS_CLI3_EOSP_INT_EN BIT(28)
  42931. #endif
  42932. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42933. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42934. #define BIT_PORT3_RX_UCMD1_UAPSD0_OK_INT_EN BIT(27)
  42935. #endif
  42936. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42937. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42938. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42939. #define BIT_FS_CLI2_RX_UAPSDMD1_EN BIT(27)
  42940. #endif
  42941. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42942. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42943. #define BIT_PORT3_RX_UCMD0_UAPSD0_OK_INT_EN BIT(26)
  42944. #endif
  42945. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42946. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42947. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42948. #define BIT_FS_CLI2_RX_UAPSDMD0_EN BIT(26)
  42949. #endif
  42950. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42951. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42952. #define BIT_PORT3_TRIPKT_OK_INT_EN BIT(25)
  42953. #endif
  42954. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42955. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42956. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42957. #define BIT_FS_CLI2_TRIGGER_PKT_EN BIT(25)
  42958. #endif
  42959. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42960. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42961. #define BIT_PORT3_RX_EOSP_OK_INT_EN BIT(24)
  42962. #endif
  42963. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42964. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42965. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42966. #define BIT_FS_CLI2_EOSP_INT_EN BIT(24)
  42967. #endif
  42968. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42969. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42970. #define BIT_PORT2_RX_UCMD1_UAPSD0_OK_INT_EN BIT(23)
  42971. #endif
  42972. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42973. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42974. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42975. #define BIT_FS_CLI1_RX_UAPSDMD1_EN BIT(23)
  42976. #endif
  42977. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42978. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42979. #define BIT_PORT2_RX_UCMD0_UAPSD0_OK_INT_EN BIT(22)
  42980. #endif
  42981. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42982. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42983. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42984. #define BIT_FS_CLI1_RX_UAPSDMD0_EN BIT(22)
  42985. #endif
  42986. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42987. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42988. #define BIT_PORT2_TRIPKT_OK_INT_EN BIT(21)
  42989. #endif
  42990. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  42991. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  42992. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42993. #define BIT_FS_CLI1_TRIGGER_PKT_EN BIT(21)
  42994. #endif
  42995. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  42996. /* 2 REG_FT2IMR (Offset 0x11E0) */
  42997. #define BIT_PORT2_RX_EOSP_OK_INT_EN BIT(20)
  42998. #endif
  42999. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43000. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43001. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43002. #define BIT_FS_CLI1_EOSP_INT_EN BIT(20)
  43003. #endif
  43004. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43005. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43006. #define BIT_PORT1_RX_UCMD1_UAPSD0_OK_INT_EN BIT(19)
  43007. #endif
  43008. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43009. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43010. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43011. #define BIT_FS_CLI0_RX_UAPSDMD1_EN BIT(19)
  43012. #endif
  43013. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43014. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43015. #define BIT_PORT1_RX_UCMD0_UAPSD0_OK_INT_EN BIT(18)
  43016. #endif
  43017. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43018. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43019. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43020. #define BIT_FS_CLI0_RX_UAPSDMD0_EN BIT(18)
  43021. #endif
  43022. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43023. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43024. #define BIT_PORT1_TRIPKT_OK_INT_EN BIT(17)
  43025. #endif
  43026. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43027. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43028. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43029. #define BIT_FS_CLI0_TRIGGER_PKT_EN BIT(17)
  43030. #endif
  43031. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43032. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43033. #define BIT_PORT1_RX_EOSP_OK_INT_EN BIT(16)
  43034. #endif
  43035. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43036. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43037. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43038. #define BIT_FS_CLI0_EOSP_INT_EN BIT(16)
  43039. #endif
  43040. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43041. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43042. #define BIT_NOA2_TSFT_BIT32_TOGGLE_INT_EN BIT(9)
  43043. #endif
  43044. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43045. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43046. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43047. #define BIT_FS_TSF_BIT32_TOGGLE_P2P2_EN BIT(9)
  43048. #endif
  43049. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43050. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43051. #define BIT_NOA1_TSFT_BIT32_TOGGLE_INT_EN BIT(8)
  43052. #endif
  43053. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43054. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43055. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43056. #define BIT_FS_TSF_BIT32_TOGGLE_P2P1_EN BIT(8)
  43057. #endif
  43058. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43059. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43060. #define BIT_PORT4_TX_NULL1_DONE_INT_EN BIT(7)
  43061. #endif
  43062. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43063. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43064. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43065. #define BIT_FS_CLI3_TX_NULL1_INT_EN BIT(7)
  43066. #endif
  43067. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43068. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43069. #define BIT_PORT4_TX_NULL0_DONE_INT_EN BIT(6)
  43070. #endif
  43071. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43072. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43073. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43074. #define BIT_FS_CLI3_TX_NULL0_INT_EN BIT(6)
  43075. #endif
  43076. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43077. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43078. #define BIT_PORT3_TX_NULL1_DONE_INT_EN BIT(5)
  43079. #endif
  43080. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43081. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43082. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43083. #define BIT_FS_CLI2_TX_NULL1_INT_EN BIT(5)
  43084. #endif
  43085. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43086. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43087. #define BIT_PORT3_TX_NULL0_DONE_INT_EN BIT(4)
  43088. #endif
  43089. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43090. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43091. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43092. #define BIT_FS_CLI2_TX_NULL0_INT_EN BIT(4)
  43093. #endif
  43094. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43095. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43096. #define BIT_PORT2_TX_NULL1_DONE_INT_EN BIT(3)
  43097. #endif
  43098. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43099. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43100. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43101. #define BIT_FS_CLI1_TX_NULL1_INT_EN BIT(3)
  43102. #endif
  43103. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43104. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43105. #define BIT_PORT2_TX_NULL0_DONE_INT_EN BIT(2)
  43106. #endif
  43107. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43108. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43109. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43110. #define BIT_FS_CLI1_TX_NULL0_INT_EN BIT(2)
  43111. #endif
  43112. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43113. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43114. #define BIT_PORT1_TX_NULL1_DONE_INT_EN BIT(1)
  43115. #endif
  43116. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43117. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43118. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43119. #define BIT_FS_CLI0_TX_NULL1_INT_EN BIT(1)
  43120. #endif
  43121. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43122. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43123. #define BIT_PORT1_TX_NULL0_DONE_INT_EN BIT(0)
  43124. #endif
  43125. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43126. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43127. /* 2 REG_FT2IMR (Offset 0x11E0) */
  43128. #define BIT_FS_CLI0_TX_NULL0_INT_EN BIT(0)
  43129. #endif
  43130. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43131. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43132. #define BIT_PORT4_RX_UCMD1_UAPSD0_OK_INT BIT(31)
  43133. #endif
  43134. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43135. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43136. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43137. #define BIT_FS_CLI3_RX_UAPSDMD1_INT BIT(31)
  43138. #endif
  43139. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43140. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43141. #define BIT_PORT4_RX_UCMD0_UAPSD0_OK_INT BIT(30)
  43142. #endif
  43143. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43144. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43145. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43146. #define BIT_FS_CLI3_RX_UAPSDMD0_INT BIT(30)
  43147. #endif
  43148. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43149. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43150. #define BIT_PORT4_TRIPKT_OK_INT BIT(29)
  43151. #endif
  43152. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43153. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43154. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43155. #define BIT_FS_CLI3_TRIGGER_PKT_INT BIT(29)
  43156. #endif
  43157. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43158. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43159. #define BIT_PORT4_RX_EOSP_OK_INT BIT(28)
  43160. #endif
  43161. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43162. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43163. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43164. #define BIT_FS_CLI3_EOSP_INT BIT(28)
  43165. #endif
  43166. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43167. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43168. #define BIT_PORT3_RX_UCMD1_UAPSD0_OK_INT BIT(27)
  43169. #endif
  43170. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43171. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43172. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43173. #define BIT_FS_CLI2_RX_UAPSDMD1_INT BIT(27)
  43174. #endif
  43175. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43176. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43177. #define BIT_PORT3_RX_UCMD0_UAPSD0_OK_INT BIT(26)
  43178. #endif
  43179. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43180. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43181. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43182. #define BIT_FS_CLI2_RX_UAPSDMD0_INT BIT(26)
  43183. #endif
  43184. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43185. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43186. #define BIT_PORT3_TRIPKT_OK_INT BIT(25)
  43187. #endif
  43188. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43189. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43190. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43191. #define BIT_FS_CLI2_TRIGGER_PKT_INT BIT(25)
  43192. #endif
  43193. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43194. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43195. #define BIT_PORT3_RX_EOSP_OK_INT BIT(24)
  43196. #endif
  43197. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43198. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43199. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43200. #define BIT_FS_CLI2_EOSP_INT BIT(24)
  43201. #endif
  43202. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43203. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43204. #define BIT_PORT2_RX_UCMD1_UAPSD0_OK_INT BIT(23)
  43205. #endif
  43206. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43207. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43208. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43209. #define BIT_FS_CLI1_RX_UAPSDMD1_INT BIT(23)
  43210. #endif
  43211. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43212. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43213. #define BIT_PORT2_RX_UCMD0_UAPSD0_OK_INT BIT(22)
  43214. #endif
  43215. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43216. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43217. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43218. #define BIT_FS_CLI1_RX_UAPSDMD0_INT BIT(22)
  43219. #endif
  43220. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43221. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43222. #define BIT_PORT2_TRIPKT_OK_INT BIT(21)
  43223. #endif
  43224. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43225. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43226. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43227. #define BIT_FS_CLI1_TRIGGER_PKT_INT BIT(21)
  43228. #endif
  43229. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43230. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43231. #define BIT_PORT2_RX_EOSP_OK_INT BIT(20)
  43232. #endif
  43233. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43234. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43235. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43236. #define BIT_FS_CLI1_EOSP_INT BIT(20)
  43237. #endif
  43238. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43239. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43240. #define BIT_PORT1_RX_UCMD1_UAPSD0_OK_INT BIT(19)
  43241. #endif
  43242. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43243. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43244. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43245. #define BIT_FS_CLI0_RX_UAPSDMD1_INT BIT(19)
  43246. #endif
  43247. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43248. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43249. #define BIT_PORT1_RX_UCMD0_UAPSD0_OK_INT BIT(18)
  43250. #endif
  43251. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43252. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43253. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43254. #define BIT_FS_CLI0_RX_UAPSDMD0_INT BIT(18)
  43255. #endif
  43256. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43257. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43258. #define BIT_PORT1_TRIPKT_OK_INT BIT(17)
  43259. #endif
  43260. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43261. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43262. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43263. #define BIT_FS_CLI0_TRIGGER_PKT_INT BIT(17)
  43264. #endif
  43265. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43266. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43267. #define BIT_PORT1_RX_EOSP_OK_INT BIT(16)
  43268. #endif
  43269. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43270. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43271. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43272. #define BIT_FS_CLI0_EOSP_INT BIT(16)
  43273. #endif
  43274. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43275. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43276. #define BIT_NOA2_TSFT_BIT32_TOGGLE_INT BIT(9)
  43277. #endif
  43278. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43279. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43280. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43281. #define BIT_FS_TSF_BIT32_TOGGLE_P2P2_INT BIT(9)
  43282. #endif
  43283. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43284. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43285. #define BIT_NOA1_TSFT_BIT32_TOGGLE_INT BIT(8)
  43286. #endif
  43287. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43288. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43289. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43290. #define BIT_FS_TSF_BIT32_TOGGLE_P2P1_INT BIT(8)
  43291. #endif
  43292. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43293. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43294. #define BIT_PORT4_TX_NULL1_DONE_INT BIT(7)
  43295. #endif
  43296. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43297. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43298. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43299. #define BIT_FS_CLI3_TX_NULL1_INT BIT(7)
  43300. #endif
  43301. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43302. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43303. #define BIT_PORT4_TX_NULL0_DONE_INT BIT(6)
  43304. #endif
  43305. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43306. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43307. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43308. #define BIT_FS_CLI3_TX_NULL0_INT BIT(6)
  43309. #endif
  43310. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43311. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43312. #define BIT_PORT3_TX_NULL1_DONE_INT BIT(5)
  43313. #endif
  43314. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43315. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43316. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43317. #define BIT_FS_CLI2_TX_NULL1_INT BIT(5)
  43318. #endif
  43319. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43320. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43321. #define BIT_PORT3_TX_NULL0_DONE_INT BIT(4)
  43322. #endif
  43323. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43324. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43325. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43326. #define BIT_FS_CLI2_TX_NULL0_INT BIT(4)
  43327. #endif
  43328. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43329. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43330. #define BIT_PORT2_TX_NULL1_DONE_INT BIT(3)
  43331. #endif
  43332. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43333. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43334. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43335. #define BIT_FS_CLI1_TX_NULL1_INT BIT(3)
  43336. #endif
  43337. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43338. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43339. #define BIT_PORT2_TX_NULL0_DONE_INT BIT(2)
  43340. #endif
  43341. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43342. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43343. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43344. #define BIT_FS_CLI1_TX_NULL0_INT BIT(2)
  43345. #endif
  43346. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43347. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43348. #define BIT_PORT1_TX_NULL1_DONE_INT BIT(1)
  43349. #endif
  43350. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43351. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43352. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43353. #define BIT_FS_CLI0_TX_NULL1_INT BIT(1)
  43354. #endif
  43355. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  43356. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43357. #define BIT_PORT1_TX_NULL0_DONE_INT BIT(0)
  43358. #endif
  43359. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43360. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43361. /* 2 REG_FT2ISR (Offset 0x11E4) */
  43362. #define BIT_FS_CLI0_TX_NULL0_INT BIT(0)
  43363. #endif
  43364. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43365. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43367. /* 2 REG_MSG2 (Offset 0x11F0) */
  43368. #define BIT_SHIFT_FW_MSG2 0
  43369. #define BIT_MASK_FW_MSG2 0xffffffffL
  43370. #define BIT_FW_MSG2(x) (((x) & BIT_MASK_FW_MSG2) << BIT_SHIFT_FW_MSG2)
  43371. #define BITS_FW_MSG2 (BIT_MASK_FW_MSG2 << BIT_SHIFT_FW_MSG2)
  43372. #define BIT_CLEAR_FW_MSG2(x) ((x) & (~BITS_FW_MSG2))
  43373. #define BIT_GET_FW_MSG2(x) (((x) >> BIT_SHIFT_FW_MSG2) & BIT_MASK_FW_MSG2)
  43374. #define BIT_SET_FW_MSG2(x, v) (BIT_CLEAR_FW_MSG2(x) | BIT_FW_MSG2(v))
  43375. /* 2 REG_MSG3 (Offset 0x11F4) */
  43376. #define BIT_SHIFT_FW_MSG3 0
  43377. #define BIT_MASK_FW_MSG3 0xffffffffL
  43378. #define BIT_FW_MSG3(x) (((x) & BIT_MASK_FW_MSG3) << BIT_SHIFT_FW_MSG3)
  43379. #define BITS_FW_MSG3 (BIT_MASK_FW_MSG3 << BIT_SHIFT_FW_MSG3)
  43380. #define BIT_CLEAR_FW_MSG3(x) ((x) & (~BITS_FW_MSG3))
  43381. #define BIT_GET_FW_MSG3(x) (((x) >> BIT_SHIFT_FW_MSG3) & BIT_MASK_FW_MSG3)
  43382. #define BIT_SET_FW_MSG3(x, v) (BIT_CLEAR_FW_MSG3(x) | BIT_FW_MSG3(v))
  43383. /* 2 REG_MSG4 (Offset 0x11F8) */
  43384. #define BIT_SHIFT_FW_MSG4 0
  43385. #define BIT_MASK_FW_MSG4 0xffffffffL
  43386. #define BIT_FW_MSG4(x) (((x) & BIT_MASK_FW_MSG4) << BIT_SHIFT_FW_MSG4)
  43387. #define BITS_FW_MSG4 (BIT_MASK_FW_MSG4 << BIT_SHIFT_FW_MSG4)
  43388. #define BIT_CLEAR_FW_MSG4(x) ((x) & (~BITS_FW_MSG4))
  43389. #define BIT_GET_FW_MSG4(x) (((x) >> BIT_SHIFT_FW_MSG4) & BIT_MASK_FW_MSG4)
  43390. #define BIT_SET_FW_MSG4(x, v) (BIT_CLEAR_FW_MSG4(x) | BIT_FW_MSG4(v))
  43391. /* 2 REG_MSG5 (Offset 0x11FC) */
  43392. #define BIT_SHIFT_FW_MSG5 0
  43393. #define BIT_MASK_FW_MSG5 0xffffffffL
  43394. #define BIT_FW_MSG5(x) (((x) & BIT_MASK_FW_MSG5) << BIT_SHIFT_FW_MSG5)
  43395. #define BITS_FW_MSG5 (BIT_MASK_FW_MSG5 << BIT_SHIFT_FW_MSG5)
  43396. #define BIT_CLEAR_FW_MSG5(x) ((x) & (~BITS_FW_MSG5))
  43397. #define BIT_GET_FW_MSG5(x) (((x) >> BIT_SHIFT_FW_MSG5) & BIT_MASK_FW_MSG5)
  43398. #define BIT_SET_FW_MSG5(x, v) (BIT_CLEAR_FW_MSG5(x) | BIT_FW_MSG5(v))
  43399. /* 2 REG_DDMA_CH0SA (Offset 0x1200) */
  43400. #define BIT_SHIFT_DDMACH0_SA 0
  43401. #define BIT_MASK_DDMACH0_SA 0xffffffffL
  43402. #define BIT_DDMACH0_SA(x) (((x) & BIT_MASK_DDMACH0_SA) << BIT_SHIFT_DDMACH0_SA)
  43403. #define BITS_DDMACH0_SA (BIT_MASK_DDMACH0_SA << BIT_SHIFT_DDMACH0_SA)
  43404. #define BIT_CLEAR_DDMACH0_SA(x) ((x) & (~BITS_DDMACH0_SA))
  43405. #define BIT_GET_DDMACH0_SA(x) \
  43406. (((x) >> BIT_SHIFT_DDMACH0_SA) & BIT_MASK_DDMACH0_SA)
  43407. #define BIT_SET_DDMACH0_SA(x, v) (BIT_CLEAR_DDMACH0_SA(x) | BIT_DDMACH0_SA(v))
  43408. /* 2 REG_DDMA_CH0DA (Offset 0x1204) */
  43409. #define BIT_SHIFT_DDMACH0_DA 0
  43410. #define BIT_MASK_DDMACH0_DA 0xffffffffL
  43411. #define BIT_DDMACH0_DA(x) (((x) & BIT_MASK_DDMACH0_DA) << BIT_SHIFT_DDMACH0_DA)
  43412. #define BITS_DDMACH0_DA (BIT_MASK_DDMACH0_DA << BIT_SHIFT_DDMACH0_DA)
  43413. #define BIT_CLEAR_DDMACH0_DA(x) ((x) & (~BITS_DDMACH0_DA))
  43414. #define BIT_GET_DDMACH0_DA(x) \
  43415. (((x) >> BIT_SHIFT_DDMACH0_DA) & BIT_MASK_DDMACH0_DA)
  43416. #define BIT_SET_DDMACH0_DA(x, v) (BIT_CLEAR_DDMACH0_DA(x) | BIT_DDMACH0_DA(v))
  43417. /* 2 REG_DDMA_CH0CTRL (Offset 0x1208) */
  43418. #define BIT_DDMACH0_OWN BIT(31)
  43419. #endif
  43420. #if (HALMAC_8198F_SUPPORT)
  43421. /* 2 REG_DDMA_CH0CTRL (Offset 0x1208) */
  43422. #define BIT_DDMACH0_ERR_MON BIT(30)
  43423. #endif
  43424. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43425. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43426. /* 2 REG_DDMA_CH0CTRL (Offset 0x1208) */
  43427. #define BIT_DDMACH0_IDMEM_ERR BIT(30)
  43428. #endif
  43429. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43430. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43431. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43432. /* 2 REG_DDMA_CH0CTRL (Offset 0x1208) */
  43433. #define BIT_DDMACH0_CHKSUM_EN BIT(29)
  43434. #define BIT_DDMACH0_DA_W_DISABLE BIT(28)
  43435. #define BIT_DDMACH0_CHKSUM_STS BIT(27)
  43436. #define BIT_DDMACH0_DDMA_MODE BIT(26)
  43437. #define BIT_DDMACH0_RESET_CHKSUM_STS BIT(25)
  43438. #define BIT_DDMACH0_CHKSUM_CONT BIT(24)
  43439. #define BIT_SHIFT_DDMACH0_DLEN 0
  43440. #define BIT_MASK_DDMACH0_DLEN 0x3ffff
  43441. #define BIT_DDMACH0_DLEN(x) \
  43442. (((x) & BIT_MASK_DDMACH0_DLEN) << BIT_SHIFT_DDMACH0_DLEN)
  43443. #define BITS_DDMACH0_DLEN (BIT_MASK_DDMACH0_DLEN << BIT_SHIFT_DDMACH0_DLEN)
  43444. #define BIT_CLEAR_DDMACH0_DLEN(x) ((x) & (~BITS_DDMACH0_DLEN))
  43445. #define BIT_GET_DDMACH0_DLEN(x) \
  43446. (((x) >> BIT_SHIFT_DDMACH0_DLEN) & BIT_MASK_DDMACH0_DLEN)
  43447. #define BIT_SET_DDMACH0_DLEN(x, v) \
  43448. (BIT_CLEAR_DDMACH0_DLEN(x) | BIT_DDMACH0_DLEN(v))
  43449. /* 2 REG_DDMA_CH1SA (Offset 0x1210) */
  43450. #define BIT_SHIFT_DDMACH1_SA 0
  43451. #define BIT_MASK_DDMACH1_SA 0xffffffffL
  43452. #define BIT_DDMACH1_SA(x) (((x) & BIT_MASK_DDMACH1_SA) << BIT_SHIFT_DDMACH1_SA)
  43453. #define BITS_DDMACH1_SA (BIT_MASK_DDMACH1_SA << BIT_SHIFT_DDMACH1_SA)
  43454. #define BIT_CLEAR_DDMACH1_SA(x) ((x) & (~BITS_DDMACH1_SA))
  43455. #define BIT_GET_DDMACH1_SA(x) \
  43456. (((x) >> BIT_SHIFT_DDMACH1_SA) & BIT_MASK_DDMACH1_SA)
  43457. #define BIT_SET_DDMACH1_SA(x, v) (BIT_CLEAR_DDMACH1_SA(x) | BIT_DDMACH1_SA(v))
  43458. /* 2 REG_DDMA_CH1DA (Offset 0x1214) */
  43459. #define BIT_SHIFT_DDMACH1_DA 0
  43460. #define BIT_MASK_DDMACH1_DA 0xffffffffL
  43461. #define BIT_DDMACH1_DA(x) (((x) & BIT_MASK_DDMACH1_DA) << BIT_SHIFT_DDMACH1_DA)
  43462. #define BITS_DDMACH1_DA (BIT_MASK_DDMACH1_DA << BIT_SHIFT_DDMACH1_DA)
  43463. #define BIT_CLEAR_DDMACH1_DA(x) ((x) & (~BITS_DDMACH1_DA))
  43464. #define BIT_GET_DDMACH1_DA(x) \
  43465. (((x) >> BIT_SHIFT_DDMACH1_DA) & BIT_MASK_DDMACH1_DA)
  43466. #define BIT_SET_DDMACH1_DA(x, v) (BIT_CLEAR_DDMACH1_DA(x) | BIT_DDMACH1_DA(v))
  43467. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43468. #define BIT_DDMACH1_OWN BIT(31)
  43469. #endif
  43470. #if (HALMAC_8198F_SUPPORT)
  43471. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43472. #define BIT_DDMACH1_ERR_MON BIT(30)
  43473. #endif
  43474. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43475. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43476. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43477. #define BIT_DDMACH1_IDMEM_ERR BIT(30)
  43478. #endif
  43479. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43480. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43481. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43482. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43483. #define BIT_DDMACH1_CHKSUM_EN BIT(29)
  43484. #define BIT_DDMACH1_DA_W_DISABLE BIT(28)
  43485. #define BIT_DDMACH1_CHKSUM_STS BIT(27)
  43486. #define BIT_DDMACH1_DDMA_MODE BIT(26)
  43487. #endif
  43488. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  43489. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43490. HALMAC_8822B_SUPPORT)
  43491. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43492. #define BIT_DDMACH1_RESET_CHKSUM_STS BIT(25)
  43493. #define BIT_DDMACH1_CHKSUM_CONT BIT(24)
  43494. #endif
  43495. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43496. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43497. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43498. /* 2 REG_DDMA_CH1CTRL (Offset 0x1218) */
  43499. #define BIT_SHIFT_DDMACH1_DLEN 0
  43500. #define BIT_MASK_DDMACH1_DLEN 0x3ffff
  43501. #define BIT_DDMACH1_DLEN(x) \
  43502. (((x) & BIT_MASK_DDMACH1_DLEN) << BIT_SHIFT_DDMACH1_DLEN)
  43503. #define BITS_DDMACH1_DLEN (BIT_MASK_DDMACH1_DLEN << BIT_SHIFT_DDMACH1_DLEN)
  43504. #define BIT_CLEAR_DDMACH1_DLEN(x) ((x) & (~BITS_DDMACH1_DLEN))
  43505. #define BIT_GET_DDMACH1_DLEN(x) \
  43506. (((x) >> BIT_SHIFT_DDMACH1_DLEN) & BIT_MASK_DDMACH1_DLEN)
  43507. #define BIT_SET_DDMACH1_DLEN(x, v) \
  43508. (BIT_CLEAR_DDMACH1_DLEN(x) | BIT_DDMACH1_DLEN(v))
  43509. /* 2 REG_DDMA_CH2SA (Offset 0x1220) */
  43510. #define BIT_SHIFT_DDMACH2_SA 0
  43511. #define BIT_MASK_DDMACH2_SA 0xffffffffL
  43512. #define BIT_DDMACH2_SA(x) (((x) & BIT_MASK_DDMACH2_SA) << BIT_SHIFT_DDMACH2_SA)
  43513. #define BITS_DDMACH2_SA (BIT_MASK_DDMACH2_SA << BIT_SHIFT_DDMACH2_SA)
  43514. #define BIT_CLEAR_DDMACH2_SA(x) ((x) & (~BITS_DDMACH2_SA))
  43515. #define BIT_GET_DDMACH2_SA(x) \
  43516. (((x) >> BIT_SHIFT_DDMACH2_SA) & BIT_MASK_DDMACH2_SA)
  43517. #define BIT_SET_DDMACH2_SA(x, v) (BIT_CLEAR_DDMACH2_SA(x) | BIT_DDMACH2_SA(v))
  43518. /* 2 REG_DDMA_CH2DA (Offset 0x1224) */
  43519. #define BIT_SHIFT_DDMACH2_DA 0
  43520. #define BIT_MASK_DDMACH2_DA 0xffffffffL
  43521. #define BIT_DDMACH2_DA(x) (((x) & BIT_MASK_DDMACH2_DA) << BIT_SHIFT_DDMACH2_DA)
  43522. #define BITS_DDMACH2_DA (BIT_MASK_DDMACH2_DA << BIT_SHIFT_DDMACH2_DA)
  43523. #define BIT_CLEAR_DDMACH2_DA(x) ((x) & (~BITS_DDMACH2_DA))
  43524. #define BIT_GET_DDMACH2_DA(x) \
  43525. (((x) >> BIT_SHIFT_DDMACH2_DA) & BIT_MASK_DDMACH2_DA)
  43526. #define BIT_SET_DDMACH2_DA(x, v) (BIT_CLEAR_DDMACH2_DA(x) | BIT_DDMACH2_DA(v))
  43527. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43528. #define BIT_DDMACH2_OWN BIT(31)
  43529. #endif
  43530. #if (HALMAC_8198F_SUPPORT)
  43531. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43532. #define BIT_DDMACH2_ERR_MON BIT(30)
  43533. #endif
  43534. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43535. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43536. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43537. #define BIT_DDMACH2_IDMEM_ERR BIT(30)
  43538. #endif
  43539. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43540. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43541. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43542. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43543. #define BIT_DDMACH2_CHKSUM_EN BIT(29)
  43544. #define BIT_DDMACH2_DA_W_DISABLE BIT(28)
  43545. #define BIT_DDMACH2_CHKSUM_STS BIT(27)
  43546. #define BIT_DDMACH2_DDMA_MODE BIT(26)
  43547. #endif
  43548. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  43549. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43550. HALMAC_8822B_SUPPORT)
  43551. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43552. #define BIT_DDMACH2_RESET_CHKSUM_STS BIT(25)
  43553. #define BIT_DDMACH2_CHKSUM_CONT BIT(24)
  43554. #endif
  43555. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43556. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43557. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43558. /* 2 REG_DDMA_CH2CTRL (Offset 0x1228) */
  43559. #define BIT_SHIFT_DDMACH2_DLEN 0
  43560. #define BIT_MASK_DDMACH2_DLEN 0x3ffff
  43561. #define BIT_DDMACH2_DLEN(x) \
  43562. (((x) & BIT_MASK_DDMACH2_DLEN) << BIT_SHIFT_DDMACH2_DLEN)
  43563. #define BITS_DDMACH2_DLEN (BIT_MASK_DDMACH2_DLEN << BIT_SHIFT_DDMACH2_DLEN)
  43564. #define BIT_CLEAR_DDMACH2_DLEN(x) ((x) & (~BITS_DDMACH2_DLEN))
  43565. #define BIT_GET_DDMACH2_DLEN(x) \
  43566. (((x) >> BIT_SHIFT_DDMACH2_DLEN) & BIT_MASK_DDMACH2_DLEN)
  43567. #define BIT_SET_DDMACH2_DLEN(x, v) \
  43568. (BIT_CLEAR_DDMACH2_DLEN(x) | BIT_DDMACH2_DLEN(v))
  43569. /* 2 REG_DDMA_CH3SA (Offset 0x1230) */
  43570. #define BIT_SHIFT_DDMACH3_SA 0
  43571. #define BIT_MASK_DDMACH3_SA 0xffffffffL
  43572. #define BIT_DDMACH3_SA(x) (((x) & BIT_MASK_DDMACH3_SA) << BIT_SHIFT_DDMACH3_SA)
  43573. #define BITS_DDMACH3_SA (BIT_MASK_DDMACH3_SA << BIT_SHIFT_DDMACH3_SA)
  43574. #define BIT_CLEAR_DDMACH3_SA(x) ((x) & (~BITS_DDMACH3_SA))
  43575. #define BIT_GET_DDMACH3_SA(x) \
  43576. (((x) >> BIT_SHIFT_DDMACH3_SA) & BIT_MASK_DDMACH3_SA)
  43577. #define BIT_SET_DDMACH3_SA(x, v) (BIT_CLEAR_DDMACH3_SA(x) | BIT_DDMACH3_SA(v))
  43578. /* 2 REG_DDMA_CH3DA (Offset 0x1234) */
  43579. #define BIT_SHIFT_DDMACH3_DA 0
  43580. #define BIT_MASK_DDMACH3_DA 0xffffffffL
  43581. #define BIT_DDMACH3_DA(x) (((x) & BIT_MASK_DDMACH3_DA) << BIT_SHIFT_DDMACH3_DA)
  43582. #define BITS_DDMACH3_DA (BIT_MASK_DDMACH3_DA << BIT_SHIFT_DDMACH3_DA)
  43583. #define BIT_CLEAR_DDMACH3_DA(x) ((x) & (~BITS_DDMACH3_DA))
  43584. #define BIT_GET_DDMACH3_DA(x) \
  43585. (((x) >> BIT_SHIFT_DDMACH3_DA) & BIT_MASK_DDMACH3_DA)
  43586. #define BIT_SET_DDMACH3_DA(x, v) (BIT_CLEAR_DDMACH3_DA(x) | BIT_DDMACH3_DA(v))
  43587. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43588. #define BIT_DDMACH3_OWN BIT(31)
  43589. #endif
  43590. #if (HALMAC_8198F_SUPPORT)
  43591. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43592. #define BIT_DDMACH3_ERR_MON BIT(30)
  43593. #endif
  43594. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43595. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43596. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43597. #define BIT_DDMACH3_IDMEM_ERR BIT(30)
  43598. #endif
  43599. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43600. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43601. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43602. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43603. #define BIT_DDMACH3_CHKSUM_EN BIT(29)
  43604. #define BIT_DDMACH3_DA_W_DISABLE BIT(28)
  43605. #define BIT_DDMACH3_CHKSUM_STS BIT(27)
  43606. #define BIT_DDMACH3_DDMA_MODE BIT(26)
  43607. #endif
  43608. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  43609. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43610. HALMAC_8822B_SUPPORT)
  43611. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43612. #define BIT_DDMACH3_RESET_CHKSUM_STS BIT(25)
  43613. #define BIT_DDMACH3_CHKSUM_CONT BIT(24)
  43614. #endif
  43615. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43616. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43617. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43618. /* 2 REG_DDMA_CH3CTRL (Offset 0x1238) */
  43619. #define BIT_SHIFT_DDMACH3_DLEN 0
  43620. #define BIT_MASK_DDMACH3_DLEN 0x3ffff
  43621. #define BIT_DDMACH3_DLEN(x) \
  43622. (((x) & BIT_MASK_DDMACH3_DLEN) << BIT_SHIFT_DDMACH3_DLEN)
  43623. #define BITS_DDMACH3_DLEN (BIT_MASK_DDMACH3_DLEN << BIT_SHIFT_DDMACH3_DLEN)
  43624. #define BIT_CLEAR_DDMACH3_DLEN(x) ((x) & (~BITS_DDMACH3_DLEN))
  43625. #define BIT_GET_DDMACH3_DLEN(x) \
  43626. (((x) >> BIT_SHIFT_DDMACH3_DLEN) & BIT_MASK_DDMACH3_DLEN)
  43627. #define BIT_SET_DDMACH3_DLEN(x, v) \
  43628. (BIT_CLEAR_DDMACH3_DLEN(x) | BIT_DDMACH3_DLEN(v))
  43629. /* 2 REG_DDMA_CH4SA (Offset 0x1240) */
  43630. #define BIT_SHIFT_DDMACH4_SA 0
  43631. #define BIT_MASK_DDMACH4_SA 0xffffffffL
  43632. #define BIT_DDMACH4_SA(x) (((x) & BIT_MASK_DDMACH4_SA) << BIT_SHIFT_DDMACH4_SA)
  43633. #define BITS_DDMACH4_SA (BIT_MASK_DDMACH4_SA << BIT_SHIFT_DDMACH4_SA)
  43634. #define BIT_CLEAR_DDMACH4_SA(x) ((x) & (~BITS_DDMACH4_SA))
  43635. #define BIT_GET_DDMACH4_SA(x) \
  43636. (((x) >> BIT_SHIFT_DDMACH4_SA) & BIT_MASK_DDMACH4_SA)
  43637. #define BIT_SET_DDMACH4_SA(x, v) (BIT_CLEAR_DDMACH4_SA(x) | BIT_DDMACH4_SA(v))
  43638. /* 2 REG_DDMA_CH4DA (Offset 0x1244) */
  43639. #define BIT_SHIFT_DDMACH4_DA 0
  43640. #define BIT_MASK_DDMACH4_DA 0xffffffffL
  43641. #define BIT_DDMACH4_DA(x) (((x) & BIT_MASK_DDMACH4_DA) << BIT_SHIFT_DDMACH4_DA)
  43642. #define BITS_DDMACH4_DA (BIT_MASK_DDMACH4_DA << BIT_SHIFT_DDMACH4_DA)
  43643. #define BIT_CLEAR_DDMACH4_DA(x) ((x) & (~BITS_DDMACH4_DA))
  43644. #define BIT_GET_DDMACH4_DA(x) \
  43645. (((x) >> BIT_SHIFT_DDMACH4_DA) & BIT_MASK_DDMACH4_DA)
  43646. #define BIT_SET_DDMACH4_DA(x, v) (BIT_CLEAR_DDMACH4_DA(x) | BIT_DDMACH4_DA(v))
  43647. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43648. #define BIT_DDMACH4_OWN BIT(31)
  43649. #endif
  43650. #if (HALMAC_8198F_SUPPORT)
  43651. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43652. #define BIT_DDMACH4_ERR_MON BIT(30)
  43653. #endif
  43654. #if (HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43655. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43656. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43657. #define BIT_DDMACH4_IDMEM_ERR BIT(30)
  43658. #define BIT_DDMACH5_IDMEM_ERR BIT(30)
  43659. #endif
  43660. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43661. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43662. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43663. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43664. #define BIT_DDMACH4_CHKSUM_EN BIT(29)
  43665. #define BIT_DDMACH4_DA_W_DISABLE BIT(28)
  43666. #define BIT_DDMACH4_CHKSUM_STS BIT(27)
  43667. #define BIT_DDMACH4_DDMA_MODE BIT(26)
  43668. #endif
  43669. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  43670. HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  43671. HALMAC_8822B_SUPPORT)
  43672. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43673. #define BIT_DDMACH4_RESET_CHKSUM_STS BIT(25)
  43674. #define BIT_DDMACH5_RESET_CHKSUM_STS BIT(25)
  43675. #define BIT_DDMACH4_CHKSUM_CONT BIT(24)
  43676. #define BIT_DDMACH5_CHKSUM_CONT BIT(24)
  43677. #endif
  43678. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43679. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43680. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43681. /* 2 REG_DDMA_CH4CTRL (Offset 0x1248) */
  43682. #define BIT_SHIFT_DDMACH4_DLEN 0
  43683. #define BIT_MASK_DDMACH4_DLEN 0x3ffff
  43684. #define BIT_DDMACH4_DLEN(x) \
  43685. (((x) & BIT_MASK_DDMACH4_DLEN) << BIT_SHIFT_DDMACH4_DLEN)
  43686. #define BITS_DDMACH4_DLEN (BIT_MASK_DDMACH4_DLEN << BIT_SHIFT_DDMACH4_DLEN)
  43687. #define BIT_CLEAR_DDMACH4_DLEN(x) ((x) & (~BITS_DDMACH4_DLEN))
  43688. #define BIT_GET_DDMACH4_DLEN(x) \
  43689. (((x) >> BIT_SHIFT_DDMACH4_DLEN) & BIT_MASK_DDMACH4_DLEN)
  43690. #define BIT_SET_DDMACH4_DLEN(x, v) \
  43691. (BIT_CLEAR_DDMACH4_DLEN(x) | BIT_DDMACH4_DLEN(v))
  43692. /* 2 REG_DDMA_CH5SA (Offset 0x1250) */
  43693. #define BIT_SHIFT_DDMACH5_SA 0
  43694. #define BIT_MASK_DDMACH5_SA 0xffffffffL
  43695. #define BIT_DDMACH5_SA(x) (((x) & BIT_MASK_DDMACH5_SA) << BIT_SHIFT_DDMACH5_SA)
  43696. #define BITS_DDMACH5_SA (BIT_MASK_DDMACH5_SA << BIT_SHIFT_DDMACH5_SA)
  43697. #define BIT_CLEAR_DDMACH5_SA(x) ((x) & (~BITS_DDMACH5_SA))
  43698. #define BIT_GET_DDMACH5_SA(x) \
  43699. (((x) >> BIT_SHIFT_DDMACH5_SA) & BIT_MASK_DDMACH5_SA)
  43700. #define BIT_SET_DDMACH5_SA(x, v) (BIT_CLEAR_DDMACH5_SA(x) | BIT_DDMACH5_SA(v))
  43701. /* 2 REG_DDMA_CH5DA (Offset 0x1254) */
  43702. #define BIT_DDMACH5_OWN BIT(31)
  43703. #define BIT_DDMACH5_CHKSUM_EN BIT(29)
  43704. #define BIT_DDMACH5_DA_W_DISABLE BIT(28)
  43705. #define BIT_DDMACH5_CHKSUM_STS BIT(27)
  43706. #define BIT_DDMACH5_DDMA_MODE BIT(26)
  43707. #define BIT_SHIFT_DDMACH5_DA 0
  43708. #define BIT_MASK_DDMACH5_DA 0xffffffffL
  43709. #define BIT_DDMACH5_DA(x) (((x) & BIT_MASK_DDMACH5_DA) << BIT_SHIFT_DDMACH5_DA)
  43710. #define BITS_DDMACH5_DA (BIT_MASK_DDMACH5_DA << BIT_SHIFT_DDMACH5_DA)
  43711. #define BIT_CLEAR_DDMACH5_DA(x) ((x) & (~BITS_DDMACH5_DA))
  43712. #define BIT_GET_DDMACH5_DA(x) \
  43713. (((x) >> BIT_SHIFT_DDMACH5_DA) & BIT_MASK_DDMACH5_DA)
  43714. #define BIT_SET_DDMACH5_DA(x, v) (BIT_CLEAR_DDMACH5_DA(x) | BIT_DDMACH5_DA(v))
  43715. #define BIT_SHIFT_DDMACH5_DLEN 0
  43716. #define BIT_MASK_DDMACH5_DLEN 0x3ffff
  43717. #define BIT_DDMACH5_DLEN(x) \
  43718. (((x) & BIT_MASK_DDMACH5_DLEN) << BIT_SHIFT_DDMACH5_DLEN)
  43719. #define BITS_DDMACH5_DLEN (BIT_MASK_DDMACH5_DLEN << BIT_SHIFT_DDMACH5_DLEN)
  43720. #define BIT_CLEAR_DDMACH5_DLEN(x) ((x) & (~BITS_DDMACH5_DLEN))
  43721. #define BIT_GET_DDMACH5_DLEN(x) \
  43722. (((x) >> BIT_SHIFT_DDMACH5_DLEN) & BIT_MASK_DDMACH5_DLEN)
  43723. #define BIT_SET_DDMACH5_DLEN(x, v) \
  43724. (BIT_CLEAR_DDMACH5_DLEN(x) | BIT_DDMACH5_DLEN(v))
  43725. #endif
  43726. #if (HALMAC_8198F_SUPPORT)
  43727. /* 2 REG_REG_DDMA_CH5CTRL (Offset 0x1258) */
  43728. #define BIT_DDMACH5_ERR_MON BIT(30)
  43729. #endif
  43730. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  43731. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43732. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43733. /* 2 REG_DDMA_INT_MSK (Offset 0x12E0) */
  43734. #define BIT_DDMACH5_MSK BIT(5)
  43735. #define BIT_DDMACH4_MSK BIT(4)
  43736. #define BIT_DDMACH3_MSK BIT(3)
  43737. #define BIT_DDMACH2_MSK BIT(2)
  43738. #define BIT_DDMACH1_MSK BIT(1)
  43739. #define BIT_DDMACH0_MSK BIT(0)
  43740. /* 2 REG_DDMA_CHSTATUS (Offset 0x12E8) */
  43741. #define BIT_DDMACH5_BUSY BIT(5)
  43742. #define BIT_DDMACH4_BUSY BIT(4)
  43743. #define BIT_DDMACH3_BUSY BIT(3)
  43744. #define BIT_DDMACH2_BUSY BIT(2)
  43745. #define BIT_DDMACH1_BUSY BIT(1)
  43746. #define BIT_DDMACH0_BUSY BIT(0)
  43747. /* 2 REG_DDMA_CHKSUM (Offset 0x12F0) */
  43748. #define BIT_SHIFT_IDDMA0_CHKSUM 0
  43749. #define BIT_MASK_IDDMA0_CHKSUM 0xffff
  43750. #define BIT_IDDMA0_CHKSUM(x) \
  43751. (((x) & BIT_MASK_IDDMA0_CHKSUM) << BIT_SHIFT_IDDMA0_CHKSUM)
  43752. #define BITS_IDDMA0_CHKSUM (BIT_MASK_IDDMA0_CHKSUM << BIT_SHIFT_IDDMA0_CHKSUM)
  43753. #define BIT_CLEAR_IDDMA0_CHKSUM(x) ((x) & (~BITS_IDDMA0_CHKSUM))
  43754. #define BIT_GET_IDDMA0_CHKSUM(x) \
  43755. (((x) >> BIT_SHIFT_IDDMA0_CHKSUM) & BIT_MASK_IDDMA0_CHKSUM)
  43756. #define BIT_SET_IDDMA0_CHKSUM(x, v) \
  43757. (BIT_CLEAR_IDDMA0_CHKSUM(x) | BIT_IDDMA0_CHKSUM(v))
  43758. /* 2 REG_DDMA_MONITOR (Offset 0x12FC) */
  43759. #define BIT_IDDMA0_PERMU_UNDERFLOW BIT(14)
  43760. #define BIT_IDDMA0_FIFO_UNDERFLOW BIT(13)
  43761. #define BIT_IDDMA0_FIFO_OVERFLOW BIT(12)
  43762. #define BIT_CH5_ERR BIT(5)
  43763. #define BIT_CH4_ERR BIT(4)
  43764. #define BIT_CH3_ERR BIT(3)
  43765. #define BIT_CH2_ERR BIT(2)
  43766. #define BIT_CH1_ERR BIT(1)
  43767. #define BIT_CH0_ERR BIT(0)
  43768. #endif
  43769. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  43770. HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  43771. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43772. /* 2 REG_STC_INT_CS (Offset 0x1300) */
  43773. #define BIT_STC_INT_EN BIT(31)
  43774. #define BIT_STC_INT_GRP_EN BIT(31)
  43775. #define BIT_SHIFT_STC_INT_FLAG 16
  43776. #define BIT_MASK_STC_INT_FLAG 0xff
  43777. #define BIT_STC_INT_FLAG(x) \
  43778. (((x) & BIT_MASK_STC_INT_FLAG) << BIT_SHIFT_STC_INT_FLAG)
  43779. #define BITS_STC_INT_FLAG (BIT_MASK_STC_INT_FLAG << BIT_SHIFT_STC_INT_FLAG)
  43780. #define BIT_CLEAR_STC_INT_FLAG(x) ((x) & (~BITS_STC_INT_FLAG))
  43781. #define BIT_GET_STC_INT_FLAG(x) \
  43782. (((x) >> BIT_SHIFT_STC_INT_FLAG) & BIT_MASK_STC_INT_FLAG)
  43783. #define BIT_SET_STC_INT_FLAG(x, v) \
  43784. (BIT_CLEAR_STC_INT_FLAG(x) | BIT_STC_INT_FLAG(v))
  43785. #define BIT_SHIFT_STC_INT_IDX 8
  43786. #define BIT_MASK_STC_INT_IDX 0x7
  43787. #define BIT_STC_INT_IDX(x) \
  43788. (((x) & BIT_MASK_STC_INT_IDX) << BIT_SHIFT_STC_INT_IDX)
  43789. #define BITS_STC_INT_IDX (BIT_MASK_STC_INT_IDX << BIT_SHIFT_STC_INT_IDX)
  43790. #define BIT_CLEAR_STC_INT_IDX(x) ((x) & (~BITS_STC_INT_IDX))
  43791. #define BIT_GET_STC_INT_IDX(x) \
  43792. (((x) >> BIT_SHIFT_STC_INT_IDX) & BIT_MASK_STC_INT_IDX)
  43793. #define BIT_SET_STC_INT_IDX(x, v) \
  43794. (BIT_CLEAR_STC_INT_IDX(x) | BIT_STC_INT_IDX(v))
  43795. #define BIT_SHIFT_STC_INT_EXPECT_LS 8
  43796. #define BIT_MASK_STC_INT_EXPECT_LS 0x3f
  43797. #define BIT_STC_INT_EXPECT_LS(x) \
  43798. (((x) & BIT_MASK_STC_INT_EXPECT_LS) << BIT_SHIFT_STC_INT_EXPECT_LS)
  43799. #define BITS_STC_INT_EXPECT_LS \
  43800. (BIT_MASK_STC_INT_EXPECT_LS << BIT_SHIFT_STC_INT_EXPECT_LS)
  43801. #define BIT_CLEAR_STC_INT_EXPECT_LS(x) ((x) & (~BITS_STC_INT_EXPECT_LS))
  43802. #define BIT_GET_STC_INT_EXPECT_LS(x) \
  43803. (((x) >> BIT_SHIFT_STC_INT_EXPECT_LS) & BIT_MASK_STC_INT_EXPECT_LS)
  43804. #define BIT_SET_STC_INT_EXPECT_LS(x, v) \
  43805. (BIT_CLEAR_STC_INT_EXPECT_LS(x) | BIT_STC_INT_EXPECT_LS(v))
  43806. #define BIT_SHIFT_STC_INT_REALTIME_CS 0
  43807. #define BIT_MASK_STC_INT_REALTIME_CS 0x3f
  43808. #define BIT_STC_INT_REALTIME_CS(x) \
  43809. (((x) & BIT_MASK_STC_INT_REALTIME_CS) << BIT_SHIFT_STC_INT_REALTIME_CS)
  43810. #define BITS_STC_INT_REALTIME_CS \
  43811. (BIT_MASK_STC_INT_REALTIME_CS << BIT_SHIFT_STC_INT_REALTIME_CS)
  43812. #define BIT_CLEAR_STC_INT_REALTIME_CS(x) ((x) & (~BITS_STC_INT_REALTIME_CS))
  43813. #define BIT_GET_STC_INT_REALTIME_CS(x) \
  43814. (((x) >> BIT_SHIFT_STC_INT_REALTIME_CS) & BIT_MASK_STC_INT_REALTIME_CS)
  43815. #define BIT_SET_STC_INT_REALTIME_CS(x, v) \
  43816. (BIT_CLEAR_STC_INT_REALTIME_CS(x) | BIT_STC_INT_REALTIME_CS(v))
  43817. #define BIT_SHIFT_STC_INT_EXPECT_CS 0
  43818. #define BIT_MASK_STC_INT_EXPECT_CS 0x3f
  43819. #define BIT_STC_INT_EXPECT_CS(x) \
  43820. (((x) & BIT_MASK_STC_INT_EXPECT_CS) << BIT_SHIFT_STC_INT_EXPECT_CS)
  43821. #define BITS_STC_INT_EXPECT_CS \
  43822. (BIT_MASK_STC_INT_EXPECT_CS << BIT_SHIFT_STC_INT_EXPECT_CS)
  43823. #define BIT_CLEAR_STC_INT_EXPECT_CS(x) ((x) & (~BITS_STC_INT_EXPECT_CS))
  43824. #define BIT_GET_STC_INT_EXPECT_CS(x) \
  43825. (((x) >> BIT_SHIFT_STC_INT_EXPECT_CS) & BIT_MASK_STC_INT_EXPECT_CS)
  43826. #define BIT_SET_STC_INT_EXPECT_CS(x, v) \
  43827. (BIT_CLEAR_STC_INT_EXPECT_CS(x) | BIT_STC_INT_EXPECT_CS(v))
  43828. #endif
  43829. #if (HALMAC_8814B_SUPPORT)
  43830. /* 2 REG_ACH4_ACH5_TXBD_NUM (Offset 0x130C) */
  43831. #define BIT_PCIE_ACH5_FLAG BIT(30)
  43832. #define BIT_SHIFT_ACH5_DESC_MODE 28
  43833. #define BIT_MASK_ACH5_DESC_MODE 0x3
  43834. #define BIT_ACH5_DESC_MODE(x) \
  43835. (((x) & BIT_MASK_ACH5_DESC_MODE) << BIT_SHIFT_ACH5_DESC_MODE)
  43836. #define BITS_ACH5_DESC_MODE \
  43837. (BIT_MASK_ACH5_DESC_MODE << BIT_SHIFT_ACH5_DESC_MODE)
  43838. #define BIT_CLEAR_ACH5_DESC_MODE(x) ((x) & (~BITS_ACH5_DESC_MODE))
  43839. #define BIT_GET_ACH5_DESC_MODE(x) \
  43840. (((x) >> BIT_SHIFT_ACH5_DESC_MODE) & BIT_MASK_ACH5_DESC_MODE)
  43841. #define BIT_SET_ACH5_DESC_MODE(x, v) \
  43842. (BIT_CLEAR_ACH5_DESC_MODE(x) | BIT_ACH5_DESC_MODE(v))
  43843. #define BIT_SHIFT_ACH5_DESC_NUM 16
  43844. #define BIT_MASK_ACH5_DESC_NUM 0xfff
  43845. #define BIT_ACH5_DESC_NUM(x) \
  43846. (((x) & BIT_MASK_ACH5_DESC_NUM) << BIT_SHIFT_ACH5_DESC_NUM)
  43847. #define BITS_ACH5_DESC_NUM (BIT_MASK_ACH5_DESC_NUM << BIT_SHIFT_ACH5_DESC_NUM)
  43848. #define BIT_CLEAR_ACH5_DESC_NUM(x) ((x) & (~BITS_ACH5_DESC_NUM))
  43849. #define BIT_GET_ACH5_DESC_NUM(x) \
  43850. (((x) >> BIT_SHIFT_ACH5_DESC_NUM) & BIT_MASK_ACH5_DESC_NUM)
  43851. #define BIT_SET_ACH5_DESC_NUM(x, v) \
  43852. (BIT_CLEAR_ACH5_DESC_NUM(x) | BIT_ACH5_DESC_NUM(v))
  43853. #define BIT_PCIE_ACH4_FLAG BIT(14)
  43854. #define BIT_SHIFT_ACH4_DESC_MODE 12
  43855. #define BIT_MASK_ACH4_DESC_MODE 0x3
  43856. #define BIT_ACH4_DESC_MODE(x) \
  43857. (((x) & BIT_MASK_ACH4_DESC_MODE) << BIT_SHIFT_ACH4_DESC_MODE)
  43858. #define BITS_ACH4_DESC_MODE \
  43859. (BIT_MASK_ACH4_DESC_MODE << BIT_SHIFT_ACH4_DESC_MODE)
  43860. #define BIT_CLEAR_ACH4_DESC_MODE(x) ((x) & (~BITS_ACH4_DESC_MODE))
  43861. #define BIT_GET_ACH4_DESC_MODE(x) \
  43862. (((x) >> BIT_SHIFT_ACH4_DESC_MODE) & BIT_MASK_ACH4_DESC_MODE)
  43863. #define BIT_SET_ACH4_DESC_MODE(x, v) \
  43864. (BIT_CLEAR_ACH4_DESC_MODE(x) | BIT_ACH4_DESC_MODE(v))
  43865. #define BIT_SHIFT_ACH4_DESC_NUM 0
  43866. #define BIT_MASK_ACH4_DESC_NUM 0xfff
  43867. #define BIT_ACH4_DESC_NUM(x) \
  43868. (((x) & BIT_MASK_ACH4_DESC_NUM) << BIT_SHIFT_ACH4_DESC_NUM)
  43869. #define BITS_ACH4_DESC_NUM (BIT_MASK_ACH4_DESC_NUM << BIT_SHIFT_ACH4_DESC_NUM)
  43870. #define BIT_CLEAR_ACH4_DESC_NUM(x) ((x) & (~BITS_ACH4_DESC_NUM))
  43871. #define BIT_GET_ACH4_DESC_NUM(x) \
  43872. (((x) >> BIT_SHIFT_ACH4_DESC_NUM) & BIT_MASK_ACH4_DESC_NUM)
  43873. #define BIT_SET_ACH4_DESC_NUM(x, v) \
  43874. (BIT_CLEAR_ACH4_DESC_NUM(x) | BIT_ACH4_DESC_NUM(v))
  43875. #endif
  43876. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  43877. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  43878. /* 2 REG_CMU_DLY_CTRL (Offset 0x1310) */
  43879. #define BIT_CMU_DLY_EN BIT(31)
  43880. #define BIT_CMU_DLY_MODE BIT(30)
  43881. #define BIT_SHIFT_CMU_DLY_PRE_DIV 0
  43882. #define BIT_MASK_CMU_DLY_PRE_DIV 0xff
  43883. #define BIT_CMU_DLY_PRE_DIV(x) \
  43884. (((x) & BIT_MASK_CMU_DLY_PRE_DIV) << BIT_SHIFT_CMU_DLY_PRE_DIV)
  43885. #define BITS_CMU_DLY_PRE_DIV \
  43886. (BIT_MASK_CMU_DLY_PRE_DIV << BIT_SHIFT_CMU_DLY_PRE_DIV)
  43887. #define BIT_CLEAR_CMU_DLY_PRE_DIV(x) ((x) & (~BITS_CMU_DLY_PRE_DIV))
  43888. #define BIT_GET_CMU_DLY_PRE_DIV(x) \
  43889. (((x) >> BIT_SHIFT_CMU_DLY_PRE_DIV) & BIT_MASK_CMU_DLY_PRE_DIV)
  43890. #define BIT_SET_CMU_DLY_PRE_DIV(x, v) \
  43891. (BIT_CLEAR_CMU_DLY_PRE_DIV(x) | BIT_CMU_DLY_PRE_DIV(v))
  43892. /* 2 REG_CMU_DLY_CFG (Offset 0x1314) */
  43893. #define BIT_SHIFT_CMU_DLY_LTR_A2I 24
  43894. #define BIT_MASK_CMU_DLY_LTR_A2I 0xff
  43895. #define BIT_CMU_DLY_LTR_A2I(x) \
  43896. (((x) & BIT_MASK_CMU_DLY_LTR_A2I) << BIT_SHIFT_CMU_DLY_LTR_A2I)
  43897. #define BITS_CMU_DLY_LTR_A2I \
  43898. (BIT_MASK_CMU_DLY_LTR_A2I << BIT_SHIFT_CMU_DLY_LTR_A2I)
  43899. #define BIT_CLEAR_CMU_DLY_LTR_A2I(x) ((x) & (~BITS_CMU_DLY_LTR_A2I))
  43900. #define BIT_GET_CMU_DLY_LTR_A2I(x) \
  43901. (((x) >> BIT_SHIFT_CMU_DLY_LTR_A2I) & BIT_MASK_CMU_DLY_LTR_A2I)
  43902. #define BIT_SET_CMU_DLY_LTR_A2I(x, v) \
  43903. (BIT_CLEAR_CMU_DLY_LTR_A2I(x) | BIT_CMU_DLY_LTR_A2I(v))
  43904. #define BIT_SHIFT_CMU_DLY_LTR_I2A 16
  43905. #define BIT_MASK_CMU_DLY_LTR_I2A 0xff
  43906. #define BIT_CMU_DLY_LTR_I2A(x) \
  43907. (((x) & BIT_MASK_CMU_DLY_LTR_I2A) << BIT_SHIFT_CMU_DLY_LTR_I2A)
  43908. #define BITS_CMU_DLY_LTR_I2A \
  43909. (BIT_MASK_CMU_DLY_LTR_I2A << BIT_SHIFT_CMU_DLY_LTR_I2A)
  43910. #define BIT_CLEAR_CMU_DLY_LTR_I2A(x) ((x) & (~BITS_CMU_DLY_LTR_I2A))
  43911. #define BIT_GET_CMU_DLY_LTR_I2A(x) \
  43912. (((x) >> BIT_SHIFT_CMU_DLY_LTR_I2A) & BIT_MASK_CMU_DLY_LTR_I2A)
  43913. #define BIT_SET_CMU_DLY_LTR_I2A(x, v) \
  43914. (BIT_CLEAR_CMU_DLY_LTR_I2A(x) | BIT_CMU_DLY_LTR_I2A(v))
  43915. #define BIT_SHIFT_CMU_DLY_LTR_IDLE 8
  43916. #define BIT_MASK_CMU_DLY_LTR_IDLE 0xff
  43917. #define BIT_CMU_DLY_LTR_IDLE(x) \
  43918. (((x) & BIT_MASK_CMU_DLY_LTR_IDLE) << BIT_SHIFT_CMU_DLY_LTR_IDLE)
  43919. #define BITS_CMU_DLY_LTR_IDLE \
  43920. (BIT_MASK_CMU_DLY_LTR_IDLE << BIT_SHIFT_CMU_DLY_LTR_IDLE)
  43921. #define BIT_CLEAR_CMU_DLY_LTR_IDLE(x) ((x) & (~BITS_CMU_DLY_LTR_IDLE))
  43922. #define BIT_GET_CMU_DLY_LTR_IDLE(x) \
  43923. (((x) >> BIT_SHIFT_CMU_DLY_LTR_IDLE) & BIT_MASK_CMU_DLY_LTR_IDLE)
  43924. #define BIT_SET_CMU_DLY_LTR_IDLE(x, v) \
  43925. (BIT_CLEAR_CMU_DLY_LTR_IDLE(x) | BIT_CMU_DLY_LTR_IDLE(v))
  43926. #define BIT_SHIFT_CMU_DLY_LTR_ACT 0
  43927. #define BIT_MASK_CMU_DLY_LTR_ACT 0xff
  43928. #define BIT_CMU_DLY_LTR_ACT(x) \
  43929. (((x) & BIT_MASK_CMU_DLY_LTR_ACT) << BIT_SHIFT_CMU_DLY_LTR_ACT)
  43930. #define BITS_CMU_DLY_LTR_ACT \
  43931. (BIT_MASK_CMU_DLY_LTR_ACT << BIT_SHIFT_CMU_DLY_LTR_ACT)
  43932. #define BIT_CLEAR_CMU_DLY_LTR_ACT(x) ((x) & (~BITS_CMU_DLY_LTR_ACT))
  43933. #define BIT_GET_CMU_DLY_LTR_ACT(x) \
  43934. (((x) >> BIT_SHIFT_CMU_DLY_LTR_ACT) & BIT_MASK_CMU_DLY_LTR_ACT)
  43935. #define BIT_SET_CMU_DLY_LTR_ACT(x, v) \
  43936. (BIT_CLEAR_CMU_DLY_LTR_ACT(x) | BIT_CMU_DLY_LTR_ACT(v))
  43937. #endif
  43938. #if (HALMAC_8814B_SUPPORT)
  43939. /* 2 REG_FWCMDQ_TXBD_IDX (Offset 0x1318) */
  43940. #define BIT_SHIFT_FWCMDQ_HW_IDX 16
  43941. #define BIT_MASK_FWCMDQ_HW_IDX 0xfff
  43942. #define BIT_FWCMDQ_HW_IDX(x) \
  43943. (((x) & BIT_MASK_FWCMDQ_HW_IDX) << BIT_SHIFT_FWCMDQ_HW_IDX)
  43944. #define BITS_FWCMDQ_HW_IDX (BIT_MASK_FWCMDQ_HW_IDX << BIT_SHIFT_FWCMDQ_HW_IDX)
  43945. #define BIT_CLEAR_FWCMDQ_HW_IDX(x) ((x) & (~BITS_FWCMDQ_HW_IDX))
  43946. #define BIT_GET_FWCMDQ_HW_IDX(x) \
  43947. (((x) >> BIT_SHIFT_FWCMDQ_HW_IDX) & BIT_MASK_FWCMDQ_HW_IDX)
  43948. #define BIT_SET_FWCMDQ_HW_IDX(x, v) \
  43949. (BIT_CLEAR_FWCMDQ_HW_IDX(x) | BIT_FWCMDQ_HW_IDX(v))
  43950. #define BIT_SHIFT_FWCMDQ_HOST_IDX 0
  43951. #define BIT_MASK_FWCMDQ_HOST_IDX 0xfff
  43952. #define BIT_FWCMDQ_HOST_IDX(x) \
  43953. (((x) & BIT_MASK_FWCMDQ_HOST_IDX) << BIT_SHIFT_FWCMDQ_HOST_IDX)
  43954. #define BITS_FWCMDQ_HOST_IDX \
  43955. (BIT_MASK_FWCMDQ_HOST_IDX << BIT_SHIFT_FWCMDQ_HOST_IDX)
  43956. #define BIT_CLEAR_FWCMDQ_HOST_IDX(x) ((x) & (~BITS_FWCMDQ_HOST_IDX))
  43957. #define BIT_GET_FWCMDQ_HOST_IDX(x) \
  43958. (((x) >> BIT_SHIFT_FWCMDQ_HOST_IDX) & BIT_MASK_FWCMDQ_HOST_IDX)
  43959. #define BIT_SET_FWCMDQ_HOST_IDX(x, v) \
  43960. (BIT_CLEAR_FWCMDQ_HOST_IDX(x) | BIT_FWCMDQ_HOST_IDX(v))
  43961. /* 2 REG_P0HI8Q_TXBD_IDX (Offset 0x131C) */
  43962. #define BIT_SHIFT_P0HI8Q_HW_IDX 16
  43963. #define BIT_MASK_P0HI8Q_HW_IDX 0xfff
  43964. #define BIT_P0HI8Q_HW_IDX(x) \
  43965. (((x) & BIT_MASK_P0HI8Q_HW_IDX) << BIT_SHIFT_P0HI8Q_HW_IDX)
  43966. #define BITS_P0HI8Q_HW_IDX (BIT_MASK_P0HI8Q_HW_IDX << BIT_SHIFT_P0HI8Q_HW_IDX)
  43967. #define BIT_CLEAR_P0HI8Q_HW_IDX(x) ((x) & (~BITS_P0HI8Q_HW_IDX))
  43968. #define BIT_GET_P0HI8Q_HW_IDX(x) \
  43969. (((x) >> BIT_SHIFT_P0HI8Q_HW_IDX) & BIT_MASK_P0HI8Q_HW_IDX)
  43970. #define BIT_SET_P0HI8Q_HW_IDX(x, v) \
  43971. (BIT_CLEAR_P0HI8Q_HW_IDX(x) | BIT_P0HI8Q_HW_IDX(v))
  43972. #define BIT_SHIFT_P0HI8Q_HOST_IDX 0
  43973. #define BIT_MASK_P0HI8Q_HOST_IDX 0xfff
  43974. #define BIT_P0HI8Q_HOST_IDX(x) \
  43975. (((x) & BIT_MASK_P0HI8Q_HOST_IDX) << BIT_SHIFT_P0HI8Q_HOST_IDX)
  43976. #define BITS_P0HI8Q_HOST_IDX \
  43977. (BIT_MASK_P0HI8Q_HOST_IDX << BIT_SHIFT_P0HI8Q_HOST_IDX)
  43978. #define BIT_CLEAR_P0HI8Q_HOST_IDX(x) ((x) & (~BITS_P0HI8Q_HOST_IDX))
  43979. #define BIT_GET_P0HI8Q_HOST_IDX(x) \
  43980. (((x) >> BIT_SHIFT_P0HI8Q_HOST_IDX) & BIT_MASK_P0HI8Q_HOST_IDX)
  43981. #define BIT_SET_P0HI8Q_HOST_IDX(x, v) \
  43982. (BIT_CLEAR_P0HI8Q_HOST_IDX(x) | BIT_P0HI8Q_HOST_IDX(v))
  43983. #endif
  43984. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  43985. HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  43986. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  43987. /* 2 REG_H2CQ_TXBD_DESA (Offset 0x1320) */
  43988. #define BIT_SHIFT_H2CQ_TXBD_DESA 0
  43989. #define BIT_MASK_H2CQ_TXBD_DESA 0xffffffffffffffffL
  43990. #define BIT_H2CQ_TXBD_DESA(x) \
  43991. (((x) & BIT_MASK_H2CQ_TXBD_DESA) << BIT_SHIFT_H2CQ_TXBD_DESA)
  43992. #define BITS_H2CQ_TXBD_DESA \
  43993. (BIT_MASK_H2CQ_TXBD_DESA << BIT_SHIFT_H2CQ_TXBD_DESA)
  43994. #define BIT_CLEAR_H2CQ_TXBD_DESA(x) ((x) & (~BITS_H2CQ_TXBD_DESA))
  43995. #define BIT_GET_H2CQ_TXBD_DESA(x) \
  43996. (((x) >> BIT_SHIFT_H2CQ_TXBD_DESA) & BIT_MASK_H2CQ_TXBD_DESA)
  43997. #define BIT_SET_H2CQ_TXBD_DESA(x, v) \
  43998. (BIT_CLEAR_H2CQ_TXBD_DESA(x) | BIT_H2CQ_TXBD_DESA(v))
  43999. #endif
  44000. #if (HALMAC_8814B_SUPPORT)
  44001. /* 2 REG_H2CQ_TXBD_DESA_L (Offset 0x1320) */
  44002. #define BIT_SHIFT_H2CQ_TXBD_DESA_L 0
  44003. #define BIT_MASK_H2CQ_TXBD_DESA_L 0xffffffffL
  44004. #define BIT_H2CQ_TXBD_DESA_L(x) \
  44005. (((x) & BIT_MASK_H2CQ_TXBD_DESA_L) << BIT_SHIFT_H2CQ_TXBD_DESA_L)
  44006. #define BITS_H2CQ_TXBD_DESA_L \
  44007. (BIT_MASK_H2CQ_TXBD_DESA_L << BIT_SHIFT_H2CQ_TXBD_DESA_L)
  44008. #define BIT_CLEAR_H2CQ_TXBD_DESA_L(x) ((x) & (~BITS_H2CQ_TXBD_DESA_L))
  44009. #define BIT_GET_H2CQ_TXBD_DESA_L(x) \
  44010. (((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_L) & BIT_MASK_H2CQ_TXBD_DESA_L)
  44011. #define BIT_SET_H2CQ_TXBD_DESA_L(x, v) \
  44012. (BIT_CLEAR_H2CQ_TXBD_DESA_L(x) | BIT_H2CQ_TXBD_DESA_L(v))
  44013. /* 2 REG_H2CQ_TXBD_DESA_H (Offset 0x1324) */
  44014. #define BIT_SHIFT_H2CQ_TXBD_DESA_H 0
  44015. #define BIT_MASK_H2CQ_TXBD_DESA_H 0xffffffffL
  44016. #define BIT_H2CQ_TXBD_DESA_H(x) \
  44017. (((x) & BIT_MASK_H2CQ_TXBD_DESA_H) << BIT_SHIFT_H2CQ_TXBD_DESA_H)
  44018. #define BITS_H2CQ_TXBD_DESA_H \
  44019. (BIT_MASK_H2CQ_TXBD_DESA_H << BIT_SHIFT_H2CQ_TXBD_DESA_H)
  44020. #define BIT_CLEAR_H2CQ_TXBD_DESA_H(x) ((x) & (~BITS_H2CQ_TXBD_DESA_H))
  44021. #define BIT_GET_H2CQ_TXBD_DESA_H(x) \
  44022. (((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_H) & BIT_MASK_H2CQ_TXBD_DESA_H)
  44023. #define BIT_SET_H2CQ_TXBD_DESA_H(x, v) \
  44024. (BIT_CLEAR_H2CQ_TXBD_DESA_H(x) | BIT_H2CQ_TXBD_DESA_H(v))
  44025. #endif
  44026. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  44027. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  44028. HALMAC_8822C_SUPPORT)
  44029. /* 2 REG_H2CQ_TXBD_NUM (Offset 0x1328) */
  44030. #define BIT_PCIE_H2CQ_FLAG BIT(14)
  44031. #endif
  44032. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44033. /* 2 REG_H2CQ_TXBD_NUM (Offset 0x1328) */
  44034. #define BIT_HCI_H2CQ_FLAG BIT(14)
  44035. #endif
  44036. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  44037. HALMAC_8812F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  44038. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  44039. /* 2 REG_H2CQ_TXBD_NUM (Offset 0x1328) */
  44040. #define BIT_SHIFT_H2CQ_DESC_MODE 12
  44041. #define BIT_MASK_H2CQ_DESC_MODE 0x3
  44042. #define BIT_H2CQ_DESC_MODE(x) \
  44043. (((x) & BIT_MASK_H2CQ_DESC_MODE) << BIT_SHIFT_H2CQ_DESC_MODE)
  44044. #define BITS_H2CQ_DESC_MODE \
  44045. (BIT_MASK_H2CQ_DESC_MODE << BIT_SHIFT_H2CQ_DESC_MODE)
  44046. #define BIT_CLEAR_H2CQ_DESC_MODE(x) ((x) & (~BITS_H2CQ_DESC_MODE))
  44047. #define BIT_GET_H2CQ_DESC_MODE(x) \
  44048. (((x) >> BIT_SHIFT_H2CQ_DESC_MODE) & BIT_MASK_H2CQ_DESC_MODE)
  44049. #define BIT_SET_H2CQ_DESC_MODE(x, v) \
  44050. (BIT_CLEAR_H2CQ_DESC_MODE(x) | BIT_H2CQ_DESC_MODE(v))
  44051. #define BIT_SHIFT_H2CQ_DESC_NUM 0
  44052. #define BIT_MASK_H2CQ_DESC_NUM 0xfff
  44053. #define BIT_H2CQ_DESC_NUM(x) \
  44054. (((x) & BIT_MASK_H2CQ_DESC_NUM) << BIT_SHIFT_H2CQ_DESC_NUM)
  44055. #define BITS_H2CQ_DESC_NUM (BIT_MASK_H2CQ_DESC_NUM << BIT_SHIFT_H2CQ_DESC_NUM)
  44056. #define BIT_CLEAR_H2CQ_DESC_NUM(x) ((x) & (~BITS_H2CQ_DESC_NUM))
  44057. #define BIT_GET_H2CQ_DESC_NUM(x) \
  44058. (((x) >> BIT_SHIFT_H2CQ_DESC_NUM) & BIT_MASK_H2CQ_DESC_NUM)
  44059. #define BIT_SET_H2CQ_DESC_NUM(x, v) \
  44060. (BIT_CLEAR_H2CQ_DESC_NUM(x) | BIT_H2CQ_DESC_NUM(v))
  44061. /* 2 REG_H2CQ_TXBD_IDX (Offset 0x132C) */
  44062. #define BIT_SHIFT_H2CQ_HW_IDX 16
  44063. #define BIT_MASK_H2CQ_HW_IDX 0xfff
  44064. #define BIT_H2CQ_HW_IDX(x) \
  44065. (((x) & BIT_MASK_H2CQ_HW_IDX) << BIT_SHIFT_H2CQ_HW_IDX)
  44066. #define BITS_H2CQ_HW_IDX (BIT_MASK_H2CQ_HW_IDX << BIT_SHIFT_H2CQ_HW_IDX)
  44067. #define BIT_CLEAR_H2CQ_HW_IDX(x) ((x) & (~BITS_H2CQ_HW_IDX))
  44068. #define BIT_GET_H2CQ_HW_IDX(x) \
  44069. (((x) >> BIT_SHIFT_H2CQ_HW_IDX) & BIT_MASK_H2CQ_HW_IDX)
  44070. #define BIT_SET_H2CQ_HW_IDX(x, v) \
  44071. (BIT_CLEAR_H2CQ_HW_IDX(x) | BIT_H2CQ_HW_IDX(v))
  44072. #define BIT_SHIFT_H2CQ_HOST_IDX 0
  44073. #define BIT_MASK_H2CQ_HOST_IDX 0xfff
  44074. #define BIT_H2CQ_HOST_IDX(x) \
  44075. (((x) & BIT_MASK_H2CQ_HOST_IDX) << BIT_SHIFT_H2CQ_HOST_IDX)
  44076. #define BITS_H2CQ_HOST_IDX (BIT_MASK_H2CQ_HOST_IDX << BIT_SHIFT_H2CQ_HOST_IDX)
  44077. #define BIT_CLEAR_H2CQ_HOST_IDX(x) ((x) & (~BITS_H2CQ_HOST_IDX))
  44078. #define BIT_GET_H2CQ_HOST_IDX(x) \
  44079. (((x) >> BIT_SHIFT_H2CQ_HOST_IDX) & BIT_MASK_H2CQ_HOST_IDX)
  44080. #define BIT_SET_H2CQ_HOST_IDX(x, v) \
  44081. (BIT_CLEAR_H2CQ_HOST_IDX(x) | BIT_H2CQ_HOST_IDX(v))
  44082. /* 2 REG_H2CQ_CSR (Offset 0x1330) */
  44083. #define BIT_H2CQ_FULL BIT(31)
  44084. #define BIT_CLR_H2CQ_HOST_IDX BIT(16)
  44085. #define BIT_CLR_H2CQ_HW_IDX BIT(8)
  44086. #define BIT_STOP_H2CQ BIT(0)
  44087. #endif
  44088. #if (HALMAC_8814B_SUPPORT)
  44089. /* 2 REG_P0HI9Q_TXBD_IDX (Offset 0x1334) */
  44090. #define BIT_SHIFT_P0HI9Q_HW_IDX 16
  44091. #define BIT_MASK_P0HI9Q_HW_IDX 0xfff
  44092. #define BIT_P0HI9Q_HW_IDX(x) \
  44093. (((x) & BIT_MASK_P0HI9Q_HW_IDX) << BIT_SHIFT_P0HI9Q_HW_IDX)
  44094. #define BITS_P0HI9Q_HW_IDX (BIT_MASK_P0HI9Q_HW_IDX << BIT_SHIFT_P0HI9Q_HW_IDX)
  44095. #define BIT_CLEAR_P0HI9Q_HW_IDX(x) ((x) & (~BITS_P0HI9Q_HW_IDX))
  44096. #define BIT_GET_P0HI9Q_HW_IDX(x) \
  44097. (((x) >> BIT_SHIFT_P0HI9Q_HW_IDX) & BIT_MASK_P0HI9Q_HW_IDX)
  44098. #define BIT_SET_P0HI9Q_HW_IDX(x, v) \
  44099. (BIT_CLEAR_P0HI9Q_HW_IDX(x) | BIT_P0HI9Q_HW_IDX(v))
  44100. #define BIT_SHIFT_P0HI9Q_HOST_IDX 0
  44101. #define BIT_MASK_P0HI9Q_HOST_IDX 0xfff
  44102. #define BIT_P0HI9Q_HOST_IDX(x) \
  44103. (((x) & BIT_MASK_P0HI9Q_HOST_IDX) << BIT_SHIFT_P0HI9Q_HOST_IDX)
  44104. #define BITS_P0HI9Q_HOST_IDX \
  44105. (BIT_MASK_P0HI9Q_HOST_IDX << BIT_SHIFT_P0HI9Q_HOST_IDX)
  44106. #define BIT_CLEAR_P0HI9Q_HOST_IDX(x) ((x) & (~BITS_P0HI9Q_HOST_IDX))
  44107. #define BIT_GET_P0HI9Q_HOST_IDX(x) \
  44108. (((x) >> BIT_SHIFT_P0HI9Q_HOST_IDX) & BIT_MASK_P0HI9Q_HOST_IDX)
  44109. #define BIT_SET_P0HI9Q_HOST_IDX(x, v) \
  44110. (BIT_CLEAR_P0HI9Q_HOST_IDX(x) | BIT_P0HI9Q_HOST_IDX(v))
  44111. /* 2 REG_P0HI10Q_TXBD_IDX (Offset 0x1338) */
  44112. #define BIT_SHIFT_P0HI10Q_HW_IDX 16
  44113. #define BIT_MASK_P0HI10Q_HW_IDX 0xfff
  44114. #define BIT_P0HI10Q_HW_IDX(x) \
  44115. (((x) & BIT_MASK_P0HI10Q_HW_IDX) << BIT_SHIFT_P0HI10Q_HW_IDX)
  44116. #define BITS_P0HI10Q_HW_IDX \
  44117. (BIT_MASK_P0HI10Q_HW_IDX << BIT_SHIFT_P0HI10Q_HW_IDX)
  44118. #define BIT_CLEAR_P0HI10Q_HW_IDX(x) ((x) & (~BITS_P0HI10Q_HW_IDX))
  44119. #define BIT_GET_P0HI10Q_HW_IDX(x) \
  44120. (((x) >> BIT_SHIFT_P0HI10Q_HW_IDX) & BIT_MASK_P0HI10Q_HW_IDX)
  44121. #define BIT_SET_P0HI10Q_HW_IDX(x, v) \
  44122. (BIT_CLEAR_P0HI10Q_HW_IDX(x) | BIT_P0HI10Q_HW_IDX(v))
  44123. #define BIT_SHIFT_P0HI10Q_HOST_IDX 0
  44124. #define BIT_MASK_P0HI10Q_HOST_IDX 0xfff
  44125. #define BIT_P0HI10Q_HOST_IDX(x) \
  44126. (((x) & BIT_MASK_P0HI10Q_HOST_IDX) << BIT_SHIFT_P0HI10Q_HOST_IDX)
  44127. #define BITS_P0HI10Q_HOST_IDX \
  44128. (BIT_MASK_P0HI10Q_HOST_IDX << BIT_SHIFT_P0HI10Q_HOST_IDX)
  44129. #define BIT_CLEAR_P0HI10Q_HOST_IDX(x) ((x) & (~BITS_P0HI10Q_HOST_IDX))
  44130. #define BIT_GET_P0HI10Q_HOST_IDX(x) \
  44131. (((x) >> BIT_SHIFT_P0HI10Q_HOST_IDX) & BIT_MASK_P0HI10Q_HOST_IDX)
  44132. #define BIT_SET_P0HI10Q_HOST_IDX(x, v) \
  44133. (BIT_CLEAR_P0HI10Q_HOST_IDX(x) | BIT_P0HI10Q_HOST_IDX(v))
  44134. /* 2 REG_P0HI11Q_TXBD_IDX (Offset 0x133C) */
  44135. #define BIT_SHIFT_P0HI11Q_HW_IDX 16
  44136. #define BIT_MASK_P0HI11Q_HW_IDX 0xfff
  44137. #define BIT_P0HI11Q_HW_IDX(x) \
  44138. (((x) & BIT_MASK_P0HI11Q_HW_IDX) << BIT_SHIFT_P0HI11Q_HW_IDX)
  44139. #define BITS_P0HI11Q_HW_IDX \
  44140. (BIT_MASK_P0HI11Q_HW_IDX << BIT_SHIFT_P0HI11Q_HW_IDX)
  44141. #define BIT_CLEAR_P0HI11Q_HW_IDX(x) ((x) & (~BITS_P0HI11Q_HW_IDX))
  44142. #define BIT_GET_P0HI11Q_HW_IDX(x) \
  44143. (((x) >> BIT_SHIFT_P0HI11Q_HW_IDX) & BIT_MASK_P0HI11Q_HW_IDX)
  44144. #define BIT_SET_P0HI11Q_HW_IDX(x, v) \
  44145. (BIT_CLEAR_P0HI11Q_HW_IDX(x) | BIT_P0HI11Q_HW_IDX(v))
  44146. #define BIT_SHIFT_P0HI11Q_HOST_IDX 0
  44147. #define BIT_MASK_P0HI11Q_HOST_IDX 0xfff
  44148. #define BIT_P0HI11Q_HOST_IDX(x) \
  44149. (((x) & BIT_MASK_P0HI11Q_HOST_IDX) << BIT_SHIFT_P0HI11Q_HOST_IDX)
  44150. #define BITS_P0HI11Q_HOST_IDX \
  44151. (BIT_MASK_P0HI11Q_HOST_IDX << BIT_SHIFT_P0HI11Q_HOST_IDX)
  44152. #define BIT_CLEAR_P0HI11Q_HOST_IDX(x) ((x) & (~BITS_P0HI11Q_HOST_IDX))
  44153. #define BIT_GET_P0HI11Q_HOST_IDX(x) \
  44154. (((x) >> BIT_SHIFT_P0HI11Q_HOST_IDX) & BIT_MASK_P0HI11Q_HOST_IDX)
  44155. #define BIT_SET_P0HI11Q_HOST_IDX(x, v) \
  44156. (BIT_CLEAR_P0HI11Q_HOST_IDX(x) | BIT_P0HI11Q_HOST_IDX(v))
  44157. /* 2 REG_P0HI12Q_TXBD_IDX (Offset 0x1340) */
  44158. #define BIT_SHIFT_P0HI12Q_HW_IDX 16
  44159. #define BIT_MASK_P0HI12Q_HW_IDX 0xfff
  44160. #define BIT_P0HI12Q_HW_IDX(x) \
  44161. (((x) & BIT_MASK_P0HI12Q_HW_IDX) << BIT_SHIFT_P0HI12Q_HW_IDX)
  44162. #define BITS_P0HI12Q_HW_IDX \
  44163. (BIT_MASK_P0HI12Q_HW_IDX << BIT_SHIFT_P0HI12Q_HW_IDX)
  44164. #define BIT_CLEAR_P0HI12Q_HW_IDX(x) ((x) & (~BITS_P0HI12Q_HW_IDX))
  44165. #define BIT_GET_P0HI12Q_HW_IDX(x) \
  44166. (((x) >> BIT_SHIFT_P0HI12Q_HW_IDX) & BIT_MASK_P0HI12Q_HW_IDX)
  44167. #define BIT_SET_P0HI12Q_HW_IDX(x, v) \
  44168. (BIT_CLEAR_P0HI12Q_HW_IDX(x) | BIT_P0HI12Q_HW_IDX(v))
  44169. #define BIT_SHIFT_P0HI12Q_HOST_IDX 0
  44170. #define BIT_MASK_P0HI12Q_HOST_IDX 0xfff
  44171. #define BIT_P0HI12Q_HOST_IDX(x) \
  44172. (((x) & BIT_MASK_P0HI12Q_HOST_IDX) << BIT_SHIFT_P0HI12Q_HOST_IDX)
  44173. #define BITS_P0HI12Q_HOST_IDX \
  44174. (BIT_MASK_P0HI12Q_HOST_IDX << BIT_SHIFT_P0HI12Q_HOST_IDX)
  44175. #define BIT_CLEAR_P0HI12Q_HOST_IDX(x) ((x) & (~BITS_P0HI12Q_HOST_IDX))
  44176. #define BIT_GET_P0HI12Q_HOST_IDX(x) \
  44177. (((x) >> BIT_SHIFT_P0HI12Q_HOST_IDX) & BIT_MASK_P0HI12Q_HOST_IDX)
  44178. #define BIT_SET_P0HI12Q_HOST_IDX(x, v) \
  44179. (BIT_CLEAR_P0HI12Q_HOST_IDX(x) | BIT_P0HI12Q_HOST_IDX(v))
  44180. #endif
  44181. #if (HALMAC_8192F_SUPPORT)
  44182. /* 2 REG_CPL_BUFFER_MONITOR (Offset 0x1344) */
  44183. #define BIT_TXQFULL_FLAG BIT(19)
  44184. #define BIT_SHIFT_RELAX_ORDERING_ATTR 17
  44185. #define BIT_MASK_RELAX_ORDERING_ATTR 0x3
  44186. #define BIT_RELAX_ORDERING_ATTR(x) \
  44187. (((x) & BIT_MASK_RELAX_ORDERING_ATTR) << BIT_SHIFT_RELAX_ORDERING_ATTR)
  44188. #define BITS_RELAX_ORDERING_ATTR \
  44189. (BIT_MASK_RELAX_ORDERING_ATTR << BIT_SHIFT_RELAX_ORDERING_ATTR)
  44190. #define BIT_CLEAR_RELAX_ORDERING_ATTR(x) ((x) & (~BITS_RELAX_ORDERING_ATTR))
  44191. #define BIT_GET_RELAX_ORDERING_ATTR(x) \
  44192. (((x) >> BIT_SHIFT_RELAX_ORDERING_ATTR) & BIT_MASK_RELAX_ORDERING_ATTR)
  44193. #define BIT_SET_RELAX_ORDERING_ATTR(x, v) \
  44194. (BIT_CLEAR_RELAX_ORDERING_ATTR(x) | BIT_RELAX_ORDERING_ATTR(v))
  44195. #define BIT_CLR_QD_CPL_MIN_REMAIN BIT(16)
  44196. #endif
  44197. #if (HALMAC_8814B_SUPPORT)
  44198. /* 2 REG_P0HI13Q_TXBD_IDX (Offset 0x1344) */
  44199. #define BIT_SHIFT_P0HI13Q_HW_IDX 16
  44200. #define BIT_MASK_P0HI13Q_HW_IDX 0xfff
  44201. #define BIT_P0HI13Q_HW_IDX(x) \
  44202. (((x) & BIT_MASK_P0HI13Q_HW_IDX) << BIT_SHIFT_P0HI13Q_HW_IDX)
  44203. #define BITS_P0HI13Q_HW_IDX \
  44204. (BIT_MASK_P0HI13Q_HW_IDX << BIT_SHIFT_P0HI13Q_HW_IDX)
  44205. #define BIT_CLEAR_P0HI13Q_HW_IDX(x) ((x) & (~BITS_P0HI13Q_HW_IDX))
  44206. #define BIT_GET_P0HI13Q_HW_IDX(x) \
  44207. (((x) >> BIT_SHIFT_P0HI13Q_HW_IDX) & BIT_MASK_P0HI13Q_HW_IDX)
  44208. #define BIT_SET_P0HI13Q_HW_IDX(x, v) \
  44209. (BIT_CLEAR_P0HI13Q_HW_IDX(x) | BIT_P0HI13Q_HW_IDX(v))
  44210. #endif
  44211. #if (HALMAC_8192F_SUPPORT)
  44212. /* 2 REG_CPL_BUFFER_MONITOR (Offset 0x1344) */
  44213. #define BIT_SHIFT_QD_CPL_MIN_REMAIN_ADDR 8
  44214. #define BIT_MASK_QD_CPL_MIN_REMAIN_ADDR 0xff
  44215. #define BIT_QD_CPL_MIN_REMAIN_ADDR(x) \
  44216. (((x) & BIT_MASK_QD_CPL_MIN_REMAIN_ADDR) \
  44217. << BIT_SHIFT_QD_CPL_MIN_REMAIN_ADDR)
  44218. #define BITS_QD_CPL_MIN_REMAIN_ADDR \
  44219. (BIT_MASK_QD_CPL_MIN_REMAIN_ADDR << BIT_SHIFT_QD_CPL_MIN_REMAIN_ADDR)
  44220. #define BIT_CLEAR_QD_CPL_MIN_REMAIN_ADDR(x) \
  44221. ((x) & (~BITS_QD_CPL_MIN_REMAIN_ADDR))
  44222. #define BIT_GET_QD_CPL_MIN_REMAIN_ADDR(x) \
  44223. (((x) >> BIT_SHIFT_QD_CPL_MIN_REMAIN_ADDR) & \
  44224. BIT_MASK_QD_CPL_MIN_REMAIN_ADDR)
  44225. #define BIT_SET_QD_CPL_MIN_REMAIN_ADDR(x, v) \
  44226. (BIT_CLEAR_QD_CPL_MIN_REMAIN_ADDR(x) | BIT_QD_CPL_MIN_REMAIN_ADDR(v))
  44227. #define BIT_SHIFT_QD_CPL_CUR_REMAIN_ADDR 0
  44228. #define BIT_MASK_QD_CPL_CUR_REMAIN_ADDR 0xff
  44229. #define BIT_QD_CPL_CUR_REMAIN_ADDR(x) \
  44230. (((x) & BIT_MASK_QD_CPL_CUR_REMAIN_ADDR) \
  44231. << BIT_SHIFT_QD_CPL_CUR_REMAIN_ADDR)
  44232. #define BITS_QD_CPL_CUR_REMAIN_ADDR \
  44233. (BIT_MASK_QD_CPL_CUR_REMAIN_ADDR << BIT_SHIFT_QD_CPL_CUR_REMAIN_ADDR)
  44234. #define BIT_CLEAR_QD_CPL_CUR_REMAIN_ADDR(x) \
  44235. ((x) & (~BITS_QD_CPL_CUR_REMAIN_ADDR))
  44236. #define BIT_GET_QD_CPL_CUR_REMAIN_ADDR(x) \
  44237. (((x) >> BIT_SHIFT_QD_CPL_CUR_REMAIN_ADDR) & \
  44238. BIT_MASK_QD_CPL_CUR_REMAIN_ADDR)
  44239. #define BIT_SET_QD_CPL_CUR_REMAIN_ADDR(x, v) \
  44240. (BIT_CLEAR_QD_CPL_CUR_REMAIN_ADDR(x) | BIT_QD_CPL_CUR_REMAIN_ADDR(v))
  44241. #define BIT_SHIFT_PTM_LOCAL_CLOCK 0
  44242. #define BIT_MASK_PTM_LOCAL_CLOCK 0xffffffffL
  44243. #define BIT_PTM_LOCAL_CLOCK(x) \
  44244. (((x) & BIT_MASK_PTM_LOCAL_CLOCK) << BIT_SHIFT_PTM_LOCAL_CLOCK)
  44245. #define BITS_PTM_LOCAL_CLOCK \
  44246. (BIT_MASK_PTM_LOCAL_CLOCK << BIT_SHIFT_PTM_LOCAL_CLOCK)
  44247. #define BIT_CLEAR_PTM_LOCAL_CLOCK(x) ((x) & (~BITS_PTM_LOCAL_CLOCK))
  44248. #define BIT_GET_PTM_LOCAL_CLOCK(x) \
  44249. (((x) >> BIT_SHIFT_PTM_LOCAL_CLOCK) & BIT_MASK_PTM_LOCAL_CLOCK)
  44250. #define BIT_SET_PTM_LOCAL_CLOCK(x, v) \
  44251. (BIT_CLEAR_PTM_LOCAL_CLOCK(x) | BIT_PTM_LOCAL_CLOCK(v))
  44252. #endif
  44253. #if (HALMAC_8814B_SUPPORT)
  44254. /* 2 REG_P0HI13Q_TXBD_IDX (Offset 0x1344) */
  44255. #define BIT_SHIFT_P0HI13Q_HOST_IDX 0
  44256. #define BIT_MASK_P0HI13Q_HOST_IDX 0xfff
  44257. #define BIT_P0HI13Q_HOST_IDX(x) \
  44258. (((x) & BIT_MASK_P0HI13Q_HOST_IDX) << BIT_SHIFT_P0HI13Q_HOST_IDX)
  44259. #define BITS_P0HI13Q_HOST_IDX \
  44260. (BIT_MASK_P0HI13Q_HOST_IDX << BIT_SHIFT_P0HI13Q_HOST_IDX)
  44261. #define BIT_CLEAR_P0HI13Q_HOST_IDX(x) ((x) & (~BITS_P0HI13Q_HOST_IDX))
  44262. #define BIT_GET_P0HI13Q_HOST_IDX(x) \
  44263. (((x) >> BIT_SHIFT_P0HI13Q_HOST_IDX) & BIT_MASK_P0HI13Q_HOST_IDX)
  44264. #define BIT_SET_P0HI13Q_HOST_IDX(x, v) \
  44265. (BIT_CLEAR_P0HI13Q_HOST_IDX(x) | BIT_P0HI13Q_HOST_IDX(v))
  44266. /* 2 REG_P0HI14Q_TXBD_IDX (Offset 0x1348) */
  44267. #define BIT_SHIFT_P0HI14Q_HW_IDX 16
  44268. #define BIT_MASK_P0HI14Q_HW_IDX 0xfff
  44269. #define BIT_P0HI14Q_HW_IDX(x) \
  44270. (((x) & BIT_MASK_P0HI14Q_HW_IDX) << BIT_SHIFT_P0HI14Q_HW_IDX)
  44271. #define BITS_P0HI14Q_HW_IDX \
  44272. (BIT_MASK_P0HI14Q_HW_IDX << BIT_SHIFT_P0HI14Q_HW_IDX)
  44273. #define BIT_CLEAR_P0HI14Q_HW_IDX(x) ((x) & (~BITS_P0HI14Q_HW_IDX))
  44274. #define BIT_GET_P0HI14Q_HW_IDX(x) \
  44275. (((x) >> BIT_SHIFT_P0HI14Q_HW_IDX) & BIT_MASK_P0HI14Q_HW_IDX)
  44276. #define BIT_SET_P0HI14Q_HW_IDX(x, v) \
  44277. (BIT_CLEAR_P0HI14Q_HW_IDX(x) | BIT_P0HI14Q_HW_IDX(v))
  44278. #define BIT_SHIFT_P0HI14Q_HOST_IDX 0
  44279. #define BIT_MASK_P0HI14Q_HOST_IDX 0xfff
  44280. #define BIT_P0HI14Q_HOST_IDX(x) \
  44281. (((x) & BIT_MASK_P0HI14Q_HOST_IDX) << BIT_SHIFT_P0HI14Q_HOST_IDX)
  44282. #define BITS_P0HI14Q_HOST_IDX \
  44283. (BIT_MASK_P0HI14Q_HOST_IDX << BIT_SHIFT_P0HI14Q_HOST_IDX)
  44284. #define BIT_CLEAR_P0HI14Q_HOST_IDX(x) ((x) & (~BITS_P0HI14Q_HOST_IDX))
  44285. #define BIT_GET_P0HI14Q_HOST_IDX(x) \
  44286. (((x) >> BIT_SHIFT_P0HI14Q_HOST_IDX) & BIT_MASK_P0HI14Q_HOST_IDX)
  44287. #define BIT_SET_P0HI14Q_HOST_IDX(x, v) \
  44288. (BIT_CLEAR_P0HI14Q_HOST_IDX(x) | BIT_P0HI14Q_HOST_IDX(v))
  44289. /* 2 REG_P0HI15Q_TXBD_IDX (Offset 0x134C) */
  44290. #define BIT_SHIFT_P0HI15Q_HW_IDX 16
  44291. #define BIT_MASK_P0HI15Q_HW_IDX 0xfff
  44292. #define BIT_P0HI15Q_HW_IDX(x) \
  44293. (((x) & BIT_MASK_P0HI15Q_HW_IDX) << BIT_SHIFT_P0HI15Q_HW_IDX)
  44294. #define BITS_P0HI15Q_HW_IDX \
  44295. (BIT_MASK_P0HI15Q_HW_IDX << BIT_SHIFT_P0HI15Q_HW_IDX)
  44296. #define BIT_CLEAR_P0HI15Q_HW_IDX(x) ((x) & (~BITS_P0HI15Q_HW_IDX))
  44297. #define BIT_GET_P0HI15Q_HW_IDX(x) \
  44298. (((x) >> BIT_SHIFT_P0HI15Q_HW_IDX) & BIT_MASK_P0HI15Q_HW_IDX)
  44299. #define BIT_SET_P0HI15Q_HW_IDX(x, v) \
  44300. (BIT_CLEAR_P0HI15Q_HW_IDX(x) | BIT_P0HI15Q_HW_IDX(v))
  44301. #define BIT_SHIFT_P0HI15Q_HOST_IDX 0
  44302. #define BIT_MASK_P0HI15Q_HOST_IDX 0xfff
  44303. #define BIT_P0HI15Q_HOST_IDX(x) \
  44304. (((x) & BIT_MASK_P0HI15Q_HOST_IDX) << BIT_SHIFT_P0HI15Q_HOST_IDX)
  44305. #define BITS_P0HI15Q_HOST_IDX \
  44306. (BIT_MASK_P0HI15Q_HOST_IDX << BIT_SHIFT_P0HI15Q_HOST_IDX)
  44307. #define BIT_CLEAR_P0HI15Q_HOST_IDX(x) ((x) & (~BITS_P0HI15Q_HOST_IDX))
  44308. #define BIT_GET_P0HI15Q_HOST_IDX(x) \
  44309. (((x) >> BIT_SHIFT_P0HI15Q_HOST_IDX) & BIT_MASK_P0HI15Q_HOST_IDX)
  44310. #define BIT_SET_P0HI15Q_HOST_IDX(x, v) \
  44311. (BIT_CLEAR_P0HI15Q_HOST_IDX(x) | BIT_P0HI15Q_HOST_IDX(v))
  44312. #endif
  44313. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44314. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44315. #define BIT_AXI_RXDMA_TIMEOUT_RE BIT(21)
  44316. #define BIT_AXI_TXDMA_TIMEOUT_RE BIT(20)
  44317. #define BIT_AXI_DECERR_W_RE BIT(19)
  44318. #define BIT_AXI_DECERR_R_RE BIT(18)
  44319. #endif
  44320. #if (HALMAC_8822B_SUPPORT)
  44321. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44322. #define BIT_CHANGE_PCIE_SPEED BIT(18)
  44323. #endif
  44324. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44325. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44326. #define BIT_AXI_SLVERR_W_RE BIT(17)
  44327. #define BIT_AXI_SLVERR_R_RE BIT(16)
  44328. #endif
  44329. #if (HALMAC_8822B_SUPPORT)
  44330. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44331. #define BIT_SHIFT_GEN1_GEN2 16
  44332. #define BIT_MASK_GEN1_GEN2 0x3
  44333. #define BIT_GEN1_GEN2(x) (((x) & BIT_MASK_GEN1_GEN2) << BIT_SHIFT_GEN1_GEN2)
  44334. #define BITS_GEN1_GEN2 (BIT_MASK_GEN1_GEN2 << BIT_SHIFT_GEN1_GEN2)
  44335. #define BIT_CLEAR_GEN1_GEN2(x) ((x) & (~BITS_GEN1_GEN2))
  44336. #define BIT_GET_GEN1_GEN2(x) (((x) >> BIT_SHIFT_GEN1_GEN2) & BIT_MASK_GEN1_GEN2)
  44337. #define BIT_SET_GEN1_GEN2(x, v) (BIT_CLEAR_GEN1_GEN2(x) | BIT_GEN1_GEN2(v))
  44338. #endif
  44339. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44340. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44341. #define BIT_AXI_RXDMA_TIMEOUT_IE BIT(13)
  44342. #define BIT_AXI_TXDMA_TIMEOUT_IE BIT(12)
  44343. #define BIT_AXI_DECERR_W_IE BIT(11)
  44344. #define BIT_AXI_DECERR_R_IE BIT(10)
  44345. #define BIT_AXI_SLVERR_W_IE BIT(9)
  44346. #define BIT_AXI_SLVERR_R_IE BIT(8)
  44347. #endif
  44348. #if (HALMAC_8822B_SUPPORT)
  44349. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44350. #define BIT_SHIFT_RXDMA_ERROR_COUNTER 8
  44351. #define BIT_MASK_RXDMA_ERROR_COUNTER 0xff
  44352. #define BIT_RXDMA_ERROR_COUNTER(x) \
  44353. (((x) & BIT_MASK_RXDMA_ERROR_COUNTER) << BIT_SHIFT_RXDMA_ERROR_COUNTER)
  44354. #define BITS_RXDMA_ERROR_COUNTER \
  44355. (BIT_MASK_RXDMA_ERROR_COUNTER << BIT_SHIFT_RXDMA_ERROR_COUNTER)
  44356. #define BIT_CLEAR_RXDMA_ERROR_COUNTER(x) ((x) & (~BITS_RXDMA_ERROR_COUNTER))
  44357. #define BIT_GET_RXDMA_ERROR_COUNTER(x) \
  44358. (((x) >> BIT_SHIFT_RXDMA_ERROR_COUNTER) & BIT_MASK_RXDMA_ERROR_COUNTER)
  44359. #define BIT_SET_RXDMA_ERROR_COUNTER(x, v) \
  44360. (BIT_CLEAR_RXDMA_ERROR_COUNTER(x) | BIT_RXDMA_ERROR_COUNTER(v))
  44361. #define BIT_TXDMA_ERROR_HANDLE_STATUS BIT(7)
  44362. #define BIT_TXDMA_ERROR_PULSE BIT(6)
  44363. #endif
  44364. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44365. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44366. #define BIT_AXI_RXDMA_TIMEOUT_FLAG BIT(5)
  44367. #endif
  44368. #if (HALMAC_8822B_SUPPORT)
  44369. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44370. #define BIT_TXDMA_STUCK_ERROR_HANDLE_ENABLE BIT(5)
  44371. #endif
  44372. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44373. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44374. #define BIT_AXI_TXDMA_TIMEOUT_FLAG BIT(4)
  44375. #endif
  44376. #if (HALMAC_8822B_SUPPORT)
  44377. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44378. #define BIT_TXDMA_RETURN_ERROR_ENABLE BIT(4)
  44379. #endif
  44380. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44381. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44382. #define BIT_AXI_DECERR_W_FLAG BIT(3)
  44383. #endif
  44384. #if (HALMAC_8822B_SUPPORT)
  44385. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44386. #define BIT_RXDMA_ERROR_HANDLE_STATUS BIT(3)
  44387. #endif
  44388. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44389. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44390. #define BIT_AXI_DECERR_R_FLAG BIT(2)
  44391. #define BIT_AXI_SLVERR_W_FLAG BIT(1)
  44392. #endif
  44393. #if (HALMAC_8192F_SUPPORT)
  44394. /* 2 REG_TSFT_PTM_DIFF (Offset 0x1350) */
  44395. #define BIT_SHIFT_TSFT_PTM_DIFF 0
  44396. #define BIT_MASK_TSFT_PTM_DIFF 0xffffffffL
  44397. #define BIT_TSFT_PTM_DIFF(x) \
  44398. (((x) & BIT_MASK_TSFT_PTM_DIFF) << BIT_SHIFT_TSFT_PTM_DIFF)
  44399. #define BITS_TSFT_PTM_DIFF (BIT_MASK_TSFT_PTM_DIFF << BIT_SHIFT_TSFT_PTM_DIFF)
  44400. #define BIT_CLEAR_TSFT_PTM_DIFF(x) ((x) & (~BITS_TSFT_PTM_DIFF))
  44401. #define BIT_GET_TSFT_PTM_DIFF(x) \
  44402. (((x) >> BIT_SHIFT_TSFT_PTM_DIFF) & BIT_MASK_TSFT_PTM_DIFF)
  44403. #define BIT_SET_TSFT_PTM_DIFF(x, v) \
  44404. (BIT_CLEAR_TSFT_PTM_DIFF(x) | BIT_TSFT_PTM_DIFF(v))
  44405. #endif
  44406. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44407. /* 2 REG_AXI_EXCEPT_CS (Offset 0x1350) */
  44408. #define BIT_AXI_SLVERR_R_FLAG BIT(0)
  44409. #endif
  44410. #if (HALMAC_8822B_SUPPORT)
  44411. /* 2 REG_CHANGE_PCIE_SPEED (Offset 0x1350) */
  44412. #define BIT_SHIFT_AUTO_HANG_RELEASE 0
  44413. #define BIT_MASK_AUTO_HANG_RELEASE 0x7
  44414. #define BIT_AUTO_HANG_RELEASE(x) \
  44415. (((x) & BIT_MASK_AUTO_HANG_RELEASE) << BIT_SHIFT_AUTO_HANG_RELEASE)
  44416. #define BITS_AUTO_HANG_RELEASE \
  44417. (BIT_MASK_AUTO_HANG_RELEASE << BIT_SHIFT_AUTO_HANG_RELEASE)
  44418. #define BIT_CLEAR_AUTO_HANG_RELEASE(x) ((x) & (~BITS_AUTO_HANG_RELEASE))
  44419. #define BIT_GET_AUTO_HANG_RELEASE(x) \
  44420. (((x) >> BIT_SHIFT_AUTO_HANG_RELEASE) & BIT_MASK_AUTO_HANG_RELEASE)
  44421. #define BIT_SET_AUTO_HANG_RELEASE(x, v) \
  44422. (BIT_CLEAR_AUTO_HANG_RELEASE(x) | BIT_AUTO_HANG_RELEASE(v))
  44423. #endif
  44424. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44425. /* 2 REG_AXI_EXCEPT_TIME (Offset 0x1354) */
  44426. #define BIT_SHIFT_AXI_RECOVERY_TIME 24
  44427. #define BIT_MASK_AXI_RECOVERY_TIME 0xff
  44428. #define BIT_AXI_RECOVERY_TIME(x) \
  44429. (((x) & BIT_MASK_AXI_RECOVERY_TIME) << BIT_SHIFT_AXI_RECOVERY_TIME)
  44430. #define BITS_AXI_RECOVERY_TIME \
  44431. (BIT_MASK_AXI_RECOVERY_TIME << BIT_SHIFT_AXI_RECOVERY_TIME)
  44432. #define BIT_CLEAR_AXI_RECOVERY_TIME(x) ((x) & (~BITS_AXI_RECOVERY_TIME))
  44433. #define BIT_GET_AXI_RECOVERY_TIME(x) \
  44434. (((x) >> BIT_SHIFT_AXI_RECOVERY_TIME) & BIT_MASK_AXI_RECOVERY_TIME)
  44435. #define BIT_SET_AXI_RECOVERY_TIME(x, v) \
  44436. (BIT_CLEAR_AXI_RECOVERY_TIME(x) | BIT_AXI_RECOVERY_TIME(v))
  44437. #endif
  44438. #if (HALMAC_8192F_SUPPORT)
  44439. /* 2 REG_PTM_CTRL_STATUS (Offset 0x1354) */
  44440. #define BIT_BCNQ2_EMPTY BIT(23)
  44441. #define BIT_BCNQ1_EMPTY BIT(22)
  44442. #define BIT_BCNQ0_EMPTY BIT(21)
  44443. #define BIT_EVTQ_EMPTY BIT(20)
  44444. #define BIT_MGQ_CPU_EMPTY_V2 BIT(19)
  44445. #define BIT_BCNQ_EMPTY_V2 BIT(18)
  44446. #define BIT_HQQ_EMPTY_V2 BIT(17)
  44447. #define BIT_SHIFT_TAIL_PKT_V1 16
  44448. #define BIT_MASK_TAIL_PKT_V1 0xff
  44449. #define BIT_TAIL_PKT_V1(x) \
  44450. (((x) & BIT_MASK_TAIL_PKT_V1) << BIT_SHIFT_TAIL_PKT_V1)
  44451. #define BITS_TAIL_PKT_V1 (BIT_MASK_TAIL_PKT_V1 << BIT_SHIFT_TAIL_PKT_V1)
  44452. #define BIT_CLEAR_TAIL_PKT_V1(x) ((x) & (~BITS_TAIL_PKT_V1))
  44453. #define BIT_GET_TAIL_PKT_V1(x) \
  44454. (((x) >> BIT_SHIFT_TAIL_PKT_V1) & BIT_MASK_TAIL_PKT_V1)
  44455. #define BIT_SET_TAIL_PKT_V1(x, v) \
  44456. (BIT_CLEAR_TAIL_PKT_V1(x) | BIT_TAIL_PKT_V1(v))
  44457. #define BIT_MQQ_EMPTY_V3 BIT(16)
  44458. #endif
  44459. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44460. /* 2 REG_AXI_EXCEPT_TIME (Offset 0x1354) */
  44461. #define BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL 12
  44462. #define BIT_MASK_AXI_RXDMA_TIMEOUT_VAL 0xfff
  44463. #define BIT_AXI_RXDMA_TIMEOUT_VAL(x) \
  44464. (((x) & BIT_MASK_AXI_RXDMA_TIMEOUT_VAL) \
  44465. << BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL)
  44466. #define BITS_AXI_RXDMA_TIMEOUT_VAL \
  44467. (BIT_MASK_AXI_RXDMA_TIMEOUT_VAL << BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL)
  44468. #define BIT_CLEAR_AXI_RXDMA_TIMEOUT_VAL(x) ((x) & (~BITS_AXI_RXDMA_TIMEOUT_VAL))
  44469. #define BIT_GET_AXI_RXDMA_TIMEOUT_VAL(x) \
  44470. (((x) >> BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL) & \
  44471. BIT_MASK_AXI_RXDMA_TIMEOUT_VAL)
  44472. #define BIT_SET_AXI_RXDMA_TIMEOUT_VAL(x, v) \
  44473. (BIT_CLEAR_AXI_RXDMA_TIMEOUT_VAL(x) | BIT_AXI_RXDMA_TIMEOUT_VAL(v))
  44474. #endif
  44475. #if (HALMAC_8192F_SUPPORT)
  44476. /* 2 REG_PTM_CTRL_STATUS (Offset 0x1354) */
  44477. #define BIT_SHIFT_PKT_NUM_V1 8
  44478. #define BIT_MASK_PKT_NUM_V1 0xff
  44479. #define BIT_PKT_NUM_V1(x) (((x) & BIT_MASK_PKT_NUM_V1) << BIT_SHIFT_PKT_NUM_V1)
  44480. #define BITS_PKT_NUM_V1 (BIT_MASK_PKT_NUM_V1 << BIT_SHIFT_PKT_NUM_V1)
  44481. #define BIT_CLEAR_PKT_NUM_V1(x) ((x) & (~BITS_PKT_NUM_V1))
  44482. #define BIT_GET_PKT_NUM_V1(x) \
  44483. (((x) >> BIT_SHIFT_PKT_NUM_V1) & BIT_MASK_PKT_NUM_V1)
  44484. #define BIT_SET_PKT_NUM_V1(x, v) (BIT_CLEAR_PKT_NUM_V1(x) | BIT_PKT_NUM_V1(v))
  44485. #define BIT_SHIFT_QUEUEAC_V1 8
  44486. #define BIT_MASK_QUEUEAC_V1 0x3
  44487. #define BIT_QUEUEAC_V1(x) (((x) & BIT_MASK_QUEUEAC_V1) << BIT_SHIFT_QUEUEAC_V1)
  44488. #define BITS_QUEUEAC_V1 (BIT_MASK_QUEUEAC_V1 << BIT_SHIFT_QUEUEAC_V1)
  44489. #define BIT_CLEAR_QUEUEAC_V1(x) ((x) & (~BITS_QUEUEAC_V1))
  44490. #define BIT_GET_QUEUEAC_V1(x) \
  44491. (((x) >> BIT_SHIFT_QUEUEAC_V1) & BIT_MASK_QUEUEAC_V1)
  44492. #define BIT_SET_QUEUEAC_V1(x, v) (BIT_CLEAR_QUEUEAC_V1(x) | BIT_QUEUEAC_V1(v))
  44493. #define BIT_SHIFT_ACQ_STOP 5
  44494. #define BIT_MASK_ACQ_STOP 0xffff
  44495. #define BIT_ACQ_STOP(x) (((x) & BIT_MASK_ACQ_STOP) << BIT_SHIFT_ACQ_STOP)
  44496. #define BITS_ACQ_STOP (BIT_MASK_ACQ_STOP << BIT_SHIFT_ACQ_STOP)
  44497. #define BIT_CLEAR_ACQ_STOP(x) ((x) & (~BITS_ACQ_STOP))
  44498. #define BIT_GET_ACQ_STOP(x) (((x) >> BIT_SHIFT_ACQ_STOP) & BIT_MASK_ACQ_STOP)
  44499. #define BIT_SET_ACQ_STOP(x, v) (BIT_CLEAR_ACQ_STOP(x) | BIT_ACQ_STOP(v))
  44500. #define BIT_SHIFT_TSFT_PORT_SEL 3
  44501. #define BIT_MASK_TSFT_PORT_SEL 0x3
  44502. #define BIT_TSFT_PORT_SEL(x) \
  44503. (((x) & BIT_MASK_TSFT_PORT_SEL) << BIT_SHIFT_TSFT_PORT_SEL)
  44504. #define BITS_TSFT_PORT_SEL (BIT_MASK_TSFT_PORT_SEL << BIT_SHIFT_TSFT_PORT_SEL)
  44505. #define BIT_CLEAR_TSFT_PORT_SEL(x) ((x) & (~BITS_TSFT_PORT_SEL))
  44506. #define BIT_GET_TSFT_PORT_SEL(x) \
  44507. (((x) >> BIT_SHIFT_TSFT_PORT_SEL) & BIT_MASK_TSFT_PORT_SEL)
  44508. #define BIT_SET_TSFT_PORT_SEL(x, v) \
  44509. (BIT_CLEAR_TSFT_PORT_SEL(x) | BIT_TSFT_PORT_SEL(v))
  44510. #define BIT_PTM_CONTEXT_VALID BIT(2)
  44511. #define BIT_PTM_MANUL_UPDATE BIT(1)
  44512. #define BIT_PTM_AUTO_UPDATE BIT(0)
  44513. #define BIT_SHIFT_HEAD_PKT_V1 0
  44514. #define BIT_MASK_HEAD_PKT_V1 0xff
  44515. #define BIT_HEAD_PKT_V1(x) \
  44516. (((x) & BIT_MASK_HEAD_PKT_V1) << BIT_SHIFT_HEAD_PKT_V1)
  44517. #define BITS_HEAD_PKT_V1 (BIT_MASK_HEAD_PKT_V1 << BIT_SHIFT_HEAD_PKT_V1)
  44518. #define BIT_CLEAR_HEAD_PKT_V1(x) ((x) & (~BITS_HEAD_PKT_V1))
  44519. #define BIT_GET_HEAD_PKT_V1(x) \
  44520. (((x) >> BIT_SHIFT_HEAD_PKT_V1) & BIT_MASK_HEAD_PKT_V1)
  44521. #define BIT_SET_HEAD_PKT_V1(x, v) \
  44522. (BIT_CLEAR_HEAD_PKT_V1(x) | BIT_HEAD_PKT_V1(v))
  44523. #define BIT_SHIFT_QUEUEMACID_V1 0
  44524. #define BIT_MASK_QUEUEMACID_V1 0x7f
  44525. #define BIT_QUEUEMACID_V1(x) \
  44526. (((x) & BIT_MASK_QUEUEMACID_V1) << BIT_SHIFT_QUEUEMACID_V1)
  44527. #define BITS_QUEUEMACID_V1 (BIT_MASK_QUEUEMACID_V1 << BIT_SHIFT_QUEUEMACID_V1)
  44528. #define BIT_CLEAR_QUEUEMACID_V1(x) ((x) & (~BITS_QUEUEMACID_V1))
  44529. #define BIT_GET_QUEUEMACID_V1(x) \
  44530. (((x) >> BIT_SHIFT_QUEUEMACID_V1) & BIT_MASK_QUEUEMACID_V1)
  44531. #define BIT_SET_QUEUEMACID_V1(x, v) \
  44532. (BIT_CLEAR_QUEUEMACID_V1(x) | BIT_QUEUEMACID_V1(v))
  44533. #endif
  44534. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  44535. /* 2 REG_AXI_EXCEPT_TIME (Offset 0x1354) */
  44536. #define BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL 0
  44537. #define BIT_MASK_AXI_TXDMA_TIMEOUT_VAL 0xfff
  44538. #define BIT_AXI_TXDMA_TIMEOUT_VAL(x) \
  44539. (((x) & BIT_MASK_AXI_TXDMA_TIMEOUT_VAL) \
  44540. << BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL)
  44541. #define BITS_AXI_TXDMA_TIMEOUT_VAL \
  44542. (BIT_MASK_AXI_TXDMA_TIMEOUT_VAL << BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL)
  44543. #define BIT_CLEAR_AXI_TXDMA_TIMEOUT_VAL(x) ((x) & (~BITS_AXI_TXDMA_TIMEOUT_VAL))
  44544. #define BIT_GET_AXI_TXDMA_TIMEOUT_VAL(x) \
  44545. (((x) >> BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL) & \
  44546. BIT_MASK_AXI_TXDMA_TIMEOUT_VAL)
  44547. #define BIT_SET_AXI_TXDMA_TIMEOUT_VAL(x, v) \
  44548. (BIT_CLEAR_AXI_TXDMA_TIMEOUT_VAL(x) | BIT_AXI_TXDMA_TIMEOUT_VAL(v))
  44549. #endif
  44550. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  44551. /* 2 REG_DEBUG_STATE1 (Offset 0x1354) */
  44552. #define BIT_SHIFT_DEBUG_STATE1 0
  44553. #define BIT_MASK_DEBUG_STATE1 0xffffffffL
  44554. #define BIT_DEBUG_STATE1(x) \
  44555. (((x) & BIT_MASK_DEBUG_STATE1) << BIT_SHIFT_DEBUG_STATE1)
  44556. #define BITS_DEBUG_STATE1 (BIT_MASK_DEBUG_STATE1 << BIT_SHIFT_DEBUG_STATE1)
  44557. #define BIT_CLEAR_DEBUG_STATE1(x) ((x) & (~BITS_DEBUG_STATE1))
  44558. #define BIT_GET_DEBUG_STATE1(x) \
  44559. (((x) >> BIT_SHIFT_DEBUG_STATE1) & BIT_MASK_DEBUG_STATE1)
  44560. #define BIT_SET_DEBUG_STATE1(x, v) \
  44561. (BIT_CLEAR_DEBUG_STATE1(x) | BIT_DEBUG_STATE1(v))
  44562. #endif
  44563. #if (HALMAC_8198F_SUPPORT)
  44564. /* 2 REG_HI8Q_TXBD_IDX (Offset 0x1358) */
  44565. #define BIT_SHIFT_HI8Q_HW_IDX 16
  44566. #define BIT_MASK_HI8Q_HW_IDX 0xfff
  44567. #define BIT_HI8Q_HW_IDX(x) \
  44568. (((x) & BIT_MASK_HI8Q_HW_IDX) << BIT_SHIFT_HI8Q_HW_IDX)
  44569. #define BITS_HI8Q_HW_IDX (BIT_MASK_HI8Q_HW_IDX << BIT_SHIFT_HI8Q_HW_IDX)
  44570. #define BIT_CLEAR_HI8Q_HW_IDX(x) ((x) & (~BITS_HI8Q_HW_IDX))
  44571. #define BIT_GET_HI8Q_HW_IDX(x) \
  44572. (((x) >> BIT_SHIFT_HI8Q_HW_IDX) & BIT_MASK_HI8Q_HW_IDX)
  44573. #define BIT_SET_HI8Q_HW_IDX(x, v) \
  44574. (BIT_CLEAR_HI8Q_HW_IDX(x) | BIT_HI8Q_HW_IDX(v))
  44575. #define BIT_SHIFT_HI8Q_HOST_IDX 0
  44576. #define BIT_MASK_HI8Q_HOST_IDX 0xfff
  44577. #define BIT_HI8Q_HOST_IDX(x) \
  44578. (((x) & BIT_MASK_HI8Q_HOST_IDX) << BIT_SHIFT_HI8Q_HOST_IDX)
  44579. #define BITS_HI8Q_HOST_IDX (BIT_MASK_HI8Q_HOST_IDX << BIT_SHIFT_HI8Q_HOST_IDX)
  44580. #define BIT_CLEAR_HI8Q_HOST_IDX(x) ((x) & (~BITS_HI8Q_HOST_IDX))
  44581. #define BIT_GET_HI8Q_HOST_IDX(x) \
  44582. (((x) >> BIT_SHIFT_HI8Q_HOST_IDX) & BIT_MASK_HI8Q_HOST_IDX)
  44583. #define BIT_SET_HI8Q_HOST_IDX(x, v) \
  44584. (BIT_CLEAR_HI8Q_HOST_IDX(x) | BIT_HI8Q_HOST_IDX(v))
  44585. #endif
  44586. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  44587. /* 2 REG_DEBUG_STATE2 (Offset 0x1358) */
  44588. #define BIT_SHIFT_DEBUG_STATE2 0
  44589. #define BIT_MASK_DEBUG_STATE2 0xffffffffL
  44590. #define BIT_DEBUG_STATE2(x) \
  44591. (((x) & BIT_MASK_DEBUG_STATE2) << BIT_SHIFT_DEBUG_STATE2)
  44592. #define BITS_DEBUG_STATE2 (BIT_MASK_DEBUG_STATE2 << BIT_SHIFT_DEBUG_STATE2)
  44593. #define BIT_CLEAR_DEBUG_STATE2(x) ((x) & (~BITS_DEBUG_STATE2))
  44594. #define BIT_GET_DEBUG_STATE2(x) \
  44595. (((x) >> BIT_SHIFT_DEBUG_STATE2) & BIT_MASK_DEBUG_STATE2)
  44596. #define BIT_SET_DEBUG_STATE2(x, v) \
  44597. (BIT_CLEAR_DEBUG_STATE2(x) | BIT_DEBUG_STATE2(v))
  44598. #endif
  44599. #if (HALMAC_8198F_SUPPORT)
  44600. /* 2 REG_HI9Q_TXBD_IDX (Offset 0x135C) */
  44601. #define BIT_SHIFT_HI9Q_HW_IDX 16
  44602. #define BIT_MASK_HI9Q_HW_IDX 0xfff
  44603. #define BIT_HI9Q_HW_IDX(x) \
  44604. (((x) & BIT_MASK_HI9Q_HW_IDX) << BIT_SHIFT_HI9Q_HW_IDX)
  44605. #define BITS_HI9Q_HW_IDX (BIT_MASK_HI9Q_HW_IDX << BIT_SHIFT_HI9Q_HW_IDX)
  44606. #define BIT_CLEAR_HI9Q_HW_IDX(x) ((x) & (~BITS_HI9Q_HW_IDX))
  44607. #define BIT_GET_HI9Q_HW_IDX(x) \
  44608. (((x) >> BIT_SHIFT_HI9Q_HW_IDX) & BIT_MASK_HI9Q_HW_IDX)
  44609. #define BIT_SET_HI9Q_HW_IDX(x, v) \
  44610. (BIT_CLEAR_HI9Q_HW_IDX(x) | BIT_HI9Q_HW_IDX(v))
  44611. #define BIT_SHIFT_HI9Q_HOST_IDX 0
  44612. #define BIT_MASK_HI9Q_HOST_IDX 0xfff
  44613. #define BIT_HI9Q_HOST_IDX(x) \
  44614. (((x) & BIT_MASK_HI9Q_HOST_IDX) << BIT_SHIFT_HI9Q_HOST_IDX)
  44615. #define BITS_HI9Q_HOST_IDX (BIT_MASK_HI9Q_HOST_IDX << BIT_SHIFT_HI9Q_HOST_IDX)
  44616. #define BIT_CLEAR_HI9Q_HOST_IDX(x) ((x) & (~BITS_HI9Q_HOST_IDX))
  44617. #define BIT_GET_HI9Q_HOST_IDX(x) \
  44618. (((x) >> BIT_SHIFT_HI9Q_HOST_IDX) & BIT_MASK_HI9Q_HOST_IDX)
  44619. #define BIT_SET_HI9Q_HOST_IDX(x, v) \
  44620. (BIT_CLEAR_HI9Q_HOST_IDX(x) | BIT_HI9Q_HOST_IDX(v))
  44621. #endif
  44622. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  44623. /* 2 REG_DEBUG_STATE3 (Offset 0x135C) */
  44624. #define BIT_SHIFT_DEBUG_STATE3 0
  44625. #define BIT_MASK_DEBUG_STATE3 0xffffffffL
  44626. #define BIT_DEBUG_STATE3(x) \
  44627. (((x) & BIT_MASK_DEBUG_STATE3) << BIT_SHIFT_DEBUG_STATE3)
  44628. #define BITS_DEBUG_STATE3 (BIT_MASK_DEBUG_STATE3 << BIT_SHIFT_DEBUG_STATE3)
  44629. #define BIT_CLEAR_DEBUG_STATE3(x) ((x) & (~BITS_DEBUG_STATE3))
  44630. #define BIT_GET_DEBUG_STATE3(x) \
  44631. (((x) >> BIT_SHIFT_DEBUG_STATE3) & BIT_MASK_DEBUG_STATE3)
  44632. #define BIT_SET_DEBUG_STATE3(x, v) \
  44633. (BIT_CLEAR_DEBUG_STATE3(x) | BIT_DEBUG_STATE3(v))
  44634. #endif
  44635. #if (HALMAC_8198F_SUPPORT)
  44636. /* 2 REG_HI10Q_TXBD_IDX (Offset 0x1360) */
  44637. #define BIT_SHIFT_HI10Q_HW_IDX 16
  44638. #define BIT_MASK_HI10Q_HW_IDX 0xfff
  44639. #define BIT_HI10Q_HW_IDX(x) \
  44640. (((x) & BIT_MASK_HI10Q_HW_IDX) << BIT_SHIFT_HI10Q_HW_IDX)
  44641. #define BITS_HI10Q_HW_IDX (BIT_MASK_HI10Q_HW_IDX << BIT_SHIFT_HI10Q_HW_IDX)
  44642. #define BIT_CLEAR_HI10Q_HW_IDX(x) ((x) & (~BITS_HI10Q_HW_IDX))
  44643. #define BIT_GET_HI10Q_HW_IDX(x) \
  44644. (((x) >> BIT_SHIFT_HI10Q_HW_IDX) & BIT_MASK_HI10Q_HW_IDX)
  44645. #define BIT_SET_HI10Q_HW_IDX(x, v) \
  44646. (BIT_CLEAR_HI10Q_HW_IDX(x) | BIT_HI10Q_HW_IDX(v))
  44647. #define BIT_SHIFT_HI10Q_HOST_IDX 0
  44648. #define BIT_MASK_HI10Q_HOST_IDX 0xfff
  44649. #define BIT_HI10Q_HOST_IDX(x) \
  44650. (((x) & BIT_MASK_HI10Q_HOST_IDX) << BIT_SHIFT_HI10Q_HOST_IDX)
  44651. #define BITS_HI10Q_HOST_IDX \
  44652. (BIT_MASK_HI10Q_HOST_IDX << BIT_SHIFT_HI10Q_HOST_IDX)
  44653. #define BIT_CLEAR_HI10Q_HOST_IDX(x) ((x) & (~BITS_HI10Q_HOST_IDX))
  44654. #define BIT_GET_HI10Q_HOST_IDX(x) \
  44655. (((x) >> BIT_SHIFT_HI10Q_HOST_IDX) & BIT_MASK_HI10Q_HOST_IDX)
  44656. #define BIT_SET_HI10Q_HOST_IDX(x, v) \
  44657. (BIT_CLEAR_HI10Q_HOST_IDX(x) | BIT_HI10Q_HOST_IDX(v))
  44658. #endif
  44659. #if (HALMAC_8814B_SUPPORT)
  44660. /* 2 REG_ACH5_TXBD_DESA_L (Offset 0x1360) */
  44661. #define BIT_SHIFT_ACH5_TXBD_DESA_L 0
  44662. #define BIT_MASK_ACH5_TXBD_DESA_L 0xffffffffL
  44663. #define BIT_ACH5_TXBD_DESA_L(x) \
  44664. (((x) & BIT_MASK_ACH5_TXBD_DESA_L) << BIT_SHIFT_ACH5_TXBD_DESA_L)
  44665. #define BITS_ACH5_TXBD_DESA_L \
  44666. (BIT_MASK_ACH5_TXBD_DESA_L << BIT_SHIFT_ACH5_TXBD_DESA_L)
  44667. #define BIT_CLEAR_ACH5_TXBD_DESA_L(x) ((x) & (~BITS_ACH5_TXBD_DESA_L))
  44668. #define BIT_GET_ACH5_TXBD_DESA_L(x) \
  44669. (((x) >> BIT_SHIFT_ACH5_TXBD_DESA_L) & BIT_MASK_ACH5_TXBD_DESA_L)
  44670. #define BIT_SET_ACH5_TXBD_DESA_L(x, v) \
  44671. (BIT_CLEAR_ACH5_TXBD_DESA_L(x) | BIT_ACH5_TXBD_DESA_L(v))
  44672. #endif
  44673. #if (HALMAC_8198F_SUPPORT)
  44674. /* 2 REG_HI11Q_TXBD_IDX (Offset 0x1364) */
  44675. #define BIT_SHIFT_HI11Q_HW_IDX 16
  44676. #define BIT_MASK_HI11Q_HW_IDX 0xfff
  44677. #define BIT_HI11Q_HW_IDX(x) \
  44678. (((x) & BIT_MASK_HI11Q_HW_IDX) << BIT_SHIFT_HI11Q_HW_IDX)
  44679. #define BITS_HI11Q_HW_IDX (BIT_MASK_HI11Q_HW_IDX << BIT_SHIFT_HI11Q_HW_IDX)
  44680. #define BIT_CLEAR_HI11Q_HW_IDX(x) ((x) & (~BITS_HI11Q_HW_IDX))
  44681. #define BIT_GET_HI11Q_HW_IDX(x) \
  44682. (((x) >> BIT_SHIFT_HI11Q_HW_IDX) & BIT_MASK_HI11Q_HW_IDX)
  44683. #define BIT_SET_HI11Q_HW_IDX(x, v) \
  44684. (BIT_CLEAR_HI11Q_HW_IDX(x) | BIT_HI11Q_HW_IDX(v))
  44685. #define BIT_SHIFT_HI11Q_HOST_IDX 0
  44686. #define BIT_MASK_HI11Q_HOST_IDX 0xfff
  44687. #define BIT_HI11Q_HOST_IDX(x) \
  44688. (((x) & BIT_MASK_HI11Q_HOST_IDX) << BIT_SHIFT_HI11Q_HOST_IDX)
  44689. #define BITS_HI11Q_HOST_IDX \
  44690. (BIT_MASK_HI11Q_HOST_IDX << BIT_SHIFT_HI11Q_HOST_IDX)
  44691. #define BIT_CLEAR_HI11Q_HOST_IDX(x) ((x) & (~BITS_HI11Q_HOST_IDX))
  44692. #define BIT_GET_HI11Q_HOST_IDX(x) \
  44693. (((x) >> BIT_SHIFT_HI11Q_HOST_IDX) & BIT_MASK_HI11Q_HOST_IDX)
  44694. #define BIT_SET_HI11Q_HOST_IDX(x, v) \
  44695. (BIT_CLEAR_HI11Q_HOST_IDX(x) | BIT_HI11Q_HOST_IDX(v))
  44696. #endif
  44697. #if (HALMAC_8814B_SUPPORT)
  44698. /* 2 REG_ACH5_TXBD_DESA_H (Offset 0x1364) */
  44699. #define BIT_SHIFT_ACH5_TXBD_DESA_H 0
  44700. #define BIT_MASK_ACH5_TXBD_DESA_H 0xffffffffL
  44701. #define BIT_ACH5_TXBD_DESA_H(x) \
  44702. (((x) & BIT_MASK_ACH5_TXBD_DESA_H) << BIT_SHIFT_ACH5_TXBD_DESA_H)
  44703. #define BITS_ACH5_TXBD_DESA_H \
  44704. (BIT_MASK_ACH5_TXBD_DESA_H << BIT_SHIFT_ACH5_TXBD_DESA_H)
  44705. #define BIT_CLEAR_ACH5_TXBD_DESA_H(x) ((x) & (~BITS_ACH5_TXBD_DESA_H))
  44706. #define BIT_GET_ACH5_TXBD_DESA_H(x) \
  44707. (((x) >> BIT_SHIFT_ACH5_TXBD_DESA_H) & BIT_MASK_ACH5_TXBD_DESA_H)
  44708. #define BIT_SET_ACH5_TXBD_DESA_H(x, v) \
  44709. (BIT_CLEAR_ACH5_TXBD_DESA_H(x) | BIT_ACH5_TXBD_DESA_H(v))
  44710. #endif
  44711. #if (HALMAC_8198F_SUPPORT)
  44712. /* 2 REG_HI12Q_TXBD_IDX (Offset 0x1368) */
  44713. #define BIT_SHIFT_HI12Q_HW_IDX 16
  44714. #define BIT_MASK_HI12Q_HW_IDX 0xfff
  44715. #define BIT_HI12Q_HW_IDX(x) \
  44716. (((x) & BIT_MASK_HI12Q_HW_IDX) << BIT_SHIFT_HI12Q_HW_IDX)
  44717. #define BITS_HI12Q_HW_IDX (BIT_MASK_HI12Q_HW_IDX << BIT_SHIFT_HI12Q_HW_IDX)
  44718. #define BIT_CLEAR_HI12Q_HW_IDX(x) ((x) & (~BITS_HI12Q_HW_IDX))
  44719. #define BIT_GET_HI12Q_HW_IDX(x) \
  44720. (((x) >> BIT_SHIFT_HI12Q_HW_IDX) & BIT_MASK_HI12Q_HW_IDX)
  44721. #define BIT_SET_HI12Q_HW_IDX(x, v) \
  44722. (BIT_CLEAR_HI12Q_HW_IDX(x) | BIT_HI12Q_HW_IDX(v))
  44723. #define BIT_SHIFT_HI12Q_HOST_IDX 0
  44724. #define BIT_MASK_HI12Q_HOST_IDX 0xfff
  44725. #define BIT_HI12Q_HOST_IDX(x) \
  44726. (((x) & BIT_MASK_HI12Q_HOST_IDX) << BIT_SHIFT_HI12Q_HOST_IDX)
  44727. #define BITS_HI12Q_HOST_IDX \
  44728. (BIT_MASK_HI12Q_HOST_IDX << BIT_SHIFT_HI12Q_HOST_IDX)
  44729. #define BIT_CLEAR_HI12Q_HOST_IDX(x) ((x) & (~BITS_HI12Q_HOST_IDX))
  44730. #define BIT_GET_HI12Q_HOST_IDX(x) \
  44731. (((x) >> BIT_SHIFT_HI12Q_HOST_IDX) & BIT_MASK_HI12Q_HOST_IDX)
  44732. #define BIT_SET_HI12Q_HOST_IDX(x, v) \
  44733. (BIT_CLEAR_HI12Q_HOST_IDX(x) | BIT_HI12Q_HOST_IDX(v))
  44734. #endif
  44735. #if (HALMAC_8814B_SUPPORT)
  44736. /* 2 REG_ACH6_TXBD_DESA_L (Offset 0x1368) */
  44737. #define BIT_SHIFT_ACH6_TXBD_DESA_L 0
  44738. #define BIT_MASK_ACH6_TXBD_DESA_L 0xffffffffL
  44739. #define BIT_ACH6_TXBD_DESA_L(x) \
  44740. (((x) & BIT_MASK_ACH6_TXBD_DESA_L) << BIT_SHIFT_ACH6_TXBD_DESA_L)
  44741. #define BITS_ACH6_TXBD_DESA_L \
  44742. (BIT_MASK_ACH6_TXBD_DESA_L << BIT_SHIFT_ACH6_TXBD_DESA_L)
  44743. #define BIT_CLEAR_ACH6_TXBD_DESA_L(x) ((x) & (~BITS_ACH6_TXBD_DESA_L))
  44744. #define BIT_GET_ACH6_TXBD_DESA_L(x) \
  44745. (((x) >> BIT_SHIFT_ACH6_TXBD_DESA_L) & BIT_MASK_ACH6_TXBD_DESA_L)
  44746. #define BIT_SET_ACH6_TXBD_DESA_L(x, v) \
  44747. (BIT_CLEAR_ACH6_TXBD_DESA_L(x) | BIT_ACH6_TXBD_DESA_L(v))
  44748. #endif
  44749. #if (HALMAC_8198F_SUPPORT)
  44750. /* 2 REG_HI13Q_TXBD_IDX (Offset 0x136C) */
  44751. #define BIT_SHIFT_HI13Q_HW_IDX 16
  44752. #define BIT_MASK_HI13Q_HW_IDX 0xfff
  44753. #define BIT_HI13Q_HW_IDX(x) \
  44754. (((x) & BIT_MASK_HI13Q_HW_IDX) << BIT_SHIFT_HI13Q_HW_IDX)
  44755. #define BITS_HI13Q_HW_IDX (BIT_MASK_HI13Q_HW_IDX << BIT_SHIFT_HI13Q_HW_IDX)
  44756. #define BIT_CLEAR_HI13Q_HW_IDX(x) ((x) & (~BITS_HI13Q_HW_IDX))
  44757. #define BIT_GET_HI13Q_HW_IDX(x) \
  44758. (((x) >> BIT_SHIFT_HI13Q_HW_IDX) & BIT_MASK_HI13Q_HW_IDX)
  44759. #define BIT_SET_HI13Q_HW_IDX(x, v) \
  44760. (BIT_CLEAR_HI13Q_HW_IDX(x) | BIT_HI13Q_HW_IDX(v))
  44761. #define BIT_SHIFT_HI13Q_HOST_IDX 0
  44762. #define BIT_MASK_HI13Q_HOST_IDX 0xfff
  44763. #define BIT_HI13Q_HOST_IDX(x) \
  44764. (((x) & BIT_MASK_HI13Q_HOST_IDX) << BIT_SHIFT_HI13Q_HOST_IDX)
  44765. #define BITS_HI13Q_HOST_IDX \
  44766. (BIT_MASK_HI13Q_HOST_IDX << BIT_SHIFT_HI13Q_HOST_IDX)
  44767. #define BIT_CLEAR_HI13Q_HOST_IDX(x) ((x) & (~BITS_HI13Q_HOST_IDX))
  44768. #define BIT_GET_HI13Q_HOST_IDX(x) \
  44769. (((x) >> BIT_SHIFT_HI13Q_HOST_IDX) & BIT_MASK_HI13Q_HOST_IDX)
  44770. #define BIT_SET_HI13Q_HOST_IDX(x, v) \
  44771. (BIT_CLEAR_HI13Q_HOST_IDX(x) | BIT_HI13Q_HOST_IDX(v))
  44772. #endif
  44773. #if (HALMAC_8814B_SUPPORT)
  44774. /* 2 REG_ACH6_TXBD_DESA_H (Offset 0x136C) */
  44775. #define BIT_SHIFT_ACH6_TXBD_DESA_H 0
  44776. #define BIT_MASK_ACH6_TXBD_DESA_H 0xffffffffL
  44777. #define BIT_ACH6_TXBD_DESA_H(x) \
  44778. (((x) & BIT_MASK_ACH6_TXBD_DESA_H) << BIT_SHIFT_ACH6_TXBD_DESA_H)
  44779. #define BITS_ACH6_TXBD_DESA_H \
  44780. (BIT_MASK_ACH6_TXBD_DESA_H << BIT_SHIFT_ACH6_TXBD_DESA_H)
  44781. #define BIT_CLEAR_ACH6_TXBD_DESA_H(x) ((x) & (~BITS_ACH6_TXBD_DESA_H))
  44782. #define BIT_GET_ACH6_TXBD_DESA_H(x) \
  44783. (((x) >> BIT_SHIFT_ACH6_TXBD_DESA_H) & BIT_MASK_ACH6_TXBD_DESA_H)
  44784. #define BIT_SET_ACH6_TXBD_DESA_H(x, v) \
  44785. (BIT_CLEAR_ACH6_TXBD_DESA_H(x) | BIT_ACH6_TXBD_DESA_H(v))
  44786. #endif
  44787. #if (HALMAC_8198F_SUPPORT)
  44788. /* 2 REG_HI14Q_TXBD_IDX (Offset 0x1370) */
  44789. #define BIT_SHIFT_HI14Q_HW_IDX 16
  44790. #define BIT_MASK_HI14Q_HW_IDX 0xfff
  44791. #define BIT_HI14Q_HW_IDX(x) \
  44792. (((x) & BIT_MASK_HI14Q_HW_IDX) << BIT_SHIFT_HI14Q_HW_IDX)
  44793. #define BITS_HI14Q_HW_IDX (BIT_MASK_HI14Q_HW_IDX << BIT_SHIFT_HI14Q_HW_IDX)
  44794. #define BIT_CLEAR_HI14Q_HW_IDX(x) ((x) & (~BITS_HI14Q_HW_IDX))
  44795. #define BIT_GET_HI14Q_HW_IDX(x) \
  44796. (((x) >> BIT_SHIFT_HI14Q_HW_IDX) & BIT_MASK_HI14Q_HW_IDX)
  44797. #define BIT_SET_HI14Q_HW_IDX(x, v) \
  44798. (BIT_CLEAR_HI14Q_HW_IDX(x) | BIT_HI14Q_HW_IDX(v))
  44799. #define BIT_SHIFT_HI14Q_HOST_IDX 0
  44800. #define BIT_MASK_HI14Q_HOST_IDX 0xfff
  44801. #define BIT_HI14Q_HOST_IDX(x) \
  44802. (((x) & BIT_MASK_HI14Q_HOST_IDX) << BIT_SHIFT_HI14Q_HOST_IDX)
  44803. #define BITS_HI14Q_HOST_IDX \
  44804. (BIT_MASK_HI14Q_HOST_IDX << BIT_SHIFT_HI14Q_HOST_IDX)
  44805. #define BIT_CLEAR_HI14Q_HOST_IDX(x) ((x) & (~BITS_HI14Q_HOST_IDX))
  44806. #define BIT_GET_HI14Q_HOST_IDX(x) \
  44807. (((x) >> BIT_SHIFT_HI14Q_HOST_IDX) & BIT_MASK_HI14Q_HOST_IDX)
  44808. #define BIT_SET_HI14Q_HOST_IDX(x, v) \
  44809. (BIT_CLEAR_HI14Q_HOST_IDX(x) | BIT_HI14Q_HOST_IDX(v))
  44810. #endif
  44811. #if (HALMAC_8814B_SUPPORT)
  44812. /* 2 REG_ACH7_TXBD_DESA_L (Offset 0x1370) */
  44813. #define BIT_SHIFT_ACH7_TXBD_DESA_L 0
  44814. #define BIT_MASK_ACH7_TXBD_DESA_L 0xffffffffL
  44815. #define BIT_ACH7_TXBD_DESA_L(x) \
  44816. (((x) & BIT_MASK_ACH7_TXBD_DESA_L) << BIT_SHIFT_ACH7_TXBD_DESA_L)
  44817. #define BITS_ACH7_TXBD_DESA_L \
  44818. (BIT_MASK_ACH7_TXBD_DESA_L << BIT_SHIFT_ACH7_TXBD_DESA_L)
  44819. #define BIT_CLEAR_ACH7_TXBD_DESA_L(x) ((x) & (~BITS_ACH7_TXBD_DESA_L))
  44820. #define BIT_GET_ACH7_TXBD_DESA_L(x) \
  44821. (((x) >> BIT_SHIFT_ACH7_TXBD_DESA_L) & BIT_MASK_ACH7_TXBD_DESA_L)
  44822. #define BIT_SET_ACH7_TXBD_DESA_L(x, v) \
  44823. (BIT_CLEAR_ACH7_TXBD_DESA_L(x) | BIT_ACH7_TXBD_DESA_L(v))
  44824. #endif
  44825. #if (HALMAC_8198F_SUPPORT)
  44826. /* 2 REG_HI15Q_TXBD_IDX (Offset 0x1374) */
  44827. #define BIT_SHIFT_HI15Q_HW_IDX 16
  44828. #define BIT_MASK_HI15Q_HW_IDX 0xfff
  44829. #define BIT_HI15Q_HW_IDX(x) \
  44830. (((x) & BIT_MASK_HI15Q_HW_IDX) << BIT_SHIFT_HI15Q_HW_IDX)
  44831. #define BITS_HI15Q_HW_IDX (BIT_MASK_HI15Q_HW_IDX << BIT_SHIFT_HI15Q_HW_IDX)
  44832. #define BIT_CLEAR_HI15Q_HW_IDX(x) ((x) & (~BITS_HI15Q_HW_IDX))
  44833. #define BIT_GET_HI15Q_HW_IDX(x) \
  44834. (((x) >> BIT_SHIFT_HI15Q_HW_IDX) & BIT_MASK_HI15Q_HW_IDX)
  44835. #define BIT_SET_HI15Q_HW_IDX(x, v) \
  44836. (BIT_CLEAR_HI15Q_HW_IDX(x) | BIT_HI15Q_HW_IDX(v))
  44837. #define BIT_SHIFT_HI15Q_HOST_IDX 0
  44838. #define BIT_MASK_HI15Q_HOST_IDX 0xfff
  44839. #define BIT_HI15Q_HOST_IDX(x) \
  44840. (((x) & BIT_MASK_HI15Q_HOST_IDX) << BIT_SHIFT_HI15Q_HOST_IDX)
  44841. #define BITS_HI15Q_HOST_IDX \
  44842. (BIT_MASK_HI15Q_HOST_IDX << BIT_SHIFT_HI15Q_HOST_IDX)
  44843. #define BIT_CLEAR_HI15Q_HOST_IDX(x) ((x) & (~BITS_HI15Q_HOST_IDX))
  44844. #define BIT_GET_HI15Q_HOST_IDX(x) \
  44845. (((x) >> BIT_SHIFT_HI15Q_HOST_IDX) & BIT_MASK_HI15Q_HOST_IDX)
  44846. #define BIT_SET_HI15Q_HOST_IDX(x, v) \
  44847. (BIT_CLEAR_HI15Q_HOST_IDX(x) | BIT_HI15Q_HOST_IDX(v))
  44848. #endif
  44849. #if (HALMAC_8814B_SUPPORT)
  44850. /* 2 REG_ACH7_TXBD_DESA_H (Offset 0x1374) */
  44851. #define BIT_SHIFT_ACH7_TXBD_DESA_H 0
  44852. #define BIT_MASK_ACH7_TXBD_DESA_H 0xffffffffL
  44853. #define BIT_ACH7_TXBD_DESA_H(x) \
  44854. (((x) & BIT_MASK_ACH7_TXBD_DESA_H) << BIT_SHIFT_ACH7_TXBD_DESA_H)
  44855. #define BITS_ACH7_TXBD_DESA_H \
  44856. (BIT_MASK_ACH7_TXBD_DESA_H << BIT_SHIFT_ACH7_TXBD_DESA_H)
  44857. #define BIT_CLEAR_ACH7_TXBD_DESA_H(x) ((x) & (~BITS_ACH7_TXBD_DESA_H))
  44858. #define BIT_GET_ACH7_TXBD_DESA_H(x) \
  44859. (((x) >> BIT_SHIFT_ACH7_TXBD_DESA_H) & BIT_MASK_ACH7_TXBD_DESA_H)
  44860. #define BIT_SET_ACH7_TXBD_DESA_H(x, v) \
  44861. (BIT_CLEAR_ACH7_TXBD_DESA_H(x) | BIT_ACH7_TXBD_DESA_H(v))
  44862. #endif
  44863. #if (HALMAC_8198F_SUPPORT)
  44864. /* 2 REG_HI8Q_TXBD_DESA (Offset 0x1378) */
  44865. #define BIT_SHIFT_HI8Q_TXBD_DESA 0
  44866. #define BIT_MASK_HI8Q_TXBD_DESA 0xffffffffffffffffL
  44867. #define BIT_HI8Q_TXBD_DESA(x) \
  44868. (((x) & BIT_MASK_HI8Q_TXBD_DESA) << BIT_SHIFT_HI8Q_TXBD_DESA)
  44869. #define BITS_HI8Q_TXBD_DESA \
  44870. (BIT_MASK_HI8Q_TXBD_DESA << BIT_SHIFT_HI8Q_TXBD_DESA)
  44871. #define BIT_CLEAR_HI8Q_TXBD_DESA(x) ((x) & (~BITS_HI8Q_TXBD_DESA))
  44872. #define BIT_GET_HI8Q_TXBD_DESA(x) \
  44873. (((x) >> BIT_SHIFT_HI8Q_TXBD_DESA) & BIT_MASK_HI8Q_TXBD_DESA)
  44874. #define BIT_SET_HI8Q_TXBD_DESA(x, v) \
  44875. (BIT_CLEAR_HI8Q_TXBD_DESA(x) | BIT_HI8Q_TXBD_DESA(v))
  44876. #endif
  44877. #if (HALMAC_8814B_SUPPORT)
  44878. /* 2 REG_ACH8_TXBD_DESA_L (Offset 0x1378) */
  44879. #define BIT_SHIFT_ACH8_TXBD_DESA_L 0
  44880. #define BIT_MASK_ACH8_TXBD_DESA_L 0xffffffffL
  44881. #define BIT_ACH8_TXBD_DESA_L(x) \
  44882. (((x) & BIT_MASK_ACH8_TXBD_DESA_L) << BIT_SHIFT_ACH8_TXBD_DESA_L)
  44883. #define BITS_ACH8_TXBD_DESA_L \
  44884. (BIT_MASK_ACH8_TXBD_DESA_L << BIT_SHIFT_ACH8_TXBD_DESA_L)
  44885. #define BIT_CLEAR_ACH8_TXBD_DESA_L(x) ((x) & (~BITS_ACH8_TXBD_DESA_L))
  44886. #define BIT_GET_ACH8_TXBD_DESA_L(x) \
  44887. (((x) >> BIT_SHIFT_ACH8_TXBD_DESA_L) & BIT_MASK_ACH8_TXBD_DESA_L)
  44888. #define BIT_SET_ACH8_TXBD_DESA_L(x, v) \
  44889. (BIT_CLEAR_ACH8_TXBD_DESA_L(x) | BIT_ACH8_TXBD_DESA_L(v))
  44890. #endif
  44891. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  44892. /* 2 REG_CHNL_DMA_CFG_V1 (Offset 0x137C) */
  44893. #define BIT_TXHCI_EN_V1 BIT(26)
  44894. #define BIT_TXHCI_IDLE_V1 BIT(25)
  44895. #define BIT_DMA_PRI_EN_V1 BIT(24)
  44896. #endif
  44897. #if (HALMAC_8814B_SUPPORT)
  44898. /* 2 REG_ACH8_TXBD_DESA_H (Offset 0x137C) */
  44899. #define BIT_SHIFT_ACH8_TXBD_DESA_H 0
  44900. #define BIT_MASK_ACH8_TXBD_DESA_H 0xffffffffL
  44901. #define BIT_ACH8_TXBD_DESA_H(x) \
  44902. (((x) & BIT_MASK_ACH8_TXBD_DESA_H) << BIT_SHIFT_ACH8_TXBD_DESA_H)
  44903. #define BITS_ACH8_TXBD_DESA_H \
  44904. (BIT_MASK_ACH8_TXBD_DESA_H << BIT_SHIFT_ACH8_TXBD_DESA_H)
  44905. #define BIT_CLEAR_ACH8_TXBD_DESA_H(x) ((x) & (~BITS_ACH8_TXBD_DESA_H))
  44906. #define BIT_GET_ACH8_TXBD_DESA_H(x) \
  44907. (((x) >> BIT_SHIFT_ACH8_TXBD_DESA_H) & BIT_MASK_ACH8_TXBD_DESA_H)
  44908. #define BIT_SET_ACH8_TXBD_DESA_H(x, v) \
  44909. (BIT_CLEAR_ACH8_TXBD_DESA_H(x) | BIT_ACH8_TXBD_DESA_H(v))
  44910. #endif
  44911. #if (HALMAC_8198F_SUPPORT)
  44912. /* 2 REG_HI9Q_TXBD_DESA (Offset 0x1380) */
  44913. #define BIT_SHIFT_HI9Q_TXBD_DESA 0
  44914. #define BIT_MASK_HI9Q_TXBD_DESA 0xffffffffffffffffL
  44915. #define BIT_HI9Q_TXBD_DESA(x) \
  44916. (((x) & BIT_MASK_HI9Q_TXBD_DESA) << BIT_SHIFT_HI9Q_TXBD_DESA)
  44917. #define BITS_HI9Q_TXBD_DESA \
  44918. (BIT_MASK_HI9Q_TXBD_DESA << BIT_SHIFT_HI9Q_TXBD_DESA)
  44919. #define BIT_CLEAR_HI9Q_TXBD_DESA(x) ((x) & (~BITS_HI9Q_TXBD_DESA))
  44920. #define BIT_GET_HI9Q_TXBD_DESA(x) \
  44921. (((x) >> BIT_SHIFT_HI9Q_TXBD_DESA) & BIT_MASK_HI9Q_TXBD_DESA)
  44922. #define BIT_SET_HI9Q_TXBD_DESA(x, v) \
  44923. (BIT_CLEAR_HI9Q_TXBD_DESA(x) | BIT_HI9Q_TXBD_DESA(v))
  44924. #endif
  44925. #if (HALMAC_8814B_SUPPORT)
  44926. /* 2 REG_ACH9_TXBD_DESA_L (Offset 0x1380) */
  44927. #define BIT_SHIFT_ACH9_TXBD_DESA_L 0
  44928. #define BIT_MASK_ACH9_TXBD_DESA_L 0xffffffffL
  44929. #define BIT_ACH9_TXBD_DESA_L(x) \
  44930. (((x) & BIT_MASK_ACH9_TXBD_DESA_L) << BIT_SHIFT_ACH9_TXBD_DESA_L)
  44931. #define BITS_ACH9_TXBD_DESA_L \
  44932. (BIT_MASK_ACH9_TXBD_DESA_L << BIT_SHIFT_ACH9_TXBD_DESA_L)
  44933. #define BIT_CLEAR_ACH9_TXBD_DESA_L(x) ((x) & (~BITS_ACH9_TXBD_DESA_L))
  44934. #define BIT_GET_ACH9_TXBD_DESA_L(x) \
  44935. (((x) >> BIT_SHIFT_ACH9_TXBD_DESA_L) & BIT_MASK_ACH9_TXBD_DESA_L)
  44936. #define BIT_SET_ACH9_TXBD_DESA_L(x, v) \
  44937. (BIT_CLEAR_ACH9_TXBD_DESA_L(x) | BIT_ACH9_TXBD_DESA_L(v))
  44938. /* 2 REG_ACH9_TXBD_DESA_H (Offset 0x1384) */
  44939. #define BIT_SHIFT_ACH9_TXBD_DESA_H 0
  44940. #define BIT_MASK_ACH9_TXBD_DESA_H 0xffffffffL
  44941. #define BIT_ACH9_TXBD_DESA_H(x) \
  44942. (((x) & BIT_MASK_ACH9_TXBD_DESA_H) << BIT_SHIFT_ACH9_TXBD_DESA_H)
  44943. #define BITS_ACH9_TXBD_DESA_H \
  44944. (BIT_MASK_ACH9_TXBD_DESA_H << BIT_SHIFT_ACH9_TXBD_DESA_H)
  44945. #define BIT_CLEAR_ACH9_TXBD_DESA_H(x) ((x) & (~BITS_ACH9_TXBD_DESA_H))
  44946. #define BIT_GET_ACH9_TXBD_DESA_H(x) \
  44947. (((x) >> BIT_SHIFT_ACH9_TXBD_DESA_H) & BIT_MASK_ACH9_TXBD_DESA_H)
  44948. #define BIT_SET_ACH9_TXBD_DESA_H(x, v) \
  44949. (BIT_CLEAR_ACH9_TXBD_DESA_H(x) | BIT_ACH9_TXBD_DESA_H(v))
  44950. #endif
  44951. #if (HALMAC_8198F_SUPPORT)
  44952. /* 2 REG_HI10Q_TXBD_DESA (Offset 0x1388) */
  44953. #define BIT_SHIFT_HI10Q_TXBD_DESA 0
  44954. #define BIT_MASK_HI10Q_TXBD_DESA 0xffffffffffffffffL
  44955. #define BIT_HI10Q_TXBD_DESA(x) \
  44956. (((x) & BIT_MASK_HI10Q_TXBD_DESA) << BIT_SHIFT_HI10Q_TXBD_DESA)
  44957. #define BITS_HI10Q_TXBD_DESA \
  44958. (BIT_MASK_HI10Q_TXBD_DESA << BIT_SHIFT_HI10Q_TXBD_DESA)
  44959. #define BIT_CLEAR_HI10Q_TXBD_DESA(x) ((x) & (~BITS_HI10Q_TXBD_DESA))
  44960. #define BIT_GET_HI10Q_TXBD_DESA(x) \
  44961. (((x) >> BIT_SHIFT_HI10Q_TXBD_DESA) & BIT_MASK_HI10Q_TXBD_DESA)
  44962. #define BIT_SET_HI10Q_TXBD_DESA(x, v) \
  44963. (BIT_CLEAR_HI10Q_TXBD_DESA(x) | BIT_HI10Q_TXBD_DESA(v))
  44964. #endif
  44965. #if (HALMAC_8814B_SUPPORT)
  44966. /* 2 REG_ACH10_TXBD_DESA_L (Offset 0x1388) */
  44967. #define BIT_SHIFT_ACH10_TXBD_DESA_L 0
  44968. #define BIT_MASK_ACH10_TXBD_DESA_L 0xffffffffL
  44969. #define BIT_ACH10_TXBD_DESA_L(x) \
  44970. (((x) & BIT_MASK_ACH10_TXBD_DESA_L) << BIT_SHIFT_ACH10_TXBD_DESA_L)
  44971. #define BITS_ACH10_TXBD_DESA_L \
  44972. (BIT_MASK_ACH10_TXBD_DESA_L << BIT_SHIFT_ACH10_TXBD_DESA_L)
  44973. #define BIT_CLEAR_ACH10_TXBD_DESA_L(x) ((x) & (~BITS_ACH10_TXBD_DESA_L))
  44974. #define BIT_GET_ACH10_TXBD_DESA_L(x) \
  44975. (((x) >> BIT_SHIFT_ACH10_TXBD_DESA_L) & BIT_MASK_ACH10_TXBD_DESA_L)
  44976. #define BIT_SET_ACH10_TXBD_DESA_L(x, v) \
  44977. (BIT_CLEAR_ACH10_TXBD_DESA_L(x) | BIT_ACH10_TXBD_DESA_L(v))
  44978. /* 2 REG_ACH10_TXBD_DESA_H (Offset 0x138C) */
  44979. #define BIT_SHIFT_ACH10_TXBD_DESA_H 0
  44980. #define BIT_MASK_ACH10_TXBD_DESA_H 0xffffffffL
  44981. #define BIT_ACH10_TXBD_DESA_H(x) \
  44982. (((x) & BIT_MASK_ACH10_TXBD_DESA_H) << BIT_SHIFT_ACH10_TXBD_DESA_H)
  44983. #define BITS_ACH10_TXBD_DESA_H \
  44984. (BIT_MASK_ACH10_TXBD_DESA_H << BIT_SHIFT_ACH10_TXBD_DESA_H)
  44985. #define BIT_CLEAR_ACH10_TXBD_DESA_H(x) ((x) & (~BITS_ACH10_TXBD_DESA_H))
  44986. #define BIT_GET_ACH10_TXBD_DESA_H(x) \
  44987. (((x) >> BIT_SHIFT_ACH10_TXBD_DESA_H) & BIT_MASK_ACH10_TXBD_DESA_H)
  44988. #define BIT_SET_ACH10_TXBD_DESA_H(x, v) \
  44989. (BIT_CLEAR_ACH10_TXBD_DESA_H(x) | BIT_ACH10_TXBD_DESA_H(v))
  44990. #endif
  44991. #if (HALMAC_8198F_SUPPORT)
  44992. /* 2 REG_HI11Q_TXBD_DESA (Offset 0x1390) */
  44993. #define BIT_SHIFT_HI11Q_TXBD_DESA 0
  44994. #define BIT_MASK_HI11Q_TXBD_DESA 0xffffffffffffffffL
  44995. #define BIT_HI11Q_TXBD_DESA(x) \
  44996. (((x) & BIT_MASK_HI11Q_TXBD_DESA) << BIT_SHIFT_HI11Q_TXBD_DESA)
  44997. #define BITS_HI11Q_TXBD_DESA \
  44998. (BIT_MASK_HI11Q_TXBD_DESA << BIT_SHIFT_HI11Q_TXBD_DESA)
  44999. #define BIT_CLEAR_HI11Q_TXBD_DESA(x) ((x) & (~BITS_HI11Q_TXBD_DESA))
  45000. #define BIT_GET_HI11Q_TXBD_DESA(x) \
  45001. (((x) >> BIT_SHIFT_HI11Q_TXBD_DESA) & BIT_MASK_HI11Q_TXBD_DESA)
  45002. #define BIT_SET_HI11Q_TXBD_DESA(x, v) \
  45003. (BIT_CLEAR_HI11Q_TXBD_DESA(x) | BIT_HI11Q_TXBD_DESA(v))
  45004. #endif
  45005. #if (HALMAC_8814B_SUPPORT)
  45006. /* 2 REG_ACH11_TXBD_DESA_L (Offset 0x1390) */
  45007. #define BIT_SHIFT_ACH11_TXBD_DESA_L 0
  45008. #define BIT_MASK_ACH11_TXBD_DESA_L 0xffffffffL
  45009. #define BIT_ACH11_TXBD_DESA_L(x) \
  45010. (((x) & BIT_MASK_ACH11_TXBD_DESA_L) << BIT_SHIFT_ACH11_TXBD_DESA_L)
  45011. #define BITS_ACH11_TXBD_DESA_L \
  45012. (BIT_MASK_ACH11_TXBD_DESA_L << BIT_SHIFT_ACH11_TXBD_DESA_L)
  45013. #define BIT_CLEAR_ACH11_TXBD_DESA_L(x) ((x) & (~BITS_ACH11_TXBD_DESA_L))
  45014. #define BIT_GET_ACH11_TXBD_DESA_L(x) \
  45015. (((x) >> BIT_SHIFT_ACH11_TXBD_DESA_L) & BIT_MASK_ACH11_TXBD_DESA_L)
  45016. #define BIT_SET_ACH11_TXBD_DESA_L(x, v) \
  45017. (BIT_CLEAR_ACH11_TXBD_DESA_L(x) | BIT_ACH11_TXBD_DESA_L(v))
  45018. /* 2 REG_ACH11_TXBD_DESA_H (Offset 0x1394) */
  45019. #define BIT_SHIFT_ACH11_TXBD_DESA_H 0
  45020. #define BIT_MASK_ACH11_TXBD_DESA_H 0xffffffffL
  45021. #define BIT_ACH11_TXBD_DESA_H(x) \
  45022. (((x) & BIT_MASK_ACH11_TXBD_DESA_H) << BIT_SHIFT_ACH11_TXBD_DESA_H)
  45023. #define BITS_ACH11_TXBD_DESA_H \
  45024. (BIT_MASK_ACH11_TXBD_DESA_H << BIT_SHIFT_ACH11_TXBD_DESA_H)
  45025. #define BIT_CLEAR_ACH11_TXBD_DESA_H(x) ((x) & (~BITS_ACH11_TXBD_DESA_H))
  45026. #define BIT_GET_ACH11_TXBD_DESA_H(x) \
  45027. (((x) >> BIT_SHIFT_ACH11_TXBD_DESA_H) & BIT_MASK_ACH11_TXBD_DESA_H)
  45028. #define BIT_SET_ACH11_TXBD_DESA_H(x, v) \
  45029. (BIT_CLEAR_ACH11_TXBD_DESA_H(x) | BIT_ACH11_TXBD_DESA_H(v))
  45030. #endif
  45031. #if (HALMAC_8198F_SUPPORT)
  45032. /* 2 REG_HI12Q_TXBD_DESA (Offset 0x1398) */
  45033. #define BIT_SHIFT_HI12Q_TXBD_DESA 0
  45034. #define BIT_MASK_HI12Q_TXBD_DESA 0xffffffffffffffffL
  45035. #define BIT_HI12Q_TXBD_DESA(x) \
  45036. (((x) & BIT_MASK_HI12Q_TXBD_DESA) << BIT_SHIFT_HI12Q_TXBD_DESA)
  45037. #define BITS_HI12Q_TXBD_DESA \
  45038. (BIT_MASK_HI12Q_TXBD_DESA << BIT_SHIFT_HI12Q_TXBD_DESA)
  45039. #define BIT_CLEAR_HI12Q_TXBD_DESA(x) ((x) & (~BITS_HI12Q_TXBD_DESA))
  45040. #define BIT_GET_HI12Q_TXBD_DESA(x) \
  45041. (((x) >> BIT_SHIFT_HI12Q_TXBD_DESA) & BIT_MASK_HI12Q_TXBD_DESA)
  45042. #define BIT_SET_HI12Q_TXBD_DESA(x, v) \
  45043. (BIT_CLEAR_HI12Q_TXBD_DESA(x) | BIT_HI12Q_TXBD_DESA(v))
  45044. #endif
  45045. #if (HALMAC_8814B_SUPPORT)
  45046. /* 2 REG_ACH12_TXBD_DESA_L (Offset 0x1398) */
  45047. #define BIT_SHIFT_ACH12_TXBD_DESA_L 0
  45048. #define BIT_MASK_ACH12_TXBD_DESA_L 0xffffffffL
  45049. #define BIT_ACH12_TXBD_DESA_L(x) \
  45050. (((x) & BIT_MASK_ACH12_TXBD_DESA_L) << BIT_SHIFT_ACH12_TXBD_DESA_L)
  45051. #define BITS_ACH12_TXBD_DESA_L \
  45052. (BIT_MASK_ACH12_TXBD_DESA_L << BIT_SHIFT_ACH12_TXBD_DESA_L)
  45053. #define BIT_CLEAR_ACH12_TXBD_DESA_L(x) ((x) & (~BITS_ACH12_TXBD_DESA_L))
  45054. #define BIT_GET_ACH12_TXBD_DESA_L(x) \
  45055. (((x) >> BIT_SHIFT_ACH12_TXBD_DESA_L) & BIT_MASK_ACH12_TXBD_DESA_L)
  45056. #define BIT_SET_ACH12_TXBD_DESA_L(x, v) \
  45057. (BIT_CLEAR_ACH12_TXBD_DESA_L(x) | BIT_ACH12_TXBD_DESA_L(v))
  45058. /* 2 REG_ACH12_TXBD_DESA_H (Offset 0x139C) */
  45059. #define BIT_SHIFT_ACH12_TXBD_DESA_H 0
  45060. #define BIT_MASK_ACH12_TXBD_DESA_H 0xffffffffL
  45061. #define BIT_ACH12_TXBD_DESA_H(x) \
  45062. (((x) & BIT_MASK_ACH12_TXBD_DESA_H) << BIT_SHIFT_ACH12_TXBD_DESA_H)
  45063. #define BITS_ACH12_TXBD_DESA_H \
  45064. (BIT_MASK_ACH12_TXBD_DESA_H << BIT_SHIFT_ACH12_TXBD_DESA_H)
  45065. #define BIT_CLEAR_ACH12_TXBD_DESA_H(x) ((x) & (~BITS_ACH12_TXBD_DESA_H))
  45066. #define BIT_GET_ACH12_TXBD_DESA_H(x) \
  45067. (((x) >> BIT_SHIFT_ACH12_TXBD_DESA_H) & BIT_MASK_ACH12_TXBD_DESA_H)
  45068. #define BIT_SET_ACH12_TXBD_DESA_H(x, v) \
  45069. (BIT_CLEAR_ACH12_TXBD_DESA_H(x) | BIT_ACH12_TXBD_DESA_H(v))
  45070. #endif
  45071. #if (HALMAC_8198F_SUPPORT)
  45072. /* 2 REG_HI13Q_TXBD_DESA (Offset 0x13A0) */
  45073. #define BIT_SHIFT_HI13Q_TXBD_DESA 0
  45074. #define BIT_MASK_HI13Q_TXBD_DESA 0xffffffffffffffffL
  45075. #define BIT_HI13Q_TXBD_DESA(x) \
  45076. (((x) & BIT_MASK_HI13Q_TXBD_DESA) << BIT_SHIFT_HI13Q_TXBD_DESA)
  45077. #define BITS_HI13Q_TXBD_DESA \
  45078. (BIT_MASK_HI13Q_TXBD_DESA << BIT_SHIFT_HI13Q_TXBD_DESA)
  45079. #define BIT_CLEAR_HI13Q_TXBD_DESA(x) ((x) & (~BITS_HI13Q_TXBD_DESA))
  45080. #define BIT_GET_HI13Q_TXBD_DESA(x) \
  45081. (((x) >> BIT_SHIFT_HI13Q_TXBD_DESA) & BIT_MASK_HI13Q_TXBD_DESA)
  45082. #define BIT_SET_HI13Q_TXBD_DESA(x, v) \
  45083. (BIT_CLEAR_HI13Q_TXBD_DESA(x) | BIT_HI13Q_TXBD_DESA(v))
  45084. #endif
  45085. #if (HALMAC_8814B_SUPPORT)
  45086. /* 2 REG_ACH13_TXBD_DESA_L (Offset 0x13A0) */
  45087. #define BIT_SHIFT_ACH13_TXBD_DESA_L 0
  45088. #define BIT_MASK_ACH13_TXBD_DESA_L 0xffffffffL
  45089. #define BIT_ACH13_TXBD_DESA_L(x) \
  45090. (((x) & BIT_MASK_ACH13_TXBD_DESA_L) << BIT_SHIFT_ACH13_TXBD_DESA_L)
  45091. #define BITS_ACH13_TXBD_DESA_L \
  45092. (BIT_MASK_ACH13_TXBD_DESA_L << BIT_SHIFT_ACH13_TXBD_DESA_L)
  45093. #define BIT_CLEAR_ACH13_TXBD_DESA_L(x) ((x) & (~BITS_ACH13_TXBD_DESA_L))
  45094. #define BIT_GET_ACH13_TXBD_DESA_L(x) \
  45095. (((x) >> BIT_SHIFT_ACH13_TXBD_DESA_L) & BIT_MASK_ACH13_TXBD_DESA_L)
  45096. #define BIT_SET_ACH13_TXBD_DESA_L(x, v) \
  45097. (BIT_CLEAR_ACH13_TXBD_DESA_L(x) | BIT_ACH13_TXBD_DESA_L(v))
  45098. /* 2 REG_ACH13_TXBD_DESA_H (Offset 0x13A4) */
  45099. #define BIT_SHIFT_ACH13_TXBD_DESA_H 0
  45100. #define BIT_MASK_ACH13_TXBD_DESA_H 0xffffffffL
  45101. #define BIT_ACH13_TXBD_DESA_H(x) \
  45102. (((x) & BIT_MASK_ACH13_TXBD_DESA_H) << BIT_SHIFT_ACH13_TXBD_DESA_H)
  45103. #define BITS_ACH13_TXBD_DESA_H \
  45104. (BIT_MASK_ACH13_TXBD_DESA_H << BIT_SHIFT_ACH13_TXBD_DESA_H)
  45105. #define BIT_CLEAR_ACH13_TXBD_DESA_H(x) ((x) & (~BITS_ACH13_TXBD_DESA_H))
  45106. #define BIT_GET_ACH13_TXBD_DESA_H(x) \
  45107. (((x) >> BIT_SHIFT_ACH13_TXBD_DESA_H) & BIT_MASK_ACH13_TXBD_DESA_H)
  45108. #define BIT_SET_ACH13_TXBD_DESA_H(x, v) \
  45109. (BIT_CLEAR_ACH13_TXBD_DESA_H(x) | BIT_ACH13_TXBD_DESA_H(v))
  45110. #endif
  45111. #if (HALMAC_8198F_SUPPORT)
  45112. /* 2 REG_HI14Q_TXBD_DESA (Offset 0x13A8) */
  45113. #define BIT_SHIFT_HI14Q_TXBD_DESA 0
  45114. #define BIT_MASK_HI14Q_TXBD_DESA 0xffffffffffffffffL
  45115. #define BIT_HI14Q_TXBD_DESA(x) \
  45116. (((x) & BIT_MASK_HI14Q_TXBD_DESA) << BIT_SHIFT_HI14Q_TXBD_DESA)
  45117. #define BITS_HI14Q_TXBD_DESA \
  45118. (BIT_MASK_HI14Q_TXBD_DESA << BIT_SHIFT_HI14Q_TXBD_DESA)
  45119. #define BIT_CLEAR_HI14Q_TXBD_DESA(x) ((x) & (~BITS_HI14Q_TXBD_DESA))
  45120. #define BIT_GET_HI14Q_TXBD_DESA(x) \
  45121. (((x) >> BIT_SHIFT_HI14Q_TXBD_DESA) & BIT_MASK_HI14Q_TXBD_DESA)
  45122. #define BIT_SET_HI14Q_TXBD_DESA(x, v) \
  45123. (BIT_CLEAR_HI14Q_TXBD_DESA(x) | BIT_HI14Q_TXBD_DESA(v))
  45124. #endif
  45125. #if (HALMAC_8814B_SUPPORT)
  45126. /* 2 REG_HI0Q_TXBD_DESA_L (Offset 0x13A8) */
  45127. #define BIT_SHIFT_HI0Q_TXBD_DESA_L 0
  45128. #define BIT_MASK_HI0Q_TXBD_DESA_L 0xffffffffL
  45129. #define BIT_HI0Q_TXBD_DESA_L(x) \
  45130. (((x) & BIT_MASK_HI0Q_TXBD_DESA_L) << BIT_SHIFT_HI0Q_TXBD_DESA_L)
  45131. #define BITS_HI0Q_TXBD_DESA_L \
  45132. (BIT_MASK_HI0Q_TXBD_DESA_L << BIT_SHIFT_HI0Q_TXBD_DESA_L)
  45133. #define BIT_CLEAR_HI0Q_TXBD_DESA_L(x) ((x) & (~BITS_HI0Q_TXBD_DESA_L))
  45134. #define BIT_GET_HI0Q_TXBD_DESA_L(x) \
  45135. (((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_L) & BIT_MASK_HI0Q_TXBD_DESA_L)
  45136. #define BIT_SET_HI0Q_TXBD_DESA_L(x, v) \
  45137. (BIT_CLEAR_HI0Q_TXBD_DESA_L(x) | BIT_HI0Q_TXBD_DESA_L(v))
  45138. /* 2 REG_HI0Q_TXBD_DESA_H (Offset 0x13AC) */
  45139. #define BIT_SHIFT_HI0Q_TXBD_DESA_H 0
  45140. #define BIT_MASK_HI0Q_TXBD_DESA_H 0xffffffffL
  45141. #define BIT_HI0Q_TXBD_DESA_H(x) \
  45142. (((x) & BIT_MASK_HI0Q_TXBD_DESA_H) << BIT_SHIFT_HI0Q_TXBD_DESA_H)
  45143. #define BITS_HI0Q_TXBD_DESA_H \
  45144. (BIT_MASK_HI0Q_TXBD_DESA_H << BIT_SHIFT_HI0Q_TXBD_DESA_H)
  45145. #define BIT_CLEAR_HI0Q_TXBD_DESA_H(x) ((x) & (~BITS_HI0Q_TXBD_DESA_H))
  45146. #define BIT_GET_HI0Q_TXBD_DESA_H(x) \
  45147. (((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_H) & BIT_MASK_HI0Q_TXBD_DESA_H)
  45148. #define BIT_SET_HI0Q_TXBD_DESA_H(x, v) \
  45149. (BIT_CLEAR_HI0Q_TXBD_DESA_H(x) | BIT_HI0Q_TXBD_DESA_H(v))
  45150. #endif
  45151. #if (HALMAC_8198F_SUPPORT)
  45152. /* 2 REG_HI15Q_TXBD_DESA (Offset 0x13B0) */
  45153. #define BIT_SHIFT_HI15Q_TXBD_DESA 0
  45154. #define BIT_MASK_HI15Q_TXBD_DESA 0xffffffffffffffffL
  45155. #define BIT_HI15Q_TXBD_DESA(x) \
  45156. (((x) & BIT_MASK_HI15Q_TXBD_DESA) << BIT_SHIFT_HI15Q_TXBD_DESA)
  45157. #define BITS_HI15Q_TXBD_DESA \
  45158. (BIT_MASK_HI15Q_TXBD_DESA << BIT_SHIFT_HI15Q_TXBD_DESA)
  45159. #define BIT_CLEAR_HI15Q_TXBD_DESA(x) ((x) & (~BITS_HI15Q_TXBD_DESA))
  45160. #define BIT_GET_HI15Q_TXBD_DESA(x) \
  45161. (((x) >> BIT_SHIFT_HI15Q_TXBD_DESA) & BIT_MASK_HI15Q_TXBD_DESA)
  45162. #define BIT_SET_HI15Q_TXBD_DESA(x, v) \
  45163. (BIT_CLEAR_HI15Q_TXBD_DESA(x) | BIT_HI15Q_TXBD_DESA(v))
  45164. #endif
  45165. #if (HALMAC_8814B_SUPPORT)
  45166. /* 2 REG_HI1Q_TXBD_DESA_L (Offset 0x13B0) */
  45167. #define BIT_SHIFT_HI1Q_TXBD_DESA_L 0
  45168. #define BIT_MASK_HI1Q_TXBD_DESA_L 0xffffffffL
  45169. #define BIT_HI1Q_TXBD_DESA_L(x) \
  45170. (((x) & BIT_MASK_HI1Q_TXBD_DESA_L) << BIT_SHIFT_HI1Q_TXBD_DESA_L)
  45171. #define BITS_HI1Q_TXBD_DESA_L \
  45172. (BIT_MASK_HI1Q_TXBD_DESA_L << BIT_SHIFT_HI1Q_TXBD_DESA_L)
  45173. #define BIT_CLEAR_HI1Q_TXBD_DESA_L(x) ((x) & (~BITS_HI1Q_TXBD_DESA_L))
  45174. #define BIT_GET_HI1Q_TXBD_DESA_L(x) \
  45175. (((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_L) & BIT_MASK_HI1Q_TXBD_DESA_L)
  45176. #define BIT_SET_HI1Q_TXBD_DESA_L(x, v) \
  45177. (BIT_CLEAR_HI1Q_TXBD_DESA_L(x) | BIT_HI1Q_TXBD_DESA_L(v))
  45178. #endif
  45179. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  45180. /* 2 REG_PCIE_HISR0_V1 (Offset 0x13B4) */
  45181. #define BIT_PRE_TX_ERR_INT BIT(31)
  45182. #define BIT_HISR1_IND BIT(11)
  45183. #define BIT_TXDMAOK_CHANNEL15 BIT(7)
  45184. #define BIT_TXDMAOK_CHANNEL14 BIT(6)
  45185. #define BIT_TXDMAOK_CHANNEL3 BIT(5)
  45186. #define BIT_TXDMAOK_CHANNEL2 BIT(4)
  45187. #define BIT_TXDMAOK_CHANNEL1 BIT(3)
  45188. #define BIT_TXDMAOK_CHANNEL0 BIT(2)
  45189. #endif
  45190. #if (HALMAC_8814B_SUPPORT)
  45191. /* 2 REG_HI1Q_TXBD_DESA_H (Offset 0x13B4) */
  45192. #define BIT_SHIFT_HI1Q_TXBD_DESA_H 0
  45193. #define BIT_MASK_HI1Q_TXBD_DESA_H 0xffffffffL
  45194. #define BIT_HI1Q_TXBD_DESA_H(x) \
  45195. (((x) & BIT_MASK_HI1Q_TXBD_DESA_H) << BIT_SHIFT_HI1Q_TXBD_DESA_H)
  45196. #define BITS_HI1Q_TXBD_DESA_H \
  45197. (BIT_MASK_HI1Q_TXBD_DESA_H << BIT_SHIFT_HI1Q_TXBD_DESA_H)
  45198. #define BIT_CLEAR_HI1Q_TXBD_DESA_H(x) ((x) & (~BITS_HI1Q_TXBD_DESA_H))
  45199. #define BIT_GET_HI1Q_TXBD_DESA_H(x) \
  45200. (((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_H) & BIT_MASK_HI1Q_TXBD_DESA_H)
  45201. #define BIT_SET_HI1Q_TXBD_DESA_H(x, v) \
  45202. (BIT_CLEAR_HI1Q_TXBD_DESA_H(x) | BIT_HI1Q_TXBD_DESA_H(v))
  45203. #endif
  45204. #if (HALMAC_8198F_SUPPORT)
  45205. /* 2 REG_HI8Q_TXBD_NUM (Offset 0x13B8) */
  45206. #define BIT_HI8Q_FLAG BIT(14)
  45207. #define BIT_SHIFT_HI8Q_DESC_MODE 12
  45208. #define BIT_MASK_HI8Q_DESC_MODE 0x3
  45209. #define BIT_HI8Q_DESC_MODE(x) \
  45210. (((x) & BIT_MASK_HI8Q_DESC_MODE) << BIT_SHIFT_HI8Q_DESC_MODE)
  45211. #define BITS_HI8Q_DESC_MODE \
  45212. (BIT_MASK_HI8Q_DESC_MODE << BIT_SHIFT_HI8Q_DESC_MODE)
  45213. #define BIT_CLEAR_HI8Q_DESC_MODE(x) ((x) & (~BITS_HI8Q_DESC_MODE))
  45214. #define BIT_GET_HI8Q_DESC_MODE(x) \
  45215. (((x) >> BIT_SHIFT_HI8Q_DESC_MODE) & BIT_MASK_HI8Q_DESC_MODE)
  45216. #define BIT_SET_HI8Q_DESC_MODE(x, v) \
  45217. (BIT_CLEAR_HI8Q_DESC_MODE(x) | BIT_HI8Q_DESC_MODE(v))
  45218. #define BIT_SHIFT_HI8Q_DESC_NUM 0
  45219. #define BIT_MASK_HI8Q_DESC_NUM 0xfff
  45220. #define BIT_HI8Q_DESC_NUM(x) \
  45221. (((x) & BIT_MASK_HI8Q_DESC_NUM) << BIT_SHIFT_HI8Q_DESC_NUM)
  45222. #define BITS_HI8Q_DESC_NUM (BIT_MASK_HI8Q_DESC_NUM << BIT_SHIFT_HI8Q_DESC_NUM)
  45223. #define BIT_CLEAR_HI8Q_DESC_NUM(x) ((x) & (~BITS_HI8Q_DESC_NUM))
  45224. #define BIT_GET_HI8Q_DESC_NUM(x) \
  45225. (((x) >> BIT_SHIFT_HI8Q_DESC_NUM) & BIT_MASK_HI8Q_DESC_NUM)
  45226. #define BIT_SET_HI8Q_DESC_NUM(x, v) \
  45227. (BIT_CLEAR_HI8Q_DESC_NUM(x) | BIT_HI8Q_DESC_NUM(v))
  45228. #endif
  45229. #if (HALMAC_8814B_SUPPORT)
  45230. /* 2 REG_HI2Q_TXBD_DESA_L (Offset 0x13B8) */
  45231. #define BIT_SHIFT_HI2Q_TXBD_DESA_L 0
  45232. #define BIT_MASK_HI2Q_TXBD_DESA_L 0xffffffffL
  45233. #define BIT_HI2Q_TXBD_DESA_L(x) \
  45234. (((x) & BIT_MASK_HI2Q_TXBD_DESA_L) << BIT_SHIFT_HI2Q_TXBD_DESA_L)
  45235. #define BITS_HI2Q_TXBD_DESA_L \
  45236. (BIT_MASK_HI2Q_TXBD_DESA_L << BIT_SHIFT_HI2Q_TXBD_DESA_L)
  45237. #define BIT_CLEAR_HI2Q_TXBD_DESA_L(x) ((x) & (~BITS_HI2Q_TXBD_DESA_L))
  45238. #define BIT_GET_HI2Q_TXBD_DESA_L(x) \
  45239. (((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_L) & BIT_MASK_HI2Q_TXBD_DESA_L)
  45240. #define BIT_SET_HI2Q_TXBD_DESA_L(x, v) \
  45241. (BIT_CLEAR_HI2Q_TXBD_DESA_L(x) | BIT_HI2Q_TXBD_DESA_L(v))
  45242. #endif
  45243. #if (HALMAC_8198F_SUPPORT)
  45244. /* 2 REG_HI9Q_TXBD_NUM (Offset 0x13BA) */
  45245. #define BIT_HI9Q_FLAG BIT(14)
  45246. #define BIT_SHIFT_HI9Q_DESC_MODE 12
  45247. #define BIT_MASK_HI9Q_DESC_MODE 0x3
  45248. #define BIT_HI9Q_DESC_MODE(x) \
  45249. (((x) & BIT_MASK_HI9Q_DESC_MODE) << BIT_SHIFT_HI9Q_DESC_MODE)
  45250. #define BITS_HI9Q_DESC_MODE \
  45251. (BIT_MASK_HI9Q_DESC_MODE << BIT_SHIFT_HI9Q_DESC_MODE)
  45252. #define BIT_CLEAR_HI9Q_DESC_MODE(x) ((x) & (~BITS_HI9Q_DESC_MODE))
  45253. #define BIT_GET_HI9Q_DESC_MODE(x) \
  45254. (((x) >> BIT_SHIFT_HI9Q_DESC_MODE) & BIT_MASK_HI9Q_DESC_MODE)
  45255. #define BIT_SET_HI9Q_DESC_MODE(x, v) \
  45256. (BIT_CLEAR_HI9Q_DESC_MODE(x) | BIT_HI9Q_DESC_MODE(v))
  45257. #define BIT_SHIFT_HI9Q_DESC_NUM 0
  45258. #define BIT_MASK_HI9Q_DESC_NUM 0xfff
  45259. #define BIT_HI9Q_DESC_NUM(x) \
  45260. (((x) & BIT_MASK_HI9Q_DESC_NUM) << BIT_SHIFT_HI9Q_DESC_NUM)
  45261. #define BITS_HI9Q_DESC_NUM (BIT_MASK_HI9Q_DESC_NUM << BIT_SHIFT_HI9Q_DESC_NUM)
  45262. #define BIT_CLEAR_HI9Q_DESC_NUM(x) ((x) & (~BITS_HI9Q_DESC_NUM))
  45263. #define BIT_GET_HI9Q_DESC_NUM(x) \
  45264. (((x) >> BIT_SHIFT_HI9Q_DESC_NUM) & BIT_MASK_HI9Q_DESC_NUM)
  45265. #define BIT_SET_HI9Q_DESC_NUM(x, v) \
  45266. (BIT_CLEAR_HI9Q_DESC_NUM(x) | BIT_HI9Q_DESC_NUM(v))
  45267. /* 2 REG_HI10Q_TXBD_NUM (Offset 0x13BC) */
  45268. #define BIT_HI10Q_FLAG BIT(14)
  45269. #define BIT_SHIFT_HI10Q_DESC_MODE 12
  45270. #define BIT_MASK_HI10Q_DESC_MODE 0x3
  45271. #define BIT_HI10Q_DESC_MODE(x) \
  45272. (((x) & BIT_MASK_HI10Q_DESC_MODE) << BIT_SHIFT_HI10Q_DESC_MODE)
  45273. #define BITS_HI10Q_DESC_MODE \
  45274. (BIT_MASK_HI10Q_DESC_MODE << BIT_SHIFT_HI10Q_DESC_MODE)
  45275. #define BIT_CLEAR_HI10Q_DESC_MODE(x) ((x) & (~BITS_HI10Q_DESC_MODE))
  45276. #define BIT_GET_HI10Q_DESC_MODE(x) \
  45277. (((x) >> BIT_SHIFT_HI10Q_DESC_MODE) & BIT_MASK_HI10Q_DESC_MODE)
  45278. #define BIT_SET_HI10Q_DESC_MODE(x, v) \
  45279. (BIT_CLEAR_HI10Q_DESC_MODE(x) | BIT_HI10Q_DESC_MODE(v))
  45280. #define BIT_SHIFT_HI10Q_DESC_NUM 0
  45281. #define BIT_MASK_HI10Q_DESC_NUM 0xfff
  45282. #define BIT_HI10Q_DESC_NUM(x) \
  45283. (((x) & BIT_MASK_HI10Q_DESC_NUM) << BIT_SHIFT_HI10Q_DESC_NUM)
  45284. #define BITS_HI10Q_DESC_NUM \
  45285. (BIT_MASK_HI10Q_DESC_NUM << BIT_SHIFT_HI10Q_DESC_NUM)
  45286. #define BIT_CLEAR_HI10Q_DESC_NUM(x) ((x) & (~BITS_HI10Q_DESC_NUM))
  45287. #define BIT_GET_HI10Q_DESC_NUM(x) \
  45288. (((x) >> BIT_SHIFT_HI10Q_DESC_NUM) & BIT_MASK_HI10Q_DESC_NUM)
  45289. #define BIT_SET_HI10Q_DESC_NUM(x, v) \
  45290. (BIT_CLEAR_HI10Q_DESC_NUM(x) | BIT_HI10Q_DESC_NUM(v))
  45291. #endif
  45292. #if (HALMAC_8814B_SUPPORT)
  45293. /* 2 REG_HI2Q_TXBD_DESA_H (Offset 0x13BC) */
  45294. #define BIT_SHIFT_HI2Q_TXBD_DESA_H 0
  45295. #define BIT_MASK_HI2Q_TXBD_DESA_H 0xffffffffL
  45296. #define BIT_HI2Q_TXBD_DESA_H(x) \
  45297. (((x) & BIT_MASK_HI2Q_TXBD_DESA_H) << BIT_SHIFT_HI2Q_TXBD_DESA_H)
  45298. #define BITS_HI2Q_TXBD_DESA_H \
  45299. (BIT_MASK_HI2Q_TXBD_DESA_H << BIT_SHIFT_HI2Q_TXBD_DESA_H)
  45300. #define BIT_CLEAR_HI2Q_TXBD_DESA_H(x) ((x) & (~BITS_HI2Q_TXBD_DESA_H))
  45301. #define BIT_GET_HI2Q_TXBD_DESA_H(x) \
  45302. (((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_H) & BIT_MASK_HI2Q_TXBD_DESA_H)
  45303. #define BIT_SET_HI2Q_TXBD_DESA_H(x, v) \
  45304. (BIT_CLEAR_HI2Q_TXBD_DESA_H(x) | BIT_HI2Q_TXBD_DESA_H(v))
  45305. #endif
  45306. #if (HALMAC_8198F_SUPPORT)
  45307. /* 2 REG_HI11Q_TXBD_NUM (Offset 0x13BE) */
  45308. #define BIT_HI11Q_FLAG BIT(14)
  45309. #define BIT_SHIFT_HI11Q_DESC_MODE 12
  45310. #define BIT_MASK_HI11Q_DESC_MODE 0x3
  45311. #define BIT_HI11Q_DESC_MODE(x) \
  45312. (((x) & BIT_MASK_HI11Q_DESC_MODE) << BIT_SHIFT_HI11Q_DESC_MODE)
  45313. #define BITS_HI11Q_DESC_MODE \
  45314. (BIT_MASK_HI11Q_DESC_MODE << BIT_SHIFT_HI11Q_DESC_MODE)
  45315. #define BIT_CLEAR_HI11Q_DESC_MODE(x) ((x) & (~BITS_HI11Q_DESC_MODE))
  45316. #define BIT_GET_HI11Q_DESC_MODE(x) \
  45317. (((x) >> BIT_SHIFT_HI11Q_DESC_MODE) & BIT_MASK_HI11Q_DESC_MODE)
  45318. #define BIT_SET_HI11Q_DESC_MODE(x, v) \
  45319. (BIT_CLEAR_HI11Q_DESC_MODE(x) | BIT_HI11Q_DESC_MODE(v))
  45320. #define BIT_SHIFT_HI11Q_DESC_NUM 0
  45321. #define BIT_MASK_HI11Q_DESC_NUM 0xfff
  45322. #define BIT_HI11Q_DESC_NUM(x) \
  45323. (((x) & BIT_MASK_HI11Q_DESC_NUM) << BIT_SHIFT_HI11Q_DESC_NUM)
  45324. #define BITS_HI11Q_DESC_NUM \
  45325. (BIT_MASK_HI11Q_DESC_NUM << BIT_SHIFT_HI11Q_DESC_NUM)
  45326. #define BIT_CLEAR_HI11Q_DESC_NUM(x) ((x) & (~BITS_HI11Q_DESC_NUM))
  45327. #define BIT_GET_HI11Q_DESC_NUM(x) \
  45328. (((x) >> BIT_SHIFT_HI11Q_DESC_NUM) & BIT_MASK_HI11Q_DESC_NUM)
  45329. #define BIT_SET_HI11Q_DESC_NUM(x, v) \
  45330. (BIT_CLEAR_HI11Q_DESC_NUM(x) | BIT_HI11Q_DESC_NUM(v))
  45331. /* 2 REG_HI12Q_TXBD_NUM (Offset 0x13C0) */
  45332. #define BIT_HI12Q_FLAG BIT(14)
  45333. #define BIT_SHIFT_HI12Q_DESC_MODE 12
  45334. #define BIT_MASK_HI12Q_DESC_MODE 0x3
  45335. #define BIT_HI12Q_DESC_MODE(x) \
  45336. (((x) & BIT_MASK_HI12Q_DESC_MODE) << BIT_SHIFT_HI12Q_DESC_MODE)
  45337. #define BITS_HI12Q_DESC_MODE \
  45338. (BIT_MASK_HI12Q_DESC_MODE << BIT_SHIFT_HI12Q_DESC_MODE)
  45339. #define BIT_CLEAR_HI12Q_DESC_MODE(x) ((x) & (~BITS_HI12Q_DESC_MODE))
  45340. #define BIT_GET_HI12Q_DESC_MODE(x) \
  45341. (((x) >> BIT_SHIFT_HI12Q_DESC_MODE) & BIT_MASK_HI12Q_DESC_MODE)
  45342. #define BIT_SET_HI12Q_DESC_MODE(x, v) \
  45343. (BIT_CLEAR_HI12Q_DESC_MODE(x) | BIT_HI12Q_DESC_MODE(v))
  45344. #define BIT_SHIFT_HI12Q_DESC_NUM 0
  45345. #define BIT_MASK_HI12Q_DESC_NUM 0xfff
  45346. #define BIT_HI12Q_DESC_NUM(x) \
  45347. (((x) & BIT_MASK_HI12Q_DESC_NUM) << BIT_SHIFT_HI12Q_DESC_NUM)
  45348. #define BITS_HI12Q_DESC_NUM \
  45349. (BIT_MASK_HI12Q_DESC_NUM << BIT_SHIFT_HI12Q_DESC_NUM)
  45350. #define BIT_CLEAR_HI12Q_DESC_NUM(x) ((x) & (~BITS_HI12Q_DESC_NUM))
  45351. #define BIT_GET_HI12Q_DESC_NUM(x) \
  45352. (((x) >> BIT_SHIFT_HI12Q_DESC_NUM) & BIT_MASK_HI12Q_DESC_NUM)
  45353. #define BIT_SET_HI12Q_DESC_NUM(x, v) \
  45354. (BIT_CLEAR_HI12Q_DESC_NUM(x) | BIT_HI12Q_DESC_NUM(v))
  45355. #endif
  45356. #if (HALMAC_8814B_SUPPORT)
  45357. /* 2 REG_HI3Q_TXBD_DESA_L (Offset 0x13C0) */
  45358. #define BIT_SHIFT_HI3Q_TXBD_DESA_L 0
  45359. #define BIT_MASK_HI3Q_TXBD_DESA_L 0xffffffffL
  45360. #define BIT_HI3Q_TXBD_DESA_L(x) \
  45361. (((x) & BIT_MASK_HI3Q_TXBD_DESA_L) << BIT_SHIFT_HI3Q_TXBD_DESA_L)
  45362. #define BITS_HI3Q_TXBD_DESA_L \
  45363. (BIT_MASK_HI3Q_TXBD_DESA_L << BIT_SHIFT_HI3Q_TXBD_DESA_L)
  45364. #define BIT_CLEAR_HI3Q_TXBD_DESA_L(x) ((x) & (~BITS_HI3Q_TXBD_DESA_L))
  45365. #define BIT_GET_HI3Q_TXBD_DESA_L(x) \
  45366. (((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_L) & BIT_MASK_HI3Q_TXBD_DESA_L)
  45367. #define BIT_SET_HI3Q_TXBD_DESA_L(x, v) \
  45368. (BIT_CLEAR_HI3Q_TXBD_DESA_L(x) | BIT_HI3Q_TXBD_DESA_L(v))
  45369. #endif
  45370. #if (HALMAC_8198F_SUPPORT)
  45371. /* 2 REG_HI13Q_TXBD_NUM (Offset 0x13C2) */
  45372. #define BIT_HI13Q_FLAG BIT(14)
  45373. #define BIT_SHIFT_HI13Q_DESC_MODE 12
  45374. #define BIT_MASK_HI13Q_DESC_MODE 0x3
  45375. #define BIT_HI13Q_DESC_MODE(x) \
  45376. (((x) & BIT_MASK_HI13Q_DESC_MODE) << BIT_SHIFT_HI13Q_DESC_MODE)
  45377. #define BITS_HI13Q_DESC_MODE \
  45378. (BIT_MASK_HI13Q_DESC_MODE << BIT_SHIFT_HI13Q_DESC_MODE)
  45379. #define BIT_CLEAR_HI13Q_DESC_MODE(x) ((x) & (~BITS_HI13Q_DESC_MODE))
  45380. #define BIT_GET_HI13Q_DESC_MODE(x) \
  45381. (((x) >> BIT_SHIFT_HI13Q_DESC_MODE) & BIT_MASK_HI13Q_DESC_MODE)
  45382. #define BIT_SET_HI13Q_DESC_MODE(x, v) \
  45383. (BIT_CLEAR_HI13Q_DESC_MODE(x) | BIT_HI13Q_DESC_MODE(v))
  45384. #define BIT_SHIFT_HI13Q_DESC_NUM 0
  45385. #define BIT_MASK_HI13Q_DESC_NUM 0xfff
  45386. #define BIT_HI13Q_DESC_NUM(x) \
  45387. (((x) & BIT_MASK_HI13Q_DESC_NUM) << BIT_SHIFT_HI13Q_DESC_NUM)
  45388. #define BITS_HI13Q_DESC_NUM \
  45389. (BIT_MASK_HI13Q_DESC_NUM << BIT_SHIFT_HI13Q_DESC_NUM)
  45390. #define BIT_CLEAR_HI13Q_DESC_NUM(x) ((x) & (~BITS_HI13Q_DESC_NUM))
  45391. #define BIT_GET_HI13Q_DESC_NUM(x) \
  45392. (((x) >> BIT_SHIFT_HI13Q_DESC_NUM) & BIT_MASK_HI13Q_DESC_NUM)
  45393. #define BIT_SET_HI13Q_DESC_NUM(x, v) \
  45394. (BIT_CLEAR_HI13Q_DESC_NUM(x) | BIT_HI13Q_DESC_NUM(v))
  45395. /* 2 REG_HI14Q_TXBD_NUM (Offset 0x13C4) */
  45396. #define BIT_HI14Q_FLAG BIT(14)
  45397. #define BIT_SHIFT_HI14Q_DESC_MODE 12
  45398. #define BIT_MASK_HI14Q_DESC_MODE 0x3
  45399. #define BIT_HI14Q_DESC_MODE(x) \
  45400. (((x) & BIT_MASK_HI14Q_DESC_MODE) << BIT_SHIFT_HI14Q_DESC_MODE)
  45401. #define BITS_HI14Q_DESC_MODE \
  45402. (BIT_MASK_HI14Q_DESC_MODE << BIT_SHIFT_HI14Q_DESC_MODE)
  45403. #define BIT_CLEAR_HI14Q_DESC_MODE(x) ((x) & (~BITS_HI14Q_DESC_MODE))
  45404. #define BIT_GET_HI14Q_DESC_MODE(x) \
  45405. (((x) >> BIT_SHIFT_HI14Q_DESC_MODE) & BIT_MASK_HI14Q_DESC_MODE)
  45406. #define BIT_SET_HI14Q_DESC_MODE(x, v) \
  45407. (BIT_CLEAR_HI14Q_DESC_MODE(x) | BIT_HI14Q_DESC_MODE(v))
  45408. #define BIT_SHIFT_HI14Q_DESC_NUM 0
  45409. #define BIT_MASK_HI14Q_DESC_NUM 0xfff
  45410. #define BIT_HI14Q_DESC_NUM(x) \
  45411. (((x) & BIT_MASK_HI14Q_DESC_NUM) << BIT_SHIFT_HI14Q_DESC_NUM)
  45412. #define BITS_HI14Q_DESC_NUM \
  45413. (BIT_MASK_HI14Q_DESC_NUM << BIT_SHIFT_HI14Q_DESC_NUM)
  45414. #define BIT_CLEAR_HI14Q_DESC_NUM(x) ((x) & (~BITS_HI14Q_DESC_NUM))
  45415. #define BIT_GET_HI14Q_DESC_NUM(x) \
  45416. (((x) >> BIT_SHIFT_HI14Q_DESC_NUM) & BIT_MASK_HI14Q_DESC_NUM)
  45417. #define BIT_SET_HI14Q_DESC_NUM(x, v) \
  45418. (BIT_CLEAR_HI14Q_DESC_NUM(x) | BIT_HI14Q_DESC_NUM(v))
  45419. #endif
  45420. #if (HALMAC_8814B_SUPPORT)
  45421. /* 2 REG_HI3Q_TXBD_DESA_H (Offset 0x13C4) */
  45422. #define BIT_SHIFT_HI3Q_TXBD_DESA_H 0
  45423. #define BIT_MASK_HI3Q_TXBD_DESA_H 0xffffffffL
  45424. #define BIT_HI3Q_TXBD_DESA_H(x) \
  45425. (((x) & BIT_MASK_HI3Q_TXBD_DESA_H) << BIT_SHIFT_HI3Q_TXBD_DESA_H)
  45426. #define BITS_HI3Q_TXBD_DESA_H \
  45427. (BIT_MASK_HI3Q_TXBD_DESA_H << BIT_SHIFT_HI3Q_TXBD_DESA_H)
  45428. #define BIT_CLEAR_HI3Q_TXBD_DESA_H(x) ((x) & (~BITS_HI3Q_TXBD_DESA_H))
  45429. #define BIT_GET_HI3Q_TXBD_DESA_H(x) \
  45430. (((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_H) & BIT_MASK_HI3Q_TXBD_DESA_H)
  45431. #define BIT_SET_HI3Q_TXBD_DESA_H(x, v) \
  45432. (BIT_CLEAR_HI3Q_TXBD_DESA_H(x) | BIT_HI3Q_TXBD_DESA_H(v))
  45433. #endif
  45434. #if (HALMAC_8198F_SUPPORT)
  45435. /* 2 REG_HI15Q_TXBD_NUM (Offset 0x13C6) */
  45436. #define BIT_HI15Q_FLAG BIT(14)
  45437. #define BIT_SHIFT_HI15Q_DESC_MODE 12
  45438. #define BIT_MASK_HI15Q_DESC_MODE 0x3
  45439. #define BIT_HI15Q_DESC_MODE(x) \
  45440. (((x) & BIT_MASK_HI15Q_DESC_MODE) << BIT_SHIFT_HI15Q_DESC_MODE)
  45441. #define BITS_HI15Q_DESC_MODE \
  45442. (BIT_MASK_HI15Q_DESC_MODE << BIT_SHIFT_HI15Q_DESC_MODE)
  45443. #define BIT_CLEAR_HI15Q_DESC_MODE(x) ((x) & (~BITS_HI15Q_DESC_MODE))
  45444. #define BIT_GET_HI15Q_DESC_MODE(x) \
  45445. (((x) >> BIT_SHIFT_HI15Q_DESC_MODE) & BIT_MASK_HI15Q_DESC_MODE)
  45446. #define BIT_SET_HI15Q_DESC_MODE(x, v) \
  45447. (BIT_CLEAR_HI15Q_DESC_MODE(x) | BIT_HI15Q_DESC_MODE(v))
  45448. #define BIT_SHIFT_HI15Q_DESC_NUM 0
  45449. #define BIT_MASK_HI15Q_DESC_NUM 0xfff
  45450. #define BIT_HI15Q_DESC_NUM(x) \
  45451. (((x) & BIT_MASK_HI15Q_DESC_NUM) << BIT_SHIFT_HI15Q_DESC_NUM)
  45452. #define BITS_HI15Q_DESC_NUM \
  45453. (BIT_MASK_HI15Q_DESC_NUM << BIT_SHIFT_HI15Q_DESC_NUM)
  45454. #define BIT_CLEAR_HI15Q_DESC_NUM(x) ((x) & (~BITS_HI15Q_DESC_NUM))
  45455. #define BIT_GET_HI15Q_DESC_NUM(x) \
  45456. (((x) >> BIT_SHIFT_HI15Q_DESC_NUM) & BIT_MASK_HI15Q_DESC_NUM)
  45457. #define BIT_SET_HI15Q_DESC_NUM(x, v) \
  45458. (BIT_CLEAR_HI15Q_DESC_NUM(x) | BIT_HI15Q_DESC_NUM(v))
  45459. /* 2 REG_HIQ_DMA_STOP (Offset 0x13C8) */
  45460. #define BIT_STOP_HI15Q BIT(7)
  45461. #define BIT_STOP_HI14Q BIT(6)
  45462. #define BIT_STOP_HI13Q BIT(5)
  45463. #define BIT_STOP_HI12Q BIT(4)
  45464. #define BIT_STOP_HI11Q BIT(3)
  45465. #define BIT_STOP_HI10Q BIT(2)
  45466. #define BIT_STOP_HI9Q BIT(1)
  45467. #define BIT_STOP_HI8Q BIT(0)
  45468. #endif
  45469. #if (HALMAC_8814B_SUPPORT)
  45470. /* 2 REG_HI4Q_TXBD_DESA_L (Offset 0x13C8) */
  45471. #define BIT_SHIFT_HI4Q_TXBD_DESA_L 0
  45472. #define BIT_MASK_HI4Q_TXBD_DESA_L 0xffffffffL
  45473. #define BIT_HI4Q_TXBD_DESA_L(x) \
  45474. (((x) & BIT_MASK_HI4Q_TXBD_DESA_L) << BIT_SHIFT_HI4Q_TXBD_DESA_L)
  45475. #define BITS_HI4Q_TXBD_DESA_L \
  45476. (BIT_MASK_HI4Q_TXBD_DESA_L << BIT_SHIFT_HI4Q_TXBD_DESA_L)
  45477. #define BIT_CLEAR_HI4Q_TXBD_DESA_L(x) ((x) & (~BITS_HI4Q_TXBD_DESA_L))
  45478. #define BIT_GET_HI4Q_TXBD_DESA_L(x) \
  45479. (((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_L) & BIT_MASK_HI4Q_TXBD_DESA_L)
  45480. #define BIT_SET_HI4Q_TXBD_DESA_L(x, v) \
  45481. (BIT_CLEAR_HI4Q_TXBD_DESA_L(x) | BIT_HI4Q_TXBD_DESA_L(v))
  45482. /* 2 REG_HI4Q_TXBD_DESA_H (Offset 0x13CC) */
  45483. #define BIT_SHIFT_HI4Q_TXBD_DESA_H 0
  45484. #define BIT_MASK_HI4Q_TXBD_DESA_H 0xffffffffL
  45485. #define BIT_HI4Q_TXBD_DESA_H(x) \
  45486. (((x) & BIT_MASK_HI4Q_TXBD_DESA_H) << BIT_SHIFT_HI4Q_TXBD_DESA_H)
  45487. #define BITS_HI4Q_TXBD_DESA_H \
  45488. (BIT_MASK_HI4Q_TXBD_DESA_H << BIT_SHIFT_HI4Q_TXBD_DESA_H)
  45489. #define BIT_CLEAR_HI4Q_TXBD_DESA_H(x) ((x) & (~BITS_HI4Q_TXBD_DESA_H))
  45490. #define BIT_GET_HI4Q_TXBD_DESA_H(x) \
  45491. (((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_H) & BIT_MASK_HI4Q_TXBD_DESA_H)
  45492. #define BIT_SET_HI4Q_TXBD_DESA_H(x, v) \
  45493. (BIT_CLEAR_HI4Q_TXBD_DESA_H(x) | BIT_HI4Q_TXBD_DESA_H(v))
  45494. /* 2 REG_HI5Q_TXBD_DESA_L (Offset 0x13D0) */
  45495. #define BIT_SHIFT_HI5Q_TXBD_DESA_L 0
  45496. #define BIT_MASK_HI5Q_TXBD_DESA_L 0xffffffffL
  45497. #define BIT_HI5Q_TXBD_DESA_L(x) \
  45498. (((x) & BIT_MASK_HI5Q_TXBD_DESA_L) << BIT_SHIFT_HI5Q_TXBD_DESA_L)
  45499. #define BITS_HI5Q_TXBD_DESA_L \
  45500. (BIT_MASK_HI5Q_TXBD_DESA_L << BIT_SHIFT_HI5Q_TXBD_DESA_L)
  45501. #define BIT_CLEAR_HI5Q_TXBD_DESA_L(x) ((x) & (~BITS_HI5Q_TXBD_DESA_L))
  45502. #define BIT_GET_HI5Q_TXBD_DESA_L(x) \
  45503. (((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_L) & BIT_MASK_HI5Q_TXBD_DESA_L)
  45504. #define BIT_SET_HI5Q_TXBD_DESA_L(x, v) \
  45505. (BIT_CLEAR_HI5Q_TXBD_DESA_L(x) | BIT_HI5Q_TXBD_DESA_L(v))
  45506. /* 2 REG_HI5Q_TXBD_DESA_H (Offset 0x13D4) */
  45507. #define BIT_SHIFT_HI5Q_TXBD_DESA_H 0
  45508. #define BIT_MASK_HI5Q_TXBD_DESA_H 0xffffffffL
  45509. #define BIT_HI5Q_TXBD_DESA_H(x) \
  45510. (((x) & BIT_MASK_HI5Q_TXBD_DESA_H) << BIT_SHIFT_HI5Q_TXBD_DESA_H)
  45511. #define BITS_HI5Q_TXBD_DESA_H \
  45512. (BIT_MASK_HI5Q_TXBD_DESA_H << BIT_SHIFT_HI5Q_TXBD_DESA_H)
  45513. #define BIT_CLEAR_HI5Q_TXBD_DESA_H(x) ((x) & (~BITS_HI5Q_TXBD_DESA_H))
  45514. #define BIT_GET_HI5Q_TXBD_DESA_H(x) \
  45515. (((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_H) & BIT_MASK_HI5Q_TXBD_DESA_H)
  45516. #define BIT_SET_HI5Q_TXBD_DESA_H(x, v) \
  45517. (BIT_CLEAR_HI5Q_TXBD_DESA_H(x) | BIT_HI5Q_TXBD_DESA_H(v))
  45518. /* 2 REG_HI6Q_TXBD_DESA_L (Offset 0x13D8) */
  45519. #define BIT_SHIFT_HI6Q_TXBD_DESA_L 0
  45520. #define BIT_MASK_HI6Q_TXBD_DESA_L 0xffffffffL
  45521. #define BIT_HI6Q_TXBD_DESA_L(x) \
  45522. (((x) & BIT_MASK_HI6Q_TXBD_DESA_L) << BIT_SHIFT_HI6Q_TXBD_DESA_L)
  45523. #define BITS_HI6Q_TXBD_DESA_L \
  45524. (BIT_MASK_HI6Q_TXBD_DESA_L << BIT_SHIFT_HI6Q_TXBD_DESA_L)
  45525. #define BIT_CLEAR_HI6Q_TXBD_DESA_L(x) ((x) & (~BITS_HI6Q_TXBD_DESA_L))
  45526. #define BIT_GET_HI6Q_TXBD_DESA_L(x) \
  45527. (((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_L) & BIT_MASK_HI6Q_TXBD_DESA_L)
  45528. #define BIT_SET_HI6Q_TXBD_DESA_L(x, v) \
  45529. (BIT_CLEAR_HI6Q_TXBD_DESA_L(x) | BIT_HI6Q_TXBD_DESA_L(v))
  45530. /* 2 REG_HI6Q_TXBD_DESA_H (Offset 0x13DC) */
  45531. #define BIT_SHIFT_HI6Q_TXBD_DESA_H 0
  45532. #define BIT_MASK_HI6Q_TXBD_DESA_H 0xffffffffL
  45533. #define BIT_HI6Q_TXBD_DESA_H(x) \
  45534. (((x) & BIT_MASK_HI6Q_TXBD_DESA_H) << BIT_SHIFT_HI6Q_TXBD_DESA_H)
  45535. #define BITS_HI6Q_TXBD_DESA_H \
  45536. (BIT_MASK_HI6Q_TXBD_DESA_H << BIT_SHIFT_HI6Q_TXBD_DESA_H)
  45537. #define BIT_CLEAR_HI6Q_TXBD_DESA_H(x) ((x) & (~BITS_HI6Q_TXBD_DESA_H))
  45538. #define BIT_GET_HI6Q_TXBD_DESA_H(x) \
  45539. (((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_H) & BIT_MASK_HI6Q_TXBD_DESA_H)
  45540. #define BIT_SET_HI6Q_TXBD_DESA_H(x, v) \
  45541. (BIT_CLEAR_HI6Q_TXBD_DESA_H(x) | BIT_HI6Q_TXBD_DESA_H(v))
  45542. /* 2 REG_HI7Q_TXBD_DESA_L (Offset 0x13E0) */
  45543. #define BIT_SHIFT_HI7Q_TXBD_DESA_L 0
  45544. #define BIT_MASK_HI7Q_TXBD_DESA_L 0xffffffffL
  45545. #define BIT_HI7Q_TXBD_DESA_L(x) \
  45546. (((x) & BIT_MASK_HI7Q_TXBD_DESA_L) << BIT_SHIFT_HI7Q_TXBD_DESA_L)
  45547. #define BITS_HI7Q_TXBD_DESA_L \
  45548. (BIT_MASK_HI7Q_TXBD_DESA_L << BIT_SHIFT_HI7Q_TXBD_DESA_L)
  45549. #define BIT_CLEAR_HI7Q_TXBD_DESA_L(x) ((x) & (~BITS_HI7Q_TXBD_DESA_L))
  45550. #define BIT_GET_HI7Q_TXBD_DESA_L(x) \
  45551. (((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_L) & BIT_MASK_HI7Q_TXBD_DESA_L)
  45552. #define BIT_SET_HI7Q_TXBD_DESA_L(x, v) \
  45553. (BIT_CLEAR_HI7Q_TXBD_DESA_L(x) | BIT_HI7Q_TXBD_DESA_L(v))
  45554. /* 2 REG_HI7Q_TXBD_DESA_H (Offset 0x13E4) */
  45555. #define BIT_SHIFT_HI7Q_TXBD_DESA_H 0
  45556. #define BIT_MASK_HI7Q_TXBD_DESA_H 0xffffffffL
  45557. #define BIT_HI7Q_TXBD_DESA_H(x) \
  45558. (((x) & BIT_MASK_HI7Q_TXBD_DESA_H) << BIT_SHIFT_HI7Q_TXBD_DESA_H)
  45559. #define BITS_HI7Q_TXBD_DESA_H \
  45560. (BIT_MASK_HI7Q_TXBD_DESA_H << BIT_SHIFT_HI7Q_TXBD_DESA_H)
  45561. #define BIT_CLEAR_HI7Q_TXBD_DESA_H(x) ((x) & (~BITS_HI7Q_TXBD_DESA_H))
  45562. #define BIT_GET_HI7Q_TXBD_DESA_H(x) \
  45563. (((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_H) & BIT_MASK_HI7Q_TXBD_DESA_H)
  45564. #define BIT_SET_HI7Q_TXBD_DESA_H(x, v) \
  45565. (BIT_CLEAR_HI7Q_TXBD_DESA_H(x) | BIT_HI7Q_TXBD_DESA_H(v))
  45566. /* 2 REG_ACH8_ACH9_TXBD_NUM (Offset 0x13E8) */
  45567. #define BIT_PCIE_ACH9_FLAG BIT(30)
  45568. #define BIT_SHIFT_ACH9_DESC_MODE 28
  45569. #define BIT_MASK_ACH9_DESC_MODE 0x3
  45570. #define BIT_ACH9_DESC_MODE(x) \
  45571. (((x) & BIT_MASK_ACH9_DESC_MODE) << BIT_SHIFT_ACH9_DESC_MODE)
  45572. #define BITS_ACH9_DESC_MODE \
  45573. (BIT_MASK_ACH9_DESC_MODE << BIT_SHIFT_ACH9_DESC_MODE)
  45574. #define BIT_CLEAR_ACH9_DESC_MODE(x) ((x) & (~BITS_ACH9_DESC_MODE))
  45575. #define BIT_GET_ACH9_DESC_MODE(x) \
  45576. (((x) >> BIT_SHIFT_ACH9_DESC_MODE) & BIT_MASK_ACH9_DESC_MODE)
  45577. #define BIT_SET_ACH9_DESC_MODE(x, v) \
  45578. (BIT_CLEAR_ACH9_DESC_MODE(x) | BIT_ACH9_DESC_MODE(v))
  45579. #define BIT_SHIFT_ACH9_DESC_NUM 16
  45580. #define BIT_MASK_ACH9_DESC_NUM 0xfff
  45581. #define BIT_ACH9_DESC_NUM(x) \
  45582. (((x) & BIT_MASK_ACH9_DESC_NUM) << BIT_SHIFT_ACH9_DESC_NUM)
  45583. #define BITS_ACH9_DESC_NUM (BIT_MASK_ACH9_DESC_NUM << BIT_SHIFT_ACH9_DESC_NUM)
  45584. #define BIT_CLEAR_ACH9_DESC_NUM(x) ((x) & (~BITS_ACH9_DESC_NUM))
  45585. #define BIT_GET_ACH9_DESC_NUM(x) \
  45586. (((x) >> BIT_SHIFT_ACH9_DESC_NUM) & BIT_MASK_ACH9_DESC_NUM)
  45587. #define BIT_SET_ACH9_DESC_NUM(x, v) \
  45588. (BIT_CLEAR_ACH9_DESC_NUM(x) | BIT_ACH9_DESC_NUM(v))
  45589. #define BIT_PCIE_ACH8_FLAG BIT(14)
  45590. #define BIT_SHIFT_ACH8_DESC_MODE 12
  45591. #define BIT_MASK_ACH8_DESC_MODE 0x3
  45592. #define BIT_ACH8_DESC_MODE(x) \
  45593. (((x) & BIT_MASK_ACH8_DESC_MODE) << BIT_SHIFT_ACH8_DESC_MODE)
  45594. #define BITS_ACH8_DESC_MODE \
  45595. (BIT_MASK_ACH8_DESC_MODE << BIT_SHIFT_ACH8_DESC_MODE)
  45596. #define BIT_CLEAR_ACH8_DESC_MODE(x) ((x) & (~BITS_ACH8_DESC_MODE))
  45597. #define BIT_GET_ACH8_DESC_MODE(x) \
  45598. (((x) >> BIT_SHIFT_ACH8_DESC_MODE) & BIT_MASK_ACH8_DESC_MODE)
  45599. #define BIT_SET_ACH8_DESC_MODE(x, v) \
  45600. (BIT_CLEAR_ACH8_DESC_MODE(x) | BIT_ACH8_DESC_MODE(v))
  45601. #define BIT_SHIFT_ACH8_DESC_NUM 0
  45602. #define BIT_MASK_ACH8_DESC_NUM 0xfff
  45603. #define BIT_ACH8_DESC_NUM(x) \
  45604. (((x) & BIT_MASK_ACH8_DESC_NUM) << BIT_SHIFT_ACH8_DESC_NUM)
  45605. #define BITS_ACH8_DESC_NUM (BIT_MASK_ACH8_DESC_NUM << BIT_SHIFT_ACH8_DESC_NUM)
  45606. #define BIT_CLEAR_ACH8_DESC_NUM(x) ((x) & (~BITS_ACH8_DESC_NUM))
  45607. #define BIT_GET_ACH8_DESC_NUM(x) \
  45608. (((x) >> BIT_SHIFT_ACH8_DESC_NUM) & BIT_MASK_ACH8_DESC_NUM)
  45609. #define BIT_SET_ACH8_DESC_NUM(x, v) \
  45610. (BIT_CLEAR_ACH8_DESC_NUM(x) | BIT_ACH8_DESC_NUM(v))
  45611. /* 2 REG_ACH10_ACH11_TXBD_NUM (Offset 0x13EC) */
  45612. #define BIT_PCIE_ACH11_FLAG BIT(30)
  45613. #define BIT_SHIFT_ACH11_DESC_MODE 28
  45614. #define BIT_MASK_ACH11_DESC_MODE 0x3
  45615. #define BIT_ACH11_DESC_MODE(x) \
  45616. (((x) & BIT_MASK_ACH11_DESC_MODE) << BIT_SHIFT_ACH11_DESC_MODE)
  45617. #define BITS_ACH11_DESC_MODE \
  45618. (BIT_MASK_ACH11_DESC_MODE << BIT_SHIFT_ACH11_DESC_MODE)
  45619. #define BIT_CLEAR_ACH11_DESC_MODE(x) ((x) & (~BITS_ACH11_DESC_MODE))
  45620. #define BIT_GET_ACH11_DESC_MODE(x) \
  45621. (((x) >> BIT_SHIFT_ACH11_DESC_MODE) & BIT_MASK_ACH11_DESC_MODE)
  45622. #define BIT_SET_ACH11_DESC_MODE(x, v) \
  45623. (BIT_CLEAR_ACH11_DESC_MODE(x) | BIT_ACH11_DESC_MODE(v))
  45624. #define BIT_SHIFT_ACH11_DESC_NUM 16
  45625. #define BIT_MASK_ACH11_DESC_NUM 0xfff
  45626. #define BIT_ACH11_DESC_NUM(x) \
  45627. (((x) & BIT_MASK_ACH11_DESC_NUM) << BIT_SHIFT_ACH11_DESC_NUM)
  45628. #define BITS_ACH11_DESC_NUM \
  45629. (BIT_MASK_ACH11_DESC_NUM << BIT_SHIFT_ACH11_DESC_NUM)
  45630. #define BIT_CLEAR_ACH11_DESC_NUM(x) ((x) & (~BITS_ACH11_DESC_NUM))
  45631. #define BIT_GET_ACH11_DESC_NUM(x) \
  45632. (((x) >> BIT_SHIFT_ACH11_DESC_NUM) & BIT_MASK_ACH11_DESC_NUM)
  45633. #define BIT_SET_ACH11_DESC_NUM(x, v) \
  45634. (BIT_CLEAR_ACH11_DESC_NUM(x) | BIT_ACH11_DESC_NUM(v))
  45635. #define BIT_PCIE_ACH10_FLAG BIT(14)
  45636. #define BIT_SHIFT_ACH10_DESC_MODE 12
  45637. #define BIT_MASK_ACH10_DESC_MODE 0x3
  45638. #define BIT_ACH10_DESC_MODE(x) \
  45639. (((x) & BIT_MASK_ACH10_DESC_MODE) << BIT_SHIFT_ACH10_DESC_MODE)
  45640. #define BITS_ACH10_DESC_MODE \
  45641. (BIT_MASK_ACH10_DESC_MODE << BIT_SHIFT_ACH10_DESC_MODE)
  45642. #define BIT_CLEAR_ACH10_DESC_MODE(x) ((x) & (~BITS_ACH10_DESC_MODE))
  45643. #define BIT_GET_ACH10_DESC_MODE(x) \
  45644. (((x) >> BIT_SHIFT_ACH10_DESC_MODE) & BIT_MASK_ACH10_DESC_MODE)
  45645. #define BIT_SET_ACH10_DESC_MODE(x, v) \
  45646. (BIT_CLEAR_ACH10_DESC_MODE(x) | BIT_ACH10_DESC_MODE(v))
  45647. #define BIT_SHIFT_ACH10_DESC_NUM 0
  45648. #define BIT_MASK_ACH10_DESC_NUM 0xfff
  45649. #define BIT_ACH10_DESC_NUM(x) \
  45650. (((x) & BIT_MASK_ACH10_DESC_NUM) << BIT_SHIFT_ACH10_DESC_NUM)
  45651. #define BITS_ACH10_DESC_NUM \
  45652. (BIT_MASK_ACH10_DESC_NUM << BIT_SHIFT_ACH10_DESC_NUM)
  45653. #define BIT_CLEAR_ACH10_DESC_NUM(x) ((x) & (~BITS_ACH10_DESC_NUM))
  45654. #define BIT_GET_ACH10_DESC_NUM(x) \
  45655. (((x) >> BIT_SHIFT_ACH10_DESC_NUM) & BIT_MASK_ACH10_DESC_NUM)
  45656. #define BIT_SET_ACH10_DESC_NUM(x, v) \
  45657. (BIT_CLEAR_ACH10_DESC_NUM(x) | BIT_ACH10_DESC_NUM(v))
  45658. /* 2 REG_ACH12_ACH13_TXBD_NUM (Offset 0x13F0) */
  45659. #define BIT_PCIE_ACH13_FLAG BIT(30)
  45660. #define BIT_SHIFT_ACH13_DESC_MODE 28
  45661. #define BIT_MASK_ACH13_DESC_MODE 0x3
  45662. #define BIT_ACH13_DESC_MODE(x) \
  45663. (((x) & BIT_MASK_ACH13_DESC_MODE) << BIT_SHIFT_ACH13_DESC_MODE)
  45664. #define BITS_ACH13_DESC_MODE \
  45665. (BIT_MASK_ACH13_DESC_MODE << BIT_SHIFT_ACH13_DESC_MODE)
  45666. #define BIT_CLEAR_ACH13_DESC_MODE(x) ((x) & (~BITS_ACH13_DESC_MODE))
  45667. #define BIT_GET_ACH13_DESC_MODE(x) \
  45668. (((x) >> BIT_SHIFT_ACH13_DESC_MODE) & BIT_MASK_ACH13_DESC_MODE)
  45669. #define BIT_SET_ACH13_DESC_MODE(x, v) \
  45670. (BIT_CLEAR_ACH13_DESC_MODE(x) | BIT_ACH13_DESC_MODE(v))
  45671. #define BIT_SHIFT_ACH13_DESC_NUM 16
  45672. #define BIT_MASK_ACH13_DESC_NUM 0xfff
  45673. #define BIT_ACH13_DESC_NUM(x) \
  45674. (((x) & BIT_MASK_ACH13_DESC_NUM) << BIT_SHIFT_ACH13_DESC_NUM)
  45675. #define BITS_ACH13_DESC_NUM \
  45676. (BIT_MASK_ACH13_DESC_NUM << BIT_SHIFT_ACH13_DESC_NUM)
  45677. #define BIT_CLEAR_ACH13_DESC_NUM(x) ((x) & (~BITS_ACH13_DESC_NUM))
  45678. #define BIT_GET_ACH13_DESC_NUM(x) \
  45679. (((x) >> BIT_SHIFT_ACH13_DESC_NUM) & BIT_MASK_ACH13_DESC_NUM)
  45680. #define BIT_SET_ACH13_DESC_NUM(x, v) \
  45681. (BIT_CLEAR_ACH13_DESC_NUM(x) | BIT_ACH13_DESC_NUM(v))
  45682. #define BIT_PCIE_ACH12_FLAG BIT(14)
  45683. #define BIT_SHIFT_ACH12_DESC_MODE 12
  45684. #define BIT_MASK_ACH12_DESC_MODE 0x3
  45685. #define BIT_ACH12_DESC_MODE(x) \
  45686. (((x) & BIT_MASK_ACH12_DESC_MODE) << BIT_SHIFT_ACH12_DESC_MODE)
  45687. #define BITS_ACH12_DESC_MODE \
  45688. (BIT_MASK_ACH12_DESC_MODE << BIT_SHIFT_ACH12_DESC_MODE)
  45689. #define BIT_CLEAR_ACH12_DESC_MODE(x) ((x) & (~BITS_ACH12_DESC_MODE))
  45690. #define BIT_GET_ACH12_DESC_MODE(x) \
  45691. (((x) >> BIT_SHIFT_ACH12_DESC_MODE) & BIT_MASK_ACH12_DESC_MODE)
  45692. #define BIT_SET_ACH12_DESC_MODE(x, v) \
  45693. (BIT_CLEAR_ACH12_DESC_MODE(x) | BIT_ACH12_DESC_MODE(v))
  45694. #define BIT_SHIFT_ACH12_DESC_NUM 0
  45695. #define BIT_MASK_ACH12_DESC_NUM 0xfff
  45696. #define BIT_ACH12_DESC_NUM(x) \
  45697. (((x) & BIT_MASK_ACH12_DESC_NUM) << BIT_SHIFT_ACH12_DESC_NUM)
  45698. #define BITS_ACH12_DESC_NUM \
  45699. (BIT_MASK_ACH12_DESC_NUM << BIT_SHIFT_ACH12_DESC_NUM)
  45700. #define BIT_CLEAR_ACH12_DESC_NUM(x) ((x) & (~BITS_ACH12_DESC_NUM))
  45701. #define BIT_GET_ACH12_DESC_NUM(x) \
  45702. (((x) >> BIT_SHIFT_ACH12_DESC_NUM) & BIT_MASK_ACH12_DESC_NUM)
  45703. #define BIT_SET_ACH12_DESC_NUM(x, v) \
  45704. (BIT_CLEAR_ACH12_DESC_NUM(x) | BIT_ACH12_DESC_NUM(v))
  45705. #endif
  45706. #if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)
  45707. /* 2 REG_OLD_DEHANG (Offset 0x13F4) */
  45708. #define BIT_OLD_DEHANG BIT(1)
  45709. #endif
  45710. #if (HALMAC_8814B_SUPPORT)
  45711. /* 2 REG_ACH4_TXBD_DESA_L (Offset 0x13F8) */
  45712. #define BIT_SHIFT_ACH4_TXBD_DESA_L 0
  45713. #define BIT_MASK_ACH4_TXBD_DESA_L 0xffffffffL
  45714. #define BIT_ACH4_TXBD_DESA_L(x) \
  45715. (((x) & BIT_MASK_ACH4_TXBD_DESA_L) << BIT_SHIFT_ACH4_TXBD_DESA_L)
  45716. #define BITS_ACH4_TXBD_DESA_L \
  45717. (BIT_MASK_ACH4_TXBD_DESA_L << BIT_SHIFT_ACH4_TXBD_DESA_L)
  45718. #define BIT_CLEAR_ACH4_TXBD_DESA_L(x) ((x) & (~BITS_ACH4_TXBD_DESA_L))
  45719. #define BIT_GET_ACH4_TXBD_DESA_L(x) \
  45720. (((x) >> BIT_SHIFT_ACH4_TXBD_DESA_L) & BIT_MASK_ACH4_TXBD_DESA_L)
  45721. #define BIT_SET_ACH4_TXBD_DESA_L(x, v) \
  45722. (BIT_CLEAR_ACH4_TXBD_DESA_L(x) | BIT_ACH4_TXBD_DESA_L(v))
  45723. /* 2 REG_ACH4_TXBD_DESA_H (Offset 0x13FC) */
  45724. #define BIT_SHIFT_ACH4_TXBD_DESA_H 0
  45725. #define BIT_MASK_ACH4_TXBD_DESA_H 0xffffffffL
  45726. #define BIT_ACH4_TXBD_DESA_H(x) \
  45727. (((x) & BIT_MASK_ACH4_TXBD_DESA_H) << BIT_SHIFT_ACH4_TXBD_DESA_H)
  45728. #define BITS_ACH4_TXBD_DESA_H \
  45729. (BIT_MASK_ACH4_TXBD_DESA_H << BIT_SHIFT_ACH4_TXBD_DESA_H)
  45730. #define BIT_CLEAR_ACH4_TXBD_DESA_H(x) ((x) & (~BITS_ACH4_TXBD_DESA_H))
  45731. #define BIT_GET_ACH4_TXBD_DESA_H(x) \
  45732. (((x) >> BIT_SHIFT_ACH4_TXBD_DESA_H) & BIT_MASK_ACH4_TXBD_DESA_H)
  45733. #define BIT_SET_ACH4_TXBD_DESA_H(x, v) \
  45734. (BIT_CLEAR_ACH4_TXBD_DESA_H(x) | BIT_ACH4_TXBD_DESA_H(v))
  45735. #endif
  45736. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  45737. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  45738. HALMAC_8822C_SUPPORT)
  45739. /* 2 REG_Q0_Q1_INFO (Offset 0x1400) */
  45740. #define BIT_SHIFT_AC1_PKT_INFO 16
  45741. #define BIT_MASK_AC1_PKT_INFO 0xfff
  45742. #define BIT_AC1_PKT_INFO(x) \
  45743. (((x) & BIT_MASK_AC1_PKT_INFO) << BIT_SHIFT_AC1_PKT_INFO)
  45744. #define BITS_AC1_PKT_INFO (BIT_MASK_AC1_PKT_INFO << BIT_SHIFT_AC1_PKT_INFO)
  45745. #define BIT_CLEAR_AC1_PKT_INFO(x) ((x) & (~BITS_AC1_PKT_INFO))
  45746. #define BIT_GET_AC1_PKT_INFO(x) \
  45747. (((x) >> BIT_SHIFT_AC1_PKT_INFO) & BIT_MASK_AC1_PKT_INFO)
  45748. #define BIT_SET_AC1_PKT_INFO(x, v) \
  45749. (BIT_CLEAR_AC1_PKT_INFO(x) | BIT_AC1_PKT_INFO(v))
  45750. #endif
  45751. #if (HALMAC_8814B_SUPPORT)
  45752. /* 2 REG_MU_OFFSET (Offset 0x1400) */
  45753. #define BIT_SHIFT_MU_RATETABLE_OFFSET 16
  45754. #define BIT_MASK_MU_RATETABLE_OFFSET 0x1ff
  45755. #define BIT_MU_RATETABLE_OFFSET(x) \
  45756. (((x) & BIT_MASK_MU_RATETABLE_OFFSET) << BIT_SHIFT_MU_RATETABLE_OFFSET)
  45757. #define BITS_MU_RATETABLE_OFFSET \
  45758. (BIT_MASK_MU_RATETABLE_OFFSET << BIT_SHIFT_MU_RATETABLE_OFFSET)
  45759. #define BIT_CLEAR_MU_RATETABLE_OFFSET(x) ((x) & (~BITS_MU_RATETABLE_OFFSET))
  45760. #define BIT_GET_MU_RATETABLE_OFFSET(x) \
  45761. (((x) >> BIT_SHIFT_MU_RATETABLE_OFFSET) & BIT_MASK_MU_RATETABLE_OFFSET)
  45762. #define BIT_SET_MU_RATETABLE_OFFSET(x, v) \
  45763. (BIT_CLEAR_MU_RATETABLE_OFFSET(x) | BIT_MU_RATETABLE_OFFSET(v))
  45764. #endif
  45765. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  45766. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  45767. HALMAC_8822C_SUPPORT)
  45768. /* 2 REG_Q0_Q1_INFO (Offset 0x1400) */
  45769. #define BIT_SHIFT_AC0_PKT_INFO 0
  45770. #define BIT_MASK_AC0_PKT_INFO 0xfff
  45771. #define BIT_AC0_PKT_INFO(x) \
  45772. (((x) & BIT_MASK_AC0_PKT_INFO) << BIT_SHIFT_AC0_PKT_INFO)
  45773. #define BITS_AC0_PKT_INFO (BIT_MASK_AC0_PKT_INFO << BIT_SHIFT_AC0_PKT_INFO)
  45774. #define BIT_CLEAR_AC0_PKT_INFO(x) ((x) & (~BITS_AC0_PKT_INFO))
  45775. #define BIT_GET_AC0_PKT_INFO(x) \
  45776. (((x) >> BIT_SHIFT_AC0_PKT_INFO) & BIT_MASK_AC0_PKT_INFO)
  45777. #define BIT_SET_AC0_PKT_INFO(x, v) \
  45778. (BIT_CLEAR_AC0_PKT_INFO(x) | BIT_AC0_PKT_INFO(v))
  45779. #endif
  45780. #if (HALMAC_8198F_SUPPORT)
  45781. /* 2 REG_ARFR6 (Offset 0x1400) */
  45782. #define BIT_SHIFT_ARFR6_V1 0
  45783. #define BIT_MASK_ARFR6_V1 0xffffffffffffffffL
  45784. #define BIT_ARFR6_V1(x) (((x) & BIT_MASK_ARFR6_V1) << BIT_SHIFT_ARFR6_V1)
  45785. #define BITS_ARFR6_V1 (BIT_MASK_ARFR6_V1 << BIT_SHIFT_ARFR6_V1)
  45786. #define BIT_CLEAR_ARFR6_V1(x) ((x) & (~BITS_ARFR6_V1))
  45787. #define BIT_GET_ARFR6_V1(x) (((x) >> BIT_SHIFT_ARFR6_V1) & BIT_MASK_ARFR6_V1)
  45788. #define BIT_SET_ARFR6_V1(x, v) (BIT_CLEAR_ARFR6_V1(x) | BIT_ARFR6_V1(v))
  45789. #endif
  45790. #if (HALMAC_8814B_SUPPORT)
  45791. /* 2 REG_MU_OFFSET (Offset 0x1400) */
  45792. #define BIT_SHIFT_MU_SCORETABLE_OFFSET 0
  45793. #define BIT_MASK_MU_SCORETABLE_OFFSET 0x1ff
  45794. #define BIT_MU_SCORETABLE_OFFSET(x) \
  45795. (((x) & BIT_MASK_MU_SCORETABLE_OFFSET) \
  45796. << BIT_SHIFT_MU_SCORETABLE_OFFSET)
  45797. #define BITS_MU_SCORETABLE_OFFSET \
  45798. (BIT_MASK_MU_SCORETABLE_OFFSET << BIT_SHIFT_MU_SCORETABLE_OFFSET)
  45799. #define BIT_CLEAR_MU_SCORETABLE_OFFSET(x) ((x) & (~BITS_MU_SCORETABLE_OFFSET))
  45800. #define BIT_GET_MU_SCORETABLE_OFFSET(x) \
  45801. (((x) >> BIT_SHIFT_MU_SCORETABLE_OFFSET) & \
  45802. BIT_MASK_MU_SCORETABLE_OFFSET)
  45803. #define BIT_SET_MU_SCORETABLE_OFFSET(x, v) \
  45804. (BIT_CLEAR_MU_SCORETABLE_OFFSET(x) | BIT_MU_SCORETABLE_OFFSET(v))
  45805. #endif
  45806. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  45807. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  45808. HALMAC_8822C_SUPPORT)
  45809. /* 2 REG_Q2_Q3_INFO (Offset 0x1404) */
  45810. #define BIT_SHIFT_AC3_PKT_INFO 16
  45811. #define BIT_MASK_AC3_PKT_INFO 0xfff
  45812. #define BIT_AC3_PKT_INFO(x) \
  45813. (((x) & BIT_MASK_AC3_PKT_INFO) << BIT_SHIFT_AC3_PKT_INFO)
  45814. #define BITS_AC3_PKT_INFO (BIT_MASK_AC3_PKT_INFO << BIT_SHIFT_AC3_PKT_INFO)
  45815. #define BIT_CLEAR_AC3_PKT_INFO(x) ((x) & (~BITS_AC3_PKT_INFO))
  45816. #define BIT_GET_AC3_PKT_INFO(x) \
  45817. (((x) >> BIT_SHIFT_AC3_PKT_INFO) & BIT_MASK_AC3_PKT_INFO)
  45818. #define BIT_SET_AC3_PKT_INFO(x, v) \
  45819. (BIT_CLEAR_AC3_PKT_INFO(x) | BIT_AC3_PKT_INFO(v))
  45820. #define BIT_SHIFT_AC2_PKT_INFO 0
  45821. #define BIT_MASK_AC2_PKT_INFO 0xfff
  45822. #define BIT_AC2_PKT_INFO(x) \
  45823. (((x) & BIT_MASK_AC2_PKT_INFO) << BIT_SHIFT_AC2_PKT_INFO)
  45824. #define BITS_AC2_PKT_INFO (BIT_MASK_AC2_PKT_INFO << BIT_SHIFT_AC2_PKT_INFO)
  45825. #define BIT_CLEAR_AC2_PKT_INFO(x) ((x) & (~BITS_AC2_PKT_INFO))
  45826. #define BIT_GET_AC2_PKT_INFO(x) \
  45827. (((x) >> BIT_SHIFT_AC2_PKT_INFO) & BIT_MASK_AC2_PKT_INFO)
  45828. #define BIT_SET_AC2_PKT_INFO(x, v) \
  45829. (BIT_CLEAR_AC2_PKT_INFO(x) | BIT_AC2_PKT_INFO(v))
  45830. /* 2 REG_Q4_Q5_INFO (Offset 0x1408) */
  45831. #define BIT_SHIFT_AC5_PKT_INFO 16
  45832. #define BIT_MASK_AC5_PKT_INFO 0xfff
  45833. #define BIT_AC5_PKT_INFO(x) \
  45834. (((x) & BIT_MASK_AC5_PKT_INFO) << BIT_SHIFT_AC5_PKT_INFO)
  45835. #define BITS_AC5_PKT_INFO (BIT_MASK_AC5_PKT_INFO << BIT_SHIFT_AC5_PKT_INFO)
  45836. #define BIT_CLEAR_AC5_PKT_INFO(x) ((x) & (~BITS_AC5_PKT_INFO))
  45837. #define BIT_GET_AC5_PKT_INFO(x) \
  45838. (((x) >> BIT_SHIFT_AC5_PKT_INFO) & BIT_MASK_AC5_PKT_INFO)
  45839. #define BIT_SET_AC5_PKT_INFO(x, v) \
  45840. (BIT_CLEAR_AC5_PKT_INFO(x) | BIT_AC5_PKT_INFO(v))
  45841. #define BIT_SHIFT_AC4_PKT_INFO 0
  45842. #define BIT_MASK_AC4_PKT_INFO 0xfff
  45843. #define BIT_AC4_PKT_INFO(x) \
  45844. (((x) & BIT_MASK_AC4_PKT_INFO) << BIT_SHIFT_AC4_PKT_INFO)
  45845. #define BITS_AC4_PKT_INFO (BIT_MASK_AC4_PKT_INFO << BIT_SHIFT_AC4_PKT_INFO)
  45846. #define BIT_CLEAR_AC4_PKT_INFO(x) ((x) & (~BITS_AC4_PKT_INFO))
  45847. #define BIT_GET_AC4_PKT_INFO(x) \
  45848. (((x) >> BIT_SHIFT_AC4_PKT_INFO) & BIT_MASK_AC4_PKT_INFO)
  45849. #define BIT_SET_AC4_PKT_INFO(x, v) \
  45850. (BIT_CLEAR_AC4_PKT_INFO(x) | BIT_AC4_PKT_INFO(v))
  45851. #endif
  45852. #if (HALMAC_8198F_SUPPORT)
  45853. /* 2 REG_ARFR7 (Offset 0x1408) */
  45854. #define BIT_SHIFT_ARFR7_V1 0
  45855. #define BIT_MASK_ARFR7_V1 0xffffffffffffffffL
  45856. #define BIT_ARFR7_V1(x) (((x) & BIT_MASK_ARFR7_V1) << BIT_SHIFT_ARFR7_V1)
  45857. #define BITS_ARFR7_V1 (BIT_MASK_ARFR7_V1 << BIT_SHIFT_ARFR7_V1)
  45858. #define BIT_CLEAR_ARFR7_V1(x) ((x) & (~BITS_ARFR7_V1))
  45859. #define BIT_GET_ARFR7_V1(x) (((x) >> BIT_SHIFT_ARFR7_V1) & BIT_MASK_ARFR7_V1)
  45860. #define BIT_SET_ARFR7_V1(x, v) (BIT_CLEAR_ARFR7_V1(x) | BIT_ARFR7_V1(v))
  45861. #endif
  45862. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || \
  45863. HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  45864. HALMAC_8822C_SUPPORT)
  45865. /* 2 REG_Q6_Q7_INFO (Offset 0x140C) */
  45866. #define BIT_SHIFT_AC7_PKT_INFO 16
  45867. #define BIT_MASK_AC7_PKT_INFO 0xfff
  45868. #define BIT_AC7_PKT_INFO(x) \
  45869. (((x) & BIT_MASK_AC7_PKT_INFO) << BIT_SHIFT_AC7_PKT_INFO)
  45870. #define BITS_AC7_PKT_INFO (BIT_MASK_AC7_PKT_INFO << BIT_SHIFT_AC7_PKT_INFO)
  45871. #define BIT_CLEAR_AC7_PKT_INFO(x) ((x) & (~BITS_AC7_PKT_INFO))
  45872. #define BIT_GET_AC7_PKT_INFO(x) \
  45873. (((x) >> BIT_SHIFT_AC7_PKT_INFO) & BIT_MASK_AC7_PKT_INFO)
  45874. #define BIT_SET_AC7_PKT_INFO(x, v) \
  45875. (BIT_CLEAR_AC7_PKT_INFO(x) | BIT_AC7_PKT_INFO(v))
  45876. #define BIT_SHIFT_AC6_PKT_INFO 0
  45877. #define BIT_MASK_AC6_PKT_INFO 0xfff
  45878. #define BIT_AC6_PKT_INFO(x) \
  45879. (((x) & BIT_MASK_AC6_PKT_INFO) << BIT_SHIFT_AC6_PKT_INFO)
  45880. #define BITS_AC6_PKT_INFO (BIT_MASK_AC6_PKT_INFO << BIT_SHIFT_AC6_PKT_INFO)
  45881. #define BIT_CLEAR_AC6_PKT_INFO(x) ((x) & (~BITS_AC6_PKT_INFO))
  45882. #define BIT_GET_AC6_PKT_INFO(x) \
  45883. (((x) >> BIT_SHIFT_AC6_PKT_INFO) & BIT_MASK_AC6_PKT_INFO)
  45884. #define BIT_SET_AC6_PKT_INFO(x, v) \
  45885. (BIT_CLEAR_AC6_PKT_INFO(x) | BIT_AC6_PKT_INFO(v))
  45886. /* 2 REG_MGQ_HIQ_INFO (Offset 0x1410) */
  45887. #define BIT_SHIFT_HIQ_PKT_INFO 16
  45888. #define BIT_MASK_HIQ_PKT_INFO 0xfff
  45889. #define BIT_HIQ_PKT_INFO(x) \
  45890. (((x) & BIT_MASK_HIQ_PKT_INFO) << BIT_SHIFT_HIQ_PKT_INFO)
  45891. #define BITS_HIQ_PKT_INFO (BIT_MASK_HIQ_PKT_INFO << BIT_SHIFT_HIQ_PKT_INFO)
  45892. #define BIT_CLEAR_HIQ_PKT_INFO(x) ((x) & (~BITS_HIQ_PKT_INFO))
  45893. #define BIT_GET_HIQ_PKT_INFO(x) \
  45894. (((x) >> BIT_SHIFT_HIQ_PKT_INFO) & BIT_MASK_HIQ_PKT_INFO)
  45895. #define BIT_SET_HIQ_PKT_INFO(x, v) \
  45896. (BIT_CLEAR_HIQ_PKT_INFO(x) | BIT_HIQ_PKT_INFO(v))
  45897. #define BIT_SHIFT_MGQ_PKT_INFO 0
  45898. #define BIT_MASK_MGQ_PKT_INFO 0xfff
  45899. #define BIT_MGQ_PKT_INFO(x) \
  45900. (((x) & BIT_MASK_MGQ_PKT_INFO) << BIT_SHIFT_MGQ_PKT_INFO)
  45901. #define BITS_MGQ_PKT_INFO (BIT_MASK_MGQ_PKT_INFO << BIT_SHIFT_MGQ_PKT_INFO)
  45902. #define BIT_CLEAR_MGQ_PKT_INFO(x) ((x) & (~BITS_MGQ_PKT_INFO))
  45903. #define BIT_GET_MGQ_PKT_INFO(x) \
  45904. (((x) >> BIT_SHIFT_MGQ_PKT_INFO) & BIT_MASK_MGQ_PKT_INFO)
  45905. #define BIT_SET_MGQ_PKT_INFO(x, v) \
  45906. (BIT_CLEAR_MGQ_PKT_INFO(x) | BIT_MGQ_PKT_INFO(v))
  45907. #endif
  45908. #if (HALMAC_8198F_SUPPORT)
  45909. /* 2 REG_ARFR8 (Offset 0x1410) */
  45910. #define BIT_SHIFT_ARFR8_V1 0
  45911. #define BIT_MASK_ARFR8_V1 0xffffffffffffffffL
  45912. #define BIT_ARFR8_V1(x) (((x) & BIT_MASK_ARFR8_V1) << BIT_SHIFT_ARFR8_V1)
  45913. #define BITS_ARFR8_V1 (BIT_MASK_ARFR8_V1 << BIT_SHIFT_ARFR8_V1)
  45914. #define BIT_CLEAR_ARFR8_V1(x) ((x) & (~BITS_ARFR8_V1))
  45915. #define BIT_GET_ARFR8_V1(x) (((x) >> BIT_SHIFT_ARFR8_V1) & BIT_MASK_ARFR8_V1)
  45916. #define BIT_SET_ARFR8_V1(x, v) (BIT_CLEAR_ARFR8_V1(x) | BIT_ARFR8_V1(v))
  45917. #define BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER 0
  45918. #define BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER 0xff
  45919. #define BIT_MEDIUM_HAS_IDLE_TRIGGER(x) \
  45920. (((x) & BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER) \
  45921. << BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER)
  45922. #define BITS_MEDIUM_HAS_IDLE_TRIGGER \
  45923. (BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER << BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER)
  45924. #define BIT_CLEAR_MEDIUM_HAS_IDLE_TRIGGER(x) \
  45925. ((x) & (~BITS_MEDIUM_HAS_IDLE_TRIGGER))
  45926. #define BIT_GET_MEDIUM_HAS_IDLE_TRIGGER(x) \
  45927. (((x) >> BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER) & \
  45928. BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER)
  45929. #define BIT_SET_MEDIUM_HAS_IDLE_TRIGGER(x, v) \
  45930. (BIT_CLEAR_MEDIUM_HAS_IDLE_TRIGGER(x) | BIT_MEDIUM_HAS_IDLE_TRIGGER(v))
  45931. #endif
  45932. #if (HALMAC_8197F_SUPPORT)
  45933. /* 2 REG_CMDQ_BCNQ_INFO (Offset 0x1414) */
  45934. #define BIT_SHIFT_BCNQ_PKT_INFO_V1 16
  45935. #define BIT_MASK_BCNQ_PKT_INFO_V1 0xfff
  45936. #define BIT_BCNQ_PKT_INFO_V1(x) \
  45937. (((x) & BIT_MASK_BCNQ_PKT_INFO_V1) << BIT_SHIFT_BCNQ_PKT_INFO_V1)
  45938. #define BITS_BCNQ_PKT_INFO_V1 \
  45939. (BIT_MASK_BCNQ_PKT_INFO_V1 << BIT_SHIFT_BCNQ_PKT_INFO_V1)
  45940. #define BIT_CLEAR_BCNQ_PKT_INFO_V1(x) ((x) & (~BITS_BCNQ_PKT_INFO_V1))
  45941. #define BIT_GET_BCNQ_PKT_INFO_V1(x) \
  45942. (((x) >> BIT_SHIFT_BCNQ_PKT_INFO_V1) & BIT_MASK_BCNQ_PKT_INFO_V1)
  45943. #define BIT_SET_BCNQ_PKT_INFO_V1(x, v) \
  45944. (BIT_CLEAR_BCNQ_PKT_INFO_V1(x) | BIT_BCNQ_PKT_INFO_V1(v))
  45945. #define BIT_SHIFT_BCNERR_PORT_SEL 16
  45946. #define BIT_MASK_BCNERR_PORT_SEL 0x7
  45947. #define BIT_BCNERR_PORT_SEL(x) \
  45948. (((x) & BIT_MASK_BCNERR_PORT_SEL) << BIT_SHIFT_BCNERR_PORT_SEL)
  45949. #define BITS_BCNERR_PORT_SEL \
  45950. (BIT_MASK_BCNERR_PORT_SEL << BIT_SHIFT_BCNERR_PORT_SEL)
  45951. #define BIT_CLEAR_BCNERR_PORT_SEL(x) ((x) & (~BITS_BCNERR_PORT_SEL))
  45952. #define BIT_GET_BCNERR_PORT_SEL(x) \
  45953. (((x) >> BIT_SHIFT_BCNERR_PORT_SEL) & BIT_MASK_BCNERR_PORT_SEL)
  45954. #define BIT_SET_BCNERR_PORT_SEL(x, v) \
  45955. (BIT_CLEAR_BCNERR_PORT_SEL(x) | BIT_BCNERR_PORT_SEL(v))
  45956. #endif
  45957. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  45958. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  45959. /* 2 REG_CMDQ_BCNQ_INFO (Offset 0x1414) */
  45960. #define BIT_SHIFT_CMDQ_PKT_INFO 16
  45961. #define BIT_MASK_CMDQ_PKT_INFO 0xfff
  45962. #define BIT_CMDQ_PKT_INFO(x) \
  45963. (((x) & BIT_MASK_CMDQ_PKT_INFO) << BIT_SHIFT_CMDQ_PKT_INFO)
  45964. #define BITS_CMDQ_PKT_INFO (BIT_MASK_CMDQ_PKT_INFO << BIT_SHIFT_CMDQ_PKT_INFO)
  45965. #define BIT_CLEAR_CMDQ_PKT_INFO(x) ((x) & (~BITS_CMDQ_PKT_INFO))
  45966. #define BIT_GET_CMDQ_PKT_INFO(x) \
  45967. (((x) >> BIT_SHIFT_CMDQ_PKT_INFO) & BIT_MASK_CMDQ_PKT_INFO)
  45968. #define BIT_SET_CMDQ_PKT_INFO(x, v) \
  45969. (BIT_CLEAR_CMDQ_PKT_INFO(x) | BIT_CMDQ_PKT_INFO(v))
  45970. #endif
  45971. #if (HALMAC_8197F_SUPPORT)
  45972. /* 2 REG_CMDQ_BCNQ_INFO (Offset 0x1414) */
  45973. #define BIT_SHIFT_CMDQ_PKT_INFO_V1 0
  45974. #define BIT_MASK_CMDQ_PKT_INFO_V1 0xfff
  45975. #define BIT_CMDQ_PKT_INFO_V1(x) \
  45976. (((x) & BIT_MASK_CMDQ_PKT_INFO_V1) << BIT_SHIFT_CMDQ_PKT_INFO_V1)
  45977. #define BITS_CMDQ_PKT_INFO_V1 \
  45978. (BIT_MASK_CMDQ_PKT_INFO_V1 << BIT_SHIFT_CMDQ_PKT_INFO_V1)
  45979. #define BIT_CLEAR_CMDQ_PKT_INFO_V1(x) ((x) & (~BITS_CMDQ_PKT_INFO_V1))
  45980. #define BIT_GET_CMDQ_PKT_INFO_V1(x) \
  45981. (((x) >> BIT_SHIFT_CMDQ_PKT_INFO_V1) & BIT_MASK_CMDQ_PKT_INFO_V1)
  45982. #define BIT_SET_CMDQ_PKT_INFO_V1(x, v) \
  45983. (BIT_CLEAR_CMDQ_PKT_INFO_V1(x) | BIT_CMDQ_PKT_INFO_V1(v))
  45984. #endif
  45985. #if (HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  45986. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  45987. /* 2 REG_CMDQ_BCNQ_INFO (Offset 0x1414) */
  45988. #define BIT_SHIFT_BCNQ_PKT_INFO 0
  45989. #define BIT_MASK_BCNQ_PKT_INFO 0xfff
  45990. #define BIT_BCNQ_PKT_INFO(x) \
  45991. (((x) & BIT_MASK_BCNQ_PKT_INFO) << BIT_SHIFT_BCNQ_PKT_INFO)
  45992. #define BITS_BCNQ_PKT_INFO (BIT_MASK_BCNQ_PKT_INFO << BIT_SHIFT_BCNQ_PKT_INFO)
  45993. #define BIT_CLEAR_BCNQ_PKT_INFO(x) ((x) & (~BITS_BCNQ_PKT_INFO))
  45994. #define BIT_GET_BCNQ_PKT_INFO(x) \
  45995. (((x) >> BIT_SHIFT_BCNQ_PKT_INFO) & BIT_MASK_BCNQ_PKT_INFO)
  45996. #define BIT_SET_BCNQ_PKT_INFO(x, v) \
  45997. (BIT_CLEAR_BCNQ_PKT_INFO(x) | BIT_BCNQ_PKT_INFO(v))
  45998. #endif
  45999. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  46000. /* 2 REG_LOOPBACK_OPTION (Offset 0x1420) */
  46001. #define BIT_LOOPACK_FAST_EDCA_EN BIT(24)
  46002. #endif
  46003. #if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46004. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  46005. /* 2 REG_USEREG_SETTING (Offset 0x1420) */
  46006. #define BIT_NDPA_USEREG BIT(21)
  46007. #define BIT_SHIFT_RETRY_USEREG 19
  46008. #define BIT_MASK_RETRY_USEREG 0x3
  46009. #define BIT_RETRY_USEREG(x) \
  46010. (((x) & BIT_MASK_RETRY_USEREG) << BIT_SHIFT_RETRY_USEREG)
  46011. #define BITS_RETRY_USEREG (BIT_MASK_RETRY_USEREG << BIT_SHIFT_RETRY_USEREG)
  46012. #define BIT_CLEAR_RETRY_USEREG(x) ((x) & (~BITS_RETRY_USEREG))
  46013. #define BIT_GET_RETRY_USEREG(x) \
  46014. (((x) >> BIT_SHIFT_RETRY_USEREG) & BIT_MASK_RETRY_USEREG)
  46015. #define BIT_SET_RETRY_USEREG(x, v) \
  46016. (BIT_CLEAR_RETRY_USEREG(x) | BIT_RETRY_USEREG(v))
  46017. #define BIT_SHIFT_TRYPKT_USEREG 17
  46018. #define BIT_MASK_TRYPKT_USEREG 0x3
  46019. #define BIT_TRYPKT_USEREG(x) \
  46020. (((x) & BIT_MASK_TRYPKT_USEREG) << BIT_SHIFT_TRYPKT_USEREG)
  46021. #define BITS_TRYPKT_USEREG (BIT_MASK_TRYPKT_USEREG << BIT_SHIFT_TRYPKT_USEREG)
  46022. #define BIT_CLEAR_TRYPKT_USEREG(x) ((x) & (~BITS_TRYPKT_USEREG))
  46023. #define BIT_GET_TRYPKT_USEREG(x) \
  46024. (((x) >> BIT_SHIFT_TRYPKT_USEREG) & BIT_MASK_TRYPKT_USEREG)
  46025. #define BIT_SET_TRYPKT_USEREG(x, v) \
  46026. (BIT_CLEAR_TRYPKT_USEREG(x) | BIT_TRYPKT_USEREG(v))
  46027. #define BIT_CTLPKT_USEREG BIT(16)
  46028. #endif
  46029. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46030. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  46031. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46032. /* 2 REG_AESIV_SETTING (Offset 0x1424) */
  46033. #define BIT_SHIFT_AESIV_OFFSET 0
  46034. #define BIT_MASK_AESIV_OFFSET 0xfff
  46035. #define BIT_AESIV_OFFSET(x) \
  46036. (((x) & BIT_MASK_AESIV_OFFSET) << BIT_SHIFT_AESIV_OFFSET)
  46037. #define BITS_AESIV_OFFSET (BIT_MASK_AESIV_OFFSET << BIT_SHIFT_AESIV_OFFSET)
  46038. #define BIT_CLEAR_AESIV_OFFSET(x) ((x) & (~BITS_AESIV_OFFSET))
  46039. #define BIT_GET_AESIV_OFFSET(x) \
  46040. (((x) >> BIT_SHIFT_AESIV_OFFSET) & BIT_MASK_AESIV_OFFSET)
  46041. #define BIT_SET_AESIV_OFFSET(x, v) \
  46042. (BIT_CLEAR_AESIV_OFFSET(x) | BIT_AESIV_OFFSET(v))
  46043. #endif
  46044. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46045. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46046. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46047. HALMAC_8822C_SUPPORT)
  46048. /* 2 REG_BF0_TIME_SETTING (Offset 0x1428) */
  46049. #define BIT_BF0_TIMER_SET BIT(31)
  46050. #define BIT_BF0_TIMER_CLR BIT(30)
  46051. #define BIT_BF0_UPDATE_EN BIT(29)
  46052. #define BIT_BF0_TIMER_EN BIT(28)
  46053. #define BIT_SHIFT_BF0_PRETIME_OVER 16
  46054. #define BIT_MASK_BF0_PRETIME_OVER 0xfff
  46055. #define BIT_BF0_PRETIME_OVER(x) \
  46056. (((x) & BIT_MASK_BF0_PRETIME_OVER) << BIT_SHIFT_BF0_PRETIME_OVER)
  46057. #define BITS_BF0_PRETIME_OVER \
  46058. (BIT_MASK_BF0_PRETIME_OVER << BIT_SHIFT_BF0_PRETIME_OVER)
  46059. #define BIT_CLEAR_BF0_PRETIME_OVER(x) ((x) & (~BITS_BF0_PRETIME_OVER))
  46060. #define BIT_GET_BF0_PRETIME_OVER(x) \
  46061. (((x) >> BIT_SHIFT_BF0_PRETIME_OVER) & BIT_MASK_BF0_PRETIME_OVER)
  46062. #define BIT_SET_BF0_PRETIME_OVER(x, v) \
  46063. (BIT_CLEAR_BF0_PRETIME_OVER(x) | BIT_BF0_PRETIME_OVER(v))
  46064. #define BIT_SHIFT_BF0_LIFETIME 0
  46065. #define BIT_MASK_BF0_LIFETIME 0xffff
  46066. #define BIT_BF0_LIFETIME(x) \
  46067. (((x) & BIT_MASK_BF0_LIFETIME) << BIT_SHIFT_BF0_LIFETIME)
  46068. #define BITS_BF0_LIFETIME (BIT_MASK_BF0_LIFETIME << BIT_SHIFT_BF0_LIFETIME)
  46069. #define BIT_CLEAR_BF0_LIFETIME(x) ((x) & (~BITS_BF0_LIFETIME))
  46070. #define BIT_GET_BF0_LIFETIME(x) \
  46071. (((x) >> BIT_SHIFT_BF0_LIFETIME) & BIT_MASK_BF0_LIFETIME)
  46072. #define BIT_SET_BF0_LIFETIME(x, v) \
  46073. (BIT_CLEAR_BF0_LIFETIME(x) | BIT_BF0_LIFETIME(v))
  46074. /* 2 REG_BF1_TIME_SETTING (Offset 0x142C) */
  46075. #define BIT_BF1_TIMER_SET BIT(31)
  46076. #define BIT_BF1_TIMER_CLR BIT(30)
  46077. #define BIT_BF1_UPDATE_EN BIT(29)
  46078. #define BIT_BF1_TIMER_EN BIT(28)
  46079. #define BIT_SHIFT_BF1_PRETIME_OVER 16
  46080. #define BIT_MASK_BF1_PRETIME_OVER 0xfff
  46081. #define BIT_BF1_PRETIME_OVER(x) \
  46082. (((x) & BIT_MASK_BF1_PRETIME_OVER) << BIT_SHIFT_BF1_PRETIME_OVER)
  46083. #define BITS_BF1_PRETIME_OVER \
  46084. (BIT_MASK_BF1_PRETIME_OVER << BIT_SHIFT_BF1_PRETIME_OVER)
  46085. #define BIT_CLEAR_BF1_PRETIME_OVER(x) ((x) & (~BITS_BF1_PRETIME_OVER))
  46086. #define BIT_GET_BF1_PRETIME_OVER(x) \
  46087. (((x) >> BIT_SHIFT_BF1_PRETIME_OVER) & BIT_MASK_BF1_PRETIME_OVER)
  46088. #define BIT_SET_BF1_PRETIME_OVER(x, v) \
  46089. (BIT_CLEAR_BF1_PRETIME_OVER(x) | BIT_BF1_PRETIME_OVER(v))
  46090. #define BIT_SHIFT_BF1_LIFETIME 0
  46091. #define BIT_MASK_BF1_LIFETIME 0xffff
  46092. #define BIT_BF1_LIFETIME(x) \
  46093. (((x) & BIT_MASK_BF1_LIFETIME) << BIT_SHIFT_BF1_LIFETIME)
  46094. #define BITS_BF1_LIFETIME (BIT_MASK_BF1_LIFETIME << BIT_SHIFT_BF1_LIFETIME)
  46095. #define BIT_CLEAR_BF1_LIFETIME(x) ((x) & (~BITS_BF1_LIFETIME))
  46096. #define BIT_GET_BF1_LIFETIME(x) \
  46097. (((x) >> BIT_SHIFT_BF1_LIFETIME) & BIT_MASK_BF1_LIFETIME)
  46098. #define BIT_SET_BF1_LIFETIME(x, v) \
  46099. (BIT_CLEAR_BF1_LIFETIME(x) | BIT_BF1_LIFETIME(v))
  46100. #endif
  46101. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46102. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  46103. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46104. /* 2 REG_BF_TIMEOUT_EN (Offset 0x1430) */
  46105. #define BIT_EN_VHT_LDPC BIT(9)
  46106. #define BIT_EN_HT_LDPC BIT(8)
  46107. #endif
  46108. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46109. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46110. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46111. HALMAC_8822C_SUPPORT)
  46112. /* 2 REG_BF_TIMEOUT_EN (Offset 0x1430) */
  46113. #define BIT_BF1_TIMEOUT_EN BIT(1)
  46114. #define BIT_BF0_TIMEOUT_EN BIT(0)
  46115. #endif
  46116. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46117. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46118. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46119. /* 2 REG_MACID_RELEASE0 (Offset 0x1434) */
  46120. #define BIT_SHIFT_MACID31_0_RELEASE 0
  46121. #define BIT_MASK_MACID31_0_RELEASE 0xffffffffL
  46122. #define BIT_MACID31_0_RELEASE(x) \
  46123. (((x) & BIT_MASK_MACID31_0_RELEASE) << BIT_SHIFT_MACID31_0_RELEASE)
  46124. #define BITS_MACID31_0_RELEASE \
  46125. (BIT_MASK_MACID31_0_RELEASE << BIT_SHIFT_MACID31_0_RELEASE)
  46126. #define BIT_CLEAR_MACID31_0_RELEASE(x) ((x) & (~BITS_MACID31_0_RELEASE))
  46127. #define BIT_GET_MACID31_0_RELEASE(x) \
  46128. (((x) >> BIT_SHIFT_MACID31_0_RELEASE) & BIT_MASK_MACID31_0_RELEASE)
  46129. #define BIT_SET_MACID31_0_RELEASE(x, v) \
  46130. (BIT_CLEAR_MACID31_0_RELEASE(x) | BIT_MACID31_0_RELEASE(v))
  46131. #endif
  46132. #if (HALMAC_8814B_SUPPORT)
  46133. /* 2 REG_MACID_RELEASE_INFO (Offset 0x1434) */
  46134. #define BIT_SHIFT_MACID_RELEASE_INFO 0
  46135. #define BIT_MASK_MACID_RELEASE_INFO 0xffffffffL
  46136. #define BIT_MACID_RELEASE_INFO(x) \
  46137. (((x) & BIT_MASK_MACID_RELEASE_INFO) << BIT_SHIFT_MACID_RELEASE_INFO)
  46138. #define BITS_MACID_RELEASE_INFO \
  46139. (BIT_MASK_MACID_RELEASE_INFO << BIT_SHIFT_MACID_RELEASE_INFO)
  46140. #define BIT_CLEAR_MACID_RELEASE_INFO(x) ((x) & (~BITS_MACID_RELEASE_INFO))
  46141. #define BIT_GET_MACID_RELEASE_INFO(x) \
  46142. (((x) >> BIT_SHIFT_MACID_RELEASE_INFO) & BIT_MASK_MACID_RELEASE_INFO)
  46143. #define BIT_SET_MACID_RELEASE_INFO(x, v) \
  46144. (BIT_CLEAR_MACID_RELEASE_INFO(x) | BIT_MACID_RELEASE_INFO(v))
  46145. #endif
  46146. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46147. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46148. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46149. /* 2 REG_MACID_RELEASE1 (Offset 0x1438) */
  46150. #define BIT_SHIFT_MACID63_32_RELEASE 0
  46151. #define BIT_MASK_MACID63_32_RELEASE 0xffffffffL
  46152. #define BIT_MACID63_32_RELEASE(x) \
  46153. (((x) & BIT_MASK_MACID63_32_RELEASE) << BIT_SHIFT_MACID63_32_RELEASE)
  46154. #define BITS_MACID63_32_RELEASE \
  46155. (BIT_MASK_MACID63_32_RELEASE << BIT_SHIFT_MACID63_32_RELEASE)
  46156. #define BIT_CLEAR_MACID63_32_RELEASE(x) ((x) & (~BITS_MACID63_32_RELEASE))
  46157. #define BIT_GET_MACID63_32_RELEASE(x) \
  46158. (((x) >> BIT_SHIFT_MACID63_32_RELEASE) & BIT_MASK_MACID63_32_RELEASE)
  46159. #define BIT_SET_MACID63_32_RELEASE(x, v) \
  46160. (BIT_CLEAR_MACID63_32_RELEASE(x) | BIT_MACID63_32_RELEASE(v))
  46161. #endif
  46162. #if (HALMAC_8814B_SUPPORT)
  46163. /* 2 REG_MACID_RELEASE_SUCCESS_INFO (Offset 0x1438) */
  46164. #define BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO 0
  46165. #define BIT_MASK_MACID_RELEASE_SUCCESS_INFO 0xffffffffL
  46166. #define BIT_MACID_RELEASE_SUCCESS_INFO(x) \
  46167. (((x) & BIT_MASK_MACID_RELEASE_SUCCESS_INFO) \
  46168. << BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO)
  46169. #define BITS_MACID_RELEASE_SUCCESS_INFO \
  46170. (BIT_MASK_MACID_RELEASE_SUCCESS_INFO \
  46171. << BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO)
  46172. #define BIT_CLEAR_MACID_RELEASE_SUCCESS_INFO(x) \
  46173. ((x) & (~BITS_MACID_RELEASE_SUCCESS_INFO))
  46174. #define BIT_GET_MACID_RELEASE_SUCCESS_INFO(x) \
  46175. (((x) >> BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO) & \
  46176. BIT_MASK_MACID_RELEASE_SUCCESS_INFO)
  46177. #define BIT_SET_MACID_RELEASE_SUCCESS_INFO(x, v) \
  46178. (BIT_CLEAR_MACID_RELEASE_SUCCESS_INFO(x) | \
  46179. BIT_MACID_RELEASE_SUCCESS_INFO(v))
  46180. /* 2 REG_MACID_RELEASE_CTRL (Offset 0x143C) */
  46181. #define BIT_SHIFT_MACID_RELEASE_SEL 24
  46182. #define BIT_MASK_MACID_RELEASE_SEL 0x7
  46183. #define BIT_MACID_RELEASE_SEL(x) \
  46184. (((x) & BIT_MASK_MACID_RELEASE_SEL) << BIT_SHIFT_MACID_RELEASE_SEL)
  46185. #define BITS_MACID_RELEASE_SEL \
  46186. (BIT_MASK_MACID_RELEASE_SEL << BIT_SHIFT_MACID_RELEASE_SEL)
  46187. #define BIT_CLEAR_MACID_RELEASE_SEL(x) ((x) & (~BITS_MACID_RELEASE_SEL))
  46188. #define BIT_GET_MACID_RELEASE_SEL(x) \
  46189. (((x) >> BIT_SHIFT_MACID_RELEASE_SEL) & BIT_MASK_MACID_RELEASE_SEL)
  46190. #define BIT_SET_MACID_RELEASE_SEL(x, v) \
  46191. (BIT_CLEAR_MACID_RELEASE_SEL(x) | BIT_MACID_RELEASE_SEL(v))
  46192. #define BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET 16
  46193. #define BIT_MASK_MACID_RELEASE_CLEAR_OFFSET 0xff
  46194. #define BIT_MACID_RELEASE_CLEAR_OFFSET(x) \
  46195. (((x) & BIT_MASK_MACID_RELEASE_CLEAR_OFFSET) \
  46196. << BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET)
  46197. #define BITS_MACID_RELEASE_CLEAR_OFFSET \
  46198. (BIT_MASK_MACID_RELEASE_CLEAR_OFFSET \
  46199. << BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET)
  46200. #define BIT_CLEAR_MACID_RELEASE_CLEAR_OFFSET(x) \
  46201. ((x) & (~BITS_MACID_RELEASE_CLEAR_OFFSET))
  46202. #define BIT_GET_MACID_RELEASE_CLEAR_OFFSET(x) \
  46203. (((x) >> BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET) & \
  46204. BIT_MASK_MACID_RELEASE_CLEAR_OFFSET)
  46205. #define BIT_SET_MACID_RELEASE_CLEAR_OFFSET(x, v) \
  46206. (BIT_CLEAR_MACID_RELEASE_CLEAR_OFFSET(x) | \
  46207. BIT_MACID_RELEASE_CLEAR_OFFSET(v))
  46208. #define BIT_MACID_RELEASE_VALUE BIT(8)
  46209. #endif
  46210. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46211. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46212. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46213. /* 2 REG_MACID_RELEASE2 (Offset 0x143C) */
  46214. #define BIT_SHIFT_MACID95_64_RELEASE 0
  46215. #define BIT_MASK_MACID95_64_RELEASE 0xffffffffL
  46216. #define BIT_MACID95_64_RELEASE(x) \
  46217. (((x) & BIT_MASK_MACID95_64_RELEASE) << BIT_SHIFT_MACID95_64_RELEASE)
  46218. #define BITS_MACID95_64_RELEASE \
  46219. (BIT_MASK_MACID95_64_RELEASE << BIT_SHIFT_MACID95_64_RELEASE)
  46220. #define BIT_CLEAR_MACID95_64_RELEASE(x) ((x) & (~BITS_MACID95_64_RELEASE))
  46221. #define BIT_GET_MACID95_64_RELEASE(x) \
  46222. (((x) >> BIT_SHIFT_MACID95_64_RELEASE) & BIT_MASK_MACID95_64_RELEASE)
  46223. #define BIT_SET_MACID95_64_RELEASE(x, v) \
  46224. (BIT_CLEAR_MACID95_64_RELEASE(x) | BIT_MACID95_64_RELEASE(v))
  46225. #endif
  46226. #if (HALMAC_8814B_SUPPORT)
  46227. /* 2 REG_MACID_RELEASE_CTRL (Offset 0x143C) */
  46228. #define BIT_SHIFT_MACID_RELEASE_OFFSET 0
  46229. #define BIT_MASK_MACID_RELEASE_OFFSET 0xff
  46230. #define BIT_MACID_RELEASE_OFFSET(x) \
  46231. (((x) & BIT_MASK_MACID_RELEASE_OFFSET) \
  46232. << BIT_SHIFT_MACID_RELEASE_OFFSET)
  46233. #define BITS_MACID_RELEASE_OFFSET \
  46234. (BIT_MASK_MACID_RELEASE_OFFSET << BIT_SHIFT_MACID_RELEASE_OFFSET)
  46235. #define BIT_CLEAR_MACID_RELEASE_OFFSET(x) ((x) & (~BITS_MACID_RELEASE_OFFSET))
  46236. #define BIT_GET_MACID_RELEASE_OFFSET(x) \
  46237. (((x) >> BIT_SHIFT_MACID_RELEASE_OFFSET) & \
  46238. BIT_MASK_MACID_RELEASE_OFFSET)
  46239. #define BIT_SET_MACID_RELEASE_OFFSET(x, v) \
  46240. (BIT_CLEAR_MACID_RELEASE_OFFSET(x) | BIT_MACID_RELEASE_OFFSET(v))
  46241. #endif
  46242. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46243. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46244. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46245. /* 2 REG_MACID_RELEASE3 (Offset 0x1440) */
  46246. #define BIT_SHIFT_MACID127_96_RELEASE 0
  46247. #define BIT_MASK_MACID127_96_RELEASE 0xffffffffL
  46248. #define BIT_MACID127_96_RELEASE(x) \
  46249. (((x) & BIT_MASK_MACID127_96_RELEASE) << BIT_SHIFT_MACID127_96_RELEASE)
  46250. #define BITS_MACID127_96_RELEASE \
  46251. (BIT_MASK_MACID127_96_RELEASE << BIT_SHIFT_MACID127_96_RELEASE)
  46252. #define BIT_CLEAR_MACID127_96_RELEASE(x) ((x) & (~BITS_MACID127_96_RELEASE))
  46253. #define BIT_GET_MACID127_96_RELEASE(x) \
  46254. (((x) >> BIT_SHIFT_MACID127_96_RELEASE) & BIT_MASK_MACID127_96_RELEASE)
  46255. #define BIT_SET_MACID127_96_RELEASE(x, v) \
  46256. (BIT_CLEAR_MACID127_96_RELEASE(x) | BIT_MACID127_96_RELEASE(v))
  46257. /* 2 REG_MACID_RELEASE_SETTING (Offset 0x1444) */
  46258. #define BIT_MACID_VALUE BIT(7)
  46259. #define BIT_SHIFT_MACID_OFFSET 0
  46260. #define BIT_MASK_MACID_OFFSET 0x7f
  46261. #define BIT_MACID_OFFSET(x) \
  46262. (((x) & BIT_MASK_MACID_OFFSET) << BIT_SHIFT_MACID_OFFSET)
  46263. #define BITS_MACID_OFFSET (BIT_MASK_MACID_OFFSET << BIT_SHIFT_MACID_OFFSET)
  46264. #define BIT_CLEAR_MACID_OFFSET(x) ((x) & (~BITS_MACID_OFFSET))
  46265. #define BIT_GET_MACID_OFFSET(x) \
  46266. (((x) >> BIT_SHIFT_MACID_OFFSET) & BIT_MASK_MACID_OFFSET)
  46267. #define BIT_SET_MACID_OFFSET(x, v) \
  46268. (BIT_CLEAR_MACID_OFFSET(x) | BIT_MACID_OFFSET(v))
  46269. #endif
  46270. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46271. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46272. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46273. HALMAC_8822C_SUPPORT)
  46274. /* 2 REG_FAST_EDCA_VOVI_SETTING (Offset 0x1448) */
  46275. #define BIT_SHIFT_VI_FAST_EDCA_TO 24
  46276. #define BIT_MASK_VI_FAST_EDCA_TO 0xff
  46277. #define BIT_VI_FAST_EDCA_TO(x) \
  46278. (((x) & BIT_MASK_VI_FAST_EDCA_TO) << BIT_SHIFT_VI_FAST_EDCA_TO)
  46279. #define BITS_VI_FAST_EDCA_TO \
  46280. (BIT_MASK_VI_FAST_EDCA_TO << BIT_SHIFT_VI_FAST_EDCA_TO)
  46281. #define BIT_CLEAR_VI_FAST_EDCA_TO(x) ((x) & (~BITS_VI_FAST_EDCA_TO))
  46282. #define BIT_GET_VI_FAST_EDCA_TO(x) \
  46283. (((x) >> BIT_SHIFT_VI_FAST_EDCA_TO) & BIT_MASK_VI_FAST_EDCA_TO)
  46284. #define BIT_SET_VI_FAST_EDCA_TO(x, v) \
  46285. (BIT_CLEAR_VI_FAST_EDCA_TO(x) | BIT_VI_FAST_EDCA_TO(v))
  46286. #define BIT_VI_THRESHOLD_SEL BIT(23)
  46287. #define BIT_SHIFT_VI_FAST_EDCA_PKT_TH 16
  46288. #define BIT_MASK_VI_FAST_EDCA_PKT_TH 0x7f
  46289. #define BIT_VI_FAST_EDCA_PKT_TH(x) \
  46290. (((x) & BIT_MASK_VI_FAST_EDCA_PKT_TH) << BIT_SHIFT_VI_FAST_EDCA_PKT_TH)
  46291. #define BITS_VI_FAST_EDCA_PKT_TH \
  46292. (BIT_MASK_VI_FAST_EDCA_PKT_TH << BIT_SHIFT_VI_FAST_EDCA_PKT_TH)
  46293. #define BIT_CLEAR_VI_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_VI_FAST_EDCA_PKT_TH))
  46294. #define BIT_GET_VI_FAST_EDCA_PKT_TH(x) \
  46295. (((x) >> BIT_SHIFT_VI_FAST_EDCA_PKT_TH) & BIT_MASK_VI_FAST_EDCA_PKT_TH)
  46296. #define BIT_SET_VI_FAST_EDCA_PKT_TH(x, v) \
  46297. (BIT_CLEAR_VI_FAST_EDCA_PKT_TH(x) | BIT_VI_FAST_EDCA_PKT_TH(v))
  46298. #endif
  46299. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46300. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  46301. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46302. /* 2 REG_FAST_EDCA_VOVI_SETTING (Offset 0x1448) */
  46303. #define BIT_SHIFT_VO_FAST_EDCA_TO 8
  46304. #define BIT_MASK_VO_FAST_EDCA_TO 0xff
  46305. #define BIT_VO_FAST_EDCA_TO(x) \
  46306. (((x) & BIT_MASK_VO_FAST_EDCA_TO) << BIT_SHIFT_VO_FAST_EDCA_TO)
  46307. #define BITS_VO_FAST_EDCA_TO \
  46308. (BIT_MASK_VO_FAST_EDCA_TO << BIT_SHIFT_VO_FAST_EDCA_TO)
  46309. #define BIT_CLEAR_VO_FAST_EDCA_TO(x) ((x) & (~BITS_VO_FAST_EDCA_TO))
  46310. #define BIT_GET_VO_FAST_EDCA_TO(x) \
  46311. (((x) >> BIT_SHIFT_VO_FAST_EDCA_TO) & BIT_MASK_VO_FAST_EDCA_TO)
  46312. #define BIT_SET_VO_FAST_EDCA_TO(x, v) \
  46313. (BIT_CLEAR_VO_FAST_EDCA_TO(x) | BIT_VO_FAST_EDCA_TO(v))
  46314. #endif
  46315. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46316. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46317. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46318. HALMAC_8822C_SUPPORT)
  46319. /* 2 REG_FAST_EDCA_VOVI_SETTING (Offset 0x1448) */
  46320. #define BIT_VO_THRESHOLD_SEL BIT(7)
  46321. #define BIT_SHIFT_VO_FAST_EDCA_PKT_TH 0
  46322. #define BIT_MASK_VO_FAST_EDCA_PKT_TH 0x7f
  46323. #define BIT_VO_FAST_EDCA_PKT_TH(x) \
  46324. (((x) & BIT_MASK_VO_FAST_EDCA_PKT_TH) << BIT_SHIFT_VO_FAST_EDCA_PKT_TH)
  46325. #define BITS_VO_FAST_EDCA_PKT_TH \
  46326. (BIT_MASK_VO_FAST_EDCA_PKT_TH << BIT_SHIFT_VO_FAST_EDCA_PKT_TH)
  46327. #define BIT_CLEAR_VO_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_VO_FAST_EDCA_PKT_TH))
  46328. #define BIT_GET_VO_FAST_EDCA_PKT_TH(x) \
  46329. (((x) >> BIT_SHIFT_VO_FAST_EDCA_PKT_TH) & BIT_MASK_VO_FAST_EDCA_PKT_TH)
  46330. #define BIT_SET_VO_FAST_EDCA_PKT_TH(x, v) \
  46331. (BIT_CLEAR_VO_FAST_EDCA_PKT_TH(x) | BIT_VO_FAST_EDCA_PKT_TH(v))
  46332. /* 2 REG_FAST_EDCA_BEBK_SETTING (Offset 0x144C) */
  46333. #define BIT_SHIFT_BK_FAST_EDCA_TO 24
  46334. #define BIT_MASK_BK_FAST_EDCA_TO 0xff
  46335. #define BIT_BK_FAST_EDCA_TO(x) \
  46336. (((x) & BIT_MASK_BK_FAST_EDCA_TO) << BIT_SHIFT_BK_FAST_EDCA_TO)
  46337. #define BITS_BK_FAST_EDCA_TO \
  46338. (BIT_MASK_BK_FAST_EDCA_TO << BIT_SHIFT_BK_FAST_EDCA_TO)
  46339. #define BIT_CLEAR_BK_FAST_EDCA_TO(x) ((x) & (~BITS_BK_FAST_EDCA_TO))
  46340. #define BIT_GET_BK_FAST_EDCA_TO(x) \
  46341. (((x) >> BIT_SHIFT_BK_FAST_EDCA_TO) & BIT_MASK_BK_FAST_EDCA_TO)
  46342. #define BIT_SET_BK_FAST_EDCA_TO(x, v) \
  46343. (BIT_CLEAR_BK_FAST_EDCA_TO(x) | BIT_BK_FAST_EDCA_TO(v))
  46344. #define BIT_BK_THRESHOLD_SEL BIT(23)
  46345. #define BIT_SHIFT_BK_FAST_EDCA_PKT_TH 16
  46346. #define BIT_MASK_BK_FAST_EDCA_PKT_TH 0x7f
  46347. #define BIT_BK_FAST_EDCA_PKT_TH(x) \
  46348. (((x) & BIT_MASK_BK_FAST_EDCA_PKT_TH) << BIT_SHIFT_BK_FAST_EDCA_PKT_TH)
  46349. #define BITS_BK_FAST_EDCA_PKT_TH \
  46350. (BIT_MASK_BK_FAST_EDCA_PKT_TH << BIT_SHIFT_BK_FAST_EDCA_PKT_TH)
  46351. #define BIT_CLEAR_BK_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_BK_FAST_EDCA_PKT_TH))
  46352. #define BIT_GET_BK_FAST_EDCA_PKT_TH(x) \
  46353. (((x) >> BIT_SHIFT_BK_FAST_EDCA_PKT_TH) & BIT_MASK_BK_FAST_EDCA_PKT_TH)
  46354. #define BIT_SET_BK_FAST_EDCA_PKT_TH(x, v) \
  46355. (BIT_CLEAR_BK_FAST_EDCA_PKT_TH(x) | BIT_BK_FAST_EDCA_PKT_TH(v))
  46356. #endif
  46357. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46358. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  46359. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46360. /* 2 REG_FAST_EDCA_BEBK_SETTING (Offset 0x144C) */
  46361. #define BIT_SHIFT_BE_FAST_EDCA_TO 8
  46362. #define BIT_MASK_BE_FAST_EDCA_TO 0xff
  46363. #define BIT_BE_FAST_EDCA_TO(x) \
  46364. (((x) & BIT_MASK_BE_FAST_EDCA_TO) << BIT_SHIFT_BE_FAST_EDCA_TO)
  46365. #define BITS_BE_FAST_EDCA_TO \
  46366. (BIT_MASK_BE_FAST_EDCA_TO << BIT_SHIFT_BE_FAST_EDCA_TO)
  46367. #define BIT_CLEAR_BE_FAST_EDCA_TO(x) ((x) & (~BITS_BE_FAST_EDCA_TO))
  46368. #define BIT_GET_BE_FAST_EDCA_TO(x) \
  46369. (((x) >> BIT_SHIFT_BE_FAST_EDCA_TO) & BIT_MASK_BE_FAST_EDCA_TO)
  46370. #define BIT_SET_BE_FAST_EDCA_TO(x, v) \
  46371. (BIT_CLEAR_BE_FAST_EDCA_TO(x) | BIT_BE_FAST_EDCA_TO(v))
  46372. #endif
  46373. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46374. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  46375. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46376. HALMAC_8822C_SUPPORT)
  46377. /* 2 REG_FAST_EDCA_BEBK_SETTING (Offset 0x144C) */
  46378. #define BIT_BE_THRESHOLD_SEL BIT(7)
  46379. #define BIT_SHIFT_BE_FAST_EDCA_PKT_TH 0
  46380. #define BIT_MASK_BE_FAST_EDCA_PKT_TH 0x7f
  46381. #define BIT_BE_FAST_EDCA_PKT_TH(x) \
  46382. (((x) & BIT_MASK_BE_FAST_EDCA_PKT_TH) << BIT_SHIFT_BE_FAST_EDCA_PKT_TH)
  46383. #define BITS_BE_FAST_EDCA_PKT_TH \
  46384. (BIT_MASK_BE_FAST_EDCA_PKT_TH << BIT_SHIFT_BE_FAST_EDCA_PKT_TH)
  46385. #define BIT_CLEAR_BE_FAST_EDCA_PKT_TH(x) ((x) & (~BITS_BE_FAST_EDCA_PKT_TH))
  46386. #define BIT_GET_BE_FAST_EDCA_PKT_TH(x) \
  46387. (((x) >> BIT_SHIFT_BE_FAST_EDCA_PKT_TH) & BIT_MASK_BE_FAST_EDCA_PKT_TH)
  46388. #define BIT_SET_BE_FAST_EDCA_PKT_TH(x, v) \
  46389. (BIT_CLEAR_BE_FAST_EDCA_PKT_TH(x) | BIT_BE_FAST_EDCA_PKT_TH(v))
  46390. #endif
  46391. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46392. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  46393. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46394. /* 2 REG_MACID_DROP0 (Offset 0x1450) */
  46395. #define BIT_SHIFT_MACID31_0_DROP 0
  46396. #define BIT_MASK_MACID31_0_DROP 0xffffffffL
  46397. #define BIT_MACID31_0_DROP(x) \
  46398. (((x) & BIT_MASK_MACID31_0_DROP) << BIT_SHIFT_MACID31_0_DROP)
  46399. #define BITS_MACID31_0_DROP \
  46400. (BIT_MASK_MACID31_0_DROP << BIT_SHIFT_MACID31_0_DROP)
  46401. #define BIT_CLEAR_MACID31_0_DROP(x) ((x) & (~BITS_MACID31_0_DROP))
  46402. #define BIT_GET_MACID31_0_DROP(x) \
  46403. (((x) >> BIT_SHIFT_MACID31_0_DROP) & BIT_MASK_MACID31_0_DROP)
  46404. #define BIT_SET_MACID31_0_DROP(x, v) \
  46405. (BIT_CLEAR_MACID31_0_DROP(x) | BIT_MACID31_0_DROP(v))
  46406. #endif
  46407. #if (HALMAC_8814B_SUPPORT)
  46408. /* 2 REG_MACID_DROP_INFO (Offset 0x1450) */
  46409. #define BIT_SHIFT_MACID_DROP_INFO 0
  46410. #define BIT_MASK_MACID_DROP_INFO 0xffffffffL
  46411. #define BIT_MACID_DROP_INFO(x) \
  46412. (((x) & BIT_MASK_MACID_DROP_INFO) << BIT_SHIFT_MACID_DROP_INFO)
  46413. #define BITS_MACID_DROP_INFO \
  46414. (BIT_MASK_MACID_DROP_INFO << BIT_SHIFT_MACID_DROP_INFO)
  46415. #define BIT_CLEAR_MACID_DROP_INFO(x) ((x) & (~BITS_MACID_DROP_INFO))
  46416. #define BIT_GET_MACID_DROP_INFO(x) \
  46417. (((x) >> BIT_SHIFT_MACID_DROP_INFO) & BIT_MASK_MACID_DROP_INFO)
  46418. #define BIT_SET_MACID_DROP_INFO(x, v) \
  46419. (BIT_CLEAR_MACID_DROP_INFO(x) | BIT_MACID_DROP_INFO(v))
  46420. #endif
  46421. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46422. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  46423. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46424. /* 2 REG_MACID_DROP1 (Offset 0x1454) */
  46425. #define BIT_SHIFT_MACID63_32_DROP 0
  46426. #define BIT_MASK_MACID63_32_DROP 0xffffffffL
  46427. #define BIT_MACID63_32_DROP(x) \
  46428. (((x) & BIT_MASK_MACID63_32_DROP) << BIT_SHIFT_MACID63_32_DROP)
  46429. #define BITS_MACID63_32_DROP \
  46430. (BIT_MASK_MACID63_32_DROP << BIT_SHIFT_MACID63_32_DROP)
  46431. #define BIT_CLEAR_MACID63_32_DROP(x) ((x) & (~BITS_MACID63_32_DROP))
  46432. #define BIT_GET_MACID63_32_DROP(x) \
  46433. (((x) >> BIT_SHIFT_MACID63_32_DROP) & BIT_MASK_MACID63_32_DROP)
  46434. #define BIT_SET_MACID63_32_DROP(x, v) \
  46435. (BIT_CLEAR_MACID63_32_DROP(x) | BIT_MACID63_32_DROP(v))
  46436. #endif
  46437. #if (HALMAC_8814B_SUPPORT)
  46438. /* 2 REG_MACID_DROP_CTRL (Offset 0x1454) */
  46439. #define BIT_SHIFT_MACID_DROP_SEL 0
  46440. #define BIT_MASK_MACID_DROP_SEL 0x7
  46441. #define BIT_MACID_DROP_SEL(x) \
  46442. (((x) & BIT_MASK_MACID_DROP_SEL) << BIT_SHIFT_MACID_DROP_SEL)
  46443. #define BITS_MACID_DROP_SEL \
  46444. (BIT_MASK_MACID_DROP_SEL << BIT_SHIFT_MACID_DROP_SEL)
  46445. #define BIT_CLEAR_MACID_DROP_SEL(x) ((x) & (~BITS_MACID_DROP_SEL))
  46446. #define BIT_GET_MACID_DROP_SEL(x) \
  46447. (((x) >> BIT_SHIFT_MACID_DROP_SEL) & BIT_MASK_MACID_DROP_SEL)
  46448. #define BIT_SET_MACID_DROP_SEL(x, v) \
  46449. (BIT_CLEAR_MACID_DROP_SEL(x) | BIT_MACID_DROP_SEL(v))
  46450. #endif
  46451. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  46452. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || \
  46453. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  46454. /* 2 REG_MACID_DROP2 (Offset 0x1458) */
  46455. #define BIT_SHIFT_MACID95_64_DROP 0
  46456. #define BIT_MASK_MACID95_64_DROP 0xffffffffL
  46457. #define BIT_MACID95_64_DROP(x) \
  46458. (((x) & BIT_MASK_MACID95_64_DROP) << BIT_SHIFT_MACID95_64_DROP)
  46459. #define BITS_MACID95_64_DROP \
  46460. (BIT_MASK_MACID95_64_DROP << BIT_SHIFT_MACID95_64_DROP)
  46461. #define BIT_CLEAR_MACID95_64_DROP(x) ((x) & (~BITS_MACID95_64_DROP))
  46462. #define BIT_GET_MACID95_64_DROP(x) \
  46463. (((x) >> BIT_SHIFT_MACID95_64_DROP) & BIT_MASK_MACID95_64_DROP)
  46464. #define BIT_SET_MACID95_64_DROP(x, v) \
  46465. (BIT_CLEAR_MACID95_64_DROP(x) | BIT_MACID95_64_DROP(v))
  46466. /* 2 REG_MACID_DROP3 (Offset 0x145C) */
  46467. #define BIT_SHIFT_MACID127_96_DROP 0
  46468. #define BIT_MASK_MACID127_96_DROP 0xffffffffL
  46469. #define BIT_MACID127_96_DROP(x) \
  46470. (((x) & BIT_MASK_MACID127_96_DROP) << BIT_SHIFT_MACID127_96_DROP)
  46471. #define BITS_MACID127_96_DROP \
  46472. (BIT_MASK_MACID127_96_DROP << BIT_SHIFT_MACID127_96_DROP)
  46473. #define BIT_CLEAR_MACID127_96_DROP(x) ((x) & (~BITS_MACID127_96_DROP))
  46474. #define BIT_GET_MACID127_96_DROP(x) \
  46475. (((x) >> BIT_SHIFT_MACID127_96_DROP) & BIT_MASK_MACID127_96_DROP)
  46476. #define BIT_SET_MACID127_96_DROP(x, v) \
  46477. (BIT_CLEAR_MACID127_96_DROP(x) | BIT_MACID127_96_DROP(v))
  46478. #endif
  46479. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  46480. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  46481. HALMAC_8822C_SUPPORT)
  46482. /* 2 REG_R_MACID_RELEASE_SUCCESS_1 (Offset 0x1464) */
  46483. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1 0
  46484. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_1 0xffffffffL
  46485. #define BIT_R_MACID_RELEASE_SUCCESS_1(x) \
  46486. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1) \
  46487. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1)
  46488. #define BITS_R_MACID_RELEASE_SUCCESS_1 \
  46489. (BIT_MASK_R_MACID_RELEASE_SUCCESS_1 \
  46490. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1)
  46491. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1(x) \
  46492. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_1))
  46493. #define BIT_GET_R_MACID_RELEASE_SUCCESS_1(x) \
  46494. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1) & \
  46495. BIT_MASK_R_MACID_RELEASE_SUCCESS_1)
  46496. #define BIT_SET_R_MACID_RELEASE_SUCCESS_1(x, v) \
  46497. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1(x) | \
  46498. BIT_R_MACID_RELEASE_SUCCESS_1(v))
  46499. /* 2 REG_R_MACID_RELEASE_SUCCESS_3 (Offset 0x146C) */
  46500. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3 0
  46501. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_3 0xffffffffL
  46502. #define BIT_R_MACID_RELEASE_SUCCESS_3(x) \
  46503. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3) \
  46504. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3)
  46505. #define BITS_R_MACID_RELEASE_SUCCESS_3 \
  46506. (BIT_MASK_R_MACID_RELEASE_SUCCESS_3 \
  46507. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3)
  46508. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3(x) \
  46509. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_3))
  46510. #define BIT_GET_R_MACID_RELEASE_SUCCESS_3(x) \
  46511. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3) & \
  46512. BIT_MASK_R_MACID_RELEASE_SUCCESS_3)
  46513. #define BIT_SET_R_MACID_RELEASE_SUCCESS_3(x, v) \
  46514. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3(x) | \
  46515. BIT_R_MACID_RELEASE_SUCCESS_3(v))
  46516. #endif
  46517. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46518. /* 2 REG_MGG_FIFO_CRTL (Offset 0x1470) */
  46519. #define BIT_R_MGG_FIFO_EN BIT(31)
  46520. #define BIT_SHIFT_R_MGG_FIFO_PG_SIZE 28
  46521. #define BIT_MASK_R_MGG_FIFO_PG_SIZE 0x7
  46522. #define BIT_R_MGG_FIFO_PG_SIZE(x) \
  46523. (((x) & BIT_MASK_R_MGG_FIFO_PG_SIZE) << BIT_SHIFT_R_MGG_FIFO_PG_SIZE)
  46524. #define BITS_R_MGG_FIFO_PG_SIZE \
  46525. (BIT_MASK_R_MGG_FIFO_PG_SIZE << BIT_SHIFT_R_MGG_FIFO_PG_SIZE)
  46526. #define BIT_CLEAR_R_MGG_FIFO_PG_SIZE(x) ((x) & (~BITS_R_MGG_FIFO_PG_SIZE))
  46527. #define BIT_GET_R_MGG_FIFO_PG_SIZE(x) \
  46528. (((x) >> BIT_SHIFT_R_MGG_FIFO_PG_SIZE) & BIT_MASK_R_MGG_FIFO_PG_SIZE)
  46529. #define BIT_SET_R_MGG_FIFO_PG_SIZE(x, v) \
  46530. (BIT_CLEAR_R_MGG_FIFO_PG_SIZE(x) | BIT_R_MGG_FIFO_PG_SIZE(v))
  46531. #define BIT_SHIFT_R_MGG_FIFO_START_PG 16
  46532. #define BIT_MASK_R_MGG_FIFO_START_PG 0xfff
  46533. #define BIT_R_MGG_FIFO_START_PG(x) \
  46534. (((x) & BIT_MASK_R_MGG_FIFO_START_PG) << BIT_SHIFT_R_MGG_FIFO_START_PG)
  46535. #define BITS_R_MGG_FIFO_START_PG \
  46536. (BIT_MASK_R_MGG_FIFO_START_PG << BIT_SHIFT_R_MGG_FIFO_START_PG)
  46537. #define BIT_CLEAR_R_MGG_FIFO_START_PG(x) ((x) & (~BITS_R_MGG_FIFO_START_PG))
  46538. #define BIT_GET_R_MGG_FIFO_START_PG(x) \
  46539. (((x) >> BIT_SHIFT_R_MGG_FIFO_START_PG) & BIT_MASK_R_MGG_FIFO_START_PG)
  46540. #define BIT_SET_R_MGG_FIFO_START_PG(x, v) \
  46541. (BIT_CLEAR_R_MGG_FIFO_START_PG(x) | BIT_R_MGG_FIFO_START_PG(v))
  46542. #define BIT_SHIFT_R_MGG_FIFO_SIZE 14
  46543. #define BIT_MASK_R_MGG_FIFO_SIZE 0x3
  46544. #define BIT_R_MGG_FIFO_SIZE(x) \
  46545. (((x) & BIT_MASK_R_MGG_FIFO_SIZE) << BIT_SHIFT_R_MGG_FIFO_SIZE)
  46546. #define BITS_R_MGG_FIFO_SIZE \
  46547. (BIT_MASK_R_MGG_FIFO_SIZE << BIT_SHIFT_R_MGG_FIFO_SIZE)
  46548. #define BIT_CLEAR_R_MGG_FIFO_SIZE(x) ((x) & (~BITS_R_MGG_FIFO_SIZE))
  46549. #define BIT_GET_R_MGG_FIFO_SIZE(x) \
  46550. (((x) >> BIT_SHIFT_R_MGG_FIFO_SIZE) & BIT_MASK_R_MGG_FIFO_SIZE)
  46551. #define BIT_SET_R_MGG_FIFO_SIZE(x, v) \
  46552. (BIT_CLEAR_R_MGG_FIFO_SIZE(x) | BIT_R_MGG_FIFO_SIZE(v))
  46553. #define BIT_R_MGG_FIFO_PAUSE BIT(13)
  46554. #define BIT_SHIFT_R_MGG_FIFO_RPTR 8
  46555. #define BIT_MASK_R_MGG_FIFO_RPTR 0x1f
  46556. #define BIT_R_MGG_FIFO_RPTR(x) \
  46557. (((x) & BIT_MASK_R_MGG_FIFO_RPTR) << BIT_SHIFT_R_MGG_FIFO_RPTR)
  46558. #define BITS_R_MGG_FIFO_RPTR \
  46559. (BIT_MASK_R_MGG_FIFO_RPTR << BIT_SHIFT_R_MGG_FIFO_RPTR)
  46560. #define BIT_CLEAR_R_MGG_FIFO_RPTR(x) ((x) & (~BITS_R_MGG_FIFO_RPTR))
  46561. #define BIT_GET_R_MGG_FIFO_RPTR(x) \
  46562. (((x) >> BIT_SHIFT_R_MGG_FIFO_RPTR) & BIT_MASK_R_MGG_FIFO_RPTR)
  46563. #define BIT_SET_R_MGG_FIFO_RPTR(x, v) \
  46564. (BIT_CLEAR_R_MGG_FIFO_RPTR(x) | BIT_R_MGG_FIFO_RPTR(v))
  46565. #define BIT_R_MGG_FIFO_OV BIT(7)
  46566. #endif
  46567. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46568. HALMAC_8822C_SUPPORT)
  46569. /* 2 REG_MGQ_FIFO_WRITE_POINTER (Offset 0x1470) */
  46570. #define BIT_MGQ_FIFO_OV BIT(7)
  46571. #endif
  46572. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46573. /* 2 REG_MGG_FIFO_CRTL (Offset 0x1470) */
  46574. #define BIT_R_MGG_FIFO_WPTR_ERROR BIT(6)
  46575. #endif
  46576. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46577. HALMAC_8822C_SUPPORT)
  46578. /* 2 REG_MGQ_FIFO_WRITE_POINTER (Offset 0x1470) */
  46579. #define BIT_MGQ_FIFO_WPTR_ERROR BIT(6)
  46580. #endif
  46581. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46582. /* 2 REG_MGG_FIFO_CRTL (Offset 0x1470) */
  46583. #define BIT_R_EN_CPU_LIFETIME BIT(5)
  46584. #endif
  46585. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46586. HALMAC_8822C_SUPPORT)
  46587. /* 2 REG_MGQ_FIFO_WRITE_POINTER (Offset 0x1470) */
  46588. #define BIT_EN_MGQ_FIFO_LIFETIME BIT(5)
  46589. #endif
  46590. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46591. /* 2 REG_MGG_FIFO_CRTL (Offset 0x1470) */
  46592. #define BIT_SHIFT_R_MGG_FIFO_WPTR 0
  46593. #define BIT_MASK_R_MGG_FIFO_WPTR 0x1f
  46594. #define BIT_R_MGG_FIFO_WPTR(x) \
  46595. (((x) & BIT_MASK_R_MGG_FIFO_WPTR) << BIT_SHIFT_R_MGG_FIFO_WPTR)
  46596. #define BITS_R_MGG_FIFO_WPTR \
  46597. (BIT_MASK_R_MGG_FIFO_WPTR << BIT_SHIFT_R_MGG_FIFO_WPTR)
  46598. #define BIT_CLEAR_R_MGG_FIFO_WPTR(x) ((x) & (~BITS_R_MGG_FIFO_WPTR))
  46599. #define BIT_GET_R_MGG_FIFO_WPTR(x) \
  46600. (((x) >> BIT_SHIFT_R_MGG_FIFO_WPTR) & BIT_MASK_R_MGG_FIFO_WPTR)
  46601. #define BIT_SET_R_MGG_FIFO_WPTR(x, v) \
  46602. (BIT_CLEAR_R_MGG_FIFO_WPTR(x) | BIT_R_MGG_FIFO_WPTR(v))
  46603. #endif
  46604. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46605. HALMAC_8822C_SUPPORT)
  46606. /* 2 REG_MGQ_FIFO_WRITE_POINTER (Offset 0x1470) */
  46607. #define BIT_SHIFT_MGQ_FIFO_WPTR 0
  46608. #define BIT_MASK_MGQ_FIFO_WPTR 0x1f
  46609. #define BIT_MGQ_FIFO_WPTR(x) \
  46610. (((x) & BIT_MASK_MGQ_FIFO_WPTR) << BIT_SHIFT_MGQ_FIFO_WPTR)
  46611. #define BITS_MGQ_FIFO_WPTR (BIT_MASK_MGQ_FIFO_WPTR << BIT_SHIFT_MGQ_FIFO_WPTR)
  46612. #define BIT_CLEAR_MGQ_FIFO_WPTR(x) ((x) & (~BITS_MGQ_FIFO_WPTR))
  46613. #define BIT_GET_MGQ_FIFO_WPTR(x) \
  46614. (((x) >> BIT_SHIFT_MGQ_FIFO_WPTR) & BIT_MASK_MGQ_FIFO_WPTR)
  46615. #define BIT_SET_MGQ_FIFO_WPTR(x, v) \
  46616. (BIT_CLEAR_MGQ_FIFO_WPTR(x) | BIT_MGQ_FIFO_WPTR(v))
  46617. #endif
  46618. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  46619. /* 2 REG_MGQ_FIFO_ENABLE (Offset 0x1472) */
  46620. #define BIT_MGQ_FIFO_EN BIT(15)
  46621. #endif
  46622. #if (HALMAC_8814B_SUPPORT)
  46623. /* 2 REG_MGQ_FIFO_ENABLE (Offset 0x1472) */
  46624. #define BIT_MGQ_FIFO_EN_V1 BIT(15)
  46625. #endif
  46626. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46627. HALMAC_8822C_SUPPORT)
  46628. /* 2 REG_MGQ_FIFO_READ_POINTER (Offset 0x1472) */
  46629. #define BIT_SHIFT_MGQ_FIFO_SIZE 14
  46630. #define BIT_MASK_MGQ_FIFO_SIZE 0x3
  46631. #define BIT_MGQ_FIFO_SIZE(x) \
  46632. (((x) & BIT_MASK_MGQ_FIFO_SIZE) << BIT_SHIFT_MGQ_FIFO_SIZE)
  46633. #define BITS_MGQ_FIFO_SIZE (BIT_MASK_MGQ_FIFO_SIZE << BIT_SHIFT_MGQ_FIFO_SIZE)
  46634. #define BIT_CLEAR_MGQ_FIFO_SIZE(x) ((x) & (~BITS_MGQ_FIFO_SIZE))
  46635. #define BIT_GET_MGQ_FIFO_SIZE(x) \
  46636. (((x) >> BIT_SHIFT_MGQ_FIFO_SIZE) & BIT_MASK_MGQ_FIFO_SIZE)
  46637. #define BIT_SET_MGQ_FIFO_SIZE(x, v) \
  46638. (BIT_CLEAR_MGQ_FIFO_SIZE(x) | BIT_MGQ_FIFO_SIZE(v))
  46639. #define BIT_MGQ_FIFO_PAUSE BIT(13)
  46640. #define BIT_SHIFT_MGQ_FIFO_PG_SIZE 12
  46641. #define BIT_MASK_MGQ_FIFO_PG_SIZE 0x7
  46642. #define BIT_MGQ_FIFO_PG_SIZE(x) \
  46643. (((x) & BIT_MASK_MGQ_FIFO_PG_SIZE) << BIT_SHIFT_MGQ_FIFO_PG_SIZE)
  46644. #define BITS_MGQ_FIFO_PG_SIZE \
  46645. (BIT_MASK_MGQ_FIFO_PG_SIZE << BIT_SHIFT_MGQ_FIFO_PG_SIZE)
  46646. #define BIT_CLEAR_MGQ_FIFO_PG_SIZE(x) ((x) & (~BITS_MGQ_FIFO_PG_SIZE))
  46647. #define BIT_GET_MGQ_FIFO_PG_SIZE(x) \
  46648. (((x) >> BIT_SHIFT_MGQ_FIFO_PG_SIZE) & BIT_MASK_MGQ_FIFO_PG_SIZE)
  46649. #define BIT_SET_MGQ_FIFO_PG_SIZE(x, v) \
  46650. (BIT_CLEAR_MGQ_FIFO_PG_SIZE(x) | BIT_MGQ_FIFO_PG_SIZE(v))
  46651. #define BIT_SHIFT_MGQ_FIFO_RPTR 8
  46652. #define BIT_MASK_MGQ_FIFO_RPTR 0x1f
  46653. #define BIT_MGQ_FIFO_RPTR(x) \
  46654. (((x) & BIT_MASK_MGQ_FIFO_RPTR) << BIT_SHIFT_MGQ_FIFO_RPTR)
  46655. #define BITS_MGQ_FIFO_RPTR (BIT_MASK_MGQ_FIFO_RPTR << BIT_SHIFT_MGQ_FIFO_RPTR)
  46656. #define BIT_CLEAR_MGQ_FIFO_RPTR(x) ((x) & (~BITS_MGQ_FIFO_RPTR))
  46657. #define BIT_GET_MGQ_FIFO_RPTR(x) \
  46658. (((x) >> BIT_SHIFT_MGQ_FIFO_RPTR) & BIT_MASK_MGQ_FIFO_RPTR)
  46659. #define BIT_SET_MGQ_FIFO_RPTR(x, v) \
  46660. (BIT_CLEAR_MGQ_FIFO_RPTR(x) | BIT_MGQ_FIFO_RPTR(v))
  46661. #define BIT_SHIFT_MGQ_FIFO_START_PG 0
  46662. #define BIT_MASK_MGQ_FIFO_START_PG 0xfff
  46663. #define BIT_MGQ_FIFO_START_PG(x) \
  46664. (((x) & BIT_MASK_MGQ_FIFO_START_PG) << BIT_SHIFT_MGQ_FIFO_START_PG)
  46665. #define BITS_MGQ_FIFO_START_PG \
  46666. (BIT_MASK_MGQ_FIFO_START_PG << BIT_SHIFT_MGQ_FIFO_START_PG)
  46667. #define BIT_CLEAR_MGQ_FIFO_START_PG(x) ((x) & (~BITS_MGQ_FIFO_START_PG))
  46668. #define BIT_GET_MGQ_FIFO_START_PG(x) \
  46669. (((x) >> BIT_SHIFT_MGQ_FIFO_START_PG) & BIT_MASK_MGQ_FIFO_START_PG)
  46670. #define BIT_SET_MGQ_FIFO_START_PG(x, v) \
  46671. (BIT_CLEAR_MGQ_FIFO_START_PG(x) | BIT_MGQ_FIFO_START_PG(v))
  46672. #endif
  46673. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46674. /* 2 REG_MGG_FIFO_INT (Offset 0x1474) */
  46675. #define BIT_SHIFT_R_MGG_FIFO_INT_FLAG 16
  46676. #define BIT_MASK_R_MGG_FIFO_INT_FLAG 0xffff
  46677. #define BIT_R_MGG_FIFO_INT_FLAG(x) \
  46678. (((x) & BIT_MASK_R_MGG_FIFO_INT_FLAG) << BIT_SHIFT_R_MGG_FIFO_INT_FLAG)
  46679. #define BITS_R_MGG_FIFO_INT_FLAG \
  46680. (BIT_MASK_R_MGG_FIFO_INT_FLAG << BIT_SHIFT_R_MGG_FIFO_INT_FLAG)
  46681. #define BIT_CLEAR_R_MGG_FIFO_INT_FLAG(x) ((x) & (~BITS_R_MGG_FIFO_INT_FLAG))
  46682. #define BIT_GET_R_MGG_FIFO_INT_FLAG(x) \
  46683. (((x) >> BIT_SHIFT_R_MGG_FIFO_INT_FLAG) & BIT_MASK_R_MGG_FIFO_INT_FLAG)
  46684. #define BIT_SET_R_MGG_FIFO_INT_FLAG(x, v) \
  46685. (BIT_CLEAR_R_MGG_FIFO_INT_FLAG(x) | BIT_R_MGG_FIFO_INT_FLAG(v))
  46686. #define BIT_SHIFT_R_MGG_FIFO_INT_MASK 0
  46687. #define BIT_MASK_R_MGG_FIFO_INT_MASK 0xffff
  46688. #define BIT_R_MGG_FIFO_INT_MASK(x) \
  46689. (((x) & BIT_MASK_R_MGG_FIFO_INT_MASK) << BIT_SHIFT_R_MGG_FIFO_INT_MASK)
  46690. #define BITS_R_MGG_FIFO_INT_MASK \
  46691. (BIT_MASK_R_MGG_FIFO_INT_MASK << BIT_SHIFT_R_MGG_FIFO_INT_MASK)
  46692. #define BIT_CLEAR_R_MGG_FIFO_INT_MASK(x) ((x) & (~BITS_R_MGG_FIFO_INT_MASK))
  46693. #define BIT_GET_R_MGG_FIFO_INT_MASK(x) \
  46694. (((x) >> BIT_SHIFT_R_MGG_FIFO_INT_MASK) & BIT_MASK_R_MGG_FIFO_INT_MASK)
  46695. #define BIT_SET_R_MGG_FIFO_INT_MASK(x, v) \
  46696. (BIT_CLEAR_R_MGG_FIFO_INT_MASK(x) | BIT_R_MGG_FIFO_INT_MASK(v))
  46697. #endif
  46698. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46699. HALMAC_8822C_SUPPORT)
  46700. /* 2 REG_MGQ_FIFO_RELEASE_INT_MASK (Offset 0x1474) */
  46701. #define BIT_SHIFT_MGQ_FIFO_REL_INT_MASK 0
  46702. #define BIT_MASK_MGQ_FIFO_REL_INT_MASK 0xffff
  46703. #define BIT_MGQ_FIFO_REL_INT_MASK(x) \
  46704. (((x) & BIT_MASK_MGQ_FIFO_REL_INT_MASK) \
  46705. << BIT_SHIFT_MGQ_FIFO_REL_INT_MASK)
  46706. #define BITS_MGQ_FIFO_REL_INT_MASK \
  46707. (BIT_MASK_MGQ_FIFO_REL_INT_MASK << BIT_SHIFT_MGQ_FIFO_REL_INT_MASK)
  46708. #define BIT_CLEAR_MGQ_FIFO_REL_INT_MASK(x) ((x) & (~BITS_MGQ_FIFO_REL_INT_MASK))
  46709. #define BIT_GET_MGQ_FIFO_REL_INT_MASK(x) \
  46710. (((x) >> BIT_SHIFT_MGQ_FIFO_REL_INT_MASK) & \
  46711. BIT_MASK_MGQ_FIFO_REL_INT_MASK)
  46712. #define BIT_SET_MGQ_FIFO_REL_INT_MASK(x, v) \
  46713. (BIT_CLEAR_MGQ_FIFO_REL_INT_MASK(x) | BIT_MGQ_FIFO_REL_INT_MASK(v))
  46714. /* 2 REG_MGQ_FIFO_RELEASE_INT_FLAG (Offset 0x1476) */
  46715. #define BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG 0
  46716. #define BIT_MASK_MGQ_FIFO_REL_INT_FLAG 0xffff
  46717. #define BIT_MGQ_FIFO_REL_INT_FLAG(x) \
  46718. (((x) & BIT_MASK_MGQ_FIFO_REL_INT_FLAG) \
  46719. << BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG)
  46720. #define BITS_MGQ_FIFO_REL_INT_FLAG \
  46721. (BIT_MASK_MGQ_FIFO_REL_INT_FLAG << BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG)
  46722. #define BIT_CLEAR_MGQ_FIFO_REL_INT_FLAG(x) ((x) & (~BITS_MGQ_FIFO_REL_INT_FLAG))
  46723. #define BIT_GET_MGQ_FIFO_REL_INT_FLAG(x) \
  46724. (((x) >> BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG) & \
  46725. BIT_MASK_MGQ_FIFO_REL_INT_FLAG)
  46726. #define BIT_SET_MGQ_FIFO_REL_INT_FLAG(x, v) \
  46727. (BIT_CLEAR_MGQ_FIFO_REL_INT_FLAG(x) | BIT_MGQ_FIFO_REL_INT_FLAG(v))
  46728. #endif
  46729. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  46730. /* 2 REG_MGG_FIFO_LIFETIME (Offset 0x1478) */
  46731. #define BIT_SHIFT_R_MGG_FIFO_LIFETIME 16
  46732. #define BIT_MASK_R_MGG_FIFO_LIFETIME 0xffff
  46733. #define BIT_R_MGG_FIFO_LIFETIME(x) \
  46734. (((x) & BIT_MASK_R_MGG_FIFO_LIFETIME) << BIT_SHIFT_R_MGG_FIFO_LIFETIME)
  46735. #define BITS_R_MGG_FIFO_LIFETIME \
  46736. (BIT_MASK_R_MGG_FIFO_LIFETIME << BIT_SHIFT_R_MGG_FIFO_LIFETIME)
  46737. #define BIT_CLEAR_R_MGG_FIFO_LIFETIME(x) ((x) & (~BITS_R_MGG_FIFO_LIFETIME))
  46738. #define BIT_GET_R_MGG_FIFO_LIFETIME(x) \
  46739. (((x) >> BIT_SHIFT_R_MGG_FIFO_LIFETIME) & BIT_MASK_R_MGG_FIFO_LIFETIME)
  46740. #define BIT_SET_R_MGG_FIFO_LIFETIME(x, v) \
  46741. (BIT_CLEAR_R_MGG_FIFO_LIFETIME(x) | BIT_R_MGG_FIFO_LIFETIME(v))
  46742. #define BIT_SHIFT_R_MGG_FIFO_VALID_MAP 0
  46743. #define BIT_MASK_R_MGG_FIFO_VALID_MAP 0xffff
  46744. #define BIT_R_MGG_FIFO_VALID_MAP(x) \
  46745. (((x) & BIT_MASK_R_MGG_FIFO_VALID_MAP) \
  46746. << BIT_SHIFT_R_MGG_FIFO_VALID_MAP)
  46747. #define BITS_R_MGG_FIFO_VALID_MAP \
  46748. (BIT_MASK_R_MGG_FIFO_VALID_MAP << BIT_SHIFT_R_MGG_FIFO_VALID_MAP)
  46749. #define BIT_CLEAR_R_MGG_FIFO_VALID_MAP(x) ((x) & (~BITS_R_MGG_FIFO_VALID_MAP))
  46750. #define BIT_GET_R_MGG_FIFO_VALID_MAP(x) \
  46751. (((x) >> BIT_SHIFT_R_MGG_FIFO_VALID_MAP) & \
  46752. BIT_MASK_R_MGG_FIFO_VALID_MAP)
  46753. #define BIT_SET_R_MGG_FIFO_VALID_MAP(x, v) \
  46754. (BIT_CLEAR_R_MGG_FIFO_VALID_MAP(x) | BIT_R_MGG_FIFO_VALID_MAP(v))
  46755. #endif
  46756. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  46757. HALMAC_8822C_SUPPORT)
  46758. /* 2 REG_MGQ_FIFO_VALID_MAP (Offset 0x1478) */
  46759. #define BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP 0
  46760. #define BIT_MASK_MGQ_FIFO_PKT_VALID_MAP 0xffff
  46761. #define BIT_MGQ_FIFO_PKT_VALID_MAP(x) \
  46762. (((x) & BIT_MASK_MGQ_FIFO_PKT_VALID_MAP) \
  46763. << BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP)
  46764. #define BITS_MGQ_FIFO_PKT_VALID_MAP \
  46765. (BIT_MASK_MGQ_FIFO_PKT_VALID_MAP << BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP)
  46766. #define BIT_CLEAR_MGQ_FIFO_PKT_VALID_MAP(x) \
  46767. ((x) & (~BITS_MGQ_FIFO_PKT_VALID_MAP))
  46768. #define BIT_GET_MGQ_FIFO_PKT_VALID_MAP(x) \
  46769. (((x) >> BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP) & \
  46770. BIT_MASK_MGQ_FIFO_PKT_VALID_MAP)
  46771. #define BIT_SET_MGQ_FIFO_PKT_VALID_MAP(x, v) \
  46772. (BIT_CLEAR_MGQ_FIFO_PKT_VALID_MAP(x) | BIT_MGQ_FIFO_PKT_VALID_MAP(v))
  46773. /* 2 REG_MGQ_FIFO_LIFETIME (Offset 0x147A) */
  46774. #define BIT_SHIFT_MGQ_FIFO_LIFETIME 0
  46775. #define BIT_MASK_MGQ_FIFO_LIFETIME 0xffff
  46776. #define BIT_MGQ_FIFO_LIFETIME(x) \
  46777. (((x) & BIT_MASK_MGQ_FIFO_LIFETIME) << BIT_SHIFT_MGQ_FIFO_LIFETIME)
  46778. #define BITS_MGQ_FIFO_LIFETIME \
  46779. (BIT_MASK_MGQ_FIFO_LIFETIME << BIT_SHIFT_MGQ_FIFO_LIFETIME)
  46780. #define BIT_CLEAR_MGQ_FIFO_LIFETIME(x) ((x) & (~BITS_MGQ_FIFO_LIFETIME))
  46781. #define BIT_GET_MGQ_FIFO_LIFETIME(x) \
  46782. (((x) >> BIT_SHIFT_MGQ_FIFO_LIFETIME) & BIT_MASK_MGQ_FIFO_LIFETIME)
  46783. #define BIT_SET_MGQ_FIFO_LIFETIME(x, v) \
  46784. (BIT_CLEAR_MGQ_FIFO_LIFETIME(x) | BIT_MGQ_FIFO_LIFETIME(v))
  46785. #endif
  46786. #if (HALMAC_8814B_SUPPORT)
  46787. /* 2 REG_PKT_TRANS (Offset 0x1480) */
  46788. #define BIT_SHIFT_IE_DESC_OFFSET 16
  46789. #define BIT_MASK_IE_DESC_OFFSET 0x1ff
  46790. #define BIT_IE_DESC_OFFSET(x) \
  46791. (((x) & BIT_MASK_IE_DESC_OFFSET) << BIT_SHIFT_IE_DESC_OFFSET)
  46792. #define BITS_IE_DESC_OFFSET \
  46793. (BIT_MASK_IE_DESC_OFFSET << BIT_SHIFT_IE_DESC_OFFSET)
  46794. #define BIT_CLEAR_IE_DESC_OFFSET(x) ((x) & (~BITS_IE_DESC_OFFSET))
  46795. #define BIT_GET_IE_DESC_OFFSET(x) \
  46796. (((x) >> BIT_SHIFT_IE_DESC_OFFSET) & BIT_MASK_IE_DESC_OFFSET)
  46797. #define BIT_SET_IE_DESC_OFFSET(x, v) \
  46798. (BIT_CLEAR_IE_DESC_OFFSET(x) | BIT_IE_DESC_OFFSET(v))
  46799. #define BIT_DIS_FWCMD_PATH_ERRCHK BIT(13)
  46800. #define BIT_MAC_HDR_CONVERT_EN BIT(12)
  46801. #define BIT_TXDESC_TRANS_EN BIT(8)
  46802. #define BIT_PKT_TRANS_ERRINT_EN BIT(7)
  46803. #define BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL 4
  46804. #define BIT_MASK_PKT_TRANS_ERR_MACID_SEL 0x3
  46805. #define BIT_PKT_TRANS_ERR_MACID_SEL(x) \
  46806. (((x) & BIT_MASK_PKT_TRANS_ERR_MACID_SEL) \
  46807. << BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL)
  46808. #define BITS_PKT_TRANS_ERR_MACID_SEL \
  46809. (BIT_MASK_PKT_TRANS_ERR_MACID_SEL << BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL)
  46810. #define BIT_CLEAR_PKT_TRANS_ERR_MACID_SEL(x) \
  46811. ((x) & (~BITS_PKT_TRANS_ERR_MACID_SEL))
  46812. #define BIT_GET_PKT_TRANS_ERR_MACID_SEL(x) \
  46813. (((x) >> BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL) & \
  46814. BIT_MASK_PKT_TRANS_ERR_MACID_SEL)
  46815. #define BIT_SET_PKT_TRANS_ERR_MACID_SEL(x, v) \
  46816. (BIT_CLEAR_PKT_TRANS_ERR_MACID_SEL(x) | BIT_PKT_TRANS_ERR_MACID_SEL(v))
  46817. #define BIT_PKT_TRANS_IEINIT_ERR BIT(3)
  46818. #define BIT_PKT_TRANS_IENUM_ERR BIT(2)
  46819. #define BIT_PKT_TRANS_IECNT_ERR1 BIT(1)
  46820. #define BIT_PKT_TRANS_IECNT_ERR0 BIT(0)
  46821. /* 2 REG_SHCUT_LLC_ETH_TYPE1 (Offset 0x1488) */
  46822. #define BIT_SHIFT_SHCUT_MHDR_OFFSET 16
  46823. #define BIT_MASK_SHCUT_MHDR_OFFSET 0x1ff
  46824. #define BIT_SHCUT_MHDR_OFFSET(x) \
  46825. (((x) & BIT_MASK_SHCUT_MHDR_OFFSET) << BIT_SHIFT_SHCUT_MHDR_OFFSET)
  46826. #define BITS_SHCUT_MHDR_OFFSET \
  46827. (BIT_MASK_SHCUT_MHDR_OFFSET << BIT_SHIFT_SHCUT_MHDR_OFFSET)
  46828. #define BIT_CLEAR_SHCUT_MHDR_OFFSET(x) ((x) & (~BITS_SHCUT_MHDR_OFFSET))
  46829. #define BIT_GET_SHCUT_MHDR_OFFSET(x) \
  46830. (((x) >> BIT_SHIFT_SHCUT_MHDR_OFFSET) & BIT_MASK_SHCUT_MHDR_OFFSET)
  46831. #define BIT_SET_SHCUT_MHDR_OFFSET(x, v) \
  46832. (BIT_CLEAR_SHCUT_MHDR_OFFSET(x) | BIT_SHCUT_MHDR_OFFSET(v))
  46833. #define BIT_SHIFT_PKT_TRANS_ERR_MACID 0
  46834. #define BIT_MASK_PKT_TRANS_ERR_MACID 0xffffffffL
  46835. #define BIT_PKT_TRANS_ERR_MACID(x) \
  46836. (((x) & BIT_MASK_PKT_TRANS_ERR_MACID) << BIT_SHIFT_PKT_TRANS_ERR_MACID)
  46837. #define BITS_PKT_TRANS_ERR_MACID \
  46838. (BIT_MASK_PKT_TRANS_ERR_MACID << BIT_SHIFT_PKT_TRANS_ERR_MACID)
  46839. #define BIT_CLEAR_PKT_TRANS_ERR_MACID(x) ((x) & (~BITS_PKT_TRANS_ERR_MACID))
  46840. #define BIT_GET_PKT_TRANS_ERR_MACID(x) \
  46841. (((x) >> BIT_SHIFT_PKT_TRANS_ERR_MACID) & BIT_MASK_PKT_TRANS_ERR_MACID)
  46842. #define BIT_SET_PKT_TRANS_ERR_MACID(x, v) \
  46843. (BIT_CLEAR_PKT_TRANS_ERR_MACID(x) | BIT_PKT_TRANS_ERR_MACID(v))
  46844. /* 2 REG_FWCMDQ_CTRL (Offset 0x14A0) */
  46845. #define BIT_FW_RELEASEPKT_POLLING BIT(31)
  46846. #define BIT_SHIFT_FWCMDQ_RELEASE_HEAD 16
  46847. #define BIT_MASK_FWCMDQ_RELEASE_HEAD 0xfff
  46848. #define BIT_FWCMDQ_RELEASE_HEAD(x) \
  46849. (((x) & BIT_MASK_FWCMDQ_RELEASE_HEAD) << BIT_SHIFT_FWCMDQ_RELEASE_HEAD)
  46850. #define BITS_FWCMDQ_RELEASE_HEAD \
  46851. (BIT_MASK_FWCMDQ_RELEASE_HEAD << BIT_SHIFT_FWCMDQ_RELEASE_HEAD)
  46852. #define BIT_CLEAR_FWCMDQ_RELEASE_HEAD(x) ((x) & (~BITS_FWCMDQ_RELEASE_HEAD))
  46853. #define BIT_GET_FWCMDQ_RELEASE_HEAD(x) \
  46854. (((x) >> BIT_SHIFT_FWCMDQ_RELEASE_HEAD) & BIT_MASK_FWCMDQ_RELEASE_HEAD)
  46855. #define BIT_SET_FWCMDQ_RELEASE_HEAD(x, v) \
  46856. (BIT_CLEAR_FWCMDQ_RELEASE_HEAD(x) | BIT_FWCMDQ_RELEASE_HEAD(v))
  46857. #define BIT_FW_GETPKTT_POLLING BIT(15)
  46858. #define BIT_SHIFT_FWCMDQ_H 0
  46859. #define BIT_MASK_FWCMDQ_H 0xfff
  46860. #define BIT_FWCMDQ_H(x) (((x) & BIT_MASK_FWCMDQ_H) << BIT_SHIFT_FWCMDQ_H)
  46861. #define BITS_FWCMDQ_H (BIT_MASK_FWCMDQ_H << BIT_SHIFT_FWCMDQ_H)
  46862. #define BIT_CLEAR_FWCMDQ_H(x) ((x) & (~BITS_FWCMDQ_H))
  46863. #define BIT_GET_FWCMDQ_H(x) (((x) >> BIT_SHIFT_FWCMDQ_H) & BIT_MASK_FWCMDQ_H)
  46864. #define BIT_SET_FWCMDQ_H(x, v) (BIT_CLEAR_FWCMDQ_H(x) | BIT_FWCMDQ_H(v))
  46865. /* 2 REG_FWCMDQ_PAGE (Offset 0x14A4) */
  46866. #define BIT_SHIFT_FWCMDQ_TOTAL_PAGE 16
  46867. #define BIT_MASK_FWCMDQ_TOTAL_PAGE 0xfff
  46868. #define BIT_FWCMDQ_TOTAL_PAGE(x) \
  46869. (((x) & BIT_MASK_FWCMDQ_TOTAL_PAGE) << BIT_SHIFT_FWCMDQ_TOTAL_PAGE)
  46870. #define BITS_FWCMDQ_TOTAL_PAGE \
  46871. (BIT_MASK_FWCMDQ_TOTAL_PAGE << BIT_SHIFT_FWCMDQ_TOTAL_PAGE)
  46872. #define BIT_CLEAR_FWCMDQ_TOTAL_PAGE(x) ((x) & (~BITS_FWCMDQ_TOTAL_PAGE))
  46873. #define BIT_GET_FWCMDQ_TOTAL_PAGE(x) \
  46874. (((x) >> BIT_SHIFT_FWCMDQ_TOTAL_PAGE) & BIT_MASK_FWCMDQ_TOTAL_PAGE)
  46875. #define BIT_SET_FWCMDQ_TOTAL_PAGE(x, v) \
  46876. (BIT_CLEAR_FWCMDQ_TOTAL_PAGE(x) | BIT_FWCMDQ_TOTAL_PAGE(v))
  46877. #define BIT_SHIFT_FWCMDQ_QUEUE_PAGE 0
  46878. #define BIT_MASK_FWCMDQ_QUEUE_PAGE 0xfff
  46879. #define BIT_FWCMDQ_QUEUE_PAGE(x) \
  46880. (((x) & BIT_MASK_FWCMDQ_QUEUE_PAGE) << BIT_SHIFT_FWCMDQ_QUEUE_PAGE)
  46881. #define BITS_FWCMDQ_QUEUE_PAGE \
  46882. (BIT_MASK_FWCMDQ_QUEUE_PAGE << BIT_SHIFT_FWCMDQ_QUEUE_PAGE)
  46883. #define BIT_CLEAR_FWCMDQ_QUEUE_PAGE(x) ((x) & (~BITS_FWCMDQ_QUEUE_PAGE))
  46884. #define BIT_GET_FWCMDQ_QUEUE_PAGE(x) \
  46885. (((x) >> BIT_SHIFT_FWCMDQ_QUEUE_PAGE) & BIT_MASK_FWCMDQ_QUEUE_PAGE)
  46886. #define BIT_SET_FWCMDQ_QUEUE_PAGE(x, v) \
  46887. (BIT_CLEAR_FWCMDQ_QUEUE_PAGE(x) | BIT_FWCMDQ_QUEUE_PAGE(v))
  46888. /* 2 REG_FWCMDQ_INFO (Offset 0x14A8) */
  46889. #define BIT_FWCMD_READY BIT(31)
  46890. #define BIT_FWCMDQ_OVERFLOW BIT(30)
  46891. #define BIT_FWCMDQ_UNDERFLOW BIT(29)
  46892. #define BIT_FWCMDQ_RELEASE_MISS BIT(28)
  46893. #define BIT_SHIFT_FWCMDQ_TOTAL_PKT 16
  46894. #define BIT_MASK_FWCMDQ_TOTAL_PKT 0xfff
  46895. #define BIT_FWCMDQ_TOTAL_PKT(x) \
  46896. (((x) & BIT_MASK_FWCMDQ_TOTAL_PKT) << BIT_SHIFT_FWCMDQ_TOTAL_PKT)
  46897. #define BITS_FWCMDQ_TOTAL_PKT \
  46898. (BIT_MASK_FWCMDQ_TOTAL_PKT << BIT_SHIFT_FWCMDQ_TOTAL_PKT)
  46899. #define BIT_CLEAR_FWCMDQ_TOTAL_PKT(x) ((x) & (~BITS_FWCMDQ_TOTAL_PKT))
  46900. #define BIT_GET_FWCMDQ_TOTAL_PKT(x) \
  46901. (((x) >> BIT_SHIFT_FWCMDQ_TOTAL_PKT) & BIT_MASK_FWCMDQ_TOTAL_PKT)
  46902. #define BIT_SET_FWCMDQ_TOTAL_PKT(x, v) \
  46903. (BIT_CLEAR_FWCMDQ_TOTAL_PKT(x) | BIT_FWCMDQ_TOTAL_PKT(v))
  46904. #define BIT_SHIFT_FWCMDQ_QUEUE_PKT 0
  46905. #define BIT_MASK_FWCMDQ_QUEUE_PKT 0xfff
  46906. #define BIT_FWCMDQ_QUEUE_PKT(x) \
  46907. (((x) & BIT_MASK_FWCMDQ_QUEUE_PKT) << BIT_SHIFT_FWCMDQ_QUEUE_PKT)
  46908. #define BITS_FWCMDQ_QUEUE_PKT \
  46909. (BIT_MASK_FWCMDQ_QUEUE_PKT << BIT_SHIFT_FWCMDQ_QUEUE_PKT)
  46910. #define BIT_CLEAR_FWCMDQ_QUEUE_PKT(x) ((x) & (~BITS_FWCMDQ_QUEUE_PKT))
  46911. #define BIT_GET_FWCMDQ_QUEUE_PKT(x) \
  46912. (((x) >> BIT_SHIFT_FWCMDQ_QUEUE_PKT) & BIT_MASK_FWCMDQ_QUEUE_PKT)
  46913. #define BIT_SET_FWCMDQ_QUEUE_PKT(x, v) \
  46914. (BIT_CLEAR_FWCMDQ_QUEUE_PKT(x) | BIT_FWCMDQ_QUEUE_PKT(v))
  46915. /* 2 REG_FWCMDQ_HOLD_PKTNUM (Offset 0x14AC) */
  46916. #define BIT_SHIFT_FWCMDQ_HOLD__PKTNUM 0
  46917. #define BIT_MASK_FWCMDQ_HOLD__PKTNUM 0xfff
  46918. #define BIT_FWCMDQ_HOLD__PKTNUM(x) \
  46919. (((x) & BIT_MASK_FWCMDQ_HOLD__PKTNUM) << BIT_SHIFT_FWCMDQ_HOLD__PKTNUM)
  46920. #define BITS_FWCMDQ_HOLD__PKTNUM \
  46921. (BIT_MASK_FWCMDQ_HOLD__PKTNUM << BIT_SHIFT_FWCMDQ_HOLD__PKTNUM)
  46922. #define BIT_CLEAR_FWCMDQ_HOLD__PKTNUM(x) ((x) & (~BITS_FWCMDQ_HOLD__PKTNUM))
  46923. #define BIT_GET_FWCMDQ_HOLD__PKTNUM(x) \
  46924. (((x) >> BIT_SHIFT_FWCMDQ_HOLD__PKTNUM) & BIT_MASK_FWCMDQ_HOLD__PKTNUM)
  46925. #define BIT_SET_FWCMDQ_HOLD__PKTNUM(x, v) \
  46926. (BIT_CLEAR_FWCMDQ_HOLD__PKTNUM(x) | BIT_FWCMDQ_HOLD__PKTNUM(v))
  46927. /* 2 REG_MU_TX_CTRL (Offset 0x14C0) */
  46928. #define BIT_SEARCH_DONE_RDY BIT(31)
  46929. #define BIT_MU_EN BIT(30)
  46930. #define BIT_MU_SECONDARY_WAITMODE_EN BIT(29)
  46931. #define BIT_MU_BB_SCORE_EN BIT(28)
  46932. #define BIT_MU_SECONDARY_ANT_COUNT_EN BIT(27)
  46933. #define BIT_MUARB_SEARCH_ERR_EN BIT(26)
  46934. #endif
  46935. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  46936. /* 2 REG_MU_TX_CTL (Offset 0x14C0) */
  46937. #define BIT_R_MU_P1_WAIT_STATE_EN BIT(16)
  46938. #endif
  46939. #if (HALMAC_8814B_SUPPORT)
  46940. /* 2 REG_MU_TX_CTRL (Offset 0x14C0) */
  46941. #define BIT_SHIFT_DIS_SU_TXBF 16
  46942. #define BIT_MASK_DIS_SU_TXBF 0x3f
  46943. #define BIT_DIS_SU_TXBF(x) \
  46944. (((x) & BIT_MASK_DIS_SU_TXBF) << BIT_SHIFT_DIS_SU_TXBF)
  46945. #define BITS_DIS_SU_TXBF (BIT_MASK_DIS_SU_TXBF << BIT_SHIFT_DIS_SU_TXBF)
  46946. #define BIT_CLEAR_DIS_SU_TXBF(x) ((x) & (~BITS_DIS_SU_TXBF))
  46947. #define BIT_GET_DIS_SU_TXBF(x) \
  46948. (((x) >> BIT_SHIFT_DIS_SU_TXBF) & BIT_MASK_DIS_SU_TXBF)
  46949. #define BIT_SET_DIS_SU_TXBF(x, v) \
  46950. (BIT_CLEAR_DIS_SU_TXBF(x) | BIT_DIS_SU_TXBF(v))
  46951. #endif
  46952. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  46953. /* 2 REG_MU_TX_CTL (Offset 0x14C0) */
  46954. #define BIT_SHIFT_R_MU_RL 12
  46955. #define BIT_MASK_R_MU_RL 0xf
  46956. #define BIT_R_MU_RL(x) (((x) & BIT_MASK_R_MU_RL) << BIT_SHIFT_R_MU_RL)
  46957. #define BITS_R_MU_RL (BIT_MASK_R_MU_RL << BIT_SHIFT_R_MU_RL)
  46958. #define BIT_CLEAR_R_MU_RL(x) ((x) & (~BITS_R_MU_RL))
  46959. #define BIT_GET_R_MU_RL(x) (((x) >> BIT_SHIFT_R_MU_RL) & BIT_MASK_R_MU_RL)
  46960. #define BIT_SET_R_MU_RL(x, v) (BIT_CLEAR_R_MU_RL(x) | BIT_R_MU_RL(v))
  46961. #endif
  46962. #if (HALMAC_8814B_SUPPORT)
  46963. /* 2 REG_MU_TX_CTRL (Offset 0x14C0) */
  46964. #define BIT_SHIFT_MU_RL 12
  46965. #define BIT_MASK_MU_RL 0xf
  46966. #define BIT_MU_RL(x) (((x) & BIT_MASK_MU_RL) << BIT_SHIFT_MU_RL)
  46967. #define BITS_MU_RL (BIT_MASK_MU_RL << BIT_SHIFT_MU_RL)
  46968. #define BIT_CLEAR_MU_RL(x) ((x) & (~BITS_MU_RL))
  46969. #define BIT_GET_MU_RL(x) (((x) >> BIT_SHIFT_MU_RL) & BIT_MASK_MU_RL)
  46970. #define BIT_SET_MU_RL(x, v) (BIT_CLEAR_MU_RL(x) | BIT_MU_RL(v))
  46971. #endif
  46972. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  46973. /* 2 REG_MU_TX_CTL (Offset 0x14C0) */
  46974. #define BIT_R_FORCE_P1_RATEDOWN BIT(11)
  46975. #define BIT_SHIFT_R_MU_TAB_SEL 8
  46976. #define BIT_MASK_R_MU_TAB_SEL 0x7
  46977. #define BIT_R_MU_TAB_SEL(x) \
  46978. (((x) & BIT_MASK_R_MU_TAB_SEL) << BIT_SHIFT_R_MU_TAB_SEL)
  46979. #define BITS_R_MU_TAB_SEL (BIT_MASK_R_MU_TAB_SEL << BIT_SHIFT_R_MU_TAB_SEL)
  46980. #define BIT_CLEAR_R_MU_TAB_SEL(x) ((x) & (~BITS_R_MU_TAB_SEL))
  46981. #define BIT_GET_R_MU_TAB_SEL(x) \
  46982. (((x) >> BIT_SHIFT_R_MU_TAB_SEL) & BIT_MASK_R_MU_TAB_SEL)
  46983. #define BIT_SET_R_MU_TAB_SEL(x, v) \
  46984. (BIT_CLEAR_R_MU_TAB_SEL(x) | BIT_R_MU_TAB_SEL(v))
  46985. #endif
  46986. #if (HALMAC_8814B_SUPPORT)
  46987. /* 2 REG_MU_TX_CTRL (Offset 0x14C0) */
  46988. #define BIT_SHIFT_MU_TAB_SEL 8
  46989. #define BIT_MASK_MU_TAB_SEL 0xf
  46990. #define BIT_MU_TAB_SEL(x) (((x) & BIT_MASK_MU_TAB_SEL) << BIT_SHIFT_MU_TAB_SEL)
  46991. #define BITS_MU_TAB_SEL (BIT_MASK_MU_TAB_SEL << BIT_SHIFT_MU_TAB_SEL)
  46992. #define BIT_CLEAR_MU_TAB_SEL(x) ((x) & (~BITS_MU_TAB_SEL))
  46993. #define BIT_GET_MU_TAB_SEL(x) \
  46994. (((x) >> BIT_SHIFT_MU_TAB_SEL) & BIT_MASK_MU_TAB_SEL)
  46995. #define BIT_SET_MU_TAB_SEL(x, v) (BIT_CLEAR_MU_TAB_SEL(x) | BIT_MU_TAB_SEL(v))
  46996. #endif
  46997. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  46998. /* 2 REG_MU_TX_CTL (Offset 0x14C0) */
  46999. #define BIT_R_EN_MU_MIMO BIT(7)
  47000. #endif
  47001. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  47002. HALMAC_8822C_SUPPORT)
  47003. /* 2 REG_MU_TX_CTL (Offset 0x14C0) */
  47004. #define BIT_R_EN_REVERS_GTAB BIT(6)
  47005. #define BIT_SHIFT_R_MU_TABLE_VALID 0
  47006. #define BIT_MASK_R_MU_TABLE_VALID 0x3f
  47007. #define BIT_R_MU_TABLE_VALID(x) \
  47008. (((x) & BIT_MASK_R_MU_TABLE_VALID) << BIT_SHIFT_R_MU_TABLE_VALID)
  47009. #define BITS_R_MU_TABLE_VALID \
  47010. (BIT_MASK_R_MU_TABLE_VALID << BIT_SHIFT_R_MU_TABLE_VALID)
  47011. #define BIT_CLEAR_R_MU_TABLE_VALID(x) ((x) & (~BITS_R_MU_TABLE_VALID))
  47012. #define BIT_GET_R_MU_TABLE_VALID(x) \
  47013. (((x) >> BIT_SHIFT_R_MU_TABLE_VALID) & BIT_MASK_R_MU_TABLE_VALID)
  47014. #define BIT_SET_R_MU_TABLE_VALID(x, v) \
  47015. (BIT_CLEAR_R_MU_TABLE_VALID(x) | BIT_R_MU_TABLE_VALID(v))
  47016. #endif
  47017. #if (HALMAC_8814B_SUPPORT)
  47018. /* 2 REG_MU_TX_CTRL (Offset 0x14C0) */
  47019. #define BIT_SHIFT_MU_TAB_VALID 0
  47020. #define BIT_MASK_MU_TAB_VALID 0x3f
  47021. #define BIT_MU_TAB_VALID(x) \
  47022. (((x) & BIT_MASK_MU_TAB_VALID) << BIT_SHIFT_MU_TAB_VALID)
  47023. #define BITS_MU_TAB_VALID (BIT_MASK_MU_TAB_VALID << BIT_SHIFT_MU_TAB_VALID)
  47024. #define BIT_CLEAR_MU_TAB_VALID(x) ((x) & (~BITS_MU_TAB_VALID))
  47025. #define BIT_GET_MU_TAB_VALID(x) \
  47026. (((x) >> BIT_SHIFT_MU_TAB_VALID) & BIT_MASK_MU_TAB_VALID)
  47027. #define BIT_SET_MU_TAB_VALID(x, v) \
  47028. (BIT_CLEAR_MU_TAB_VALID(x) | BIT_MU_TAB_VALID(v))
  47029. #endif
  47030. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  47031. HALMAC_8822C_SUPPORT)
  47032. /* 2 REG_MU_STA_GID_VLD (Offset 0x14C4) */
  47033. #define BIT_SHIFT_R_MU_STA_GTAB_VALID 0
  47034. #define BIT_MASK_R_MU_STA_GTAB_VALID 0xffffffffL
  47035. #define BIT_R_MU_STA_GTAB_VALID(x) \
  47036. (((x) & BIT_MASK_R_MU_STA_GTAB_VALID) << BIT_SHIFT_R_MU_STA_GTAB_VALID)
  47037. #define BITS_R_MU_STA_GTAB_VALID \
  47038. (BIT_MASK_R_MU_STA_GTAB_VALID << BIT_SHIFT_R_MU_STA_GTAB_VALID)
  47039. #define BIT_CLEAR_R_MU_STA_GTAB_VALID(x) ((x) & (~BITS_R_MU_STA_GTAB_VALID))
  47040. #define BIT_GET_R_MU_STA_GTAB_VALID(x) \
  47041. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID) & BIT_MASK_R_MU_STA_GTAB_VALID)
  47042. #define BIT_SET_R_MU_STA_GTAB_VALID(x, v) \
  47043. (BIT_CLEAR_R_MU_STA_GTAB_VALID(x) | BIT_R_MU_STA_GTAB_VALID(v))
  47044. #endif
  47045. #if (HALMAC_8814B_SUPPORT)
  47046. /* 2 REG_MU_STA_GID_VLD (Offset 0x14C4) */
  47047. #define BIT_SHIFT_MU_STA_GTAB_VALID 0
  47048. #define BIT_MASK_MU_STA_GTAB_VALID 0xffffffffL
  47049. #define BIT_MU_STA_GTAB_VALID(x) \
  47050. (((x) & BIT_MASK_MU_STA_GTAB_VALID) << BIT_SHIFT_MU_STA_GTAB_VALID)
  47051. #define BITS_MU_STA_GTAB_VALID \
  47052. (BIT_MASK_MU_STA_GTAB_VALID << BIT_SHIFT_MU_STA_GTAB_VALID)
  47053. #define BIT_CLEAR_MU_STA_GTAB_VALID(x) ((x) & (~BITS_MU_STA_GTAB_VALID))
  47054. #define BIT_GET_MU_STA_GTAB_VALID(x) \
  47055. (((x) >> BIT_SHIFT_MU_STA_GTAB_VALID) & BIT_MASK_MU_STA_GTAB_VALID)
  47056. #define BIT_SET_MU_STA_GTAB_VALID(x, v) \
  47057. (BIT_CLEAR_MU_STA_GTAB_VALID(x) | BIT_MU_STA_GTAB_VALID(v))
  47058. #endif
  47059. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  47060. /* 2 REG_MU_STA_USER_POS_INFO (Offset 0x14C8) */
  47061. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_L 0
  47062. #define BIT_MASK_R_MU_STA_GTAB_POSITION_L 0xffffffffL
  47063. #define BIT_R_MU_STA_GTAB_POSITION_L(x) \
  47064. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_L) \
  47065. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_L)
  47066. #define BITS_R_MU_STA_GTAB_POSITION_L \
  47067. (BIT_MASK_R_MU_STA_GTAB_POSITION_L \
  47068. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_L)
  47069. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_L(x) \
  47070. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_L))
  47071. #define BIT_GET_R_MU_STA_GTAB_POSITION_L(x) \
  47072. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_L) & \
  47073. BIT_MASK_R_MU_STA_GTAB_POSITION_L)
  47074. #define BIT_SET_R_MU_STA_GTAB_POSITION_L(x, v) \
  47075. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_L(x) | \
  47076. BIT_R_MU_STA_GTAB_POSITION_L(v))
  47077. #endif
  47078. #if (HALMAC_8814B_SUPPORT)
  47079. /* 2 REG_MU_STA_USER_POS_INFO (Offset 0x14C8) */
  47080. #define BIT_SHIFT_MU_STA_GTAB_POSITION_L 0
  47081. #define BIT_MASK_MU_STA_GTAB_POSITION_L 0xffffffffL
  47082. #define BIT_MU_STA_GTAB_POSITION_L(x) \
  47083. (((x) & BIT_MASK_MU_STA_GTAB_POSITION_L) \
  47084. << BIT_SHIFT_MU_STA_GTAB_POSITION_L)
  47085. #define BITS_MU_STA_GTAB_POSITION_L \
  47086. (BIT_MASK_MU_STA_GTAB_POSITION_L << BIT_SHIFT_MU_STA_GTAB_POSITION_L)
  47087. #define BIT_CLEAR_MU_STA_GTAB_POSITION_L(x) \
  47088. ((x) & (~BITS_MU_STA_GTAB_POSITION_L))
  47089. #define BIT_GET_MU_STA_GTAB_POSITION_L(x) \
  47090. (((x) >> BIT_SHIFT_MU_STA_GTAB_POSITION_L) & \
  47091. BIT_MASK_MU_STA_GTAB_POSITION_L)
  47092. #define BIT_SET_MU_STA_GTAB_POSITION_L(x, v) \
  47093. (BIT_CLEAR_MU_STA_GTAB_POSITION_L(x) | BIT_MU_STA_GTAB_POSITION_L(v))
  47094. #endif
  47095. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  47096. /* 2 REG_MU_STA_USER_POS_INFO_H (Offset 0x14CC) */
  47097. #define BIT_SHIFT_R_MU_STA_GTAB_POSITION_H 0
  47098. #define BIT_MASK_R_MU_STA_GTAB_POSITION_H 0xffffffffL
  47099. #define BIT_R_MU_STA_GTAB_POSITION_H(x) \
  47100. (((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_H) \
  47101. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_H)
  47102. #define BITS_R_MU_STA_GTAB_POSITION_H \
  47103. (BIT_MASK_R_MU_STA_GTAB_POSITION_H \
  47104. << BIT_SHIFT_R_MU_STA_GTAB_POSITION_H)
  47105. #define BIT_CLEAR_R_MU_STA_GTAB_POSITION_H(x) \
  47106. ((x) & (~BITS_R_MU_STA_GTAB_POSITION_H))
  47107. #define BIT_GET_R_MU_STA_GTAB_POSITION_H(x) \
  47108. (((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_H) & \
  47109. BIT_MASK_R_MU_STA_GTAB_POSITION_H)
  47110. #define BIT_SET_R_MU_STA_GTAB_POSITION_H(x, v) \
  47111. (BIT_CLEAR_R_MU_STA_GTAB_POSITION_H(x) | \
  47112. BIT_R_MU_STA_GTAB_POSITION_H(v))
  47113. #endif
  47114. #if (HALMAC_8814B_SUPPORT)
  47115. /* 2 REG_MU_STA_USER_POS_INFO_H (Offset 0x14CC) */
  47116. #define BIT_SHIFT_MU_STA_GTAB_POSITION_H 0
  47117. #define BIT_MASK_MU_STA_GTAB_POSITION_H 0xffffffffL
  47118. #define BIT_MU_STA_GTAB_POSITION_H(x) \
  47119. (((x) & BIT_MASK_MU_STA_GTAB_POSITION_H) \
  47120. << BIT_SHIFT_MU_STA_GTAB_POSITION_H)
  47121. #define BITS_MU_STA_GTAB_POSITION_H \
  47122. (BIT_MASK_MU_STA_GTAB_POSITION_H << BIT_SHIFT_MU_STA_GTAB_POSITION_H)
  47123. #define BIT_CLEAR_MU_STA_GTAB_POSITION_H(x) \
  47124. ((x) & (~BITS_MU_STA_GTAB_POSITION_H))
  47125. #define BIT_GET_MU_STA_GTAB_POSITION_H(x) \
  47126. (((x) >> BIT_SHIFT_MU_STA_GTAB_POSITION_H) & \
  47127. BIT_MASK_MU_STA_GTAB_POSITION_H)
  47128. #define BIT_SET_MU_STA_GTAB_POSITION_H(x, v) \
  47129. (BIT_CLEAR_MU_STA_GTAB_POSITION_H(x) | BIT_MU_STA_GTAB_POSITION_H(v))
  47130. #endif
  47131. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  47132. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47133. /* 2 REG_MU_TRX_DBG_CNT (Offset 0x14D0) */
  47134. #define BIT_MU_DNGCNT_RST BIT(20)
  47135. #endif
  47136. #if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  47137. /* 2 REG_MU_TRX_DBG_CNT (Offset 0x14D0) */
  47138. #define BIT_SHIFT_MU_DBGCNT_SEL 16
  47139. #define BIT_MASK_MU_DBGCNT_SEL 0xf
  47140. #define BIT_MU_DBGCNT_SEL(x) \
  47141. (((x) & BIT_MASK_MU_DBGCNT_SEL) << BIT_SHIFT_MU_DBGCNT_SEL)
  47142. #define BITS_MU_DBGCNT_SEL (BIT_MASK_MU_DBGCNT_SEL << BIT_SHIFT_MU_DBGCNT_SEL)
  47143. #define BIT_CLEAR_MU_DBGCNT_SEL(x) ((x) & (~BITS_MU_DBGCNT_SEL))
  47144. #define BIT_GET_MU_DBGCNT_SEL(x) \
  47145. (((x) >> BIT_SHIFT_MU_DBGCNT_SEL) & BIT_MASK_MU_DBGCNT_SEL)
  47146. #define BIT_SET_MU_DBGCNT_SEL(x, v) \
  47147. (BIT_CLEAR_MU_DBGCNT_SEL(x) | BIT_MU_DBGCNT_SEL(v))
  47148. #endif
  47149. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  47150. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  47151. /* 2 REG_CHNL_INFO_CTRL (Offset 0x14D0) */
  47152. #define BIT_CHNL_REF_RXNAV BIT(7)
  47153. #define BIT_CHNL_REF_VBON BIT(6)
  47154. #endif
  47155. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  47156. /* 2 REG_CHNL_INFO_CTRL (Offset 0x14D0) */
  47157. #define BIT_CHNL_REF_EDCCA BIT(5)
  47158. #endif
  47159. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  47160. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  47161. /* 2 REG_CHNL_INFO_CTRL (Offset 0x14D0) */
  47162. #define BIT_RST_CHNL_BUSY BIT(3)
  47163. #define BIT_RST_CHNL_IDLE BIT(2)
  47164. #define BIT_CHNL_INFO_RST BIT(1)
  47165. #define BIT_ATM_AIRTIME_EN BIT(0)
  47166. #endif
  47167. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  47168. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47169. /* 2 REG_MU_TRX_DBG_CNT (Offset 0x14D0) */
  47170. #define BIT_SHIFT_MU_DNGCNT 0
  47171. #define BIT_MASK_MU_DNGCNT 0xffff
  47172. #define BIT_MU_DNGCNT(x) (((x) & BIT_MASK_MU_DNGCNT) << BIT_SHIFT_MU_DNGCNT)
  47173. #define BITS_MU_DNGCNT (BIT_MASK_MU_DNGCNT << BIT_SHIFT_MU_DNGCNT)
  47174. #define BIT_CLEAR_MU_DNGCNT(x) ((x) & (~BITS_MU_DNGCNT))
  47175. #define BIT_GET_MU_DNGCNT(x) (((x) >> BIT_SHIFT_MU_DNGCNT) & BIT_MASK_MU_DNGCNT)
  47176. #define BIT_SET_MU_DNGCNT(x, v) (BIT_CLEAR_MU_DNGCNT(x) | BIT_MU_DNGCNT(v))
  47177. #endif
  47178. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  47179. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  47180. /* 2 REG_CHNL_BUSY_TIME (Offset 0x14D8) */
  47181. #define BIT_SHIFT_CHNL_BUSY_TIME 0
  47182. #define BIT_MASK_CHNL_BUSY_TIME 0xffffffffL
  47183. #define BIT_CHNL_BUSY_TIME(x) \
  47184. (((x) & BIT_MASK_CHNL_BUSY_TIME) << BIT_SHIFT_CHNL_BUSY_TIME)
  47185. #define BITS_CHNL_BUSY_TIME \
  47186. (BIT_MASK_CHNL_BUSY_TIME << BIT_SHIFT_CHNL_BUSY_TIME)
  47187. #define BIT_CLEAR_CHNL_BUSY_TIME(x) ((x) & (~BITS_CHNL_BUSY_TIME))
  47188. #define BIT_GET_CHNL_BUSY_TIME(x) \
  47189. (((x) >> BIT_SHIFT_CHNL_BUSY_TIME) & BIT_MASK_CHNL_BUSY_TIME)
  47190. #define BIT_SET_CHNL_BUSY_TIME(x, v) \
  47191. (BIT_CLEAR_CHNL_BUSY_TIME(x) | BIT_CHNL_BUSY_TIME(v))
  47192. #endif
  47193. #if (HALMAC_8814B_SUPPORT)
  47194. /* 2 REG_MU_TRX_DBG_CNT_V1 (Offset 0x14DC) */
  47195. #define BIT_FORCE_SND_STS_EN BIT(31)
  47196. #define BIT_SHIFT_SND_STS_VALUE 24
  47197. #define BIT_MASK_SND_STS_VALUE 0x3f
  47198. #define BIT_SND_STS_VALUE(x) \
  47199. (((x) & BIT_MASK_SND_STS_VALUE) << BIT_SHIFT_SND_STS_VALUE)
  47200. #define BITS_SND_STS_VALUE (BIT_MASK_SND_STS_VALUE << BIT_SHIFT_SND_STS_VALUE)
  47201. #define BIT_CLEAR_SND_STS_VALUE(x) ((x) & (~BITS_SND_STS_VALUE))
  47202. #define BIT_GET_SND_STS_VALUE(x) \
  47203. (((x) >> BIT_SHIFT_SND_STS_VALUE) & BIT_MASK_SND_STS_VALUE)
  47204. #define BIT_SET_SND_STS_VALUE(x, v) \
  47205. (BIT_CLEAR_SND_STS_VALUE(x) | BIT_SND_STS_VALUE(v))
  47206. #endif
  47207. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  47208. /* 2 REG_MU_TRX_DBG_CNT_V1 (Offset 0x14DC) */
  47209. #define BIT_SHIFT_MU_DNGCNT_SEL 16
  47210. #define BIT_MASK_MU_DNGCNT_SEL 0xf
  47211. #define BIT_MU_DNGCNT_SEL(x) \
  47212. (((x) & BIT_MASK_MU_DNGCNT_SEL) << BIT_SHIFT_MU_DNGCNT_SEL)
  47213. #define BITS_MU_DNGCNT_SEL (BIT_MASK_MU_DNGCNT_SEL << BIT_SHIFT_MU_DNGCNT_SEL)
  47214. #define BIT_CLEAR_MU_DNGCNT_SEL(x) ((x) & (~BITS_MU_DNGCNT_SEL))
  47215. #define BIT_GET_MU_DNGCNT_SEL(x) \
  47216. (((x) >> BIT_SHIFT_MU_DNGCNT_SEL) & BIT_MASK_MU_DNGCNT_SEL)
  47217. #define BIT_SET_MU_DNGCNT_SEL(x, v) \
  47218. (BIT_CLEAR_MU_DNGCNT_SEL(x) | BIT_MU_DNGCNT_SEL(v))
  47219. #endif
  47220. #if (HALMAC_8812F_SUPPORT)
  47221. /* 2 REG_SU_DURATION (Offset 0x14F0) */
  47222. #define BIT_SHIFT_SU_DURATION 0
  47223. #define BIT_MASK_SU_DURATION 0xffff
  47224. #define BIT_SU_DURATION(x) \
  47225. (((x) & BIT_MASK_SU_DURATION) << BIT_SHIFT_SU_DURATION)
  47226. #define BITS_SU_DURATION (BIT_MASK_SU_DURATION << BIT_SHIFT_SU_DURATION)
  47227. #define BIT_CLEAR_SU_DURATION(x) ((x) & (~BITS_SU_DURATION))
  47228. #define BIT_GET_SU_DURATION(x) \
  47229. (((x) >> BIT_SHIFT_SU_DURATION) & BIT_MASK_SU_DURATION)
  47230. #define BIT_SET_SU_DURATION(x, v) \
  47231. (BIT_CLEAR_SU_DURATION(x) | BIT_SU_DURATION(v))
  47232. /* 2 REG_MU_DURATION (Offset 0x14F2) */
  47233. #define BIT_SHIFT_MU_DURATION 0
  47234. #define BIT_MASK_MU_DURATION 0xffff
  47235. #define BIT_MU_DURATION(x) \
  47236. (((x) & BIT_MASK_MU_DURATION) << BIT_SHIFT_MU_DURATION)
  47237. #define BITS_MU_DURATION (BIT_MASK_MU_DURATION << BIT_SHIFT_MU_DURATION)
  47238. #define BIT_CLEAR_MU_DURATION(x) ((x) & (~BITS_MU_DURATION))
  47239. #define BIT_GET_MU_DURATION(x) \
  47240. (((x) >> BIT_SHIFT_MU_DURATION) & BIT_MASK_MU_DURATION)
  47241. #define BIT_SET_MU_DURATION(x, v) \
  47242. (BIT_CLEAR_MU_DURATION(x) | BIT_MU_DURATION(v))
  47243. #endif
  47244. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  47245. /* 2 REG_SWPS_CTRL (Offset 0x14F4) */
  47246. #define BIT_SHIFT_SWPS_RPT_LENGTH 8
  47247. #define BIT_MASK_SWPS_RPT_LENGTH 0x7f
  47248. #define BIT_SWPS_RPT_LENGTH(x) \
  47249. (((x) & BIT_MASK_SWPS_RPT_LENGTH) << BIT_SHIFT_SWPS_RPT_LENGTH)
  47250. #define BITS_SWPS_RPT_LENGTH \
  47251. (BIT_MASK_SWPS_RPT_LENGTH << BIT_SHIFT_SWPS_RPT_LENGTH)
  47252. #define BIT_CLEAR_SWPS_RPT_LENGTH(x) ((x) & (~BITS_SWPS_RPT_LENGTH))
  47253. #define BIT_GET_SWPS_RPT_LENGTH(x) \
  47254. (((x) >> BIT_SHIFT_SWPS_RPT_LENGTH) & BIT_MASK_SWPS_RPT_LENGTH)
  47255. #define BIT_SET_SWPS_RPT_LENGTH(x, v) \
  47256. (BIT_CLEAR_SWPS_RPT_LENGTH(x) | BIT_SWPS_RPT_LENGTH(v))
  47257. #define BIT_SHIFT_MACID_SWPS_EN_SEL 2
  47258. #define BIT_MASK_MACID_SWPS_EN_SEL 0x3
  47259. #define BIT_MACID_SWPS_EN_SEL(x) \
  47260. (((x) & BIT_MASK_MACID_SWPS_EN_SEL) << BIT_SHIFT_MACID_SWPS_EN_SEL)
  47261. #define BITS_MACID_SWPS_EN_SEL \
  47262. (BIT_MASK_MACID_SWPS_EN_SEL << BIT_SHIFT_MACID_SWPS_EN_SEL)
  47263. #define BIT_CLEAR_MACID_SWPS_EN_SEL(x) ((x) & (~BITS_MACID_SWPS_EN_SEL))
  47264. #define BIT_GET_MACID_SWPS_EN_SEL(x) \
  47265. (((x) >> BIT_SHIFT_MACID_SWPS_EN_SEL) & BIT_MASK_MACID_SWPS_EN_SEL)
  47266. #define BIT_SET_MACID_SWPS_EN_SEL(x, v) \
  47267. (BIT_CLEAR_MACID_SWPS_EN_SEL(x) | BIT_MACID_SWPS_EN_SEL(v))
  47268. #define BIT_SWPS_MANUALL_POLLING BIT(1)
  47269. #define BIT_SWPS_EN BIT(0)
  47270. #endif
  47271. #if (HALMAC_8812F_SUPPORT)
  47272. /* 2 REG_HW_NDPA_RTY_LIMIT (Offset 0x14F4) */
  47273. #define BIT_SHIFT_HW_NDPA_RTY_LIMIT 0
  47274. #define BIT_MASK_HW_NDPA_RTY_LIMIT 0xf
  47275. #define BIT_HW_NDPA_RTY_LIMIT(x) \
  47276. (((x) & BIT_MASK_HW_NDPA_RTY_LIMIT) << BIT_SHIFT_HW_NDPA_RTY_LIMIT)
  47277. #define BITS_HW_NDPA_RTY_LIMIT \
  47278. (BIT_MASK_HW_NDPA_RTY_LIMIT << BIT_SHIFT_HW_NDPA_RTY_LIMIT)
  47279. #define BIT_CLEAR_HW_NDPA_RTY_LIMIT(x) ((x) & (~BITS_HW_NDPA_RTY_LIMIT))
  47280. #define BIT_GET_HW_NDPA_RTY_LIMIT(x) \
  47281. (((x) >> BIT_SHIFT_HW_NDPA_RTY_LIMIT) & BIT_MASK_HW_NDPA_RTY_LIMIT)
  47282. #define BIT_SET_HW_NDPA_RTY_LIMIT(x, v) \
  47283. (BIT_CLEAR_HW_NDPA_RTY_LIMIT(x) | BIT_HW_NDPA_RTY_LIMIT(v))
  47284. #endif
  47285. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  47286. /* 2 REG_MACID_SWPS_EN (Offset 0x14FC) */
  47287. #define BIT_SHIFT_MACID_SWPS_EN 0
  47288. #define BIT_MASK_MACID_SWPS_EN 0xffffffffL
  47289. #define BIT_MACID_SWPS_EN(x) \
  47290. (((x) & BIT_MASK_MACID_SWPS_EN) << BIT_SHIFT_MACID_SWPS_EN)
  47291. #define BITS_MACID_SWPS_EN (BIT_MASK_MACID_SWPS_EN << BIT_SHIFT_MACID_SWPS_EN)
  47292. #define BIT_CLEAR_MACID_SWPS_EN(x) ((x) & (~BITS_MACID_SWPS_EN))
  47293. #define BIT_GET_MACID_SWPS_EN(x) \
  47294. (((x) >> BIT_SHIFT_MACID_SWPS_EN) & BIT_MASK_MACID_SWPS_EN)
  47295. #define BIT_SET_MACID_SWPS_EN(x, v) \
  47296. (BIT_CLEAR_MACID_SWPS_EN(x) | BIT_MACID_SWPS_EN(v))
  47297. #endif
  47298. #if (HALMAC_8814B_SUPPORT)
  47299. /* 2 REG_PORT_CTRL_SEL (Offset 0x1500) */
  47300. #define BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1 4
  47301. #define BIT_MASK_BCN_TIMER_SEL_FWRD_V1 0x7
  47302. #define BIT_BCN_TIMER_SEL_FWRD_V1(x) \
  47303. (((x) & BIT_MASK_BCN_TIMER_SEL_FWRD_V1) \
  47304. << BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1)
  47305. #define BITS_BCN_TIMER_SEL_FWRD_V1 \
  47306. (BIT_MASK_BCN_TIMER_SEL_FWRD_V1 << BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1)
  47307. #define BIT_CLEAR_BCN_TIMER_SEL_FWRD_V1(x) ((x) & (~BITS_BCN_TIMER_SEL_FWRD_V1))
  47308. #define BIT_GET_BCN_TIMER_SEL_FWRD_V1(x) \
  47309. (((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1) & \
  47310. BIT_MASK_BCN_TIMER_SEL_FWRD_V1)
  47311. #define BIT_SET_BCN_TIMER_SEL_FWRD_V1(x, v) \
  47312. (BIT_CLEAR_BCN_TIMER_SEL_FWRD_V1(x) | BIT_BCN_TIMER_SEL_FWRD_V1(v))
  47313. #endif
  47314. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  47315. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  47316. HALMAC_8822C_SUPPORT)
  47317. /* 2 REG_CPUMGQ_TX_TIMER (Offset 0x1500) */
  47318. #define BIT_SHIFT_CPUMGQ_TX_TIMER_V1 0
  47319. #define BIT_MASK_CPUMGQ_TX_TIMER_V1 0xffffffffL
  47320. #define BIT_CPUMGQ_TX_TIMER_V1(x) \
  47321. (((x) & BIT_MASK_CPUMGQ_TX_TIMER_V1) << BIT_SHIFT_CPUMGQ_TX_TIMER_V1)
  47322. #define BITS_CPUMGQ_TX_TIMER_V1 \
  47323. (BIT_MASK_CPUMGQ_TX_TIMER_V1 << BIT_SHIFT_CPUMGQ_TX_TIMER_V1)
  47324. #define BIT_CLEAR_CPUMGQ_TX_TIMER_V1(x) ((x) & (~BITS_CPUMGQ_TX_TIMER_V1))
  47325. #define BIT_GET_CPUMGQ_TX_TIMER_V1(x) \
  47326. (((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_V1) & BIT_MASK_CPUMGQ_TX_TIMER_V1)
  47327. #define BIT_SET_CPUMGQ_TX_TIMER_V1(x, v) \
  47328. (BIT_CLEAR_CPUMGQ_TX_TIMER_V1(x) | BIT_CPUMGQ_TX_TIMER_V1(v))
  47329. #endif
  47330. #if (HALMAC_8814B_SUPPORT)
  47331. /* 2 REG_PORT_CTRL_SEL (Offset 0x1500) */
  47332. #define BIT_SHIFT_PORT_CTRL_SEL 0
  47333. #define BIT_MASK_PORT_CTRL_SEL 0x7
  47334. #define BIT_PORT_CTRL_SEL(x) \
  47335. (((x) & BIT_MASK_PORT_CTRL_SEL) << BIT_SHIFT_PORT_CTRL_SEL)
  47336. #define BITS_PORT_CTRL_SEL (BIT_MASK_PORT_CTRL_SEL << BIT_SHIFT_PORT_CTRL_SEL)
  47337. #define BIT_CLEAR_PORT_CTRL_SEL(x) ((x) & (~BITS_PORT_CTRL_SEL))
  47338. #define BIT_GET_PORT_CTRL_SEL(x) \
  47339. (((x) >> BIT_SHIFT_PORT_CTRL_SEL) & BIT_MASK_PORT_CTRL_SEL)
  47340. #define BIT_SET_PORT_CTRL_SEL(x, v) \
  47341. (BIT_CLEAR_PORT_CTRL_SEL(x) | BIT_PORT_CTRL_SEL(v))
  47342. /* 2 REG_PORT_CTRL_CFG (Offset 0x1501) */
  47343. #define BIT_BCNERR_CNT_EN_V1 BIT(11)
  47344. #define BIT_DIS_TRX_CAL_BCN_V1 BIT(10)
  47345. #define BIT_DIS_TX_CAL_TBTT_V1 BIT(9)
  47346. #define BIT_BCN_AGGRESSION_V1 BIT(8)
  47347. #define BIT_TSFTR_RST_V1 BIT(7)
  47348. #define BIT_EN_TXBCN_RPT_V1 BIT(5)
  47349. #define BIT_EN_PORT_FUNCTION BIT(3)
  47350. #define BIT_EN_RXBCN_RPT BIT(2)
  47351. /* 2 REG_TBTT_PROHIBIT_CFG (Offset 0x1504) */
  47352. #define BIT_MASK_PROHIBIT BIT(23)
  47353. #define BIT_SHIFT_TBTT_HOLD_TIME 8
  47354. #define BIT_MASK_TBTT_HOLD_TIME 0xfff
  47355. #define BIT_TBTT_HOLD_TIME(x) \
  47356. (((x) & BIT_MASK_TBTT_HOLD_TIME) << BIT_SHIFT_TBTT_HOLD_TIME)
  47357. #define BITS_TBTT_HOLD_TIME \
  47358. (BIT_MASK_TBTT_HOLD_TIME << BIT_SHIFT_TBTT_HOLD_TIME)
  47359. #define BIT_CLEAR_TBTT_HOLD_TIME(x) ((x) & (~BITS_TBTT_HOLD_TIME))
  47360. #define BIT_GET_TBTT_HOLD_TIME(x) \
  47361. (((x) >> BIT_SHIFT_TBTT_HOLD_TIME) & BIT_MASK_TBTT_HOLD_TIME)
  47362. #define BIT_SET_TBTT_HOLD_TIME(x, v) \
  47363. (BIT_CLEAR_TBTT_HOLD_TIME(x) | BIT_TBTT_HOLD_TIME(v))
  47364. #endif
  47365. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  47366. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47367. /* 2 REG_PS_TIMER_A (Offset 0x1504) */
  47368. #define BIT_SHIFT_PS_TIMER_A_V1 0
  47369. #define BIT_MASK_PS_TIMER_A_V1 0xffffffffL
  47370. #define BIT_PS_TIMER_A_V1(x) \
  47371. (((x) & BIT_MASK_PS_TIMER_A_V1) << BIT_SHIFT_PS_TIMER_A_V1)
  47372. #define BITS_PS_TIMER_A_V1 (BIT_MASK_PS_TIMER_A_V1 << BIT_SHIFT_PS_TIMER_A_V1)
  47373. #define BIT_CLEAR_PS_TIMER_A_V1(x) ((x) & (~BITS_PS_TIMER_A_V1))
  47374. #define BIT_GET_PS_TIMER_A_V1(x) \
  47375. (((x) >> BIT_SHIFT_PS_TIMER_A_V1) & BIT_MASK_PS_TIMER_A_V1)
  47376. #define BIT_SET_PS_TIMER_A_V1(x, v) \
  47377. (BIT_CLEAR_PS_TIMER_A_V1(x) | BIT_PS_TIMER_A_V1(v))
  47378. /* 2 REG_PS_TIMER_B (Offset 0x1508) */
  47379. #define BIT_SHIFT_PS_TIMER_B_V1 0
  47380. #define BIT_MASK_PS_TIMER_B_V1 0xffffffffL
  47381. #define BIT_PS_TIMER_B_V1(x) \
  47382. (((x) & BIT_MASK_PS_TIMER_B_V1) << BIT_SHIFT_PS_TIMER_B_V1)
  47383. #define BITS_PS_TIMER_B_V1 (BIT_MASK_PS_TIMER_B_V1 << BIT_SHIFT_PS_TIMER_B_V1)
  47384. #define BIT_CLEAR_PS_TIMER_B_V1(x) ((x) & (~BITS_PS_TIMER_B_V1))
  47385. #define BIT_GET_PS_TIMER_B_V1(x) \
  47386. (((x) >> BIT_SHIFT_PS_TIMER_B_V1) & BIT_MASK_PS_TIMER_B_V1)
  47387. #define BIT_SET_PS_TIMER_B_V1(x, v) \
  47388. (BIT_CLEAR_PS_TIMER_B_V1(x) | BIT_PS_TIMER_B_V1(v))
  47389. /* 2 REG_PS_TIMER_C (Offset 0x150C) */
  47390. #define BIT_SHIFT_PS_TIMER_C_V1 0
  47391. #define BIT_MASK_PS_TIMER_C_V1 0xffffffffL
  47392. #define BIT_PS_TIMER_C_V1(x) \
  47393. (((x) & BIT_MASK_PS_TIMER_C_V1) << BIT_SHIFT_PS_TIMER_C_V1)
  47394. #define BITS_PS_TIMER_C_V1 (BIT_MASK_PS_TIMER_C_V1 << BIT_SHIFT_PS_TIMER_C_V1)
  47395. #define BIT_CLEAR_PS_TIMER_C_V1(x) ((x) & (~BITS_PS_TIMER_C_V1))
  47396. #define BIT_GET_PS_TIMER_C_V1(x) \
  47397. (((x) >> BIT_SHIFT_PS_TIMER_C_V1) & BIT_MASK_PS_TIMER_C_V1)
  47398. #define BIT_SET_PS_TIMER_C_V1(x, v) \
  47399. (BIT_CLEAR_PS_TIMER_C_V1(x) | BIT_PS_TIMER_C_V1(v))
  47400. #endif
  47401. #if (HALMAC_8814B_SUPPORT)
  47402. /* 2 REG_TSFTR_SYNC_OFFSET_CFG (Offset 0x150C) */
  47403. #define BIT_SHIFT_TSFTR_SNC_OFFSET_V1 0
  47404. #define BIT_MASK_TSFTR_SNC_OFFSET_V1 0xffffff
  47405. #define BIT_TSFTR_SNC_OFFSET_V1(x) \
  47406. (((x) & BIT_MASK_TSFTR_SNC_OFFSET_V1) << BIT_SHIFT_TSFTR_SNC_OFFSET_V1)
  47407. #define BITS_TSFTR_SNC_OFFSET_V1 \
  47408. (BIT_MASK_TSFTR_SNC_OFFSET_V1 << BIT_SHIFT_TSFTR_SNC_OFFSET_V1)
  47409. #define BIT_CLEAR_TSFTR_SNC_OFFSET_V1(x) ((x) & (~BITS_TSFTR_SNC_OFFSET_V1))
  47410. #define BIT_GET_TSFTR_SNC_OFFSET_V1(x) \
  47411. (((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET_V1) & BIT_MASK_TSFTR_SNC_OFFSET_V1)
  47412. #define BIT_SET_TSFTR_SNC_OFFSET_V1(x, v) \
  47413. (BIT_CLEAR_TSFTR_SNC_OFFSET_V1(x) | BIT_TSFTR_SNC_OFFSET_V1(v))
  47414. /* 2 REG_TSFTR_SYNC_CTRL_CFG (Offset 0x150F) */
  47415. #define BIT_SYNC_TSF_NOW_V1 BIT(5)
  47416. #define BIT_SYNC_TSF_ONCE BIT(4)
  47417. #define BIT_SYNC_TSF_AUTO BIT(3)
  47418. #define BIT_SHIFT_SYNC_PORT_SEL 0
  47419. #define BIT_MASK_SYNC_PORT_SEL 0x7
  47420. #define BIT_SYNC_PORT_SEL(x) \
  47421. (((x) & BIT_MASK_SYNC_PORT_SEL) << BIT_SHIFT_SYNC_PORT_SEL)
  47422. #define BITS_SYNC_PORT_SEL (BIT_MASK_SYNC_PORT_SEL << BIT_SHIFT_SYNC_PORT_SEL)
  47423. #define BIT_CLEAR_SYNC_PORT_SEL(x) ((x) & (~BITS_SYNC_PORT_SEL))
  47424. #define BIT_GET_SYNC_PORT_SEL(x) \
  47425. (((x) >> BIT_SHIFT_SYNC_PORT_SEL) & BIT_MASK_SYNC_PORT_SEL)
  47426. #define BIT_SET_SYNC_PORT_SEL(x, v) \
  47427. (BIT_CLEAR_SYNC_PORT_SEL(x) | BIT_SYNC_PORT_SEL(v))
  47428. #endif
  47429. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  47430. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47431. /* 2 REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL (Offset 0x1510) */
  47432. #define BIT_CPUMGQ_TIMER_EN BIT(31)
  47433. #define BIT_CPUMGQ_TX_EN BIT(28)
  47434. #define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL 24
  47435. #define BIT_MASK_CPUMGQ_TIMER_TSF_SEL 0x7
  47436. #define BIT_CPUMGQ_TIMER_TSF_SEL(x) \
  47437. (((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL) \
  47438. << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL)
  47439. #define BITS_CPUMGQ_TIMER_TSF_SEL \
  47440. (BIT_MASK_CPUMGQ_TIMER_TSF_SEL << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL)
  47441. #define BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL(x) ((x) & (~BITS_CPUMGQ_TIMER_TSF_SEL))
  47442. #define BIT_GET_CPUMGQ_TIMER_TSF_SEL(x) \
  47443. (((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL) & \
  47444. BIT_MASK_CPUMGQ_TIMER_TSF_SEL)
  47445. #define BIT_SET_CPUMGQ_TIMER_TSF_SEL(x, v) \
  47446. (BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL(x) | BIT_CPUMGQ_TIMER_TSF_SEL(v))
  47447. #define BIT_PS_TIMER_C_EN BIT(23)
  47448. #define BIT_SHIFT_PS_TIMER_C_TSF_SEL 16
  47449. #define BIT_MASK_PS_TIMER_C_TSF_SEL 0x7
  47450. #define BIT_PS_TIMER_C_TSF_SEL(x) \
  47451. (((x) & BIT_MASK_PS_TIMER_C_TSF_SEL) << BIT_SHIFT_PS_TIMER_C_TSF_SEL)
  47452. #define BITS_PS_TIMER_C_TSF_SEL \
  47453. (BIT_MASK_PS_TIMER_C_TSF_SEL << BIT_SHIFT_PS_TIMER_C_TSF_SEL)
  47454. #define BIT_CLEAR_PS_TIMER_C_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_C_TSF_SEL))
  47455. #define BIT_GET_PS_TIMER_C_TSF_SEL(x) \
  47456. (((x) >> BIT_SHIFT_PS_TIMER_C_TSF_SEL) & BIT_MASK_PS_TIMER_C_TSF_SEL)
  47457. #define BIT_SET_PS_TIMER_C_TSF_SEL(x, v) \
  47458. (BIT_CLEAR_PS_TIMER_C_TSF_SEL(x) | BIT_PS_TIMER_C_TSF_SEL(v))
  47459. #define BIT_PS_TIMER_B_EN BIT(15)
  47460. #define BIT_SHIFT_PS_TIMER_B_TSF_SEL 8
  47461. #define BIT_MASK_PS_TIMER_B_TSF_SEL 0x7
  47462. #define BIT_PS_TIMER_B_TSF_SEL(x) \
  47463. (((x) & BIT_MASK_PS_TIMER_B_TSF_SEL) << BIT_SHIFT_PS_TIMER_B_TSF_SEL)
  47464. #define BITS_PS_TIMER_B_TSF_SEL \
  47465. (BIT_MASK_PS_TIMER_B_TSF_SEL << BIT_SHIFT_PS_TIMER_B_TSF_SEL)
  47466. #define BIT_CLEAR_PS_TIMER_B_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_B_TSF_SEL))
  47467. #define BIT_GET_PS_TIMER_B_TSF_SEL(x) \
  47468. (((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL) & BIT_MASK_PS_TIMER_B_TSF_SEL)
  47469. #define BIT_SET_PS_TIMER_B_TSF_SEL(x, v) \
  47470. (BIT_CLEAR_PS_TIMER_B_TSF_SEL(x) | BIT_PS_TIMER_B_TSF_SEL(v))
  47471. #define BIT_PS_TIMER_A_EN BIT(7)
  47472. #define BIT_SHIFT_PS_TIMER_A_TSF_SEL 0
  47473. #define BIT_MASK_PS_TIMER_A_TSF_SEL 0x7
  47474. #define BIT_PS_TIMER_A_TSF_SEL(x) \
  47475. (((x) & BIT_MASK_PS_TIMER_A_TSF_SEL) << BIT_SHIFT_PS_TIMER_A_TSF_SEL)
  47476. #define BITS_PS_TIMER_A_TSF_SEL \
  47477. (BIT_MASK_PS_TIMER_A_TSF_SEL << BIT_SHIFT_PS_TIMER_A_TSF_SEL)
  47478. #define BIT_CLEAR_PS_TIMER_A_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_A_TSF_SEL))
  47479. #define BIT_GET_PS_TIMER_A_TSF_SEL(x) \
  47480. (((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL) & BIT_MASK_PS_TIMER_A_TSF_SEL)
  47481. #define BIT_SET_PS_TIMER_A_TSF_SEL(x, v) \
  47482. (BIT_CLEAR_PS_TIMER_A_TSF_SEL(x) | BIT_PS_TIMER_A_TSF_SEL(v))
  47483. #endif
  47484. #if (HALMAC_8814B_SUPPORT)
  47485. /* 2 REG_BCN_SPACE_CFG (Offset 0x1510) */
  47486. #define BIT_SHIFT_BCN_SPACE 0
  47487. #define BIT_MASK_BCN_SPACE 0xffff
  47488. #define BIT_BCN_SPACE(x) (((x) & BIT_MASK_BCN_SPACE) << BIT_SHIFT_BCN_SPACE)
  47489. #define BITS_BCN_SPACE (BIT_MASK_BCN_SPACE << BIT_SHIFT_BCN_SPACE)
  47490. #define BIT_CLEAR_BCN_SPACE(x) ((x) & (~BITS_BCN_SPACE))
  47491. #define BIT_GET_BCN_SPACE(x) (((x) >> BIT_SHIFT_BCN_SPACE) & BIT_MASK_BCN_SPACE)
  47492. #define BIT_SET_BCN_SPACE(x, v) (BIT_CLEAR_BCN_SPACE(x) | BIT_BCN_SPACE(v))
  47493. /* 2 REG_EARLY_INT_ADJUST_CFG (Offset 0x1512) */
  47494. #define BIT_SHIFT_EARLY_INT_ADJUST 0
  47495. #define BIT_MASK_EARLY_INT_ADJUST 0xffff
  47496. #define BIT_EARLY_INT_ADJUST(x) \
  47497. (((x) & BIT_MASK_EARLY_INT_ADJUST) << BIT_SHIFT_EARLY_INT_ADJUST)
  47498. #define BITS_EARLY_INT_ADJUST \
  47499. (BIT_MASK_EARLY_INT_ADJUST << BIT_SHIFT_EARLY_INT_ADJUST)
  47500. #define BIT_CLEAR_EARLY_INT_ADJUST(x) ((x) & (~BITS_EARLY_INT_ADJUST))
  47501. #define BIT_GET_EARLY_INT_ADJUST(x) \
  47502. (((x) >> BIT_SHIFT_EARLY_INT_ADJUST) & BIT_MASK_EARLY_INT_ADJUST)
  47503. #define BIT_SET_EARLY_INT_ADJUST(x, v) \
  47504. (BIT_CLEAR_EARLY_INT_ADJUST(x) | BIT_EARLY_INT_ADJUST(v))
  47505. #endif
  47506. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  47507. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  47508. /* 2 REG_CPUMGQ_TX_TIMER_EARLY (Offset 0x1514) */
  47509. #define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY 0
  47510. #define BIT_MASK_CPUMGQ_TX_TIMER_EARLY 0xff
  47511. #define BIT_CPUMGQ_TX_TIMER_EARLY(x) \
  47512. (((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY) \
  47513. << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY)
  47514. #define BITS_CPUMGQ_TX_TIMER_EARLY \
  47515. (BIT_MASK_CPUMGQ_TX_TIMER_EARLY << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY)
  47516. #define BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY(x) ((x) & (~BITS_CPUMGQ_TX_TIMER_EARLY))
  47517. #define BIT_GET_CPUMGQ_TX_TIMER_EARLY(x) \
  47518. (((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY) & \
  47519. BIT_MASK_CPUMGQ_TX_TIMER_EARLY)
  47520. #define BIT_SET_CPUMGQ_TX_TIMER_EARLY(x, v) \
  47521. (BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY(x) | BIT_CPUMGQ_TX_TIMER_EARLY(v))
  47522. /* 2 REG_PS_TIMER_A_EARLY (Offset 0x1515) */
  47523. #define BIT_SHIFT_PS_TIMER_A_EARLY 0
  47524. #define BIT_MASK_PS_TIMER_A_EARLY 0xff
  47525. #define BIT_PS_TIMER_A_EARLY(x) \
  47526. (((x) & BIT_MASK_PS_TIMER_A_EARLY) << BIT_SHIFT_PS_TIMER_A_EARLY)
  47527. #define BITS_PS_TIMER_A_EARLY \
  47528. (BIT_MASK_PS_TIMER_A_EARLY << BIT_SHIFT_PS_TIMER_A_EARLY)
  47529. #define BIT_CLEAR_PS_TIMER_A_EARLY(x) ((x) & (~BITS_PS_TIMER_A_EARLY))
  47530. #define BIT_GET_PS_TIMER_A_EARLY(x) \
  47531. (((x) >> BIT_SHIFT_PS_TIMER_A_EARLY) & BIT_MASK_PS_TIMER_A_EARLY)
  47532. #define BIT_SET_PS_TIMER_A_EARLY(x, v) \
  47533. (BIT_CLEAR_PS_TIMER_A_EARLY(x) | BIT_PS_TIMER_A_EARLY(v))
  47534. /* 2 REG_PS_TIMER_B_EARLY (Offset 0x1516) */
  47535. #define BIT_SHIFT_PS_TIMER_B_EARLY 0
  47536. #define BIT_MASK_PS_TIMER_B_EARLY 0xff
  47537. #define BIT_PS_TIMER_B_EARLY(x) \
  47538. (((x) & BIT_MASK_PS_TIMER_B_EARLY) << BIT_SHIFT_PS_TIMER_B_EARLY)
  47539. #define BITS_PS_TIMER_B_EARLY \
  47540. (BIT_MASK_PS_TIMER_B_EARLY << BIT_SHIFT_PS_TIMER_B_EARLY)
  47541. #define BIT_CLEAR_PS_TIMER_B_EARLY(x) ((x) & (~BITS_PS_TIMER_B_EARLY))
  47542. #define BIT_GET_PS_TIMER_B_EARLY(x) \
  47543. (((x) >> BIT_SHIFT_PS_TIMER_B_EARLY) & BIT_MASK_PS_TIMER_B_EARLY)
  47544. #define BIT_SET_PS_TIMER_B_EARLY(x, v) \
  47545. (BIT_CLEAR_PS_TIMER_B_EARLY(x) | BIT_PS_TIMER_B_EARLY(v))
  47546. /* 2 REG_PS_TIMER_C_EARLY (Offset 0x1517) */
  47547. #define BIT_SHIFT_PS_TIMER_C_EARLY 0
  47548. #define BIT_MASK_PS_TIMER_C_EARLY 0xff
  47549. #define BIT_PS_TIMER_C_EARLY(x) \
  47550. (((x) & BIT_MASK_PS_TIMER_C_EARLY) << BIT_SHIFT_PS_TIMER_C_EARLY)
  47551. #define BITS_PS_TIMER_C_EARLY \
  47552. (BIT_MASK_PS_TIMER_C_EARLY << BIT_SHIFT_PS_TIMER_C_EARLY)
  47553. #define BIT_CLEAR_PS_TIMER_C_EARLY(x) ((x) & (~BITS_PS_TIMER_C_EARLY))
  47554. #define BIT_GET_PS_TIMER_C_EARLY(x) \
  47555. (((x) >> BIT_SHIFT_PS_TIMER_C_EARLY) & BIT_MASK_PS_TIMER_C_EARLY)
  47556. #define BIT_SET_PS_TIMER_C_EARLY(x, v) \
  47557. (BIT_CLEAR_PS_TIMER_C_EARLY(x) | BIT_PS_TIMER_C_EARLY(v))
  47558. #endif
  47559. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  47560. /* 2 REG_CPUMGQ_PARAMETER (Offset 0x1518) */
  47561. #define BIT_STOP_CPUMGQ BIT(16)
  47562. #define BIT_SHIFT_CPUMGQ_PARAMETER 0
  47563. #define BIT_MASK_CPUMGQ_PARAMETER 0xffff
  47564. #define BIT_CPUMGQ_PARAMETER(x) \
  47565. (((x) & BIT_MASK_CPUMGQ_PARAMETER) << BIT_SHIFT_CPUMGQ_PARAMETER)
  47566. #define BITS_CPUMGQ_PARAMETER \
  47567. (BIT_MASK_CPUMGQ_PARAMETER << BIT_SHIFT_CPUMGQ_PARAMETER)
  47568. #define BIT_CLEAR_CPUMGQ_PARAMETER(x) ((x) & (~BITS_CPUMGQ_PARAMETER))
  47569. #define BIT_GET_CPUMGQ_PARAMETER(x) \
  47570. (((x) >> BIT_SHIFT_CPUMGQ_PARAMETER) & BIT_MASK_CPUMGQ_PARAMETER)
  47571. #define BIT_SET_CPUMGQ_PARAMETER(x, v) \
  47572. (BIT_CLEAR_CPUMGQ_PARAMETER(x) | BIT_CPUMGQ_PARAMETER(v))
  47573. #endif
  47574. #if (HALMAC_8814B_SUPPORT)
  47575. /* 2 REG_SW_TBTT_TSF_INFO (Offset 0x151C) */
  47576. #define BIT_SHIFT_SW_TBTT_TSF_INFO 0
  47577. #define BIT_MASK_SW_TBTT_TSF_INFO 0xffffffffL
  47578. #define BIT_SW_TBTT_TSF_INFO(x) \
  47579. (((x) & BIT_MASK_SW_TBTT_TSF_INFO) << BIT_SHIFT_SW_TBTT_TSF_INFO)
  47580. #define BITS_SW_TBTT_TSF_INFO \
  47581. (BIT_MASK_SW_TBTT_TSF_INFO << BIT_SHIFT_SW_TBTT_TSF_INFO)
  47582. #define BIT_CLEAR_SW_TBTT_TSF_INFO(x) ((x) & (~BITS_SW_TBTT_TSF_INFO))
  47583. #define BIT_GET_SW_TBTT_TSF_INFO(x) \
  47584. (((x) >> BIT_SHIFT_SW_TBTT_TSF_INFO) & BIT_MASK_SW_TBTT_TSF_INFO)
  47585. #define BIT_SET_SW_TBTT_TSF_INFO(x, v) \
  47586. (BIT_CLEAR_SW_TBTT_TSF_INFO(x) | BIT_SW_TBTT_TSF_INFO(v))
  47587. #endif
  47588. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47589. /* 2 REG_TSF_SYNC_ADJ (Offset 0x1520) */
  47590. #define BIT_SHIFT_R_P0_TSFT_ADJ_VAL 16
  47591. #define BIT_MASK_R_P0_TSFT_ADJ_VAL 0xffff
  47592. #define BIT_R_P0_TSFT_ADJ_VAL(x) \
  47593. (((x) & BIT_MASK_R_P0_TSFT_ADJ_VAL) << BIT_SHIFT_R_P0_TSFT_ADJ_VAL)
  47594. #define BITS_R_P0_TSFT_ADJ_VAL \
  47595. (BIT_MASK_R_P0_TSFT_ADJ_VAL << BIT_SHIFT_R_P0_TSFT_ADJ_VAL)
  47596. #define BIT_CLEAR_R_P0_TSFT_ADJ_VAL(x) ((x) & (~BITS_R_P0_TSFT_ADJ_VAL))
  47597. #define BIT_GET_R_P0_TSFT_ADJ_VAL(x) \
  47598. (((x) >> BIT_SHIFT_R_P0_TSFT_ADJ_VAL) & BIT_MASK_R_P0_TSFT_ADJ_VAL)
  47599. #define BIT_SET_R_P0_TSFT_ADJ_VAL(x, v) \
  47600. (BIT_CLEAR_R_P0_TSFT_ADJ_VAL(x) | BIT_R_P0_TSFT_ADJ_VAL(v))
  47601. #define BIT_R_X_COMP_Y_OVER BIT(8)
  47602. #endif
  47603. #if (HALMAC_8198F_SUPPORT)
  47604. /* 2 REG_TSF_SYN_CTRL0 (Offset 0x1520) */
  47605. #define BIT_TSF_SYNC_COMPARE_POLLING BIT(7)
  47606. #define BIT_TSF_SYNC_POLLING BIT(6)
  47607. #define BIT_SHIFT_TSF_SYNC_DUT 3
  47608. #define BIT_MASK_TSF_SYNC_DUT 0x7
  47609. #define BIT_TSF_SYNC_DUT(x) \
  47610. (((x) & BIT_MASK_TSF_SYNC_DUT) << BIT_SHIFT_TSF_SYNC_DUT)
  47611. #define BITS_TSF_SYNC_DUT (BIT_MASK_TSF_SYNC_DUT << BIT_SHIFT_TSF_SYNC_DUT)
  47612. #define BIT_CLEAR_TSF_SYNC_DUT(x) ((x) & (~BITS_TSF_SYNC_DUT))
  47613. #define BIT_GET_TSF_SYNC_DUT(x) \
  47614. (((x) >> BIT_SHIFT_TSF_SYNC_DUT) & BIT_MASK_TSF_SYNC_DUT)
  47615. #define BIT_SET_TSF_SYNC_DUT(x, v) \
  47616. (BIT_CLEAR_TSF_SYNC_DUT(x) | BIT_TSF_SYNC_DUT(v))
  47617. #endif
  47618. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47619. /* 2 REG_TSF_SYNC_ADJ (Offset 0x1520) */
  47620. #define BIT_SHIFT_R_X_SYNC_SEL 3
  47621. #define BIT_MASK_R_X_SYNC_SEL 0x7
  47622. #define BIT_R_X_SYNC_SEL(x) \
  47623. (((x) & BIT_MASK_R_X_SYNC_SEL) << BIT_SHIFT_R_X_SYNC_SEL)
  47624. #define BITS_R_X_SYNC_SEL (BIT_MASK_R_X_SYNC_SEL << BIT_SHIFT_R_X_SYNC_SEL)
  47625. #define BIT_CLEAR_R_X_SYNC_SEL(x) ((x) & (~BITS_R_X_SYNC_SEL))
  47626. #define BIT_GET_R_X_SYNC_SEL(x) \
  47627. (((x) >> BIT_SHIFT_R_X_SYNC_SEL) & BIT_MASK_R_X_SYNC_SEL)
  47628. #define BIT_SET_R_X_SYNC_SEL(x, v) \
  47629. (BIT_CLEAR_R_X_SYNC_SEL(x) | BIT_R_X_SYNC_SEL(v))
  47630. #endif
  47631. #if (HALMAC_8198F_SUPPORT)
  47632. /* 2 REG_TSF_SYN_CTRL0 (Offset 0x1520) */
  47633. #define BIT_SHIFT_TSF_SYNC_SOURCE 0
  47634. #define BIT_MASK_TSF_SYNC_SOURCE 0x7
  47635. #define BIT_TSF_SYNC_SOURCE(x) \
  47636. (((x) & BIT_MASK_TSF_SYNC_SOURCE) << BIT_SHIFT_TSF_SYNC_SOURCE)
  47637. #define BITS_TSF_SYNC_SOURCE \
  47638. (BIT_MASK_TSF_SYNC_SOURCE << BIT_SHIFT_TSF_SYNC_SOURCE)
  47639. #define BIT_CLEAR_TSF_SYNC_SOURCE(x) ((x) & (~BITS_TSF_SYNC_SOURCE))
  47640. #define BIT_GET_TSF_SYNC_SOURCE(x) \
  47641. (((x) >> BIT_SHIFT_TSF_SYNC_SOURCE) & BIT_MASK_TSF_SYNC_SOURCE)
  47642. #define BIT_SET_TSF_SYNC_SOURCE(x, v) \
  47643. (BIT_CLEAR_TSF_SYNC_SOURCE(x) | BIT_TSF_SYNC_SOURCE(v))
  47644. #define BIT_TSF_SYNC_SIGNAL BIT(0)
  47645. #endif
  47646. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47647. /* 2 REG_TSF_SYNC_ADJ (Offset 0x1520) */
  47648. #define BIT_SHIFT_R_SYNC_Y_SEL 0
  47649. #define BIT_MASK_R_SYNC_Y_SEL 0x7
  47650. #define BIT_R_SYNC_Y_SEL(x) \
  47651. (((x) & BIT_MASK_R_SYNC_Y_SEL) << BIT_SHIFT_R_SYNC_Y_SEL)
  47652. #define BITS_R_SYNC_Y_SEL (BIT_MASK_R_SYNC_Y_SEL << BIT_SHIFT_R_SYNC_Y_SEL)
  47653. #define BIT_CLEAR_R_SYNC_Y_SEL(x) ((x) & (~BITS_R_SYNC_Y_SEL))
  47654. #define BIT_GET_R_SYNC_Y_SEL(x) \
  47655. (((x) >> BIT_SHIFT_R_SYNC_Y_SEL) & BIT_MASK_R_SYNC_Y_SEL)
  47656. #define BIT_SET_R_SYNC_Y_SEL(x, v) \
  47657. (BIT_CLEAR_R_SYNC_Y_SEL(x) | BIT_R_SYNC_Y_SEL(v))
  47658. #endif
  47659. #if (HALMAC_8814B_SUPPORT)
  47660. /* 2 REG_TSFTR_LOW (Offset 0x1520) */
  47661. #define BIT_SHIFT_TSF_TIMER_LOW 0
  47662. #define BIT_MASK_TSF_TIMER_LOW 0xffffffffL
  47663. #define BIT_TSF_TIMER_LOW(x) \
  47664. (((x) & BIT_MASK_TSF_TIMER_LOW) << BIT_SHIFT_TSF_TIMER_LOW)
  47665. #define BITS_TSF_TIMER_LOW (BIT_MASK_TSF_TIMER_LOW << BIT_SHIFT_TSF_TIMER_LOW)
  47666. #define BIT_CLEAR_TSF_TIMER_LOW(x) ((x) & (~BITS_TSF_TIMER_LOW))
  47667. #define BIT_GET_TSF_TIMER_LOW(x) \
  47668. (((x) >> BIT_SHIFT_TSF_TIMER_LOW) & BIT_MASK_TSF_TIMER_LOW)
  47669. #define BIT_SET_TSF_TIMER_LOW(x, v) \
  47670. (BIT_CLEAR_TSF_TIMER_LOW(x) | BIT_TSF_TIMER_LOW(v))
  47671. #endif
  47672. #if (HALMAC_8198F_SUPPORT)
  47673. /* 2 REG_TSF_SYN_OFFSET0 (Offset 0x1522) */
  47674. #define BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0 0
  47675. #define BIT_MASK_TSF_SYNC_INTERVAL_PORT0 0xffff
  47676. #define BIT_TSF_SYNC_INTERVAL_PORT0(x) \
  47677. (((x) & BIT_MASK_TSF_SYNC_INTERVAL_PORT0) \
  47678. << BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0)
  47679. #define BITS_TSF_SYNC_INTERVAL_PORT0 \
  47680. (BIT_MASK_TSF_SYNC_INTERVAL_PORT0 << BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0)
  47681. #define BIT_CLEAR_TSF_SYNC_INTERVAL_PORT0(x) \
  47682. ((x) & (~BITS_TSF_SYNC_INTERVAL_PORT0))
  47683. #define BIT_GET_TSF_SYNC_INTERVAL_PORT0(x) \
  47684. (((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0) & \
  47685. BIT_MASK_TSF_SYNC_INTERVAL_PORT0)
  47686. #define BIT_SET_TSF_SYNC_INTERVAL_PORT0(x, v) \
  47687. (BIT_CLEAR_TSF_SYNC_INTERVAL_PORT0(x) | BIT_TSF_SYNC_INTERVAL_PORT0(v))
  47688. /* 2 REG_TSF_SYN_OFFSET1 (Offset 0x1524) */
  47689. #define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1 16
  47690. #define BIT_MASK_TSF_SYNC_INTERVAL_CLI1 0xffff
  47691. #define BIT_TSF_SYNC_INTERVAL_CLI1(x) \
  47692. (((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI1) \
  47693. << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1)
  47694. #define BITS_TSF_SYNC_INTERVAL_CLI1 \
  47695. (BIT_MASK_TSF_SYNC_INTERVAL_CLI1 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1)
  47696. #define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI1(x) \
  47697. ((x) & (~BITS_TSF_SYNC_INTERVAL_CLI1))
  47698. #define BIT_GET_TSF_SYNC_INTERVAL_CLI1(x) \
  47699. (((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1) & \
  47700. BIT_MASK_TSF_SYNC_INTERVAL_CLI1)
  47701. #define BIT_SET_TSF_SYNC_INTERVAL_CLI1(x, v) \
  47702. (BIT_CLEAR_TSF_SYNC_INTERVAL_CLI1(x) | BIT_TSF_SYNC_INTERVAL_CLI1(v))
  47703. #endif
  47704. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47705. /* 2 REG_TSF_ADJ_VLAUE (Offset 0x1524) */
  47706. #define BIT_SHIFT_R_CLI1_TSFT_ADJ_VAL 16
  47707. #define BIT_MASK_R_CLI1_TSFT_ADJ_VAL 0xffff
  47708. #define BIT_R_CLI1_TSFT_ADJ_VAL(x) \
  47709. (((x) & BIT_MASK_R_CLI1_TSFT_ADJ_VAL) << BIT_SHIFT_R_CLI1_TSFT_ADJ_VAL)
  47710. #define BITS_R_CLI1_TSFT_ADJ_VAL \
  47711. (BIT_MASK_R_CLI1_TSFT_ADJ_VAL << BIT_SHIFT_R_CLI1_TSFT_ADJ_VAL)
  47712. #define BIT_CLEAR_R_CLI1_TSFT_ADJ_VAL(x) ((x) & (~BITS_R_CLI1_TSFT_ADJ_VAL))
  47713. #define BIT_GET_R_CLI1_TSFT_ADJ_VAL(x) \
  47714. (((x) >> BIT_SHIFT_R_CLI1_TSFT_ADJ_VAL) & BIT_MASK_R_CLI1_TSFT_ADJ_VAL)
  47715. #define BIT_SET_R_CLI1_TSFT_ADJ_VAL(x, v) \
  47716. (BIT_CLEAR_R_CLI1_TSFT_ADJ_VAL(x) | BIT_R_CLI1_TSFT_ADJ_VAL(v))
  47717. #endif
  47718. #if (HALMAC_8198F_SUPPORT)
  47719. /* 2 REG_TSF_SYN_OFFSET1 (Offset 0x1524) */
  47720. #define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0 0
  47721. #define BIT_MASK_TSF_SYNC_INTERVAL_CLI0 0xffff
  47722. #define BIT_TSF_SYNC_INTERVAL_CLI0(x) \
  47723. (((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI0) \
  47724. << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0)
  47725. #define BITS_TSF_SYNC_INTERVAL_CLI0 \
  47726. (BIT_MASK_TSF_SYNC_INTERVAL_CLI0 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0)
  47727. #define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI0(x) \
  47728. ((x) & (~BITS_TSF_SYNC_INTERVAL_CLI0))
  47729. #define BIT_GET_TSF_SYNC_INTERVAL_CLI0(x) \
  47730. (((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0) & \
  47731. BIT_MASK_TSF_SYNC_INTERVAL_CLI0)
  47732. #define BIT_SET_TSF_SYNC_INTERVAL_CLI0(x, v) \
  47733. (BIT_CLEAR_TSF_SYNC_INTERVAL_CLI0(x) | BIT_TSF_SYNC_INTERVAL_CLI0(v))
  47734. #endif
  47735. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47736. /* 2 REG_TSF_ADJ_VLAUE (Offset 0x1524) */
  47737. #define BIT_SHIFT_R_CLI0_TSFT_ADJ_VAL 0
  47738. #define BIT_MASK_R_CLI0_TSFT_ADJ_VAL 0xffff
  47739. #define BIT_R_CLI0_TSFT_ADJ_VAL(x) \
  47740. (((x) & BIT_MASK_R_CLI0_TSFT_ADJ_VAL) << BIT_SHIFT_R_CLI0_TSFT_ADJ_VAL)
  47741. #define BITS_R_CLI0_TSFT_ADJ_VAL \
  47742. (BIT_MASK_R_CLI0_TSFT_ADJ_VAL << BIT_SHIFT_R_CLI0_TSFT_ADJ_VAL)
  47743. #define BIT_CLEAR_R_CLI0_TSFT_ADJ_VAL(x) ((x) & (~BITS_R_CLI0_TSFT_ADJ_VAL))
  47744. #define BIT_GET_R_CLI0_TSFT_ADJ_VAL(x) \
  47745. (((x) >> BIT_SHIFT_R_CLI0_TSFT_ADJ_VAL) & BIT_MASK_R_CLI0_TSFT_ADJ_VAL)
  47746. #define BIT_SET_R_CLI0_TSFT_ADJ_VAL(x, v) \
  47747. (BIT_CLEAR_R_CLI0_TSFT_ADJ_VAL(x) | BIT_R_CLI0_TSFT_ADJ_VAL(v))
  47748. #endif
  47749. #if (HALMAC_8814B_SUPPORT)
  47750. /* 2 REG_TSFTR_HIGH (Offset 0x1524) */
  47751. #define BIT_SHIFT_TSF_TIMER_HIGH 0
  47752. #define BIT_MASK_TSF_TIMER_HIGH 0xffffffffL
  47753. #define BIT_TSF_TIMER_HIGH(x) \
  47754. (((x) & BIT_MASK_TSF_TIMER_HIGH) << BIT_SHIFT_TSF_TIMER_HIGH)
  47755. #define BITS_TSF_TIMER_HIGH \
  47756. (BIT_MASK_TSF_TIMER_HIGH << BIT_SHIFT_TSF_TIMER_HIGH)
  47757. #define BIT_CLEAR_TSF_TIMER_HIGH(x) ((x) & (~BITS_TSF_TIMER_HIGH))
  47758. #define BIT_GET_TSF_TIMER_HIGH(x) \
  47759. (((x) >> BIT_SHIFT_TSF_TIMER_HIGH) & BIT_MASK_TSF_TIMER_HIGH)
  47760. #define BIT_SET_TSF_TIMER_HIGH(x, v) \
  47761. (BIT_CLEAR_TSF_TIMER_HIGH(x) | BIT_TSF_TIMER_HIGH(v))
  47762. #endif
  47763. #if (HALMAC_8198F_SUPPORT)
  47764. /* 2 REG_TSF_SYN_OFFSET2 (Offset 0x1528) */
  47765. #define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3 16
  47766. #define BIT_MASK_TSF_SYNC_INTERVAL_CLI3 0xffff
  47767. #define BIT_TSF_SYNC_INTERVAL_CLI3(x) \
  47768. (((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI3) \
  47769. << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3)
  47770. #define BITS_TSF_SYNC_INTERVAL_CLI3 \
  47771. (BIT_MASK_TSF_SYNC_INTERVAL_CLI3 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3)
  47772. #define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI3(x) \
  47773. ((x) & (~BITS_TSF_SYNC_INTERVAL_CLI3))
  47774. #define BIT_GET_TSF_SYNC_INTERVAL_CLI3(x) \
  47775. (((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3) & \
  47776. BIT_MASK_TSF_SYNC_INTERVAL_CLI3)
  47777. #define BIT_SET_TSF_SYNC_INTERVAL_CLI3(x, v) \
  47778. (BIT_CLEAR_TSF_SYNC_INTERVAL_CLI3(x) | BIT_TSF_SYNC_INTERVAL_CLI3(v))
  47779. #endif
  47780. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47781. /* 2 REG_TSF_ADJ_VLAUE_2 (Offset 0x1528) */
  47782. #define BIT_SHIFT_R_CLI3_TSFT_ADJ_VAL 16
  47783. #define BIT_MASK_R_CLI3_TSFT_ADJ_VAL 0xffff
  47784. #define BIT_R_CLI3_TSFT_ADJ_VAL(x) \
  47785. (((x) & BIT_MASK_R_CLI3_TSFT_ADJ_VAL) << BIT_SHIFT_R_CLI3_TSFT_ADJ_VAL)
  47786. #define BITS_R_CLI3_TSFT_ADJ_VAL \
  47787. (BIT_MASK_R_CLI3_TSFT_ADJ_VAL << BIT_SHIFT_R_CLI3_TSFT_ADJ_VAL)
  47788. #define BIT_CLEAR_R_CLI3_TSFT_ADJ_VAL(x) ((x) & (~BITS_R_CLI3_TSFT_ADJ_VAL))
  47789. #define BIT_GET_R_CLI3_TSFT_ADJ_VAL(x) \
  47790. (((x) >> BIT_SHIFT_R_CLI3_TSFT_ADJ_VAL) & BIT_MASK_R_CLI3_TSFT_ADJ_VAL)
  47791. #define BIT_SET_R_CLI3_TSFT_ADJ_VAL(x, v) \
  47792. (BIT_CLEAR_R_CLI3_TSFT_ADJ_VAL(x) | BIT_R_CLI3_TSFT_ADJ_VAL(v))
  47793. #endif
  47794. #if (HALMAC_8198F_SUPPORT)
  47795. /* 2 REG_TSF_SYN_OFFSET2 (Offset 0x1528) */
  47796. #define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2 0
  47797. #define BIT_MASK_TSF_SYNC_INTERVAL_CLI2 0xffff
  47798. #define BIT_TSF_SYNC_INTERVAL_CLI2(x) \
  47799. (((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI2) \
  47800. << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2)
  47801. #define BITS_TSF_SYNC_INTERVAL_CLI2 \
  47802. (BIT_MASK_TSF_SYNC_INTERVAL_CLI2 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2)
  47803. #define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI2(x) \
  47804. ((x) & (~BITS_TSF_SYNC_INTERVAL_CLI2))
  47805. #define BIT_GET_TSF_SYNC_INTERVAL_CLI2(x) \
  47806. (((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2) & \
  47807. BIT_MASK_TSF_SYNC_INTERVAL_CLI2)
  47808. #define BIT_SET_TSF_SYNC_INTERVAL_CLI2(x, v) \
  47809. (BIT_CLEAR_TSF_SYNC_INTERVAL_CLI2(x) | BIT_TSF_SYNC_INTERVAL_CLI2(v))
  47810. #endif
  47811. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  47812. /* 2 REG_TSF_ADJ_VLAUE_2 (Offset 0x1528) */
  47813. #define BIT_SHIFT_R_CLI2_TSFT_ADJ_VAL 0
  47814. #define BIT_MASK_R_CLI2_TSFT_ADJ_VAL 0xffff
  47815. #define BIT_R_CLI2_TSFT_ADJ_VAL(x) \
  47816. (((x) & BIT_MASK_R_CLI2_TSFT_ADJ_VAL) << BIT_SHIFT_R_CLI2_TSFT_ADJ_VAL)
  47817. #define BITS_R_CLI2_TSFT_ADJ_VAL \
  47818. (BIT_MASK_R_CLI2_TSFT_ADJ_VAL << BIT_SHIFT_R_CLI2_TSFT_ADJ_VAL)
  47819. #define BIT_CLEAR_R_CLI2_TSFT_ADJ_VAL(x) ((x) & (~BITS_R_CLI2_TSFT_ADJ_VAL))
  47820. #define BIT_GET_R_CLI2_TSFT_ADJ_VAL(x) \
  47821. (((x) >> BIT_SHIFT_R_CLI2_TSFT_ADJ_VAL) & BIT_MASK_R_CLI2_TSFT_ADJ_VAL)
  47822. #define BIT_SET_R_CLI2_TSFT_ADJ_VAL(x, v) \
  47823. (BIT_CLEAR_R_CLI2_TSFT_ADJ_VAL(x) | BIT_R_CLI2_TSFT_ADJ_VAL(v))
  47824. #endif
  47825. #if (HALMAC_8814B_SUPPORT)
  47826. /* 2 REG_BCN_ERR_CNT_MAC (Offset 0x1528) */
  47827. #define BIT_SHIFT_BCN_ERR_CNT_MAC 0
  47828. #define BIT_MASK_BCN_ERR_CNT_MAC 0xff
  47829. #define BIT_BCN_ERR_CNT_MAC(x) \
  47830. (((x) & BIT_MASK_BCN_ERR_CNT_MAC) << BIT_SHIFT_BCN_ERR_CNT_MAC)
  47831. #define BITS_BCN_ERR_CNT_MAC \
  47832. (BIT_MASK_BCN_ERR_CNT_MAC << BIT_SHIFT_BCN_ERR_CNT_MAC)
  47833. #define BIT_CLEAR_BCN_ERR_CNT_MAC(x) ((x) & (~BITS_BCN_ERR_CNT_MAC))
  47834. #define BIT_GET_BCN_ERR_CNT_MAC(x) \
  47835. (((x) >> BIT_SHIFT_BCN_ERR_CNT_MAC) & BIT_MASK_BCN_ERR_CNT_MAC)
  47836. #define BIT_SET_BCN_ERR_CNT_MAC(x, v) \
  47837. (BIT_CLEAR_BCN_ERR_CNT_MAC(x) | BIT_BCN_ERR_CNT_MAC(v))
  47838. /* 2 REG_BCN_ERR_CNT_EDCCA (Offset 0x1529) */
  47839. #define BIT_SHIFT_BCN_ERR_CNT_EDCCA 0
  47840. #define BIT_MASK_BCN_ERR_CNT_EDCCA 0xff
  47841. #define BIT_BCN_ERR_CNT_EDCCA(x) \
  47842. (((x) & BIT_MASK_BCN_ERR_CNT_EDCCA) << BIT_SHIFT_BCN_ERR_CNT_EDCCA)
  47843. #define BITS_BCN_ERR_CNT_EDCCA \
  47844. (BIT_MASK_BCN_ERR_CNT_EDCCA << BIT_SHIFT_BCN_ERR_CNT_EDCCA)
  47845. #define BIT_CLEAR_BCN_ERR_CNT_EDCCA(x) ((x) & (~BITS_BCN_ERR_CNT_EDCCA))
  47846. #define BIT_GET_BCN_ERR_CNT_EDCCA(x) \
  47847. (((x) >> BIT_SHIFT_BCN_ERR_CNT_EDCCA) & BIT_MASK_BCN_ERR_CNT_EDCCA)
  47848. #define BIT_SET_BCN_ERR_CNT_EDCCA(x, v) \
  47849. (BIT_CLEAR_BCN_ERR_CNT_EDCCA(x) | BIT_BCN_ERR_CNT_EDCCA(v))
  47850. /* 2 REG_BCN_ERR_CNT_CCA (Offset 0x152A) */
  47851. #define BIT_SHIFT_BCN_ERR_CNT_CCA 0
  47852. #define BIT_MASK_BCN_ERR_CNT_CCA 0xff
  47853. #define BIT_BCN_ERR_CNT_CCA(x) \
  47854. (((x) & BIT_MASK_BCN_ERR_CNT_CCA) << BIT_SHIFT_BCN_ERR_CNT_CCA)
  47855. #define BITS_BCN_ERR_CNT_CCA \
  47856. (BIT_MASK_BCN_ERR_CNT_CCA << BIT_SHIFT_BCN_ERR_CNT_CCA)
  47857. #define BIT_CLEAR_BCN_ERR_CNT_CCA(x) ((x) & (~BITS_BCN_ERR_CNT_CCA))
  47858. #define BIT_GET_BCN_ERR_CNT_CCA(x) \
  47859. (((x) >> BIT_SHIFT_BCN_ERR_CNT_CCA) & BIT_MASK_BCN_ERR_CNT_CCA)
  47860. #define BIT_SET_BCN_ERR_CNT_CCA(x, v) \
  47861. (BIT_CLEAR_BCN_ERR_CNT_CCA(x) | BIT_BCN_ERR_CNT_CCA(v))
  47862. /* 2 REG_BCN_ERR_CNT_INVALID (Offset 0x152B) */
  47863. #define BIT_SHIFT_BCN_ERR_CNT_INVALID 0
  47864. #define BIT_MASK_BCN_ERR_CNT_INVALID 0xff
  47865. #define BIT_BCN_ERR_CNT_INVALID(x) \
  47866. (((x) & BIT_MASK_BCN_ERR_CNT_INVALID) << BIT_SHIFT_BCN_ERR_CNT_INVALID)
  47867. #define BITS_BCN_ERR_CNT_INVALID \
  47868. (BIT_MASK_BCN_ERR_CNT_INVALID << BIT_SHIFT_BCN_ERR_CNT_INVALID)
  47869. #define BIT_CLEAR_BCN_ERR_CNT_INVALID(x) ((x) & (~BITS_BCN_ERR_CNT_INVALID))
  47870. #define BIT_GET_BCN_ERR_CNT_INVALID(x) \
  47871. (((x) >> BIT_SHIFT_BCN_ERR_CNT_INVALID) & BIT_MASK_BCN_ERR_CNT_INVALID)
  47872. #define BIT_SET_BCN_ERR_CNT_INVALID(x, v) \
  47873. (BIT_CLEAR_BCN_ERR_CNT_INVALID(x) | BIT_BCN_ERR_CNT_INVALID(v))
  47874. /* 2 REG_BCN_ERR_CNT_OTHERS (Offset 0x152C) */
  47875. #define BIT_SHIFT_BCN_ERR_CNT_OTHERS 0
  47876. #define BIT_MASK_BCN_ERR_CNT_OTHERS 0xff
  47877. #define BIT_BCN_ERR_CNT_OTHERS(x) \
  47878. (((x) & BIT_MASK_BCN_ERR_CNT_OTHERS) << BIT_SHIFT_BCN_ERR_CNT_OTHERS)
  47879. #define BITS_BCN_ERR_CNT_OTHERS \
  47880. (BIT_MASK_BCN_ERR_CNT_OTHERS << BIT_SHIFT_BCN_ERR_CNT_OTHERS)
  47881. #define BIT_CLEAR_BCN_ERR_CNT_OTHERS(x) ((x) & (~BITS_BCN_ERR_CNT_OTHERS))
  47882. #define BIT_GET_BCN_ERR_CNT_OTHERS(x) \
  47883. (((x) >> BIT_SHIFT_BCN_ERR_CNT_OTHERS) & BIT_MASK_BCN_ERR_CNT_OTHERS)
  47884. #define BIT_SET_BCN_ERR_CNT_OTHERS(x, v) \
  47885. (BIT_CLEAR_BCN_ERR_CNT_OTHERS(x) | BIT_BCN_ERR_CNT_OTHERS(v))
  47886. /* 2 REG_RX_BCN_TIMER (Offset 0x152D) */
  47887. #define BIT_SHIFT_RX_BCN_TIMER 0
  47888. #define BIT_MASK_RX_BCN_TIMER 0xffff
  47889. #define BIT_RX_BCN_TIMER(x) \
  47890. (((x) & BIT_MASK_RX_BCN_TIMER) << BIT_SHIFT_RX_BCN_TIMER)
  47891. #define BITS_RX_BCN_TIMER (BIT_MASK_RX_BCN_TIMER << BIT_SHIFT_RX_BCN_TIMER)
  47892. #define BIT_CLEAR_RX_BCN_TIMER(x) ((x) & (~BITS_RX_BCN_TIMER))
  47893. #define BIT_GET_RX_BCN_TIMER(x) \
  47894. (((x) >> BIT_SHIFT_RX_BCN_TIMER) & BIT_MASK_RX_BCN_TIMER)
  47895. #define BIT_SET_RX_BCN_TIMER(x, v) \
  47896. (BIT_CLEAR_RX_BCN_TIMER(x) | BIT_RX_BCN_TIMER(v))
  47897. #endif
  47898. #if (HALMAC_8198F_SUPPORT)
  47899. /* 2 REG_TSF_SYN_COMPARE_VALUE (Offset 0x1530) */
  47900. #define BIT_SHIFT_TSF_SYN_COMPARE_VALUE 0
  47901. #define BIT_MASK_TSF_SYN_COMPARE_VALUE 0xffffffffffffffffL
  47902. #define BIT_TSF_SYN_COMPARE_VALUE(x) \
  47903. (((x) & BIT_MASK_TSF_SYN_COMPARE_VALUE) \
  47904. << BIT_SHIFT_TSF_SYN_COMPARE_VALUE)
  47905. #define BITS_TSF_SYN_COMPARE_VALUE \
  47906. (BIT_MASK_TSF_SYN_COMPARE_VALUE << BIT_SHIFT_TSF_SYN_COMPARE_VALUE)
  47907. #define BIT_CLEAR_TSF_SYN_COMPARE_VALUE(x) ((x) & (~BITS_TSF_SYN_COMPARE_VALUE))
  47908. #define BIT_GET_TSF_SYN_COMPARE_VALUE(x) \
  47909. (((x) >> BIT_SHIFT_TSF_SYN_COMPARE_VALUE) & \
  47910. BIT_MASK_TSF_SYN_COMPARE_VALUE)
  47911. #define BIT_SET_TSF_SYN_COMPARE_VALUE(x, v) \
  47912. (BIT_CLEAR_TSF_SYN_COMPARE_VALUE(x) | BIT_TSF_SYN_COMPARE_VALUE(v))
  47913. #endif
  47914. #if (HALMAC_8814B_SUPPORT)
  47915. /* 2 REG_SUB_BCN_SPACE (Offset 0x1534) */
  47916. #define BIT_SHIFT_SUB_BCN_SPACE_V2 0
  47917. #define BIT_MASK_SUB_BCN_SPACE_V2 0xff
  47918. #define BIT_SUB_BCN_SPACE_V2(x) \
  47919. (((x) & BIT_MASK_SUB_BCN_SPACE_V2) << BIT_SHIFT_SUB_BCN_SPACE_V2)
  47920. #define BITS_SUB_BCN_SPACE_V2 \
  47921. (BIT_MASK_SUB_BCN_SPACE_V2 << BIT_SHIFT_SUB_BCN_SPACE_V2)
  47922. #define BIT_CLEAR_SUB_BCN_SPACE_V2(x) ((x) & (~BITS_SUB_BCN_SPACE_V2))
  47923. #define BIT_GET_SUB_BCN_SPACE_V2(x) \
  47924. (((x) >> BIT_SHIFT_SUB_BCN_SPACE_V2) & BIT_MASK_SUB_BCN_SPACE_V2)
  47925. #define BIT_SET_SUB_BCN_SPACE_V2(x, v) \
  47926. (BIT_CLEAR_SUB_BCN_SPACE_V2(x) | BIT_SUB_BCN_SPACE_V2(v))
  47927. /* 2 REG_MBID_NUM_V1 (Offset 0x1535) */
  47928. #define BIT_SHIFT_BCN_ERR_PORT_SEL 4
  47929. #define BIT_MASK_BCN_ERR_PORT_SEL 0xf
  47930. #define BIT_BCN_ERR_PORT_SEL(x) \
  47931. (((x) & BIT_MASK_BCN_ERR_PORT_SEL) << BIT_SHIFT_BCN_ERR_PORT_SEL)
  47932. #define BITS_BCN_ERR_PORT_SEL \
  47933. (BIT_MASK_BCN_ERR_PORT_SEL << BIT_SHIFT_BCN_ERR_PORT_SEL)
  47934. #define BIT_CLEAR_BCN_ERR_PORT_SEL(x) ((x) & (~BITS_BCN_ERR_PORT_SEL))
  47935. #define BIT_GET_BCN_ERR_PORT_SEL(x) \
  47936. (((x) >> BIT_SHIFT_BCN_ERR_PORT_SEL) & BIT_MASK_BCN_ERR_PORT_SEL)
  47937. #define BIT_SET_BCN_ERR_PORT_SEL(x, v) \
  47938. (BIT_CLEAR_BCN_ERR_PORT_SEL(x) | BIT_BCN_ERR_PORT_SEL(v))
  47939. #define BIT_SHIFT_MBID_BCN_NUM_V1 0
  47940. #define BIT_MASK_MBID_BCN_NUM_V1 0xf
  47941. #define BIT_MBID_BCN_NUM_V1(x) \
  47942. (((x) & BIT_MASK_MBID_BCN_NUM_V1) << BIT_SHIFT_MBID_BCN_NUM_V1)
  47943. #define BITS_MBID_BCN_NUM_V1 \
  47944. (BIT_MASK_MBID_BCN_NUM_V1 << BIT_SHIFT_MBID_BCN_NUM_V1)
  47945. #define BIT_CLEAR_MBID_BCN_NUM_V1(x) ((x) & (~BITS_MBID_BCN_NUM_V1))
  47946. #define BIT_GET_MBID_BCN_NUM_V1(x) \
  47947. (((x) >> BIT_SHIFT_MBID_BCN_NUM_V1) & BIT_MASK_MBID_BCN_NUM_V1)
  47948. #define BIT_SET_MBID_BCN_NUM_V1(x, v) \
  47949. (BIT_CLEAR_MBID_BCN_NUM_V1(x) | BIT_MBID_BCN_NUM_V1(v))
  47950. /* 2 REG_MBSSID_CTRL_V1 (Offset 0x1536) */
  47951. #define BIT_MBID_BCNQ15_EN BIT(15)
  47952. #define BIT_MBID_BCNQ14_EN BIT(14)
  47953. #define BIT_MBID_BCNQ13_EN BIT(13)
  47954. #define BIT_MBID_BCNQ12_EN BIT(12)
  47955. #define BIT_MBID_BCNQ11_EN BIT(11)
  47956. #define BIT_MBID_BCNQ10_EN BIT(10)
  47957. #define BIT_MBID_BCNQ9_EN BIT(9)
  47958. #define BIT_MBID_BCNQ8_EN BIT(8)
  47959. /* 2 REG_BW_CFG (Offset 0x1539) */
  47960. #define BIT_SLEEP_32K_EN BIT(3)
  47961. #define BIT_DIS_MARK_TSF_US_V1 BIT(2)
  47962. /* 2 REG_ATIMWND_CFG (Offset 0x153A) */
  47963. #define BIT_SHIFT_ATIMWND_V1 0
  47964. #define BIT_MASK_ATIMWND_V1 0xff
  47965. #define BIT_ATIMWND_V1(x) (((x) & BIT_MASK_ATIMWND_V1) << BIT_SHIFT_ATIMWND_V1)
  47966. #define BITS_ATIMWND_V1 (BIT_MASK_ATIMWND_V1 << BIT_SHIFT_ATIMWND_V1)
  47967. #define BIT_CLEAR_ATIMWND_V1(x) ((x) & (~BITS_ATIMWND_V1))
  47968. #define BIT_GET_ATIMWND_V1(x) \
  47969. (((x) >> BIT_SHIFT_ATIMWND_V1) & BIT_MASK_ATIMWND_V1)
  47970. #define BIT_SET_ATIMWND_V1(x, v) (BIT_CLEAR_ATIMWND_V1(x) | BIT_ATIMWND_V1(v))
  47971. /* 2 REG_DTIM_COUNTER_CFG (Offset 0x153B) */
  47972. #define BIT_SHIFT_DTIM_COUNT 0
  47973. #define BIT_MASK_DTIM_COUNT 0xff
  47974. #define BIT_DTIM_COUNT(x) (((x) & BIT_MASK_DTIM_COUNT) << BIT_SHIFT_DTIM_COUNT)
  47975. #define BITS_DTIM_COUNT (BIT_MASK_DTIM_COUNT << BIT_SHIFT_DTIM_COUNT)
  47976. #define BIT_CLEAR_DTIM_COUNT(x) ((x) & (~BITS_DTIM_COUNT))
  47977. #define BIT_GET_DTIM_COUNT(x) \
  47978. (((x) >> BIT_SHIFT_DTIM_COUNT) & BIT_MASK_DTIM_COUNT)
  47979. #define BIT_SET_DTIM_COUNT(x, v) (BIT_CLEAR_DTIM_COUNT(x) | BIT_DTIM_COUNT(v))
  47980. /* 2 REG_ATIM_DTIM_CTRL_SEL (Offset 0x153C) */
  47981. #define BIT_DTIM_BYPASS_V1 BIT(7)
  47982. #define BIT_SHIFT_ATIM_DTIM_SEL 0
  47983. #define BIT_MASK_ATIM_DTIM_SEL 0x1f
  47984. #define BIT_ATIM_DTIM_SEL(x) \
  47985. (((x) & BIT_MASK_ATIM_DTIM_SEL) << BIT_SHIFT_ATIM_DTIM_SEL)
  47986. #define BITS_ATIM_DTIM_SEL (BIT_MASK_ATIM_DTIM_SEL << BIT_SHIFT_ATIM_DTIM_SEL)
  47987. #define BIT_CLEAR_ATIM_DTIM_SEL(x) ((x) & (~BITS_ATIM_DTIM_SEL))
  47988. #define BIT_GET_ATIM_DTIM_SEL(x) \
  47989. (((x) >> BIT_SHIFT_ATIM_DTIM_SEL) & BIT_MASK_ATIM_DTIM_SEL)
  47990. #define BIT_SET_ATIM_DTIM_SEL(x, v) \
  47991. (BIT_CLEAR_ATIM_DTIM_SEL(x) | BIT_ATIM_DTIM_SEL(v))
  47992. #endif
  47993. #if (HALMAC_8192E_SUPPORT || HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || \
  47994. HALMAC_8812F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || \
  47995. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  47996. HALMAC_8822C_SUPPORT || HALMAC_8881A_SUPPORT)
  47997. /* 2 REG_ATIMUGT_V1 (Offset 0x153D) */
  47998. #define BIT_SHIFT_ATIM_URGENT 0
  47999. #define BIT_MASK_ATIM_URGENT 0xff
  48000. #define BIT_ATIM_URGENT(x) \
  48001. (((x) & BIT_MASK_ATIM_URGENT) << BIT_SHIFT_ATIM_URGENT)
  48002. #define BITS_ATIM_URGENT (BIT_MASK_ATIM_URGENT << BIT_SHIFT_ATIM_URGENT)
  48003. #define BIT_CLEAR_ATIM_URGENT(x) ((x) & (~BITS_ATIM_URGENT))
  48004. #define BIT_GET_ATIM_URGENT(x) \
  48005. (((x) >> BIT_SHIFT_ATIM_URGENT) & BIT_MASK_ATIM_URGENT)
  48006. #define BIT_SET_ATIM_URGENT(x, v) \
  48007. (BIT_CLEAR_ATIM_URGENT(x) | BIT_ATIM_URGENT(v))
  48008. #endif
  48009. #if (HALMAC_8814B_SUPPORT)
  48010. /* 2 REG_DIS_ATIM_V1 (Offset 0x1540) */
  48011. #define BIT_DIS_ATIM_P4 BIT(19)
  48012. #define BIT_DIS_ATIM_P3 BIT(18)
  48013. #define BIT_DIS_ATIM_P2 BIT(17)
  48014. #define BIT_DIS_ATIM_P1 BIT(16)
  48015. #define BIT_DIS_ATIM_VAP15 BIT(15)
  48016. #define BIT_DIS_ATIM_VAP14 BIT(14)
  48017. #define BIT_DIS_ATIM_VAP13 BIT(13)
  48018. #define BIT_DIS_ATIM_VAP12 BIT(12)
  48019. #define BIT_DIS_ATIM_VAP11 BIT(11)
  48020. #define BIT_DIS_ATIM_VAP10 BIT(10)
  48021. #define BIT_DIS_ATIM_VAP9 BIT(9)
  48022. #define BIT_DIS_ATIM_VAP8 BIT(8)
  48023. #define BIT_DIS_ATIM_ROOT_P0 BIT(0)
  48024. /* 2 REG_HIQ_NO_LMT_EN_V1 (Offset 0x1544) */
  48025. #define BIT_HIQ_NO_LMT_EN_P4 BIT(19)
  48026. #define BIT_HIQ_NO_LMT_EN_P3 BIT(18)
  48027. #define BIT_HIQ_NO_LMT_EN_P2 BIT(17)
  48028. #define BIT_HIQ_NO_LMT_EN_P1 BIT(16)
  48029. #endif
  48030. #if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  48031. /* 2 REG_HIQ_NO_LMT_EN_V1 (Offset 0x1544) */
  48032. #define BIT_HIQ_NO_LMT_EN_VAP15 BIT(15)
  48033. #define BIT_HIQ_NO_LMT_EN_VAP14 BIT(14)
  48034. #define BIT_HIQ_NO_LMT_EN_VAP13 BIT(13)
  48035. #define BIT_HIQ_NO_LMT_EN_VAP12 BIT(12)
  48036. #define BIT_HIQ_NO_LMT_EN_VAP11 BIT(11)
  48037. #define BIT_HIQ_NO_LMT_EN_VAP10 BIT(10)
  48038. #define BIT_HIQ_NO_LMT_EN_VAP9 BIT(9)
  48039. #define BIT_HIQ_NO_LMT_EN_VAP8 BIT(8)
  48040. #endif
  48041. #if (HALMAC_8814B_SUPPORT)
  48042. /* 2 REG_HIQ_NO_LMT_EN_V1 (Offset 0x1544) */
  48043. #define BIT_HIQ_NO_LMT_EN_ROOT_P0 BIT(0)
  48044. /* 2 REG_P2PPS_CTRL_V1 (Offset 0x1548) */
  48045. #define BIT_P2P_PWR_RST1_V2 BIT(15)
  48046. #define BIT_P2P_PWR_RST0_V2 BIT(14)
  48047. #define BIT_EN_TSFBIT32_RST_P2P_V1 BIT(13)
  48048. #define BIT_SHIFT_NOA_UNIT0_SEL_V1 8
  48049. #define BIT_MASK_NOA_UNIT0_SEL_V1 0x7
  48050. #define BIT_NOA_UNIT0_SEL_V1(x) \
  48051. (((x) & BIT_MASK_NOA_UNIT0_SEL_V1) << BIT_SHIFT_NOA_UNIT0_SEL_V1)
  48052. #define BITS_NOA_UNIT0_SEL_V1 \
  48053. (BIT_MASK_NOA_UNIT0_SEL_V1 << BIT_SHIFT_NOA_UNIT0_SEL_V1)
  48054. #define BIT_CLEAR_NOA_UNIT0_SEL_V1(x) ((x) & (~BITS_NOA_UNIT0_SEL_V1))
  48055. #define BIT_GET_NOA_UNIT0_SEL_V1(x) \
  48056. (((x) >> BIT_SHIFT_NOA_UNIT0_SEL_V1) & BIT_MASK_NOA_UNIT0_SEL_V1)
  48057. #define BIT_SET_NOA_UNIT0_SEL_V1(x, v) \
  48058. (BIT_CLEAR_NOA_UNIT0_SEL_V1(x) | BIT_NOA_UNIT0_SEL_V1(v))
  48059. #define BIT_P2P_CTW_ALLSTASLEEP_V1 BIT(7)
  48060. #define BIT_P2P_OFF_DISTX_EN_V1 BIT(6)
  48061. #define BIT_PWR_MGT_EN_V1 BIT(5)
  48062. #define BIT_P2P_NOA1_EN_V1 BIT(2)
  48063. #define BIT_P2P_NOA0_EN_V1 BIT(1)
  48064. /* 2 REG_P2PPS1_CTRL_V1 (Offset 0x154C) */
  48065. #define BIT_P2P1_PWR_RST1_V2 BIT(15)
  48066. #define BIT_P2P1_PWR_RST0_V2 BIT(14)
  48067. #define BIT_EN_TSFBIT32_RST_P2P1_V1 BIT(13)
  48068. #define BIT_SHIFT_NOA_UNIT1_SEL_V1 8
  48069. #define BIT_MASK_NOA_UNIT1_SEL_V1 0x7
  48070. #define BIT_NOA_UNIT1_SEL_V1(x) \
  48071. (((x) & BIT_MASK_NOA_UNIT1_SEL_V1) << BIT_SHIFT_NOA_UNIT1_SEL_V1)
  48072. #define BITS_NOA_UNIT1_SEL_V1 \
  48073. (BIT_MASK_NOA_UNIT1_SEL_V1 << BIT_SHIFT_NOA_UNIT1_SEL_V1)
  48074. #define BIT_CLEAR_NOA_UNIT1_SEL_V1(x) ((x) & (~BITS_NOA_UNIT1_SEL_V1))
  48075. #define BIT_GET_NOA_UNIT1_SEL_V1(x) \
  48076. (((x) >> BIT_SHIFT_NOA_UNIT1_SEL_V1) & BIT_MASK_NOA_UNIT1_SEL_V1)
  48077. #define BIT_SET_NOA_UNIT1_SEL_V1(x, v) \
  48078. (BIT_CLEAR_NOA_UNIT1_SEL_V1(x) | BIT_NOA_UNIT1_SEL_V1(v))
  48079. #define BIT_P2P1_CTW_ALLSTASLEEP_V1 BIT(7)
  48080. #define BIT_P2P1_PWR_MGT_EN_V1 BIT(5)
  48081. #define BIT_P2P1_NOA1_EN_V1 BIT(2)
  48082. #define BIT_P2P1_NOA0_EN_V1 BIT(1)
  48083. /* 2 REG_P2PPS1_SPEC_STATE_V1 (Offset 0x154E) */
  48084. #define BIT_P2P1_SPEC_POWER_STATEP BIT(7)
  48085. #define BIT_P2P1_SPEC_BEACON_AREA_ON BIT(5)
  48086. /* 2 REG_P2PPS2_CTRL_V1 (Offset 0x1550) */
  48087. #define BIT_P2P2_PWR_RST1_V2 BIT(15)
  48088. #define BIT_P2P2_PWR_RST0_V2 BIT(14)
  48089. #define BIT_EN_TSFBIT32_RST_P2P2_V1 BIT(13)
  48090. #define BIT_SHIFT_NOA_UNIT2_SEL_V1 8
  48091. #define BIT_MASK_NOA_UNIT2_SEL_V1 0x7
  48092. #define BIT_NOA_UNIT2_SEL_V1(x) \
  48093. (((x) & BIT_MASK_NOA_UNIT2_SEL_V1) << BIT_SHIFT_NOA_UNIT2_SEL_V1)
  48094. #define BITS_NOA_UNIT2_SEL_V1 \
  48095. (BIT_MASK_NOA_UNIT2_SEL_V1 << BIT_SHIFT_NOA_UNIT2_SEL_V1)
  48096. #define BIT_CLEAR_NOA_UNIT2_SEL_V1(x) ((x) & (~BITS_NOA_UNIT2_SEL_V1))
  48097. #define BIT_GET_NOA_UNIT2_SEL_V1(x) \
  48098. (((x) >> BIT_SHIFT_NOA_UNIT2_SEL_V1) & BIT_MASK_NOA_UNIT2_SEL_V1)
  48099. #define BIT_SET_NOA_UNIT2_SEL_V1(x, v) \
  48100. (BIT_CLEAR_NOA_UNIT2_SEL_V1(x) | BIT_NOA_UNIT2_SEL_V1(v))
  48101. #define BIT_P2P2_CTW_ALLSTASLEEP_V1 BIT(7)
  48102. #define BIT_P2P2_OFF_DISTX_EN_V1 BIT(6)
  48103. #define BIT_P2P2_PWR_MGT_EN_V1 BIT(5)
  48104. #define BIT_P2P2_NOA1_EN_V1 BIT(2)
  48105. #define BIT_P2P2_NOA0_EN_V1 BIT(1)
  48106. /* 2 REG_P2PPS2_SPEC_STATE_V1 (Offset 0x1552) */
  48107. #define BIT_P2P2_SPEC_POWER_STATEP BIT(7)
  48108. #define BIT_P2P2_SPEC_BEACON_AREA_ON BIT(5)
  48109. #endif
  48110. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  48111. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  48112. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  48113. /* 2 REG_P2PON_DIS_TXTIME_V1 (Offset 0x1554) */
  48114. #define BIT_SHIFT_P2PON_DIS_TXTIME 0
  48115. #define BIT_MASK_P2PON_DIS_TXTIME 0xff
  48116. #define BIT_P2PON_DIS_TXTIME(x) \
  48117. (((x) & BIT_MASK_P2PON_DIS_TXTIME) << BIT_SHIFT_P2PON_DIS_TXTIME)
  48118. #define BITS_P2PON_DIS_TXTIME \
  48119. (BIT_MASK_P2PON_DIS_TXTIME << BIT_SHIFT_P2PON_DIS_TXTIME)
  48120. #define BIT_CLEAR_P2PON_DIS_TXTIME(x) ((x) & (~BITS_P2PON_DIS_TXTIME))
  48121. #define BIT_GET_P2PON_DIS_TXTIME(x) \
  48122. (((x) >> BIT_SHIFT_P2PON_DIS_TXTIME) & BIT_MASK_P2PON_DIS_TXTIME)
  48123. #define BIT_SET_P2PON_DIS_TXTIME(x, v) \
  48124. (BIT_CLEAR_P2PON_DIS_TXTIME(x) | BIT_P2PON_DIS_TXTIME(v))
  48125. #endif
  48126. #if (HALMAC_8814B_SUPPORT)
  48127. /* 2 REG_CHG_POWER_BCN_AREA (Offset 0x1556) */
  48128. #define BIT_CHG_POWER_BCN_AREA BIT(0)
  48129. /* 2 REG_NOA_SEL (Offset 0x1557) */
  48130. #define BIT_SHIFT_NOA_SEL_V1 0
  48131. #define BIT_MASK_NOA_SEL_V1 0x7
  48132. #define BIT_NOA_SEL_V1(x) (((x) & BIT_MASK_NOA_SEL_V1) << BIT_SHIFT_NOA_SEL_V1)
  48133. #define BITS_NOA_SEL_V1 (BIT_MASK_NOA_SEL_V1 << BIT_SHIFT_NOA_SEL_V1)
  48134. #define BIT_CLEAR_NOA_SEL_V1(x) ((x) & (~BITS_NOA_SEL_V1))
  48135. #define BIT_GET_NOA_SEL_V1(x) \
  48136. (((x) >> BIT_SHIFT_NOA_SEL_V1) & BIT_MASK_NOA_SEL_V1)
  48137. #define BIT_SET_NOA_SEL_V1(x, v) (BIT_CLEAR_NOA_SEL_V1(x) | BIT_NOA_SEL_V1(v))
  48138. /* 2 REG_NOA_PARAM_3_V1 (Offset 0x1564) */
  48139. #define BIT_SHIFT_NOA_COUNT_V2 0
  48140. #define BIT_MASK_NOA_COUNT_V2 0xffffffffL
  48141. #define BIT_NOA_COUNT_V2(x) \
  48142. (((x) & BIT_MASK_NOA_COUNT_V2) << BIT_SHIFT_NOA_COUNT_V2)
  48143. #define BITS_NOA_COUNT_V2 (BIT_MASK_NOA_COUNT_V2 << BIT_SHIFT_NOA_COUNT_V2)
  48144. #define BIT_CLEAR_NOA_COUNT_V2(x) ((x) & (~BITS_NOA_COUNT_V2))
  48145. #define BIT_GET_NOA_COUNT_V2(x) \
  48146. (((x) >> BIT_SHIFT_NOA_COUNT_V2) & BIT_MASK_NOA_COUNT_V2)
  48147. #define BIT_SET_NOA_COUNT_V2(x, v) \
  48148. (BIT_CLEAR_NOA_COUNT_V2(x) | BIT_NOA_COUNT_V2(v))
  48149. #endif
  48150. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  48151. HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT)
  48152. /* 2 REG_NOA_ON_ERLY_TIME_V1 (Offset 0x1568) */
  48153. #define BIT_SHIFT__NOA_ON_ERLY_TIME 0
  48154. #define BIT_MASK__NOA_ON_ERLY_TIME 0xff
  48155. #define BIT__NOA_ON_ERLY_TIME(x) \
  48156. (((x) & BIT_MASK__NOA_ON_ERLY_TIME) << BIT_SHIFT__NOA_ON_ERLY_TIME)
  48157. #define BITS__NOA_ON_ERLY_TIME \
  48158. (BIT_MASK__NOA_ON_ERLY_TIME << BIT_SHIFT__NOA_ON_ERLY_TIME)
  48159. #define BIT_CLEAR__NOA_ON_ERLY_TIME(x) ((x) & (~BITS__NOA_ON_ERLY_TIME))
  48160. #define BIT_GET__NOA_ON_ERLY_TIME(x) \
  48161. (((x) >> BIT_SHIFT__NOA_ON_ERLY_TIME) & BIT_MASK__NOA_ON_ERLY_TIME)
  48162. #define BIT_SET__NOA_ON_ERLY_TIME(x, v) \
  48163. (BIT_CLEAR__NOA_ON_ERLY_TIME(x) | BIT__NOA_ON_ERLY_TIME(v))
  48164. #endif
  48165. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  48166. /* 2 REG_P2PPS_HW_AUTO_PAUSE_CTRL (Offset 0x156C) */
  48167. #define BIT_P2PPS_NOA_STOP_TX_HANG BIT(31)
  48168. #define BIT_P2PPS_MACID_PAUSE_EN BIT(11)
  48169. #define BIT_P2PPS__MGQ_PAUSE BIT(10)
  48170. #define BIT_P2PPS__HIQ_PAUSE BIT(9)
  48171. #define BIT_P2PPS__BCNQ_PAUSE BIT(8)
  48172. #define BIT_SHIFT_P2PPS_MACID_PAUSE 0
  48173. #define BIT_MASK_P2PPS_MACID_PAUSE 0xff
  48174. #define BIT_P2PPS_MACID_PAUSE(x) \
  48175. (((x) & BIT_MASK_P2PPS_MACID_PAUSE) << BIT_SHIFT_P2PPS_MACID_PAUSE)
  48176. #define BITS_P2PPS_MACID_PAUSE \
  48177. (BIT_MASK_P2PPS_MACID_PAUSE << BIT_SHIFT_P2PPS_MACID_PAUSE)
  48178. #define BIT_CLEAR_P2PPS_MACID_PAUSE(x) ((x) & (~BITS_P2PPS_MACID_PAUSE))
  48179. #define BIT_GET_P2PPS_MACID_PAUSE(x) \
  48180. (((x) >> BIT_SHIFT_P2PPS_MACID_PAUSE) & BIT_MASK_P2PPS_MACID_PAUSE)
  48181. #define BIT_SET_P2PPS_MACID_PAUSE(x, v) \
  48182. (BIT_CLEAR_P2PPS_MACID_PAUSE(x) | BIT_P2PPS_MACID_PAUSE(v))
  48183. /* 2 REG_P2PPS1_HW_AUTO_PAUSE_CTRL (Offset 0x1570) */
  48184. #define BIT_P2PPS1_NOA_STOP_TX_HANG BIT(31)
  48185. #define BIT_P2PPS1_MACID_PAUSE_EN BIT(11)
  48186. #define BIT_P2PPS1__MGQ_PAUSE BIT(10)
  48187. #define BIT_P2PPS1__HIQ_PAUSE BIT(9)
  48188. #define BIT_P2PPS1__BCNQ_PAUSE BIT(8)
  48189. #define BIT_SHIFT_P2PPS1_MACID_PAUSE 0
  48190. #define BIT_MASK_P2PPS1_MACID_PAUSE 0xff
  48191. #define BIT_P2PPS1_MACID_PAUSE(x) \
  48192. (((x) & BIT_MASK_P2PPS1_MACID_PAUSE) << BIT_SHIFT_P2PPS1_MACID_PAUSE)
  48193. #define BITS_P2PPS1_MACID_PAUSE \
  48194. (BIT_MASK_P2PPS1_MACID_PAUSE << BIT_SHIFT_P2PPS1_MACID_PAUSE)
  48195. #define BIT_CLEAR_P2PPS1_MACID_PAUSE(x) ((x) & (~BITS_P2PPS1_MACID_PAUSE))
  48196. #define BIT_GET_P2PPS1_MACID_PAUSE(x) \
  48197. (((x) >> BIT_SHIFT_P2PPS1_MACID_PAUSE) & BIT_MASK_P2PPS1_MACID_PAUSE)
  48198. #define BIT_SET_P2PPS1_MACID_PAUSE(x, v) \
  48199. (BIT_CLEAR_P2PPS1_MACID_PAUSE(x) | BIT_P2PPS1_MACID_PAUSE(v))
  48200. /* 2 REG_P2PPS2_HW_AUTO_PAUSE_CTRL (Offset 0x1574) */
  48201. #define BIT_P2PPS2_NOA_STOP_TX_HANG BIT(31)
  48202. #define BIT_P2PPS2_MACID_PAUSE_EN BIT(11)
  48203. #define BIT_P2PPS2__MGQ_PAUSE BIT(10)
  48204. #define BIT_P2PPS2__HIQ_PAUSE BIT(9)
  48205. #define BIT_P2PPS2__BCNQ_PAUSE BIT(8)
  48206. #define BIT_SHIFT_P2PPS2_MACID_PAUSE 0
  48207. #define BIT_MASK_P2PPS2_MACID_PAUSE 0xff
  48208. #define BIT_P2PPS2_MACID_PAUSE(x) \
  48209. (((x) & BIT_MASK_P2PPS2_MACID_PAUSE) << BIT_SHIFT_P2PPS2_MACID_PAUSE)
  48210. #define BITS_P2PPS2_MACID_PAUSE \
  48211. (BIT_MASK_P2PPS2_MACID_PAUSE << BIT_SHIFT_P2PPS2_MACID_PAUSE)
  48212. #define BIT_CLEAR_P2PPS2_MACID_PAUSE(x) ((x) & (~BITS_P2PPS2_MACID_PAUSE))
  48213. #define BIT_GET_P2PPS2_MACID_PAUSE(x) \
  48214. (((x) >> BIT_SHIFT_P2PPS2_MACID_PAUSE) & BIT_MASK_P2PPS2_MACID_PAUSE)
  48215. #define BIT_SET_P2PPS2_MACID_PAUSE(x, v) \
  48216. (BIT_CLEAR_P2PPS2_MACID_PAUSE(x) | BIT_P2PPS2_MACID_PAUSE(v))
  48217. #endif
  48218. #if (HALMAC_8814B_SUPPORT)
  48219. /* 2 REG_RX_TBTT_SHIFT (Offset 0x1578) */
  48220. #define BIT_SHIFT_RX_TBTT_SHIFT_SEL 24
  48221. #define BIT_MASK_RX_TBTT_SHIFT_SEL 0x7
  48222. #define BIT_RX_TBTT_SHIFT_SEL(x) \
  48223. (((x) & BIT_MASK_RX_TBTT_SHIFT_SEL) << BIT_SHIFT_RX_TBTT_SHIFT_SEL)
  48224. #define BITS_RX_TBTT_SHIFT_SEL \
  48225. (BIT_MASK_RX_TBTT_SHIFT_SEL << BIT_SHIFT_RX_TBTT_SHIFT_SEL)
  48226. #define BIT_CLEAR_RX_TBTT_SHIFT_SEL(x) ((x) & (~BITS_RX_TBTT_SHIFT_SEL))
  48227. #define BIT_GET_RX_TBTT_SHIFT_SEL(x) \
  48228. (((x) >> BIT_SHIFT_RX_TBTT_SHIFT_SEL) & BIT_MASK_RX_TBTT_SHIFT_SEL)
  48229. #define BIT_SET_RX_TBTT_SHIFT_SEL(x, v) \
  48230. (BIT_CLEAR_RX_TBTT_SHIFT_SEL(x) | BIT_RX_TBTT_SHIFT_SEL(v))
  48231. #define BIT_RX_TBTT_SHIFT_RW_FLAG BIT(15)
  48232. #define BIT_SHIFT_RX_TBTT_SHIFT_OFFSET 0
  48233. #define BIT_MASK_RX_TBTT_SHIFT_OFFSET 0xfff
  48234. #define BIT_RX_TBTT_SHIFT_OFFSET(x) \
  48235. (((x) & BIT_MASK_RX_TBTT_SHIFT_OFFSET) \
  48236. << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET)
  48237. #define BITS_RX_TBTT_SHIFT_OFFSET \
  48238. (BIT_MASK_RX_TBTT_SHIFT_OFFSET << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET)
  48239. #define BIT_CLEAR_RX_TBTT_SHIFT_OFFSET(x) ((x) & (~BITS_RX_TBTT_SHIFT_OFFSET))
  48240. #define BIT_GET_RX_TBTT_SHIFT_OFFSET(x) \
  48241. (((x) >> BIT_SHIFT_RX_TBTT_SHIFT_OFFSET) & \
  48242. BIT_MASK_RX_TBTT_SHIFT_OFFSET)
  48243. #define BIT_SET_RX_TBTT_SHIFT_OFFSET(x, v) \
  48244. (BIT_CLEAR_RX_TBTT_SHIFT_OFFSET(x) | BIT_RX_TBTT_SHIFT_OFFSET(v))
  48245. /* 2 REG_FREERUN_CNT_LOW (Offset 0x1580) */
  48246. #define BIT_SHIFT_FREERUN_CNT_LOW 0
  48247. #define BIT_MASK_FREERUN_CNT_LOW 0xffffffffL
  48248. #define BIT_FREERUN_CNT_LOW(x) \
  48249. (((x) & BIT_MASK_FREERUN_CNT_LOW) << BIT_SHIFT_FREERUN_CNT_LOW)
  48250. #define BITS_FREERUN_CNT_LOW \
  48251. (BIT_MASK_FREERUN_CNT_LOW << BIT_SHIFT_FREERUN_CNT_LOW)
  48252. #define BIT_CLEAR_FREERUN_CNT_LOW(x) ((x) & (~BITS_FREERUN_CNT_LOW))
  48253. #define BIT_GET_FREERUN_CNT_LOW(x) \
  48254. (((x) >> BIT_SHIFT_FREERUN_CNT_LOW) & BIT_MASK_FREERUN_CNT_LOW)
  48255. #define BIT_SET_FREERUN_CNT_LOW(x, v) \
  48256. (BIT_CLEAR_FREERUN_CNT_LOW(x) | BIT_FREERUN_CNT_LOW(v))
  48257. /* 2 REG_FREERUN_CNT_HIGH (Offset 0x1584) */
  48258. #define BIT_SHIFT_FREERUN_CNT_HIGH 0
  48259. #define BIT_MASK_FREERUN_CNT_HIGH 0xffffffffL
  48260. #define BIT_FREERUN_CNT_HIGH(x) \
  48261. (((x) & BIT_MASK_FREERUN_CNT_HIGH) << BIT_SHIFT_FREERUN_CNT_HIGH)
  48262. #define BITS_FREERUN_CNT_HIGH \
  48263. (BIT_MASK_FREERUN_CNT_HIGH << BIT_SHIFT_FREERUN_CNT_HIGH)
  48264. #define BIT_CLEAR_FREERUN_CNT_HIGH(x) ((x) & (~BITS_FREERUN_CNT_HIGH))
  48265. #define BIT_GET_FREERUN_CNT_HIGH(x) \
  48266. (((x) >> BIT_SHIFT_FREERUN_CNT_HIGH) & BIT_MASK_FREERUN_CNT_HIGH)
  48267. #define BIT_SET_FREERUN_CNT_HIGH(x, v) \
  48268. (BIT_CLEAR_FREERUN_CNT_HIGH(x) | BIT_FREERUN_CNT_HIGH(v))
  48269. /* 2 REG_PS_TIMER_0 (Offset 0x158C) */
  48270. #define BIT_SHIFT_PS_TIMER_0 0
  48271. #define BIT_MASK_PS_TIMER_0 0xffffffffL
  48272. #define BIT_PS_TIMER_0(x) (((x) & BIT_MASK_PS_TIMER_0) << BIT_SHIFT_PS_TIMER_0)
  48273. #define BITS_PS_TIMER_0 (BIT_MASK_PS_TIMER_0 << BIT_SHIFT_PS_TIMER_0)
  48274. #define BIT_CLEAR_PS_TIMER_0(x) ((x) & (~BITS_PS_TIMER_0))
  48275. #define BIT_GET_PS_TIMER_0(x) \
  48276. (((x) >> BIT_SHIFT_PS_TIMER_0) & BIT_MASK_PS_TIMER_0)
  48277. #define BIT_SET_PS_TIMER_0(x, v) (BIT_CLEAR_PS_TIMER_0(x) | BIT_PS_TIMER_0(v))
  48278. /* 2 REG_PS_TIMER_1 (Offset 0x1590) */
  48279. #define BIT_SHIFT_PS_TIMER_1 0
  48280. #define BIT_MASK_PS_TIMER_1 0xffffffffL
  48281. #define BIT_PS_TIMER_1(x) (((x) & BIT_MASK_PS_TIMER_1) << BIT_SHIFT_PS_TIMER_1)
  48282. #define BITS_PS_TIMER_1 (BIT_MASK_PS_TIMER_1 << BIT_SHIFT_PS_TIMER_1)
  48283. #define BIT_CLEAR_PS_TIMER_1(x) ((x) & (~BITS_PS_TIMER_1))
  48284. #define BIT_GET_PS_TIMER_1(x) \
  48285. (((x) >> BIT_SHIFT_PS_TIMER_1) & BIT_MASK_PS_TIMER_1)
  48286. #define BIT_SET_PS_TIMER_1(x, v) (BIT_CLEAR_PS_TIMER_1(x) | BIT_PS_TIMER_1(v))
  48287. /* 2 REG_PS_TIMER_2 (Offset 0x1594) */
  48288. #define BIT_SHIFT_PS_TIMER_2 0
  48289. #define BIT_MASK_PS_TIMER_2 0xffffffffL
  48290. #define BIT_PS_TIMER_2(x) (((x) & BIT_MASK_PS_TIMER_2) << BIT_SHIFT_PS_TIMER_2)
  48291. #define BITS_PS_TIMER_2 (BIT_MASK_PS_TIMER_2 << BIT_SHIFT_PS_TIMER_2)
  48292. #define BIT_CLEAR_PS_TIMER_2(x) ((x) & (~BITS_PS_TIMER_2))
  48293. #define BIT_GET_PS_TIMER_2(x) \
  48294. (((x) >> BIT_SHIFT_PS_TIMER_2) & BIT_MASK_PS_TIMER_2)
  48295. #define BIT_SET_PS_TIMER_2(x, v) (BIT_CLEAR_PS_TIMER_2(x) | BIT_PS_TIMER_2(v))
  48296. /* 2 REG_PS_TIMER_3 (Offset 0x1598) */
  48297. #define BIT_SHIFT_PS_TIMER_3 0
  48298. #define BIT_MASK_PS_TIMER_3 0xffffffffL
  48299. #define BIT_PS_TIMER_3(x) (((x) & BIT_MASK_PS_TIMER_3) << BIT_SHIFT_PS_TIMER_3)
  48300. #define BITS_PS_TIMER_3 (BIT_MASK_PS_TIMER_3 << BIT_SHIFT_PS_TIMER_3)
  48301. #define BIT_CLEAR_PS_TIMER_3(x) ((x) & (~BITS_PS_TIMER_3))
  48302. #define BIT_GET_PS_TIMER_3(x) \
  48303. (((x) >> BIT_SHIFT_PS_TIMER_3) & BIT_MASK_PS_TIMER_3)
  48304. #define BIT_SET_PS_TIMER_3(x, v) (BIT_CLEAR_PS_TIMER_3(x) | BIT_PS_TIMER_3(v))
  48305. /* 2 REG_PS_TIMER_4 (Offset 0x159C) */
  48306. #define BIT_SHIFT_PS_TIMER_4 0
  48307. #define BIT_MASK_PS_TIMER_4 0xffffffffL
  48308. #define BIT_PS_TIMER_4(x) (((x) & BIT_MASK_PS_TIMER_4) << BIT_SHIFT_PS_TIMER_4)
  48309. #define BITS_PS_TIMER_4 (BIT_MASK_PS_TIMER_4 << BIT_SHIFT_PS_TIMER_4)
  48310. #define BIT_CLEAR_PS_TIMER_4(x) ((x) & (~BITS_PS_TIMER_4))
  48311. #define BIT_GET_PS_TIMER_4(x) \
  48312. (((x) >> BIT_SHIFT_PS_TIMER_4) & BIT_MASK_PS_TIMER_4)
  48313. #define BIT_SET_PS_TIMER_4(x, v) (BIT_CLEAR_PS_TIMER_4(x) | BIT_PS_TIMER_4(v))
  48314. /* 2 REG_PS_TIMER_5 (Offset 0x15A0) */
  48315. #define BIT_SHIFT_PS_TIMER_5 0
  48316. #define BIT_MASK_PS_TIMER_5 0xffffffffL
  48317. #define BIT_PS_TIMER_5(x) (((x) & BIT_MASK_PS_TIMER_5) << BIT_SHIFT_PS_TIMER_5)
  48318. #define BITS_PS_TIMER_5 (BIT_MASK_PS_TIMER_5 << BIT_SHIFT_PS_TIMER_5)
  48319. #define BIT_CLEAR_PS_TIMER_5(x) ((x) & (~BITS_PS_TIMER_5))
  48320. #define BIT_GET_PS_TIMER_5(x) \
  48321. (((x) >> BIT_SHIFT_PS_TIMER_5) & BIT_MASK_PS_TIMER_5)
  48322. #define BIT_SET_PS_TIMER_5(x, v) (BIT_CLEAR_PS_TIMER_5(x) | BIT_PS_TIMER_5(v))
  48323. /* 2 REG_PS_TIMER_01_CTRL (Offset 0x15A4) */
  48324. #define BIT_SHIFT_PS_TIMER_1_EARLY_TIME 24
  48325. #define BIT_MASK_PS_TIMER_1_EARLY_TIME 0xff
  48326. #define BIT_PS_TIMER_1_EARLY_TIME(x) \
  48327. (((x) & BIT_MASK_PS_TIMER_1_EARLY_TIME) \
  48328. << BIT_SHIFT_PS_TIMER_1_EARLY_TIME)
  48329. #define BITS_PS_TIMER_1_EARLY_TIME \
  48330. (BIT_MASK_PS_TIMER_1_EARLY_TIME << BIT_SHIFT_PS_TIMER_1_EARLY_TIME)
  48331. #define BIT_CLEAR_PS_TIMER_1_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_1_EARLY_TIME))
  48332. #define BIT_GET_PS_TIMER_1_EARLY_TIME(x) \
  48333. (((x) >> BIT_SHIFT_PS_TIMER_1_EARLY_TIME) & \
  48334. BIT_MASK_PS_TIMER_1_EARLY_TIME)
  48335. #define BIT_SET_PS_TIMER_1_EARLY_TIME(x, v) \
  48336. (BIT_CLEAR_PS_TIMER_1_EARLY_TIME(x) | BIT_PS_TIMER_1_EARLY_TIME(v))
  48337. #define BIT_PS_TIMER_1_EN BIT(23)
  48338. #define BIT_SHIFT_PS_TIMER_1_TSF_SEL 16
  48339. #define BIT_MASK_PS_TIMER_1_TSF_SEL 0x7
  48340. #define BIT_PS_TIMER_1_TSF_SEL(x) \
  48341. (((x) & BIT_MASK_PS_TIMER_1_TSF_SEL) << BIT_SHIFT_PS_TIMER_1_TSF_SEL)
  48342. #define BITS_PS_TIMER_1_TSF_SEL \
  48343. (BIT_MASK_PS_TIMER_1_TSF_SEL << BIT_SHIFT_PS_TIMER_1_TSF_SEL)
  48344. #define BIT_CLEAR_PS_TIMER_1_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_1_TSF_SEL))
  48345. #define BIT_GET_PS_TIMER_1_TSF_SEL(x) \
  48346. (((x) >> BIT_SHIFT_PS_TIMER_1_TSF_SEL) & BIT_MASK_PS_TIMER_1_TSF_SEL)
  48347. #define BIT_SET_PS_TIMER_1_TSF_SEL(x, v) \
  48348. (BIT_CLEAR_PS_TIMER_1_TSF_SEL(x) | BIT_PS_TIMER_1_TSF_SEL(v))
  48349. #define BIT_SHIFT_PS_TIMER_0_EARLY_TIME 8
  48350. #define BIT_MASK_PS_TIMER_0_EARLY_TIME 0xff
  48351. #define BIT_PS_TIMER_0_EARLY_TIME(x) \
  48352. (((x) & BIT_MASK_PS_TIMER_0_EARLY_TIME) \
  48353. << BIT_SHIFT_PS_TIMER_0_EARLY_TIME)
  48354. #define BITS_PS_TIMER_0_EARLY_TIME \
  48355. (BIT_MASK_PS_TIMER_0_EARLY_TIME << BIT_SHIFT_PS_TIMER_0_EARLY_TIME)
  48356. #define BIT_CLEAR_PS_TIMER_0_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_0_EARLY_TIME))
  48357. #define BIT_GET_PS_TIMER_0_EARLY_TIME(x) \
  48358. (((x) >> BIT_SHIFT_PS_TIMER_0_EARLY_TIME) & \
  48359. BIT_MASK_PS_TIMER_0_EARLY_TIME)
  48360. #define BIT_SET_PS_TIMER_0_EARLY_TIME(x, v) \
  48361. (BIT_CLEAR_PS_TIMER_0_EARLY_TIME(x) | BIT_PS_TIMER_0_EARLY_TIME(v))
  48362. #define BIT_PS_TIMER_0_EN BIT(7)
  48363. #define BIT_SHIFT_PS_TIMER_0_TSF_SEL 0
  48364. #define BIT_MASK_PS_TIMER_0_TSF_SEL 0x7
  48365. #define BIT_PS_TIMER_0_TSF_SEL(x) \
  48366. (((x) & BIT_MASK_PS_TIMER_0_TSF_SEL) << BIT_SHIFT_PS_TIMER_0_TSF_SEL)
  48367. #define BITS_PS_TIMER_0_TSF_SEL \
  48368. (BIT_MASK_PS_TIMER_0_TSF_SEL << BIT_SHIFT_PS_TIMER_0_TSF_SEL)
  48369. #define BIT_CLEAR_PS_TIMER_0_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_0_TSF_SEL))
  48370. #define BIT_GET_PS_TIMER_0_TSF_SEL(x) \
  48371. (((x) >> BIT_SHIFT_PS_TIMER_0_TSF_SEL) & BIT_MASK_PS_TIMER_0_TSF_SEL)
  48372. #define BIT_SET_PS_TIMER_0_TSF_SEL(x, v) \
  48373. (BIT_CLEAR_PS_TIMER_0_TSF_SEL(x) | BIT_PS_TIMER_0_TSF_SEL(v))
  48374. /* 2 REG_PS_TIMER_23_CTRL (Offset 0x15A8) */
  48375. #define BIT_SHIFT_PS_TIMER_3_EARLY_TIME 24
  48376. #define BIT_MASK_PS_TIMER_3_EARLY_TIME 0xff
  48377. #define BIT_PS_TIMER_3_EARLY_TIME(x) \
  48378. (((x) & BIT_MASK_PS_TIMER_3_EARLY_TIME) \
  48379. << BIT_SHIFT_PS_TIMER_3_EARLY_TIME)
  48380. #define BITS_PS_TIMER_3_EARLY_TIME \
  48381. (BIT_MASK_PS_TIMER_3_EARLY_TIME << BIT_SHIFT_PS_TIMER_3_EARLY_TIME)
  48382. #define BIT_CLEAR_PS_TIMER_3_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_3_EARLY_TIME))
  48383. #define BIT_GET_PS_TIMER_3_EARLY_TIME(x) \
  48384. (((x) >> BIT_SHIFT_PS_TIMER_3_EARLY_TIME) & \
  48385. BIT_MASK_PS_TIMER_3_EARLY_TIME)
  48386. #define BIT_SET_PS_TIMER_3_EARLY_TIME(x, v) \
  48387. (BIT_CLEAR_PS_TIMER_3_EARLY_TIME(x) | BIT_PS_TIMER_3_EARLY_TIME(v))
  48388. #define BIT_PS_TIMER_3_EN BIT(23)
  48389. #define BIT_SHIFT_PS_TIMER_3_TSF_SEL 16
  48390. #define BIT_MASK_PS_TIMER_3_TSF_SEL 0x7
  48391. #define BIT_PS_TIMER_3_TSF_SEL(x) \
  48392. (((x) & BIT_MASK_PS_TIMER_3_TSF_SEL) << BIT_SHIFT_PS_TIMER_3_TSF_SEL)
  48393. #define BITS_PS_TIMER_3_TSF_SEL \
  48394. (BIT_MASK_PS_TIMER_3_TSF_SEL << BIT_SHIFT_PS_TIMER_3_TSF_SEL)
  48395. #define BIT_CLEAR_PS_TIMER_3_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_3_TSF_SEL))
  48396. #define BIT_GET_PS_TIMER_3_TSF_SEL(x) \
  48397. (((x) >> BIT_SHIFT_PS_TIMER_3_TSF_SEL) & BIT_MASK_PS_TIMER_3_TSF_SEL)
  48398. #define BIT_SET_PS_TIMER_3_TSF_SEL(x, v) \
  48399. (BIT_CLEAR_PS_TIMER_3_TSF_SEL(x) | BIT_PS_TIMER_3_TSF_SEL(v))
  48400. #define BIT_SHIFT_PS_TIMER_2_EARLY_TIME 8
  48401. #define BIT_MASK_PS_TIMER_2_EARLY_TIME 0xff
  48402. #define BIT_PS_TIMER_2_EARLY_TIME(x) \
  48403. (((x) & BIT_MASK_PS_TIMER_2_EARLY_TIME) \
  48404. << BIT_SHIFT_PS_TIMER_2_EARLY_TIME)
  48405. #define BITS_PS_TIMER_2_EARLY_TIME \
  48406. (BIT_MASK_PS_TIMER_2_EARLY_TIME << BIT_SHIFT_PS_TIMER_2_EARLY_TIME)
  48407. #define BIT_CLEAR_PS_TIMER_2_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_2_EARLY_TIME))
  48408. #define BIT_GET_PS_TIMER_2_EARLY_TIME(x) \
  48409. (((x) >> BIT_SHIFT_PS_TIMER_2_EARLY_TIME) & \
  48410. BIT_MASK_PS_TIMER_2_EARLY_TIME)
  48411. #define BIT_SET_PS_TIMER_2_EARLY_TIME(x, v) \
  48412. (BIT_CLEAR_PS_TIMER_2_EARLY_TIME(x) | BIT_PS_TIMER_2_EARLY_TIME(v))
  48413. #define BIT_PS_TIMER_2_EN BIT(7)
  48414. #define BIT_SHIFT_PS_TIMER_2_TSF_SEL 0
  48415. #define BIT_MASK_PS_TIMER_2_TSF_SEL 0x7
  48416. #define BIT_PS_TIMER_2_TSF_SEL(x) \
  48417. (((x) & BIT_MASK_PS_TIMER_2_TSF_SEL) << BIT_SHIFT_PS_TIMER_2_TSF_SEL)
  48418. #define BITS_PS_TIMER_2_TSF_SEL \
  48419. (BIT_MASK_PS_TIMER_2_TSF_SEL << BIT_SHIFT_PS_TIMER_2_TSF_SEL)
  48420. #define BIT_CLEAR_PS_TIMER_2_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_2_TSF_SEL))
  48421. #define BIT_GET_PS_TIMER_2_TSF_SEL(x) \
  48422. (((x) >> BIT_SHIFT_PS_TIMER_2_TSF_SEL) & BIT_MASK_PS_TIMER_2_TSF_SEL)
  48423. #define BIT_SET_PS_TIMER_2_TSF_SEL(x, v) \
  48424. (BIT_CLEAR_PS_TIMER_2_TSF_SEL(x) | BIT_PS_TIMER_2_TSF_SEL(v))
  48425. /* 2 REG_PS_TIMER_45_CTRL (Offset 0x15AC) */
  48426. #define BIT_SHIFT_PS_TIMER_5_EARLY_TIME 24
  48427. #define BIT_MASK_PS_TIMER_5_EARLY_TIME 0xff
  48428. #define BIT_PS_TIMER_5_EARLY_TIME(x) \
  48429. (((x) & BIT_MASK_PS_TIMER_5_EARLY_TIME) \
  48430. << BIT_SHIFT_PS_TIMER_5_EARLY_TIME)
  48431. #define BITS_PS_TIMER_5_EARLY_TIME \
  48432. (BIT_MASK_PS_TIMER_5_EARLY_TIME << BIT_SHIFT_PS_TIMER_5_EARLY_TIME)
  48433. #define BIT_CLEAR_PS_TIMER_5_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_5_EARLY_TIME))
  48434. #define BIT_GET_PS_TIMER_5_EARLY_TIME(x) \
  48435. (((x) >> BIT_SHIFT_PS_TIMER_5_EARLY_TIME) & \
  48436. BIT_MASK_PS_TIMER_5_EARLY_TIME)
  48437. #define BIT_SET_PS_TIMER_5_EARLY_TIME(x, v) \
  48438. (BIT_CLEAR_PS_TIMER_5_EARLY_TIME(x) | BIT_PS_TIMER_5_EARLY_TIME(v))
  48439. #define BIT_PS_TIMER_5_EN BIT(23)
  48440. #define BIT_SHIFT_PS_TIMER_5_TSF_SEL 16
  48441. #define BIT_MASK_PS_TIMER_5_TSF_SEL 0x7
  48442. #define BIT_PS_TIMER_5_TSF_SEL(x) \
  48443. (((x) & BIT_MASK_PS_TIMER_5_TSF_SEL) << BIT_SHIFT_PS_TIMER_5_TSF_SEL)
  48444. #define BITS_PS_TIMER_5_TSF_SEL \
  48445. (BIT_MASK_PS_TIMER_5_TSF_SEL << BIT_SHIFT_PS_TIMER_5_TSF_SEL)
  48446. #define BIT_CLEAR_PS_TIMER_5_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_5_TSF_SEL))
  48447. #define BIT_GET_PS_TIMER_5_TSF_SEL(x) \
  48448. (((x) >> BIT_SHIFT_PS_TIMER_5_TSF_SEL) & BIT_MASK_PS_TIMER_5_TSF_SEL)
  48449. #define BIT_SET_PS_TIMER_5_TSF_SEL(x, v) \
  48450. (BIT_CLEAR_PS_TIMER_5_TSF_SEL(x) | BIT_PS_TIMER_5_TSF_SEL(v))
  48451. #define BIT_SHIFT_PS_TIMER_4_EARLY_TIME 8
  48452. #define BIT_MASK_PS_TIMER_4_EARLY_TIME 0xff
  48453. #define BIT_PS_TIMER_4_EARLY_TIME(x) \
  48454. (((x) & BIT_MASK_PS_TIMER_4_EARLY_TIME) \
  48455. << BIT_SHIFT_PS_TIMER_4_EARLY_TIME)
  48456. #define BITS_PS_TIMER_4_EARLY_TIME \
  48457. (BIT_MASK_PS_TIMER_4_EARLY_TIME << BIT_SHIFT_PS_TIMER_4_EARLY_TIME)
  48458. #define BIT_CLEAR_PS_TIMER_4_EARLY_TIME(x) ((x) & (~BITS_PS_TIMER_4_EARLY_TIME))
  48459. #define BIT_GET_PS_TIMER_4_EARLY_TIME(x) \
  48460. (((x) >> BIT_SHIFT_PS_TIMER_4_EARLY_TIME) & \
  48461. BIT_MASK_PS_TIMER_4_EARLY_TIME)
  48462. #define BIT_SET_PS_TIMER_4_EARLY_TIME(x, v) \
  48463. (BIT_CLEAR_PS_TIMER_4_EARLY_TIME(x) | BIT_PS_TIMER_4_EARLY_TIME(v))
  48464. #define BIT_PS_TIMER_4_EN BIT(7)
  48465. #define BIT_SHIFT_PS_TIMER_4_TSF_SEL 0
  48466. #define BIT_MASK_PS_TIMER_4_TSF_SEL 0x7
  48467. #define BIT_PS_TIMER_4_TSF_SEL(x) \
  48468. (((x) & BIT_MASK_PS_TIMER_4_TSF_SEL) << BIT_SHIFT_PS_TIMER_4_TSF_SEL)
  48469. #define BITS_PS_TIMER_4_TSF_SEL \
  48470. (BIT_MASK_PS_TIMER_4_TSF_SEL << BIT_SHIFT_PS_TIMER_4_TSF_SEL)
  48471. #define BIT_CLEAR_PS_TIMER_4_TSF_SEL(x) ((x) & (~BITS_PS_TIMER_4_TSF_SEL))
  48472. #define BIT_GET_PS_TIMER_4_TSF_SEL(x) \
  48473. (((x) >> BIT_SHIFT_PS_TIMER_4_TSF_SEL) & BIT_MASK_PS_TIMER_4_TSF_SEL)
  48474. #define BIT_SET_PS_TIMER_4_TSF_SEL(x, v) \
  48475. (BIT_CLEAR_PS_TIMER_4_TSF_SEL(x) | BIT_PS_TIMER_4_TSF_SEL(v))
  48476. /* 2 REG_CPUMGQ_FREERUN_TIMER_CTRL (Offset 0x15B0) */
  48477. #define BIT_FREECNT_RST_V1 BIT(23)
  48478. #define BIT_EN_FREECNT_V1 BIT(16)
  48479. #define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1 8
  48480. #define BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1 0xff
  48481. #define BIT_CPUMGQ_TX_TIMER_EARLY_V1(x) \
  48482. (((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1) \
  48483. << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1)
  48484. #define BITS_CPUMGQ_TX_TIMER_EARLY_V1 \
  48485. (BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1 \
  48486. << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1)
  48487. #define BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_V1(x) \
  48488. ((x) & (~BITS_CPUMGQ_TX_TIMER_EARLY_V1))
  48489. #define BIT_GET_CPUMGQ_TX_TIMER_EARLY_V1(x) \
  48490. (((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1) & \
  48491. BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1)
  48492. #define BIT_SET_CPUMGQ_TX_TIMER_EARLY_V1(x, v) \
  48493. (BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_V1(x) | \
  48494. BIT_CPUMGQ_TX_TIMER_EARLY_V1(v))
  48495. #define BIT_CPUMGQ_TIMER_EN_V1 BIT(7)
  48496. #define BIT_CPUMGQ_DROP_BY_HOLDTIME BIT(5)
  48497. #define BIT_CPUMGQ_TX_EN_V1 BIT(4)
  48498. #define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1 0
  48499. #define BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1 0x7
  48500. #define BIT_CPUMGQ_TIMER_TSF_SEL_V1(x) \
  48501. (((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1) \
  48502. << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1)
  48503. #define BITS_CPUMGQ_TIMER_TSF_SEL_V1 \
  48504. (BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1 << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1)
  48505. #define BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_V1(x) \
  48506. ((x) & (~BITS_CPUMGQ_TIMER_TSF_SEL_V1))
  48507. #define BIT_GET_CPUMGQ_TIMER_TSF_SEL_V1(x) \
  48508. (((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1) & \
  48509. BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1)
  48510. #define BIT_SET_CPUMGQ_TIMER_TSF_SEL_V1(x, v) \
  48511. (BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_V1(x) | BIT_CPUMGQ_TIMER_TSF_SEL_V1(v))
  48512. /* 2 REG_CPUMGQ_PROHIBIT (Offset 0x15B4) */
  48513. #define BIT_SHIFT_CPUMGQ_HOLD_TIME 8
  48514. #define BIT_MASK_CPUMGQ_HOLD_TIME 0xfff
  48515. #define BIT_CPUMGQ_HOLD_TIME(x) \
  48516. (((x) & BIT_MASK_CPUMGQ_HOLD_TIME) << BIT_SHIFT_CPUMGQ_HOLD_TIME)
  48517. #define BITS_CPUMGQ_HOLD_TIME \
  48518. (BIT_MASK_CPUMGQ_HOLD_TIME << BIT_SHIFT_CPUMGQ_HOLD_TIME)
  48519. #define BIT_CLEAR_CPUMGQ_HOLD_TIME(x) ((x) & (~BITS_CPUMGQ_HOLD_TIME))
  48520. #define BIT_GET_CPUMGQ_HOLD_TIME(x) \
  48521. (((x) >> BIT_SHIFT_CPUMGQ_HOLD_TIME) & BIT_MASK_CPUMGQ_HOLD_TIME)
  48522. #define BIT_SET_CPUMGQ_HOLD_TIME(x, v) \
  48523. (BIT_CLEAR_CPUMGQ_HOLD_TIME(x) | BIT_CPUMGQ_HOLD_TIME(v))
  48524. #define BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP 0
  48525. #define BIT_MASK_CPUMGQ_PROHIBIT_SETUP 0xf
  48526. #define BIT_CPUMGQ_PROHIBIT_SETUP(x) \
  48527. (((x) & BIT_MASK_CPUMGQ_PROHIBIT_SETUP) \
  48528. << BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP)
  48529. #define BITS_CPUMGQ_PROHIBIT_SETUP \
  48530. (BIT_MASK_CPUMGQ_PROHIBIT_SETUP << BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP)
  48531. #define BIT_CLEAR_CPUMGQ_PROHIBIT_SETUP(x) ((x) & (~BITS_CPUMGQ_PROHIBIT_SETUP))
  48532. #define BIT_GET_CPUMGQ_PROHIBIT_SETUP(x) \
  48533. (((x) >> BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP) & \
  48534. BIT_MASK_CPUMGQ_PROHIBIT_SETUP)
  48535. #define BIT_SET_CPUMGQ_PROHIBIT_SETUP(x, v) \
  48536. (BIT_CLEAR_CPUMGQ_PROHIBIT_SETUP(x) | BIT_CPUMGQ_PROHIBIT_SETUP(v))
  48537. /* 2 REG_TIMER_COMPARE (Offset 0x15C0) */
  48538. #define BIT_COMP_TRIGGER BIT(7)
  48539. #define BIT_SHIFT_Y_COMP 4
  48540. #define BIT_MASK_Y_COMP 0x7
  48541. #define BIT_Y_COMP(x) (((x) & BIT_MASK_Y_COMP) << BIT_SHIFT_Y_COMP)
  48542. #define BITS_Y_COMP (BIT_MASK_Y_COMP << BIT_SHIFT_Y_COMP)
  48543. #define BIT_CLEAR_Y_COMP(x) ((x) & (~BITS_Y_COMP))
  48544. #define BIT_GET_Y_COMP(x) (((x) >> BIT_SHIFT_Y_COMP) & BIT_MASK_Y_COMP)
  48545. #define BIT_SET_Y_COMP(x, v) (BIT_CLEAR_Y_COMP(x) | BIT_Y_COMP(v))
  48546. #define BIT_X_COMP_Y_OVERFLOW BIT(3)
  48547. #define BIT_SHIFT_X_COMP 0
  48548. #define BIT_MASK_X_COMP 0x7
  48549. #define BIT_X_COMP(x) (((x) & BIT_MASK_X_COMP) << BIT_SHIFT_X_COMP)
  48550. #define BITS_X_COMP (BIT_MASK_X_COMP << BIT_SHIFT_X_COMP)
  48551. #define BIT_CLEAR_X_COMP(x) ((x) & (~BITS_X_COMP))
  48552. #define BIT_GET_X_COMP(x) (((x) >> BIT_SHIFT_X_COMP) & BIT_MASK_X_COMP)
  48553. #define BIT_SET_X_COMP(x, v) (BIT_CLEAR_X_COMP(x) | BIT_X_COMP(v))
  48554. /* 2 REG_TIMER_COMPARE_VALUE_LOW (Offset 0x15C4) */
  48555. #define BIT_SHIFT_COMP_VALUE_LOW 0
  48556. #define BIT_MASK_COMP_VALUE_LOW 0xffffffffL
  48557. #define BIT_COMP_VALUE_LOW(x) \
  48558. (((x) & BIT_MASK_COMP_VALUE_LOW) << BIT_SHIFT_COMP_VALUE_LOW)
  48559. #define BITS_COMP_VALUE_LOW \
  48560. (BIT_MASK_COMP_VALUE_LOW << BIT_SHIFT_COMP_VALUE_LOW)
  48561. #define BIT_CLEAR_COMP_VALUE_LOW(x) ((x) & (~BITS_COMP_VALUE_LOW))
  48562. #define BIT_GET_COMP_VALUE_LOW(x) \
  48563. (((x) >> BIT_SHIFT_COMP_VALUE_LOW) & BIT_MASK_COMP_VALUE_LOW)
  48564. #define BIT_SET_COMP_VALUE_LOW(x, v) \
  48565. (BIT_CLEAR_COMP_VALUE_LOW(x) | BIT_COMP_VALUE_LOW(v))
  48566. /* 2 REG_TIMER_COMPARE_VALUE_HIGH (Offset 0x15C8) */
  48567. #define BIT_SHIFT_COMP_VALUE_HIGH 0
  48568. #define BIT_MASK_COMP_VALUE_HIGH 0xffffffffL
  48569. #define BIT_COMP_VALUE_HIGH(x) \
  48570. (((x) & BIT_MASK_COMP_VALUE_HIGH) << BIT_SHIFT_COMP_VALUE_HIGH)
  48571. #define BITS_COMP_VALUE_HIGH \
  48572. (BIT_MASK_COMP_VALUE_HIGH << BIT_SHIFT_COMP_VALUE_HIGH)
  48573. #define BIT_CLEAR_COMP_VALUE_HIGH(x) ((x) & (~BITS_COMP_VALUE_HIGH))
  48574. #define BIT_GET_COMP_VALUE_HIGH(x) \
  48575. (((x) >> BIT_SHIFT_COMP_VALUE_HIGH) & BIT_MASK_COMP_VALUE_HIGH)
  48576. #define BIT_SET_COMP_VALUE_HIGH(x, v) \
  48577. (BIT_CLEAR_COMP_VALUE_HIGH(x) | BIT_COMP_VALUE_HIGH(v))
  48578. #endif
  48579. #if (HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  48580. /* 2 REG_SCHEDULER_COUNTER (Offset 0x15D0) */
  48581. #define BIT_SHIFT__SCHEDULER_COUNTER 16
  48582. #define BIT_MASK__SCHEDULER_COUNTER 0xffff
  48583. #define BIT__SCHEDULER_COUNTER(x) \
  48584. (((x) & BIT_MASK__SCHEDULER_COUNTER) << BIT_SHIFT__SCHEDULER_COUNTER)
  48585. #define BITS__SCHEDULER_COUNTER \
  48586. (BIT_MASK__SCHEDULER_COUNTER << BIT_SHIFT__SCHEDULER_COUNTER)
  48587. #define BIT_CLEAR__SCHEDULER_COUNTER(x) ((x) & (~BITS__SCHEDULER_COUNTER))
  48588. #define BIT_GET__SCHEDULER_COUNTER(x) \
  48589. (((x) >> BIT_SHIFT__SCHEDULER_COUNTER) & BIT_MASK__SCHEDULER_COUNTER)
  48590. #define BIT_SET__SCHEDULER_COUNTER(x, v) \
  48591. (BIT_CLEAR__SCHEDULER_COUNTER(x) | BIT__SCHEDULER_COUNTER(v))
  48592. #define BIT__SCHEDULER_COUNTER_RST BIT(8)
  48593. #define BIT_SHIFT_SCHEDULER_COUNTER_SEL 0
  48594. #define BIT_MASK_SCHEDULER_COUNTER_SEL 0xff
  48595. #define BIT_SCHEDULER_COUNTER_SEL(x) \
  48596. (((x) & BIT_MASK_SCHEDULER_COUNTER_SEL) \
  48597. << BIT_SHIFT_SCHEDULER_COUNTER_SEL)
  48598. #define BITS_SCHEDULER_COUNTER_SEL \
  48599. (BIT_MASK_SCHEDULER_COUNTER_SEL << BIT_SHIFT_SCHEDULER_COUNTER_SEL)
  48600. #define BIT_CLEAR_SCHEDULER_COUNTER_SEL(x) ((x) & (~BITS_SCHEDULER_COUNTER_SEL))
  48601. #define BIT_GET_SCHEDULER_COUNTER_SEL(x) \
  48602. (((x) >> BIT_SHIFT_SCHEDULER_COUNTER_SEL) & \
  48603. BIT_MASK_SCHEDULER_COUNTER_SEL)
  48604. #define BIT_SET_SCHEDULER_COUNTER_SEL(x, v) \
  48605. (BIT_CLEAR_SCHEDULER_COUNTER_SEL(x) | BIT_SCHEDULER_COUNTER_SEL(v))
  48606. #endif
  48607. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  48608. HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || \
  48609. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  48610. /* 2 REG_BCN_PSR_RPT2 (Offset 0x1600) */
  48611. #define BIT_SHIFT_DTIM_CNT2 24
  48612. #define BIT_MASK_DTIM_CNT2 0xff
  48613. #define BIT_DTIM_CNT2(x) (((x) & BIT_MASK_DTIM_CNT2) << BIT_SHIFT_DTIM_CNT2)
  48614. #define BITS_DTIM_CNT2 (BIT_MASK_DTIM_CNT2 << BIT_SHIFT_DTIM_CNT2)
  48615. #define BIT_CLEAR_DTIM_CNT2(x) ((x) & (~BITS_DTIM_CNT2))
  48616. #define BIT_GET_DTIM_CNT2(x) (((x) >> BIT_SHIFT_DTIM_CNT2) & BIT_MASK_DTIM_CNT2)
  48617. #define BIT_SET_DTIM_CNT2(x, v) (BIT_CLEAR_DTIM_CNT2(x) | BIT_DTIM_CNT2(v))
  48618. #define BIT_SHIFT_DTIM_PERIOD2 16
  48619. #define BIT_MASK_DTIM_PERIOD2 0xff
  48620. #define BIT_DTIM_PERIOD2(x) \
  48621. (((x) & BIT_MASK_DTIM_PERIOD2) << BIT_SHIFT_DTIM_PERIOD2)
  48622. #define BITS_DTIM_PERIOD2 (BIT_MASK_DTIM_PERIOD2 << BIT_SHIFT_DTIM_PERIOD2)
  48623. #define BIT_CLEAR_DTIM_PERIOD2(x) ((x) & (~BITS_DTIM_PERIOD2))
  48624. #define BIT_GET_DTIM_PERIOD2(x) \
  48625. (((x) >> BIT_SHIFT_DTIM_PERIOD2) & BIT_MASK_DTIM_PERIOD2)
  48626. #define BIT_SET_DTIM_PERIOD2(x, v) \
  48627. (BIT_CLEAR_DTIM_PERIOD2(x) | BIT_DTIM_PERIOD2(v))
  48628. #define BIT_DTIM2 BIT(15)
  48629. #define BIT_TIM2 BIT(14)
  48630. #define BIT_SHIFT_PS_AID_2 0
  48631. #define BIT_MASK_PS_AID_2 0x7ff
  48632. #define BIT_PS_AID_2(x) (((x) & BIT_MASK_PS_AID_2) << BIT_SHIFT_PS_AID_2)
  48633. #define BITS_PS_AID_2 (BIT_MASK_PS_AID_2 << BIT_SHIFT_PS_AID_2)
  48634. #define BIT_CLEAR_PS_AID_2(x) ((x) & (~BITS_PS_AID_2))
  48635. #define BIT_GET_PS_AID_2(x) (((x) >> BIT_SHIFT_PS_AID_2) & BIT_MASK_PS_AID_2)
  48636. #define BIT_SET_PS_AID_2(x, v) (BIT_CLEAR_PS_AID_2(x) | BIT_PS_AID_2(v))
  48637. /* 2 REG_BCN_PSR_RPT3 (Offset 0x1604) */
  48638. #define BIT_SHIFT_DTIM_CNT3 24
  48639. #define BIT_MASK_DTIM_CNT3 0xff
  48640. #define BIT_DTIM_CNT3(x) (((x) & BIT_MASK_DTIM_CNT3) << BIT_SHIFT_DTIM_CNT3)
  48641. #define BITS_DTIM_CNT3 (BIT_MASK_DTIM_CNT3 << BIT_SHIFT_DTIM_CNT3)
  48642. #define BIT_CLEAR_DTIM_CNT3(x) ((x) & (~BITS_DTIM_CNT3))
  48643. #define BIT_GET_DTIM_CNT3(x) (((x) >> BIT_SHIFT_DTIM_CNT3) & BIT_MASK_DTIM_CNT3)
  48644. #define BIT_SET_DTIM_CNT3(x, v) (BIT_CLEAR_DTIM_CNT3(x) | BIT_DTIM_CNT3(v))
  48645. #define BIT_SHIFT_DTIM_PERIOD3 16
  48646. #define BIT_MASK_DTIM_PERIOD3 0xff
  48647. #define BIT_DTIM_PERIOD3(x) \
  48648. (((x) & BIT_MASK_DTIM_PERIOD3) << BIT_SHIFT_DTIM_PERIOD3)
  48649. #define BITS_DTIM_PERIOD3 (BIT_MASK_DTIM_PERIOD3 << BIT_SHIFT_DTIM_PERIOD3)
  48650. #define BIT_CLEAR_DTIM_PERIOD3(x) ((x) & (~BITS_DTIM_PERIOD3))
  48651. #define BIT_GET_DTIM_PERIOD3(x) \
  48652. (((x) >> BIT_SHIFT_DTIM_PERIOD3) & BIT_MASK_DTIM_PERIOD3)
  48653. #define BIT_SET_DTIM_PERIOD3(x, v) \
  48654. (BIT_CLEAR_DTIM_PERIOD3(x) | BIT_DTIM_PERIOD3(v))
  48655. #define BIT_DTIM3 BIT(15)
  48656. #define BIT_TIM3 BIT(14)
  48657. #define BIT_SHIFT_PS_AID_3 0
  48658. #define BIT_MASK_PS_AID_3 0x7ff
  48659. #define BIT_PS_AID_3(x) (((x) & BIT_MASK_PS_AID_3) << BIT_SHIFT_PS_AID_3)
  48660. #define BITS_PS_AID_3 (BIT_MASK_PS_AID_3 << BIT_SHIFT_PS_AID_3)
  48661. #define BIT_CLEAR_PS_AID_3(x) ((x) & (~BITS_PS_AID_3))
  48662. #define BIT_GET_PS_AID_3(x) (((x) >> BIT_SHIFT_PS_AID_3) & BIT_MASK_PS_AID_3)
  48663. #define BIT_SET_PS_AID_3(x, v) (BIT_CLEAR_PS_AID_3(x) | BIT_PS_AID_3(v))
  48664. /* 2 REG_BCN_PSR_RPT4 (Offset 0x1608) */
  48665. #define BIT_SHIFT_DTIM_CNT4 24
  48666. #define BIT_MASK_DTIM_CNT4 0xff
  48667. #define BIT_DTIM_CNT4(x) (((x) & BIT_MASK_DTIM_CNT4) << BIT_SHIFT_DTIM_CNT4)
  48668. #define BITS_DTIM_CNT4 (BIT_MASK_DTIM_CNT4 << BIT_SHIFT_DTIM_CNT4)
  48669. #define BIT_CLEAR_DTIM_CNT4(x) ((x) & (~BITS_DTIM_CNT4))
  48670. #define BIT_GET_DTIM_CNT4(x) (((x) >> BIT_SHIFT_DTIM_CNT4) & BIT_MASK_DTIM_CNT4)
  48671. #define BIT_SET_DTIM_CNT4(x, v) (BIT_CLEAR_DTIM_CNT4(x) | BIT_DTIM_CNT4(v))
  48672. #define BIT_SHIFT_DTIM_PERIOD4 16
  48673. #define BIT_MASK_DTIM_PERIOD4 0xff
  48674. #define BIT_DTIM_PERIOD4(x) \
  48675. (((x) & BIT_MASK_DTIM_PERIOD4) << BIT_SHIFT_DTIM_PERIOD4)
  48676. #define BITS_DTIM_PERIOD4 (BIT_MASK_DTIM_PERIOD4 << BIT_SHIFT_DTIM_PERIOD4)
  48677. #define BIT_CLEAR_DTIM_PERIOD4(x) ((x) & (~BITS_DTIM_PERIOD4))
  48678. #define BIT_GET_DTIM_PERIOD4(x) \
  48679. (((x) >> BIT_SHIFT_DTIM_PERIOD4) & BIT_MASK_DTIM_PERIOD4)
  48680. #define BIT_SET_DTIM_PERIOD4(x, v) \
  48681. (BIT_CLEAR_DTIM_PERIOD4(x) | BIT_DTIM_PERIOD4(v))
  48682. #define BIT_DTIM4 BIT(15)
  48683. #define BIT_TIM4 BIT(14)
  48684. #define BIT_SHIFT_PS_AID_4 0
  48685. #define BIT_MASK_PS_AID_4 0x7ff
  48686. #define BIT_PS_AID_4(x) (((x) & BIT_MASK_PS_AID_4) << BIT_SHIFT_PS_AID_4)
  48687. #define BITS_PS_AID_4 (BIT_MASK_PS_AID_4 << BIT_SHIFT_PS_AID_4)
  48688. #define BIT_CLEAR_PS_AID_4(x) ((x) & (~BITS_PS_AID_4))
  48689. #define BIT_GET_PS_AID_4(x) (((x) >> BIT_SHIFT_PS_AID_4) & BIT_MASK_PS_AID_4)
  48690. #define BIT_SET_PS_AID_4(x, v) (BIT_CLEAR_PS_AID_4(x) | BIT_PS_AID_4(v))
  48691. /* 2 REG_A1_ADDR_MASK (Offset 0x160C) */
  48692. #define BIT_SHIFT_A1_ADDR_MASK 0
  48693. #define BIT_MASK_A1_ADDR_MASK 0xffffffffL
  48694. #define BIT_A1_ADDR_MASK(x) \
  48695. (((x) & BIT_MASK_A1_ADDR_MASK) << BIT_SHIFT_A1_ADDR_MASK)
  48696. #define BITS_A1_ADDR_MASK (BIT_MASK_A1_ADDR_MASK << BIT_SHIFT_A1_ADDR_MASK)
  48697. #define BIT_CLEAR_A1_ADDR_MASK(x) ((x) & (~BITS_A1_ADDR_MASK))
  48698. #define BIT_GET_A1_ADDR_MASK(x) \
  48699. (((x) >> BIT_SHIFT_A1_ADDR_MASK) & BIT_MASK_A1_ADDR_MASK)
  48700. #define BIT_SET_A1_ADDR_MASK(x, v) \
  48701. (BIT_CLEAR_A1_ADDR_MASK(x) | BIT_A1_ADDR_MASK(v))
  48702. #endif
  48703. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  48704. /* 2 REG_RXPSF_CTRL (Offset 0x1610) */
  48705. #define BIT_RXGCK_FIFOTHR_EN BIT(28)
  48706. #define BIT_SHIFT_RXGCK_VHT_FIFOTHR 26
  48707. #define BIT_MASK_RXGCK_VHT_FIFOTHR 0x3
  48708. #define BIT_RXGCK_VHT_FIFOTHR(x) \
  48709. (((x) & BIT_MASK_RXGCK_VHT_FIFOTHR) << BIT_SHIFT_RXGCK_VHT_FIFOTHR)
  48710. #define BITS_RXGCK_VHT_FIFOTHR \
  48711. (BIT_MASK_RXGCK_VHT_FIFOTHR << BIT_SHIFT_RXGCK_VHT_FIFOTHR)
  48712. #define BIT_CLEAR_RXGCK_VHT_FIFOTHR(x) ((x) & (~BITS_RXGCK_VHT_FIFOTHR))
  48713. #define BIT_GET_RXGCK_VHT_FIFOTHR(x) \
  48714. (((x) >> BIT_SHIFT_RXGCK_VHT_FIFOTHR) & BIT_MASK_RXGCK_VHT_FIFOTHR)
  48715. #define BIT_SET_RXGCK_VHT_FIFOTHR(x, v) \
  48716. (BIT_CLEAR_RXGCK_VHT_FIFOTHR(x) | BIT_RXGCK_VHT_FIFOTHR(v))
  48717. #define BIT_SHIFT_RXGCK_HT_FIFOTHR 24
  48718. #define BIT_MASK_RXGCK_HT_FIFOTHR 0x3
  48719. #define BIT_RXGCK_HT_FIFOTHR(x) \
  48720. (((x) & BIT_MASK_RXGCK_HT_FIFOTHR) << BIT_SHIFT_RXGCK_HT_FIFOTHR)
  48721. #define BITS_RXGCK_HT_FIFOTHR \
  48722. (BIT_MASK_RXGCK_HT_FIFOTHR << BIT_SHIFT_RXGCK_HT_FIFOTHR)
  48723. #define BIT_CLEAR_RXGCK_HT_FIFOTHR(x) ((x) & (~BITS_RXGCK_HT_FIFOTHR))
  48724. #define BIT_GET_RXGCK_HT_FIFOTHR(x) \
  48725. (((x) >> BIT_SHIFT_RXGCK_HT_FIFOTHR) & BIT_MASK_RXGCK_HT_FIFOTHR)
  48726. #define BIT_SET_RXGCK_HT_FIFOTHR(x, v) \
  48727. (BIT_CLEAR_RXGCK_HT_FIFOTHR(x) | BIT_RXGCK_HT_FIFOTHR(v))
  48728. #define BIT_SHIFT_RXGCK_OFDM_FIFOTHR 22
  48729. #define BIT_MASK_RXGCK_OFDM_FIFOTHR 0x3
  48730. #define BIT_RXGCK_OFDM_FIFOTHR(x) \
  48731. (((x) & BIT_MASK_RXGCK_OFDM_FIFOTHR) << BIT_SHIFT_RXGCK_OFDM_FIFOTHR)
  48732. #define BITS_RXGCK_OFDM_FIFOTHR \
  48733. (BIT_MASK_RXGCK_OFDM_FIFOTHR << BIT_SHIFT_RXGCK_OFDM_FIFOTHR)
  48734. #define BIT_CLEAR_RXGCK_OFDM_FIFOTHR(x) ((x) & (~BITS_RXGCK_OFDM_FIFOTHR))
  48735. #define BIT_GET_RXGCK_OFDM_FIFOTHR(x) \
  48736. (((x) >> BIT_SHIFT_RXGCK_OFDM_FIFOTHR) & BIT_MASK_RXGCK_OFDM_FIFOTHR)
  48737. #define BIT_SET_RXGCK_OFDM_FIFOTHR(x, v) \
  48738. (BIT_CLEAR_RXGCK_OFDM_FIFOTHR(x) | BIT_RXGCK_OFDM_FIFOTHR(v))
  48739. #define BIT_SHIFT_RXGCK_CCK_FIFOTHR 20
  48740. #define BIT_MASK_RXGCK_CCK_FIFOTHR 0x3
  48741. #define BIT_RXGCK_CCK_FIFOTHR(x) \
  48742. (((x) & BIT_MASK_RXGCK_CCK_FIFOTHR) << BIT_SHIFT_RXGCK_CCK_FIFOTHR)
  48743. #define BITS_RXGCK_CCK_FIFOTHR \
  48744. (BIT_MASK_RXGCK_CCK_FIFOTHR << BIT_SHIFT_RXGCK_CCK_FIFOTHR)
  48745. #define BIT_CLEAR_RXGCK_CCK_FIFOTHR(x) ((x) & (~BITS_RXGCK_CCK_FIFOTHR))
  48746. #define BIT_GET_RXGCK_CCK_FIFOTHR(x) \
  48747. (((x) >> BIT_SHIFT_RXGCK_CCK_FIFOTHR) & BIT_MASK_RXGCK_CCK_FIFOTHR)
  48748. #define BIT_SET_RXGCK_CCK_FIFOTHR(x, v) \
  48749. (BIT_CLEAR_RXGCK_CCK_FIFOTHR(x) | BIT_RXGCK_CCK_FIFOTHR(v))
  48750. #define BIT_SHIFT_RXGCK_ENTRY_DELAY 17
  48751. #define BIT_MASK_RXGCK_ENTRY_DELAY 0x7
  48752. #define BIT_RXGCK_ENTRY_DELAY(x) \
  48753. (((x) & BIT_MASK_RXGCK_ENTRY_DELAY) << BIT_SHIFT_RXGCK_ENTRY_DELAY)
  48754. #define BITS_RXGCK_ENTRY_DELAY \
  48755. (BIT_MASK_RXGCK_ENTRY_DELAY << BIT_SHIFT_RXGCK_ENTRY_DELAY)
  48756. #define BIT_CLEAR_RXGCK_ENTRY_DELAY(x) ((x) & (~BITS_RXGCK_ENTRY_DELAY))
  48757. #define BIT_GET_RXGCK_ENTRY_DELAY(x) \
  48758. (((x) >> BIT_SHIFT_RXGCK_ENTRY_DELAY) & BIT_MASK_RXGCK_ENTRY_DELAY)
  48759. #define BIT_SET_RXGCK_ENTRY_DELAY(x, v) \
  48760. (BIT_CLEAR_RXGCK_ENTRY_DELAY(x) | BIT_RXGCK_ENTRY_DELAY(v))
  48761. #define BIT_RXGCK_OFDMCCA_EN BIT(16)
  48762. #define BIT_SHIFT_RXPSF_PKTLENTHR 13
  48763. #define BIT_MASK_RXPSF_PKTLENTHR 0x7
  48764. #define BIT_RXPSF_PKTLENTHR(x) \
  48765. (((x) & BIT_MASK_RXPSF_PKTLENTHR) << BIT_SHIFT_RXPSF_PKTLENTHR)
  48766. #define BITS_RXPSF_PKTLENTHR \
  48767. (BIT_MASK_RXPSF_PKTLENTHR << BIT_SHIFT_RXPSF_PKTLENTHR)
  48768. #define BIT_CLEAR_RXPSF_PKTLENTHR(x) ((x) & (~BITS_RXPSF_PKTLENTHR))
  48769. #define BIT_GET_RXPSF_PKTLENTHR(x) \
  48770. (((x) >> BIT_SHIFT_RXPSF_PKTLENTHR) & BIT_MASK_RXPSF_PKTLENTHR)
  48771. #define BIT_SET_RXPSF_PKTLENTHR(x, v) \
  48772. (BIT_CLEAR_RXPSF_PKTLENTHR(x) | BIT_RXPSF_PKTLENTHR(v))
  48773. #define BIT_RXPSF_CTRLEN BIT(12)
  48774. #define BIT_RXPSF_VHTCHKEN BIT(11)
  48775. #define BIT_RXPSF_HTCHKEN BIT(10)
  48776. #define BIT_RXPSF_OFDMCHKEN BIT(9)
  48777. #define BIT_RXPSF_CCKCHKEN BIT(8)
  48778. #define BIT_RXPSF_OFDMRST BIT(7)
  48779. #define BIT_RXPSF_CCKRST BIT(6)
  48780. #define BIT_RXPSF_MHCHKEN BIT(5)
  48781. #define BIT_RXPSF_CONT_ERRCHKEN BIT(4)
  48782. #define BIT_RXPSF_ALL_ERRCHKEN BIT(3)
  48783. #define BIT_SHIFT_RXPSF_ERRTHR 0
  48784. #define BIT_MASK_RXPSF_ERRTHR 0x7
  48785. #define BIT_RXPSF_ERRTHR(x) \
  48786. (((x) & BIT_MASK_RXPSF_ERRTHR) << BIT_SHIFT_RXPSF_ERRTHR)
  48787. #define BITS_RXPSF_ERRTHR (BIT_MASK_RXPSF_ERRTHR << BIT_SHIFT_RXPSF_ERRTHR)
  48788. #define BIT_CLEAR_RXPSF_ERRTHR(x) ((x) & (~BITS_RXPSF_ERRTHR))
  48789. #define BIT_GET_RXPSF_ERRTHR(x) \
  48790. (((x) >> BIT_SHIFT_RXPSF_ERRTHR) & BIT_MASK_RXPSF_ERRTHR)
  48791. #define BIT_SET_RXPSF_ERRTHR(x, v) \
  48792. (BIT_CLEAR_RXPSF_ERRTHR(x) | BIT_RXPSF_ERRTHR(v))
  48793. /* 2 REG_RXPSF_TYPE_CTRL (Offset 0x1614) */
  48794. #define BIT_RXPSF_DATA15EN BIT(31)
  48795. #define BIT_RXPSF_DATA14EN BIT(30)
  48796. #define BIT_RXPSF_DATA13EN BIT(29)
  48797. #define BIT_RXPSF_DATA12EN BIT(28)
  48798. #define BIT_RXPSF_DATA11EN BIT(27)
  48799. #define BIT_RXPSF_DATA10EN BIT(26)
  48800. #define BIT_RXPSF_DATA9EN BIT(25)
  48801. #define BIT_RXPSF_DATA8EN BIT(24)
  48802. #define BIT_RXPSF_DATA7EN BIT(23)
  48803. #define BIT_RXPSF_DATA6EN BIT(22)
  48804. #define BIT_RXPSF_DATA5EN BIT(21)
  48805. #define BIT_RXPSF_DATA4EN BIT(20)
  48806. #define BIT_RXPSF_DATA3EN BIT(19)
  48807. #define BIT_RXPSF_DATA2EN BIT(18)
  48808. #define BIT_RXPSF_DATA1EN BIT(17)
  48809. #define BIT_RXPSF_DATA0EN BIT(16)
  48810. #define BIT_RXPSF_MGT15EN BIT(15)
  48811. #define BIT_RXPSF_MGT14EN BIT(14)
  48812. #define BIT_RXPSF_MGT13EN BIT(13)
  48813. #define BIT_RXPSF_MGT12EN BIT(12)
  48814. #define BIT_RXPSF_MGT11EN BIT(11)
  48815. #define BIT_RXPSF_MGT10EN BIT(10)
  48816. #define BIT_RXPSF_MGT9EN BIT(9)
  48817. #define BIT_RXPSF_MGT8EN BIT(8)
  48818. #define BIT_RXPSF_MGT7EN BIT(7)
  48819. #define BIT_RXPSF_MGT6EN BIT(6)
  48820. #define BIT_RXPSF_MGT5EN BIT(5)
  48821. #define BIT_RXPSF_MGT4EN BIT(4)
  48822. #define BIT_RXPSF_MGT3EN BIT(3)
  48823. #define BIT_RXPSF_MGT2EN BIT(2)
  48824. #define BIT_RXPSF_MGT1EN BIT(1)
  48825. #define BIT_RXPSF_MGT0EN BIT(0)
  48826. /* 2 REG_CAM_ACCESS_CTRL (Offset 0x1618) */
  48827. #define BIT_INDIRECT_ERR BIT(6)
  48828. #define BIT_DIRECT_ERR BIT(5)
  48829. #define BIT_DIR_ACCESS_EN_RX_BA BIT(4)
  48830. #endif
  48831. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  48832. /* 2 REG_CAM_ACCESS_CTRL (Offset 0x1618) */
  48833. #define BIT_DIR_ACCESS_EN_MBSSIDCAM BIT(3)
  48834. #endif
  48835. #if (HALMAC_8814B_SUPPORT)
  48836. /* 2 REG_CAM_ACCESS_CTRL (Offset 0x1618) */
  48837. #define BIT_DIR_ACCESS_EN_ADDRCAM BIT(3)
  48838. #endif
  48839. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  48840. /* 2 REG_CAM_ACCESS_CTRL (Offset 0x1618) */
  48841. #define BIT_DIR_ACCESS_EN_KEY BIT(2)
  48842. #define BIT_DIR_ACCESS_EN_WOWLAN BIT(1)
  48843. #define BIT_DIR_ACCESS_EN_FW_FILTER BIT(0)
  48844. #endif
  48845. #if (HALMAC_8814B_SUPPORT)
  48846. /* 2 REG_CUT_AMSDU_CTRL (Offset 0x161C) */
  48847. #define BIT__CUT_AMSDU_CHKLEN_EN BIT(31)
  48848. #define BIT_EN_CUT_AMSDU BIT(30)
  48849. #define BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH 16
  48850. #define BIT_MASK_CUT_AMSDU_CHKLEN_L_TH 0xff
  48851. #define BIT_CUT_AMSDU_CHKLEN_L_TH(x) \
  48852. (((x) & BIT_MASK_CUT_AMSDU_CHKLEN_L_TH) \
  48853. << BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH)
  48854. #define BITS_CUT_AMSDU_CHKLEN_L_TH \
  48855. (BIT_MASK_CUT_AMSDU_CHKLEN_L_TH << BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH)
  48856. #define BIT_CLEAR_CUT_AMSDU_CHKLEN_L_TH(x) ((x) & (~BITS_CUT_AMSDU_CHKLEN_L_TH))
  48857. #define BIT_GET_CUT_AMSDU_CHKLEN_L_TH(x) \
  48858. (((x) >> BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH) & \
  48859. BIT_MASK_CUT_AMSDU_CHKLEN_L_TH)
  48860. #define BIT_SET_CUT_AMSDU_CHKLEN_L_TH(x, v) \
  48861. (BIT_CLEAR_CUT_AMSDU_CHKLEN_L_TH(x) | BIT_CUT_AMSDU_CHKLEN_L_TH(v))
  48862. #endif
  48863. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  48864. /* 2 REG_HT_SND_REF_RATE (Offset 0x161C) */
  48865. #define BIT_SHIFT_WMAC_HT_CSI_RATE 0
  48866. #define BIT_MASK_WMAC_HT_CSI_RATE 0x3f
  48867. #define BIT_WMAC_HT_CSI_RATE(x) \
  48868. (((x) & BIT_MASK_WMAC_HT_CSI_RATE) << BIT_SHIFT_WMAC_HT_CSI_RATE)
  48869. #define BITS_WMAC_HT_CSI_RATE \
  48870. (BIT_MASK_WMAC_HT_CSI_RATE << BIT_SHIFT_WMAC_HT_CSI_RATE)
  48871. #define BIT_CLEAR_WMAC_HT_CSI_RATE(x) ((x) & (~BITS_WMAC_HT_CSI_RATE))
  48872. #define BIT_GET_WMAC_HT_CSI_RATE(x) \
  48873. (((x) >> BIT_SHIFT_WMAC_HT_CSI_RATE) & BIT_MASK_WMAC_HT_CSI_RATE)
  48874. #define BIT_SET_WMAC_HT_CSI_RATE(x, v) \
  48875. (BIT_CLEAR_WMAC_HT_CSI_RATE(x) | BIT_WMAC_HT_CSI_RATE(v))
  48876. #endif
  48877. #if (HALMAC_8814B_SUPPORT)
  48878. /* 2 REG_CUT_AMSDU_CTRL (Offset 0x161C) */
  48879. #define BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH 0
  48880. #define BIT_MASK_CUT_AMSDU_CHKLEN_H_TH 0xffff
  48881. #define BIT_CUT_AMSDU_CHKLEN_H_TH(x) \
  48882. (((x) & BIT_MASK_CUT_AMSDU_CHKLEN_H_TH) \
  48883. << BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH)
  48884. #define BITS_CUT_AMSDU_CHKLEN_H_TH \
  48885. (BIT_MASK_CUT_AMSDU_CHKLEN_H_TH << BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH)
  48886. #define BIT_CLEAR_CUT_AMSDU_CHKLEN_H_TH(x) ((x) & (~BITS_CUT_AMSDU_CHKLEN_H_TH))
  48887. #define BIT_GET_CUT_AMSDU_CHKLEN_H_TH(x) \
  48888. (((x) >> BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH) & \
  48889. BIT_MASK_CUT_AMSDU_CHKLEN_H_TH)
  48890. #define BIT_SET_CUT_AMSDU_CHKLEN_H_TH(x, v) \
  48891. (BIT_CLEAR_CUT_AMSDU_CHKLEN_H_TH(x) | BIT_CUT_AMSDU_CHKLEN_H_TH(v))
  48892. #endif
  48893. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  48894. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  48895. /* 2 REG_MACID2 (Offset 0x1620) */
  48896. #define BIT_SHIFT_MACID2 0
  48897. #define BIT_MASK_MACID2 0xffffffffffffL
  48898. #define BIT_MACID2(x) (((x) & BIT_MASK_MACID2) << BIT_SHIFT_MACID2)
  48899. #define BITS_MACID2 (BIT_MASK_MACID2 << BIT_SHIFT_MACID2)
  48900. #define BIT_CLEAR_MACID2(x) ((x) & (~BITS_MACID2))
  48901. #define BIT_GET_MACID2(x) (((x) >> BIT_SHIFT_MACID2) & BIT_MASK_MACID2)
  48902. #define BIT_SET_MACID2(x, v) (BIT_CLEAR_MACID2(x) | BIT_MACID2(v))
  48903. #endif
  48904. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  48905. HALMAC_8822C_SUPPORT)
  48906. /* 2 REG_MACID2 (Offset 0x1620) */
  48907. #define BIT_SHIFT_MACID2_V1 0
  48908. #define BIT_MASK_MACID2_V1 0xffffffffL
  48909. #define BIT_MACID2_V1(x) (((x) & BIT_MASK_MACID2_V1) << BIT_SHIFT_MACID2_V1)
  48910. #define BITS_MACID2_V1 (BIT_MASK_MACID2_V1 << BIT_SHIFT_MACID2_V1)
  48911. #define BIT_CLEAR_MACID2_V1(x) ((x) & (~BITS_MACID2_V1))
  48912. #define BIT_GET_MACID2_V1(x) (((x) >> BIT_SHIFT_MACID2_V1) & BIT_MASK_MACID2_V1)
  48913. #define BIT_SET_MACID2_V1(x, v) (BIT_CLEAR_MACID2_V1(x) | BIT_MACID2_V1(v))
  48914. /* 2 REG_MACID2_H (Offset 0x1624) */
  48915. #define BIT_SHIFT_MACID2_H_V1 0
  48916. #define BIT_MASK_MACID2_H_V1 0xffff
  48917. #define BIT_MACID2_H_V1(x) \
  48918. (((x) & BIT_MASK_MACID2_H_V1) << BIT_SHIFT_MACID2_H_V1)
  48919. #define BITS_MACID2_H_V1 (BIT_MASK_MACID2_H_V1 << BIT_SHIFT_MACID2_H_V1)
  48920. #define BIT_CLEAR_MACID2_H_V1(x) ((x) & (~BITS_MACID2_H_V1))
  48921. #define BIT_GET_MACID2_H_V1(x) \
  48922. (((x) >> BIT_SHIFT_MACID2_H_V1) & BIT_MASK_MACID2_H_V1)
  48923. #define BIT_SET_MACID2_H_V1(x, v) \
  48924. (BIT_CLEAR_MACID2_H_V1(x) | BIT_MACID2_H_V1(v))
  48925. #endif
  48926. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  48927. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  48928. /* 2 REG_BSSID2 (Offset 0x1628) */
  48929. #define BIT_SHIFT_BSSID2 0
  48930. #define BIT_MASK_BSSID2 0xffffffffffffL
  48931. #define BIT_BSSID2(x) (((x) & BIT_MASK_BSSID2) << BIT_SHIFT_BSSID2)
  48932. #define BITS_BSSID2 (BIT_MASK_BSSID2 << BIT_SHIFT_BSSID2)
  48933. #define BIT_CLEAR_BSSID2(x) ((x) & (~BITS_BSSID2))
  48934. #define BIT_GET_BSSID2(x) (((x) >> BIT_SHIFT_BSSID2) & BIT_MASK_BSSID2)
  48935. #define BIT_SET_BSSID2(x, v) (BIT_CLEAR_BSSID2(x) | BIT_BSSID2(v))
  48936. #endif
  48937. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  48938. HALMAC_8822C_SUPPORT)
  48939. /* 2 REG_BSSID2 (Offset 0x1628) */
  48940. #define BIT_SHIFT_BSSID2_V1 0
  48941. #define BIT_MASK_BSSID2_V1 0xffffffffL
  48942. #define BIT_BSSID2_V1(x) (((x) & BIT_MASK_BSSID2_V1) << BIT_SHIFT_BSSID2_V1)
  48943. #define BITS_BSSID2_V1 (BIT_MASK_BSSID2_V1 << BIT_SHIFT_BSSID2_V1)
  48944. #define BIT_CLEAR_BSSID2_V1(x) ((x) & (~BITS_BSSID2_V1))
  48945. #define BIT_GET_BSSID2_V1(x) (((x) >> BIT_SHIFT_BSSID2_V1) & BIT_MASK_BSSID2_V1)
  48946. #define BIT_SET_BSSID2_V1(x, v) (BIT_CLEAR_BSSID2_V1(x) | BIT_BSSID2_V1(v))
  48947. /* 2 REG_BSSID2_H (Offset 0x162C) */
  48948. #define BIT_SHIFT_BSSID2_H_V1 0
  48949. #define BIT_MASK_BSSID2_H_V1 0xffff
  48950. #define BIT_BSSID2_H_V1(x) \
  48951. (((x) & BIT_MASK_BSSID2_H_V1) << BIT_SHIFT_BSSID2_H_V1)
  48952. #define BITS_BSSID2_H_V1 (BIT_MASK_BSSID2_H_V1 << BIT_SHIFT_BSSID2_H_V1)
  48953. #define BIT_CLEAR_BSSID2_H_V1(x) ((x) & (~BITS_BSSID2_H_V1))
  48954. #define BIT_GET_BSSID2_H_V1(x) \
  48955. (((x) >> BIT_SHIFT_BSSID2_H_V1) & BIT_MASK_BSSID2_H_V1)
  48956. #define BIT_SET_BSSID2_H_V1(x, v) \
  48957. (BIT_CLEAR_BSSID2_H_V1(x) | BIT_BSSID2_H_V1(v))
  48958. #endif
  48959. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  48960. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  48961. /* 2 REG_MACID3 (Offset 0x1630) */
  48962. #define BIT_SHIFT_MACID3 0
  48963. #define BIT_MASK_MACID3 0xffffffffffffL
  48964. #define BIT_MACID3(x) (((x) & BIT_MASK_MACID3) << BIT_SHIFT_MACID3)
  48965. #define BITS_MACID3 (BIT_MASK_MACID3 << BIT_SHIFT_MACID3)
  48966. #define BIT_CLEAR_MACID3(x) ((x) & (~BITS_MACID3))
  48967. #define BIT_GET_MACID3(x) (((x) >> BIT_SHIFT_MACID3) & BIT_MASK_MACID3)
  48968. #define BIT_SET_MACID3(x, v) (BIT_CLEAR_MACID3(x) | BIT_MACID3(v))
  48969. #endif
  48970. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  48971. HALMAC_8822C_SUPPORT)
  48972. /* 2 REG_MACID3 (Offset 0x1630) */
  48973. #define BIT_SHIFT_MACID3_V1 0
  48974. #define BIT_MASK_MACID3_V1 0xffffffffL
  48975. #define BIT_MACID3_V1(x) (((x) & BIT_MASK_MACID3_V1) << BIT_SHIFT_MACID3_V1)
  48976. #define BITS_MACID3_V1 (BIT_MASK_MACID3_V1 << BIT_SHIFT_MACID3_V1)
  48977. #define BIT_CLEAR_MACID3_V1(x) ((x) & (~BITS_MACID3_V1))
  48978. #define BIT_GET_MACID3_V1(x) (((x) >> BIT_SHIFT_MACID3_V1) & BIT_MASK_MACID3_V1)
  48979. #define BIT_SET_MACID3_V1(x, v) (BIT_CLEAR_MACID3_V1(x) | BIT_MACID3_V1(v))
  48980. /* 2 REG_MACID3_H (Offset 0x1634) */
  48981. #define BIT_SHIFT_MACID3_H_V1 0
  48982. #define BIT_MASK_MACID3_H_V1 0xffff
  48983. #define BIT_MACID3_H_V1(x) \
  48984. (((x) & BIT_MASK_MACID3_H_V1) << BIT_SHIFT_MACID3_H_V1)
  48985. #define BITS_MACID3_H_V1 (BIT_MASK_MACID3_H_V1 << BIT_SHIFT_MACID3_H_V1)
  48986. #define BIT_CLEAR_MACID3_H_V1(x) ((x) & (~BITS_MACID3_H_V1))
  48987. #define BIT_GET_MACID3_H_V1(x) \
  48988. (((x) >> BIT_SHIFT_MACID3_H_V1) & BIT_MASK_MACID3_H_V1)
  48989. #define BIT_SET_MACID3_H_V1(x, v) \
  48990. (BIT_CLEAR_MACID3_H_V1(x) | BIT_MACID3_H_V1(v))
  48991. #endif
  48992. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  48993. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  48994. /* 2 REG_BSSID3 (Offset 0x1638) */
  48995. #define BIT_SHIFT_BSSID3 0
  48996. #define BIT_MASK_BSSID3 0xffffffffffffL
  48997. #define BIT_BSSID3(x) (((x) & BIT_MASK_BSSID3) << BIT_SHIFT_BSSID3)
  48998. #define BITS_BSSID3 (BIT_MASK_BSSID3 << BIT_SHIFT_BSSID3)
  48999. #define BIT_CLEAR_BSSID3(x) ((x) & (~BITS_BSSID3))
  49000. #define BIT_GET_BSSID3(x) (((x) >> BIT_SHIFT_BSSID3) & BIT_MASK_BSSID3)
  49001. #define BIT_SET_BSSID3(x, v) (BIT_CLEAR_BSSID3(x) | BIT_BSSID3(v))
  49002. #endif
  49003. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49004. HALMAC_8822C_SUPPORT)
  49005. /* 2 REG_BSSID3 (Offset 0x1638) */
  49006. #define BIT_SHIFT_BSSID3_V1 0
  49007. #define BIT_MASK_BSSID3_V1 0xffffffffL
  49008. #define BIT_BSSID3_V1(x) (((x) & BIT_MASK_BSSID3_V1) << BIT_SHIFT_BSSID3_V1)
  49009. #define BITS_BSSID3_V1 (BIT_MASK_BSSID3_V1 << BIT_SHIFT_BSSID3_V1)
  49010. #define BIT_CLEAR_BSSID3_V1(x) ((x) & (~BITS_BSSID3_V1))
  49011. #define BIT_GET_BSSID3_V1(x) (((x) >> BIT_SHIFT_BSSID3_V1) & BIT_MASK_BSSID3_V1)
  49012. #define BIT_SET_BSSID3_V1(x, v) (BIT_CLEAR_BSSID3_V1(x) | BIT_BSSID3_V1(v))
  49013. /* 2 REG_BSSID3_H (Offset 0x163C) */
  49014. #define BIT_SHIFT_BSSID3_H_V1 0
  49015. #define BIT_MASK_BSSID3_H_V1 0xffff
  49016. #define BIT_BSSID3_H_V1(x) \
  49017. (((x) & BIT_MASK_BSSID3_H_V1) << BIT_SHIFT_BSSID3_H_V1)
  49018. #define BITS_BSSID3_H_V1 (BIT_MASK_BSSID3_H_V1 << BIT_SHIFT_BSSID3_H_V1)
  49019. #define BIT_CLEAR_BSSID3_H_V1(x) ((x) & (~BITS_BSSID3_H_V1))
  49020. #define BIT_GET_BSSID3_H_V1(x) \
  49021. (((x) >> BIT_SHIFT_BSSID3_H_V1) & BIT_MASK_BSSID3_H_V1)
  49022. #define BIT_SET_BSSID3_H_V1(x, v) \
  49023. (BIT_CLEAR_BSSID3_H_V1(x) | BIT_BSSID3_H_V1(v))
  49024. #endif
  49025. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  49026. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  49027. /* 2 REG_MACID4 (Offset 0x1640) */
  49028. #define BIT_SHIFT_MACID4 0
  49029. #define BIT_MASK_MACID4 0xffffffffffffL
  49030. #define BIT_MACID4(x) (((x) & BIT_MASK_MACID4) << BIT_SHIFT_MACID4)
  49031. #define BITS_MACID4 (BIT_MASK_MACID4 << BIT_SHIFT_MACID4)
  49032. #define BIT_CLEAR_MACID4(x) ((x) & (~BITS_MACID4))
  49033. #define BIT_GET_MACID4(x) (((x) >> BIT_SHIFT_MACID4) & BIT_MASK_MACID4)
  49034. #define BIT_SET_MACID4(x, v) (BIT_CLEAR_MACID4(x) | BIT_MACID4(v))
  49035. #endif
  49036. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49037. HALMAC_8822C_SUPPORT)
  49038. /* 2 REG_MACID4 (Offset 0x1640) */
  49039. #define BIT_SHIFT_MACID4_V1 0
  49040. #define BIT_MASK_MACID4_V1 0xffffffffL
  49041. #define BIT_MACID4_V1(x) (((x) & BIT_MASK_MACID4_V1) << BIT_SHIFT_MACID4_V1)
  49042. #define BITS_MACID4_V1 (BIT_MASK_MACID4_V1 << BIT_SHIFT_MACID4_V1)
  49043. #define BIT_CLEAR_MACID4_V1(x) ((x) & (~BITS_MACID4_V1))
  49044. #define BIT_GET_MACID4_V1(x) (((x) >> BIT_SHIFT_MACID4_V1) & BIT_MASK_MACID4_V1)
  49045. #define BIT_SET_MACID4_V1(x, v) (BIT_CLEAR_MACID4_V1(x) | BIT_MACID4_V1(v))
  49046. /* 2 REG_MACID4_H (Offset 0x1644) */
  49047. #define BIT_SHIFT_MACID4_H_V1 0
  49048. #define BIT_MASK_MACID4_H_V1 0xffff
  49049. #define BIT_MACID4_H_V1(x) \
  49050. (((x) & BIT_MASK_MACID4_H_V1) << BIT_SHIFT_MACID4_H_V1)
  49051. #define BITS_MACID4_H_V1 (BIT_MASK_MACID4_H_V1 << BIT_SHIFT_MACID4_H_V1)
  49052. #define BIT_CLEAR_MACID4_H_V1(x) ((x) & (~BITS_MACID4_H_V1))
  49053. #define BIT_GET_MACID4_H_V1(x) \
  49054. (((x) >> BIT_SHIFT_MACID4_H_V1) & BIT_MASK_MACID4_H_V1)
  49055. #define BIT_SET_MACID4_H_V1(x, v) \
  49056. (BIT_CLEAR_MACID4_H_V1(x) | BIT_MACID4_H_V1(v))
  49057. #endif
  49058. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || \
  49059. HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)
  49060. /* 2 REG_BSSID4 (Offset 0x1648) */
  49061. #define BIT_SHIFT_BSSID4 0
  49062. #define BIT_MASK_BSSID4 0xffffffffffffL
  49063. #define BIT_BSSID4(x) (((x) & BIT_MASK_BSSID4) << BIT_SHIFT_BSSID4)
  49064. #define BITS_BSSID4 (BIT_MASK_BSSID4 << BIT_SHIFT_BSSID4)
  49065. #define BIT_CLEAR_BSSID4(x) ((x) & (~BITS_BSSID4))
  49066. #define BIT_GET_BSSID4(x) (((x) >> BIT_SHIFT_BSSID4) & BIT_MASK_BSSID4)
  49067. #define BIT_SET_BSSID4(x, v) (BIT_CLEAR_BSSID4(x) | BIT_BSSID4(v))
  49068. #endif
  49069. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49070. HALMAC_8822C_SUPPORT)
  49071. /* 2 REG_BSSID4 (Offset 0x1648) */
  49072. #define BIT_SHIFT_BSSID4_V1 0
  49073. #define BIT_MASK_BSSID4_V1 0xffffffffL
  49074. #define BIT_BSSID4_V1(x) (((x) & BIT_MASK_BSSID4_V1) << BIT_SHIFT_BSSID4_V1)
  49075. #define BITS_BSSID4_V1 (BIT_MASK_BSSID4_V1 << BIT_SHIFT_BSSID4_V1)
  49076. #define BIT_CLEAR_BSSID4_V1(x) ((x) & (~BITS_BSSID4_V1))
  49077. #define BIT_GET_BSSID4_V1(x) (((x) >> BIT_SHIFT_BSSID4_V1) & BIT_MASK_BSSID4_V1)
  49078. #define BIT_SET_BSSID4_V1(x, v) (BIT_CLEAR_BSSID4_V1(x) | BIT_BSSID4_V1(v))
  49079. /* 2 REG_BSSID4_H (Offset 0x164C) */
  49080. #define BIT_SHIFT_BSSID4_H_V1 0
  49081. #define BIT_MASK_BSSID4_H_V1 0xffff
  49082. #define BIT_BSSID4_H_V1(x) \
  49083. (((x) & BIT_MASK_BSSID4_H_V1) << BIT_SHIFT_BSSID4_H_V1)
  49084. #define BITS_BSSID4_H_V1 (BIT_MASK_BSSID4_H_V1 << BIT_SHIFT_BSSID4_H_V1)
  49085. #define BIT_CLEAR_BSSID4_H_V1(x) ((x) & (~BITS_BSSID4_H_V1))
  49086. #define BIT_GET_BSSID4_H_V1(x) \
  49087. (((x) >> BIT_SHIFT_BSSID4_H_V1) & BIT_MASK_BSSID4_H_V1)
  49088. #define BIT_SET_BSSID4_H_V1(x, v) \
  49089. (BIT_CLEAR_BSSID4_H_V1(x) | BIT_BSSID4_H_V1(v))
  49090. #endif
  49091. #if (HALMAC_8814B_SUPPORT)
  49092. /* 2 REG_NOA_REPORT (Offset 0x1650) */
  49093. #define BIT_SHIFT_NOA_RPT 0
  49094. #define BIT_MASK_NOA_RPT 0xffffffffL
  49095. #define BIT_NOA_RPT(x) (((x) & BIT_MASK_NOA_RPT) << BIT_SHIFT_NOA_RPT)
  49096. #define BITS_NOA_RPT (BIT_MASK_NOA_RPT << BIT_SHIFT_NOA_RPT)
  49097. #define BIT_CLEAR_NOA_RPT(x) ((x) & (~BITS_NOA_RPT))
  49098. #define BIT_GET_NOA_RPT(x) (((x) >> BIT_SHIFT_NOA_RPT) & BIT_MASK_NOA_RPT)
  49099. #define BIT_SET_NOA_RPT(x, v) (BIT_CLEAR_NOA_RPT(x) | BIT_NOA_RPT(v))
  49100. /* 2 REG_NOA_REPORT_1 (Offset 0x1654) */
  49101. #define BIT_SHIFT_NOA_RPT_1 0
  49102. #define BIT_MASK_NOA_RPT_1 0xffffffffL
  49103. #define BIT_NOA_RPT_1(x) (((x) & BIT_MASK_NOA_RPT_1) << BIT_SHIFT_NOA_RPT_1)
  49104. #define BITS_NOA_RPT_1 (BIT_MASK_NOA_RPT_1 << BIT_SHIFT_NOA_RPT_1)
  49105. #define BIT_CLEAR_NOA_RPT_1(x) ((x) & (~BITS_NOA_RPT_1))
  49106. #define BIT_GET_NOA_RPT_1(x) (((x) >> BIT_SHIFT_NOA_RPT_1) & BIT_MASK_NOA_RPT_1)
  49107. #define BIT_SET_NOA_RPT_1(x, v) (BIT_CLEAR_NOA_RPT_1(x) | BIT_NOA_RPT_1(v))
  49108. /* 2 REG_NOA_REPORT_2 (Offset 0x1658) */
  49109. #define BIT_SHIFT_NOA_RPT_2 0
  49110. #define BIT_MASK_NOA_RPT_2 0xffffffffL
  49111. #define BIT_NOA_RPT_2(x) (((x) & BIT_MASK_NOA_RPT_2) << BIT_SHIFT_NOA_RPT_2)
  49112. #define BITS_NOA_RPT_2 (BIT_MASK_NOA_RPT_2 << BIT_SHIFT_NOA_RPT_2)
  49113. #define BIT_CLEAR_NOA_RPT_2(x) ((x) & (~BITS_NOA_RPT_2))
  49114. #define BIT_GET_NOA_RPT_2(x) (((x) >> BIT_SHIFT_NOA_RPT_2) & BIT_MASK_NOA_RPT_2)
  49115. #define BIT_SET_NOA_RPT_2(x, v) (BIT_CLEAR_NOA_RPT_2(x) | BIT_NOA_RPT_2(v))
  49116. /* 2 REG_NOA_REPORT_3 (Offset 0x165C) */
  49117. #define BIT_SHIFT_NOA_RPT_3 0
  49118. #define BIT_MASK_NOA_RPT_3 0xff
  49119. #define BIT_NOA_RPT_3(x) (((x) & BIT_MASK_NOA_RPT_3) << BIT_SHIFT_NOA_RPT_3)
  49120. #define BITS_NOA_RPT_3 (BIT_MASK_NOA_RPT_3 << BIT_SHIFT_NOA_RPT_3)
  49121. #define BIT_CLEAR_NOA_RPT_3(x) ((x) & (~BITS_NOA_RPT_3))
  49122. #define BIT_GET_NOA_RPT_3(x) (((x) >> BIT_SHIFT_NOA_RPT_3) & BIT_MASK_NOA_RPT_3)
  49123. #define BIT_SET_NOA_RPT_3(x, v) (BIT_CLEAR_NOA_RPT_3(x) | BIT_NOA_RPT_3(v))
  49124. #endif
  49125. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49126. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49127. #define BIT_CLI3_WMAC_TCRPWRMGT_HWCTL_EN BIT(15)
  49128. #define BIT_CLI3_WMAC_TCRPWRMGT_HWDATA_EN BIT(14)
  49129. #define BIT_CLI3_WMAC_TCRPWRMGT_HWACT_EN BIT(13)
  49130. #define BIT_CLI3_PWR_ST_V1 BIT(12)
  49131. #define BIT_CLI2_WMAC_TCRPWRMGT_HWCTL_EN BIT(11)
  49132. #define BIT_CLI2_WMAC_TCRPWRMGT_HWDATA_EN BIT(10)
  49133. #define BIT_CLI2_WMAC_TCRPWRMGT_HWACT_EN BIT(9)
  49134. #define BIT_CLI2_PWR_ST_V1 BIT(8)
  49135. #endif
  49136. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49137. HALMAC_8822B_SUPPORT)
  49138. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49139. #define BIT_CLI3_PWRBIT_OW_EN BIT(7)
  49140. #endif
  49141. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49142. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49143. #define BIT_CLI1_WMAC_TCRPWRMGT_HWCTL_EN BIT(7)
  49144. #endif
  49145. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49146. HALMAC_8822B_SUPPORT)
  49147. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49148. #define BIT_CLI3_PWR_ST BIT(6)
  49149. #endif
  49150. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49151. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49152. #define BIT_CLI1_WMAC_TCRPWRMGT_HWDATA_EN BIT(6)
  49153. #endif
  49154. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49155. HALMAC_8822B_SUPPORT)
  49156. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49157. #define BIT_CLI2_PWRBIT_OW_EN BIT(5)
  49158. #endif
  49159. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49160. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49161. #define BIT_CLI1_WMAC_TCRPWRMGT_HWACT_EN BIT(5)
  49162. #endif
  49163. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49164. HALMAC_8822B_SUPPORT)
  49165. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49166. #define BIT_CLI2_PWR_ST BIT(4)
  49167. #endif
  49168. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49169. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49170. #define BIT_CLI1_PWR_ST_V1 BIT(4)
  49171. #endif
  49172. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49173. HALMAC_8822B_SUPPORT)
  49174. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49175. #define BIT_CLI1_PWRBIT_OW_EN BIT(3)
  49176. #endif
  49177. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49178. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49179. #define BIT_CLI0_WMAC_TCRPWRMGT_HWCTL_EN BIT(3)
  49180. #endif
  49181. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49182. HALMAC_8822B_SUPPORT)
  49183. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49184. #define BIT_CLI1_PWR_ST BIT(2)
  49185. #endif
  49186. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49187. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49188. #define BIT_CLI0_WMAC_TCRPWRMGT_HWDATA_EN BIT(2)
  49189. #endif
  49190. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49191. HALMAC_8822B_SUPPORT)
  49192. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49193. #define BIT_CLI0_PWRBIT_OW_EN BIT(1)
  49194. #endif
  49195. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49196. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49197. #define BIT_CLI0_WMAC_TCRPWRMGT_HWACT_EN BIT(1)
  49198. #endif
  49199. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49200. HALMAC_8822B_SUPPORT)
  49201. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49202. #define BIT_CLI0_PWR_ST BIT(0)
  49203. #endif
  49204. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49205. /* 2 REG_PWRBIT_SETTING (Offset 0x1660) */
  49206. #define BIT_CLI0_PWR_ST_V1 BIT(0)
  49207. #endif
  49208. #if (HALMAC_8814B_SUPPORT)
  49209. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49210. #define BIT_FIX_MSDU_TAIL_WR BIT(12)
  49211. #define BIT_FIX_MSDU_SHIFT BIT(11)
  49212. #endif
  49213. #if (HALMAC_8822C_SUPPORT)
  49214. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49215. #define BIT_WMAC_RXRST_NDP_TIMEOUT BIT(11)
  49216. #define BIT_WMAC_NDP_STANDBY_WAIT_RXEND BIT(10)
  49217. #define BIT_DUMMY_FCS_READY_MASK_EN BIT(9)
  49218. #endif
  49219. #if (HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49220. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49221. #define BIT_RXFIFO_GNT_CUT BIT(8)
  49222. #endif
  49223. #if (HALMAC_8822C_SUPPORT)
  49224. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49225. #define BIT_DUMMY_RXD_FCS_ERROR_MASK_EN_V1 BIT(7)
  49226. #endif
  49227. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  49228. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49229. #define BIT_WMAC_EXT_DBG_SEL_V1 BIT(6)
  49230. #endif
  49231. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49232. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49233. #define BIT_WMAC_FIX_FIRST_MPDU_WITH_PHYSTS BIT(5)
  49234. #endif
  49235. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  49236. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49237. #define BIT_RX_DMA_BYPASS_CHECK_DATABYPASS_CHECK_DATA BIT(4)
  49238. #endif
  49239. #if (HALMAC_8814B_SUPPORT)
  49240. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49241. #define BIT_DUMMY_RXD_FCS_ERROR_MASK_EN BIT(4)
  49242. #endif
  49243. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  49244. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49245. #define BIT_RX_DMA_BYPASS_CHECK_MGTBIT_RX_DMA_BYPASS_CHECK_MGT BIT(3)
  49246. #endif
  49247. #if (HALMAC_8814B_SUPPORT)
  49248. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49249. #define BIT_PATTERN_MATCH_FIX_EN BIT(3)
  49250. #endif
  49251. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49252. /* 2 REG_GENERAL_OPTION (Offset 0x1664) */
  49253. #define BIT_TXSERV_FIELD_SEL BIT(2)
  49254. #define BIT_RXVHT_LEN_SEL BIT(1)
  49255. #define BIT_RXMIC_PROTECT_EN BIT(0)
  49256. #endif
  49257. #if (HALMAC_8814B_SUPPORT)
  49258. /* 2 REG_FWPHYFF_RCR (Offset 0x1668) */
  49259. #define BIT_RCR2_AAMSDU BIT(25)
  49260. #define BIT_RCR2_CBSSID_BCN BIT(24)
  49261. #define BIT_RCR2_ACRC32 BIT(23)
  49262. #define BIT_RCR2_TA_BCN BIT(22)
  49263. #define BIT_RCR2_CBSSID_DATA BIT(21)
  49264. #define BIT_RCR2_ADD3 BIT(20)
  49265. #define BIT_RCR2_AB BIT(19)
  49266. #define BIT_RCR2_AM BIT(18)
  49267. #define BIT_RCR2_APM BIT(17)
  49268. #define BIT_RCR2_AAP BIT(16)
  49269. #define BIT_RCR1_AAMSDU BIT(9)
  49270. #define BIT_RCR1_CBSSID_BCN BIT(8)
  49271. #define BIT_RCR1_ACRC32 BIT(7)
  49272. #define BIT_RCR1_TA_BCN BIT(6)
  49273. #define BIT_RCR1_CBSSID_DATA BIT(5)
  49274. #define BIT_RCR1_ADD3 BIT(4)
  49275. #define BIT_RCR1_AB BIT(3)
  49276. #define BIT_RCR1_AM BIT(2)
  49277. #define BIT_RCR1_APM BIT(1)
  49278. #define BIT_RCR1_AAP BIT(0)
  49279. /* 2 REG_ADDRCAM_WRITE_CONTENT (Offset 0x166C) */
  49280. #define BIT_SHIFT_ADDRCAM_WDATA 0
  49281. #define BIT_MASK_ADDRCAM_WDATA 0xffffffffL
  49282. #define BIT_ADDRCAM_WDATA(x) \
  49283. (((x) & BIT_MASK_ADDRCAM_WDATA) << BIT_SHIFT_ADDRCAM_WDATA)
  49284. #define BITS_ADDRCAM_WDATA (BIT_MASK_ADDRCAM_WDATA << BIT_SHIFT_ADDRCAM_WDATA)
  49285. #define BIT_CLEAR_ADDRCAM_WDATA(x) ((x) & (~BITS_ADDRCAM_WDATA))
  49286. #define BIT_GET_ADDRCAM_WDATA(x) \
  49287. (((x) >> BIT_SHIFT_ADDRCAM_WDATA) & BIT_MASK_ADDRCAM_WDATA)
  49288. #define BIT_SET_ADDRCAM_WDATA(x, v) \
  49289. (BIT_CLEAR_ADDRCAM_WDATA(x) | BIT_ADDRCAM_WDATA(v))
  49290. /* 2 REG_ADDRCAM_READ_CONTENT (Offset 0x1670) */
  49291. #define BIT_SHIFT_ADDRCAM_RDATA 0
  49292. #define BIT_MASK_ADDRCAM_RDATA 0xffffffffL
  49293. #define BIT_ADDRCAM_RDATA(x) \
  49294. (((x) & BIT_MASK_ADDRCAM_RDATA) << BIT_SHIFT_ADDRCAM_RDATA)
  49295. #define BITS_ADDRCAM_RDATA (BIT_MASK_ADDRCAM_RDATA << BIT_SHIFT_ADDRCAM_RDATA)
  49296. #define BIT_CLEAR_ADDRCAM_RDATA(x) ((x) & (~BITS_ADDRCAM_RDATA))
  49297. #define BIT_GET_ADDRCAM_RDATA(x) \
  49298. (((x) >> BIT_SHIFT_ADDRCAM_RDATA) & BIT_MASK_ADDRCAM_RDATA)
  49299. #define BIT_SET_ADDRCAM_RDATA(x, v) \
  49300. (BIT_CLEAR_ADDRCAM_RDATA(x) | BIT_ADDRCAM_RDATA(v))
  49301. /* 2 REG_ADDRCAM_CFG (Offset 0x1674) */
  49302. #define BIT_ADDRCAM_POLL BIT(31)
  49303. #define BIT__ADDRCAM_WT_EN BIT(30)
  49304. #define BIT_CLRADDRCAM BIT(29)
  49305. #define BIT_SHIFT__ADDRCAM_ADDR 8
  49306. #define BIT_MASK__ADDRCAM_ADDR 0x3ff
  49307. #define BIT__ADDRCAM_ADDR(x) \
  49308. (((x) & BIT_MASK__ADDRCAM_ADDR) << BIT_SHIFT__ADDRCAM_ADDR)
  49309. #define BITS__ADDRCAM_ADDR (BIT_MASK__ADDRCAM_ADDR << BIT_SHIFT__ADDRCAM_ADDR)
  49310. #define BIT_CLEAR__ADDRCAM_ADDR(x) ((x) & (~BITS__ADDRCAM_ADDR))
  49311. #define BIT_GET__ADDRCAM_ADDR(x) \
  49312. (((x) >> BIT_SHIFT__ADDRCAM_ADDR) & BIT_MASK__ADDRCAM_ADDR)
  49313. #define BIT_SET__ADDRCAM_ADDR(x, v) \
  49314. (BIT_CLEAR__ADDRCAM_ADDR(x) | BIT__ADDRCAM_ADDR(v))
  49315. #define BIT_SHIFT_ADDRCAM_RANGE 0
  49316. #define BIT_MASK_ADDRCAM_RANGE 0x7f
  49317. #define BIT_ADDRCAM_RANGE(x) \
  49318. (((x) & BIT_MASK_ADDRCAM_RANGE) << BIT_SHIFT_ADDRCAM_RANGE)
  49319. #define BITS_ADDRCAM_RANGE (BIT_MASK_ADDRCAM_RANGE << BIT_SHIFT_ADDRCAM_RANGE)
  49320. #define BIT_CLEAR_ADDRCAM_RANGE(x) ((x) & (~BITS_ADDRCAM_RANGE))
  49321. #define BIT_GET_ADDRCAM_RANGE(x) \
  49322. (((x) >> BIT_SHIFT_ADDRCAM_RANGE) & BIT_MASK_ADDRCAM_RANGE)
  49323. #define BIT_SET_ADDRCAM_RANGE(x, v) \
  49324. (BIT_CLEAR_ADDRCAM_RANGE(x) | BIT_ADDRCAM_RANGE(v))
  49325. #endif
  49326. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  49327. /* 2 REG_CSI_RRSR (Offset 0x1678) */
  49328. #define BIT_CSI_LDPC_EN BIT(29)
  49329. #define BIT_CSI_STBC_EN BIT(28)
  49330. #define BIT_SHIFT_CSI_RRSC_BITMAP 4
  49331. #define BIT_MASK_CSI_RRSC_BITMAP 0xffffff
  49332. #define BIT_CSI_RRSC_BITMAP(x) \
  49333. (((x) & BIT_MASK_CSI_RRSC_BITMAP) << BIT_SHIFT_CSI_RRSC_BITMAP)
  49334. #define BITS_CSI_RRSC_BITMAP \
  49335. (BIT_MASK_CSI_RRSC_BITMAP << BIT_SHIFT_CSI_RRSC_BITMAP)
  49336. #define BIT_CLEAR_CSI_RRSC_BITMAP(x) ((x) & (~BITS_CSI_RRSC_BITMAP))
  49337. #define BIT_GET_CSI_RRSC_BITMAP(x) \
  49338. (((x) >> BIT_SHIFT_CSI_RRSC_BITMAP) & BIT_MASK_CSI_RRSC_BITMAP)
  49339. #define BIT_SET_CSI_RRSC_BITMAP(x, v) \
  49340. (BIT_CLEAR_CSI_RRSC_BITMAP(x) | BIT_CSI_RRSC_BITMAP(v))
  49341. #define BIT_SHIFT_OFDM_LEN_TH 0
  49342. #define BIT_MASK_OFDM_LEN_TH 0xf
  49343. #define BIT_OFDM_LEN_TH(x) \
  49344. (((x) & BIT_MASK_OFDM_LEN_TH) << BIT_SHIFT_OFDM_LEN_TH)
  49345. #define BITS_OFDM_LEN_TH (BIT_MASK_OFDM_LEN_TH << BIT_SHIFT_OFDM_LEN_TH)
  49346. #define BIT_CLEAR_OFDM_LEN_TH(x) ((x) & (~BITS_OFDM_LEN_TH))
  49347. #define BIT_GET_OFDM_LEN_TH(x) \
  49348. (((x) >> BIT_SHIFT_OFDM_LEN_TH) & BIT_MASK_OFDM_LEN_TH)
  49349. #define BIT_SET_OFDM_LEN_TH(x, v) \
  49350. (BIT_CLEAR_OFDM_LEN_TH(x) | BIT_OFDM_LEN_TH(v))
  49351. #define BIT_SHIFT_WMAC_MULBK_PAGE_SIZE 0
  49352. #define BIT_MASK_WMAC_MULBK_PAGE_SIZE 0xff
  49353. #define BIT_WMAC_MULBK_PAGE_SIZE(x) \
  49354. (((x) & BIT_MASK_WMAC_MULBK_PAGE_SIZE) \
  49355. << BIT_SHIFT_WMAC_MULBK_PAGE_SIZE)
  49356. #define BITS_WMAC_MULBK_PAGE_SIZE \
  49357. (BIT_MASK_WMAC_MULBK_PAGE_SIZE << BIT_SHIFT_WMAC_MULBK_PAGE_SIZE)
  49358. #define BIT_CLEAR_WMAC_MULBK_PAGE_SIZE(x) ((x) & (~BITS_WMAC_MULBK_PAGE_SIZE))
  49359. #define BIT_GET_WMAC_MULBK_PAGE_SIZE(x) \
  49360. (((x) >> BIT_SHIFT_WMAC_MULBK_PAGE_SIZE) & \
  49361. BIT_MASK_WMAC_MULBK_PAGE_SIZE)
  49362. #define BIT_SET_WMAC_MULBK_PAGE_SIZE(x, v) \
  49363. (BIT_CLEAR_WMAC_MULBK_PAGE_SIZE(x) | BIT_WMAC_MULBK_PAGE_SIZE(v))
  49364. #endif
  49365. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49366. /* 2 REG_WMAC_MU_BF_OPTION (Offset 0x167C) */
  49367. #define BIT_BIT_WMAC_TXMU_ACKPOLICY_EN BIT(6)
  49368. #endif
  49369. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49370. HALMAC_8822C_SUPPORT)
  49371. /* 2 REG_MU_BF_OPTION (Offset 0x167C) */
  49372. #define BIT_WMAC_TXMU_ACKPOLICY_EN BIT(6)
  49373. #endif
  49374. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49375. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49376. HALMAC_8822C_SUPPORT)
  49377. /* 2 REG_WMAC_PAUSE_BB_CLR_TH (Offset 0x167D) */
  49378. #define BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH 0
  49379. #define BIT_MASK_WMAC_PAUSE_BB_CLR_TH 0xff
  49380. #define BIT_WMAC_PAUSE_BB_CLR_TH(x) \
  49381. (((x) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH) \
  49382. << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH)
  49383. #define BITS_WMAC_PAUSE_BB_CLR_TH \
  49384. (BIT_MASK_WMAC_PAUSE_BB_CLR_TH << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH)
  49385. #define BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH(x) ((x) & (~BITS_WMAC_PAUSE_BB_CLR_TH))
  49386. #define BIT_GET_WMAC_PAUSE_BB_CLR_TH(x) \
  49387. (((x) >> BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH) & \
  49388. BIT_MASK_WMAC_PAUSE_BB_CLR_TH)
  49389. #define BIT_SET_WMAC_PAUSE_BB_CLR_TH(x, v) \
  49390. (BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH(x) | BIT_WMAC_PAUSE_BB_CLR_TH(v))
  49391. #endif
  49392. #if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  49393. /* 2 REG_WMAC_MU_ARB (Offset 0x167E) */
  49394. #define BIT_WMAC_ARB_HW_ADAPT_EN BIT(7)
  49395. #define BIT_WMAC_ARB_SW_EN BIT(6)
  49396. #define BIT_SHIFT_WMAC_ARB_SW_STATE 0
  49397. #define BIT_MASK_WMAC_ARB_SW_STATE 0x3f
  49398. #define BIT_WMAC_ARB_SW_STATE(x) \
  49399. (((x) & BIT_MASK_WMAC_ARB_SW_STATE) << BIT_SHIFT_WMAC_ARB_SW_STATE)
  49400. #define BITS_WMAC_ARB_SW_STATE \
  49401. (BIT_MASK_WMAC_ARB_SW_STATE << BIT_SHIFT_WMAC_ARB_SW_STATE)
  49402. #define BIT_CLEAR_WMAC_ARB_SW_STATE(x) ((x) & (~BITS_WMAC_ARB_SW_STATE))
  49403. #define BIT_GET_WMAC_ARB_SW_STATE(x) \
  49404. (((x) >> BIT_SHIFT_WMAC_ARB_SW_STATE) & BIT_MASK_WMAC_ARB_SW_STATE)
  49405. #define BIT_SET_WMAC_ARB_SW_STATE(x, v) \
  49406. (BIT_CLEAR_WMAC_ARB_SW_STATE(x) | BIT_WMAC_ARB_SW_STATE(v))
  49407. #endif
  49408. #if (HALMAC_8814B_SUPPORT)
  49409. /* 2 REG_WMAC_MU_OPTION (Offset 0x167F) */
  49410. #define BIT_NOCHK_BFPOLL_BMP BIT(7)
  49411. #endif
  49412. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || \
  49413. HALMAC_8822B_SUPPORT)
  49414. /* 2 REG_WMAC_MU_OPTION (Offset 0x167F) */
  49415. #define BIT_SHIFT_WMAC_MU_DBGSEL 5
  49416. #define BIT_MASK_WMAC_MU_DBGSEL 0x3
  49417. #define BIT_WMAC_MU_DBGSEL(x) \
  49418. (((x) & BIT_MASK_WMAC_MU_DBGSEL) << BIT_SHIFT_WMAC_MU_DBGSEL)
  49419. #define BITS_WMAC_MU_DBGSEL \
  49420. (BIT_MASK_WMAC_MU_DBGSEL << BIT_SHIFT_WMAC_MU_DBGSEL)
  49421. #define BIT_CLEAR_WMAC_MU_DBGSEL(x) ((x) & (~BITS_WMAC_MU_DBGSEL))
  49422. #define BIT_GET_WMAC_MU_DBGSEL(x) \
  49423. (((x) >> BIT_SHIFT_WMAC_MU_DBGSEL) & BIT_MASK_WMAC_MU_DBGSEL)
  49424. #define BIT_SET_WMAC_MU_DBGSEL(x, v) \
  49425. (BIT_CLEAR_WMAC_MU_DBGSEL(x) | BIT_WMAC_MU_DBGSEL(v))
  49426. #endif
  49427. #if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  49428. /* 2 REG_WMAC_MU_OPTION (Offset 0x167F) */
  49429. #define BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT 0
  49430. #define BIT_MASK_WMAC_MU_CPRD_TIMEOUT 0x1f
  49431. #define BIT_WMAC_MU_CPRD_TIMEOUT(x) \
  49432. (((x) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT) \
  49433. << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT)
  49434. #define BITS_WMAC_MU_CPRD_TIMEOUT \
  49435. (BIT_MASK_WMAC_MU_CPRD_TIMEOUT << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT)
  49436. #define BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT(x) ((x) & (~BITS_WMAC_MU_CPRD_TIMEOUT))
  49437. #define BIT_GET_WMAC_MU_CPRD_TIMEOUT(x) \
  49438. (((x) >> BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT) & \
  49439. BIT_MASK_WMAC_MU_CPRD_TIMEOUT)
  49440. #define BIT_SET_WMAC_MU_CPRD_TIMEOUT(x, v) \
  49441. (BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT(x) | BIT_WMAC_MU_CPRD_TIMEOUT(v))
  49442. #endif
  49443. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49444. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49445. HALMAC_8822C_SUPPORT)
  49446. /* 2 REG_WMAC_MU_BF_CTL (Offset 0x1680) */
  49447. #define BIT_WMAC_INVLD_BFPRT_CHK BIT(15)
  49448. #define BIT_WMAC_RETXBFRPTSEQ_UPD BIT(14)
  49449. #define BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL 12
  49450. #define BIT_MASK_WMAC_MU_BFRPTSEG_SEL 0x3
  49451. #define BIT_WMAC_MU_BFRPTSEG_SEL(x) \
  49452. (((x) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL) \
  49453. << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL)
  49454. #define BITS_WMAC_MU_BFRPTSEG_SEL \
  49455. (BIT_MASK_WMAC_MU_BFRPTSEG_SEL << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL)
  49456. #define BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL(x) ((x) & (~BITS_WMAC_MU_BFRPTSEG_SEL))
  49457. #define BIT_GET_WMAC_MU_BFRPTSEG_SEL(x) \
  49458. (((x) >> BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL) & \
  49459. BIT_MASK_WMAC_MU_BFRPTSEG_SEL)
  49460. #define BIT_SET_WMAC_MU_BFRPTSEG_SEL(x, v) \
  49461. (BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL(x) | BIT_WMAC_MU_BFRPTSEG_SEL(v))
  49462. #define BIT_SHIFT_WMAC_MU_BF_MYAID 0
  49463. #define BIT_MASK_WMAC_MU_BF_MYAID 0xfff
  49464. #define BIT_WMAC_MU_BF_MYAID(x) \
  49465. (((x) & BIT_MASK_WMAC_MU_BF_MYAID) << BIT_SHIFT_WMAC_MU_BF_MYAID)
  49466. #define BITS_WMAC_MU_BF_MYAID \
  49467. (BIT_MASK_WMAC_MU_BF_MYAID << BIT_SHIFT_WMAC_MU_BF_MYAID)
  49468. #define BIT_CLEAR_WMAC_MU_BF_MYAID(x) ((x) & (~BITS_WMAC_MU_BF_MYAID))
  49469. #define BIT_GET_WMAC_MU_BF_MYAID(x) \
  49470. (((x) >> BIT_SHIFT_WMAC_MU_BF_MYAID) & BIT_MASK_WMAC_MU_BF_MYAID)
  49471. #define BIT_SET_WMAC_MU_BF_MYAID(x, v) \
  49472. (BIT_CLEAR_WMAC_MU_BF_MYAID(x) | BIT_WMAC_MU_BF_MYAID(v))
  49473. #endif
  49474. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  49475. HALMAC_8822C_SUPPORT)
  49476. /* 2 REG_WMAC_MU_BFRPT_PARA (Offset 0x1682) */
  49477. #define BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1 13
  49478. #define BIT_MASK_BFRPT_PARA_USERID_SEL_V1 0x7
  49479. #define BIT_BFRPT_PARA_USERID_SEL_V1(x) \
  49480. (((x) & BIT_MASK_BFRPT_PARA_USERID_SEL_V1) \
  49481. << BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1)
  49482. #define BITS_BFRPT_PARA_USERID_SEL_V1 \
  49483. (BIT_MASK_BFRPT_PARA_USERID_SEL_V1 \
  49484. << BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1)
  49485. #define BIT_CLEAR_BFRPT_PARA_USERID_SEL_V1(x) \
  49486. ((x) & (~BITS_BFRPT_PARA_USERID_SEL_V1))
  49487. #define BIT_GET_BFRPT_PARA_USERID_SEL_V1(x) \
  49488. (((x) >> BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1) & \
  49489. BIT_MASK_BFRPT_PARA_USERID_SEL_V1)
  49490. #define BIT_SET_BFRPT_PARA_USERID_SEL_V1(x, v) \
  49491. (BIT_CLEAR_BFRPT_PARA_USERID_SEL_V1(x) | \
  49492. BIT_BFRPT_PARA_USERID_SEL_V1(v))
  49493. #endif
  49494. #if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT)
  49495. /* 2 REG_WMAC_MU_BFRPT_PARA (Offset 0x1682) */
  49496. #define BIT_SHIFT_BFRPT_PARA_USERID_SEL 12
  49497. #define BIT_MASK_BFRPT_PARA_USERID_SEL 0x7
  49498. #define BIT_BFRPT_PARA_USERID_SEL(x) \
  49499. (((x) & BIT_MASK_BFRPT_PARA_USERID_SEL) \
  49500. << BIT_SHIFT_BFRPT_PARA_USERID_SEL)
  49501. #define BITS_BFRPT_PARA_USERID_SEL \
  49502. (BIT_MASK_BFRPT_PARA_USERID_SEL << BIT_SHIFT_BFRPT_PARA_USERID_SEL)
  49503. #define BIT_CLEAR_BFRPT_PARA_USERID_SEL(x) ((x) & (~BITS_BFRPT_PARA_USERID_SEL))
  49504. #define BIT_GET_BFRPT_PARA_USERID_SEL(x) \
  49505. (((x) >> BIT_SHIFT_BFRPT_PARA_USERID_SEL) & \
  49506. BIT_MASK_BFRPT_PARA_USERID_SEL)
  49507. #define BIT_SET_BFRPT_PARA_USERID_SEL(x, v) \
  49508. (BIT_CLEAR_BFRPT_PARA_USERID_SEL(x) | BIT_BFRPT_PARA_USERID_SEL(v))
  49509. #endif
  49510. #if (HALMAC_8822B_SUPPORT)
  49511. /* 2 REG_WMAC_MU_BFRPT_PARA (Offset 0x1682) */
  49512. #define BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL 12
  49513. #define BIT_MASK_BIT_BFRPT_PARA_USERID_SEL 0x7
  49514. #define BIT_BIT_BFRPT_PARA_USERID_SEL(x) \
  49515. (((x) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL) \
  49516. << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL)
  49517. #define BITS_BIT_BFRPT_PARA_USERID_SEL \
  49518. (BIT_MASK_BIT_BFRPT_PARA_USERID_SEL \
  49519. << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL)
  49520. #define BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL(x) \
  49521. ((x) & (~BITS_BIT_BFRPT_PARA_USERID_SEL))
  49522. #define BIT_GET_BIT_BFRPT_PARA_USERID_SEL(x) \
  49523. (((x) >> BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL) & \
  49524. BIT_MASK_BIT_BFRPT_PARA_USERID_SEL)
  49525. #define BIT_SET_BIT_BFRPT_PARA_USERID_SEL(x, v) \
  49526. (BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL(x) | \
  49527. BIT_BIT_BFRPT_PARA_USERID_SEL(v))
  49528. #endif
  49529. #if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)
  49530. /* 2 REG_WMAC_MU_BFRPT_PARA (Offset 0x1682) */
  49531. #define BIT_SHIFT_BFRPT_PARA 0
  49532. #define BIT_MASK_BFRPT_PARA 0xfff
  49533. #define BIT_BFRPT_PARA(x) (((x) & BIT_MASK_BFRPT_PARA) << BIT_SHIFT_BFRPT_PARA)
  49534. #define BITS_BFRPT_PARA (BIT_MASK_BFRPT_PARA << BIT_SHIFT_BFRPT_PARA)
  49535. #define BIT_CLEAR_BFRPT_PARA(x) ((x) & (~BITS_BFRPT_PARA))
  49536. #define BIT_GET_BFRPT_PARA(x) \
  49537. (((x) >> BIT_SHIFT_BFRPT_PARA) & BIT_MASK_BFRPT_PARA)
  49538. #define BIT_SET_BFRPT_PARA(x, v) (BIT_CLEAR_BFRPT_PARA(x) | BIT_BFRPT_PARA(v))
  49539. #endif
  49540. #if (HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  49541. HALMAC_8822C_SUPPORT)
  49542. /* 2 REG_WMAC_MU_BFRPT_PARA (Offset 0x1682) */
  49543. #define BIT_SHIFT_BFRPT_PARA_V1 0
  49544. #define BIT_MASK_BFRPT_PARA_V1 0x1fff
  49545. #define BIT_BFRPT_PARA_V1(x) \
  49546. (((x) & BIT_MASK_BFRPT_PARA_V1) << BIT_SHIFT_BFRPT_PARA_V1)
  49547. #define BITS_BFRPT_PARA_V1 (BIT_MASK_BFRPT_PARA_V1 << BIT_SHIFT_BFRPT_PARA_V1)
  49548. #define BIT_CLEAR_BFRPT_PARA_V1(x) ((x) & (~BITS_BFRPT_PARA_V1))
  49549. #define BIT_GET_BFRPT_PARA_V1(x) \
  49550. (((x) >> BIT_SHIFT_BFRPT_PARA_V1) & BIT_MASK_BFRPT_PARA_V1)
  49551. #define BIT_SET_BFRPT_PARA_V1(x, v) \
  49552. (BIT_CLEAR_BFRPT_PARA_V1(x) | BIT_BFRPT_PARA_V1(v))
  49553. #endif
  49554. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49555. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49556. HALMAC_8822C_SUPPORT)
  49557. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2 (Offset 0x1684) */
  49558. #define BIT_STATUS_BFEE2 BIT(10)
  49559. #endif
  49560. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  49561. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  49562. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2 (Offset 0x1684) */
  49563. #define BIT_WMAC_MU_BFEE2_EN BIT(9)
  49564. #endif
  49565. #if (HALMAC_8198F_SUPPORT)
  49566. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2 (Offset 0x1684) */
  49567. #define BIT_WMAC_MU_BFEE2_USER_EN BIT(9)
  49568. #endif
  49569. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49570. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49571. HALMAC_8822C_SUPPORT)
  49572. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2 (Offset 0x1684) */
  49573. #define BIT_SHIFT_WMAC_MU_BFEE2_AID 0
  49574. #define BIT_MASK_WMAC_MU_BFEE2_AID 0x1ff
  49575. #define BIT_WMAC_MU_BFEE2_AID(x) \
  49576. (((x) & BIT_MASK_WMAC_MU_BFEE2_AID) << BIT_SHIFT_WMAC_MU_BFEE2_AID)
  49577. #define BITS_WMAC_MU_BFEE2_AID \
  49578. (BIT_MASK_WMAC_MU_BFEE2_AID << BIT_SHIFT_WMAC_MU_BFEE2_AID)
  49579. #define BIT_CLEAR_WMAC_MU_BFEE2_AID(x) ((x) & (~BITS_WMAC_MU_BFEE2_AID))
  49580. #define BIT_GET_WMAC_MU_BFEE2_AID(x) \
  49581. (((x) >> BIT_SHIFT_WMAC_MU_BFEE2_AID) & BIT_MASK_WMAC_MU_BFEE2_AID)
  49582. #define BIT_SET_WMAC_MU_BFEE2_AID(x, v) \
  49583. (BIT_CLEAR_WMAC_MU_BFEE2_AID(x) | BIT_WMAC_MU_BFEE2_AID(v))
  49584. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3 (Offset 0x1686) */
  49585. #define BIT_STATUS_BFEE3 BIT(10)
  49586. #endif
  49587. #if (HALMAC_8197F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  49588. HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  49589. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3 (Offset 0x1686) */
  49590. #define BIT_WMAC_MU_BFEE3_EN BIT(9)
  49591. #endif
  49592. #if (HALMAC_8198F_SUPPORT)
  49593. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3 (Offset 0x1686) */
  49594. #define BIT_WMAC_MU_BFEE3_USER_EN BIT(9)
  49595. #endif
  49596. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49597. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49598. HALMAC_8822C_SUPPORT)
  49599. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3 (Offset 0x1686) */
  49600. #define BIT_SHIFT_WMAC_MU_BFEE3_AID 0
  49601. #define BIT_MASK_WMAC_MU_BFEE3_AID 0x1ff
  49602. #define BIT_WMAC_MU_BFEE3_AID(x) \
  49603. (((x) & BIT_MASK_WMAC_MU_BFEE3_AID) << BIT_SHIFT_WMAC_MU_BFEE3_AID)
  49604. #define BITS_WMAC_MU_BFEE3_AID \
  49605. (BIT_MASK_WMAC_MU_BFEE3_AID << BIT_SHIFT_WMAC_MU_BFEE3_AID)
  49606. #define BIT_CLEAR_WMAC_MU_BFEE3_AID(x) ((x) & (~BITS_WMAC_MU_BFEE3_AID))
  49607. #define BIT_GET_WMAC_MU_BFEE3_AID(x) \
  49608. (((x) >> BIT_SHIFT_WMAC_MU_BFEE3_AID) & BIT_MASK_WMAC_MU_BFEE3_AID)
  49609. #define BIT_SET_WMAC_MU_BFEE3_AID(x, v) \
  49610. (BIT_CLEAR_WMAC_MU_BFEE3_AID(x) | BIT_WMAC_MU_BFEE3_AID(v))
  49611. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE4 (Offset 0x1688) */
  49612. #define BIT_STATUS_BFEE4 BIT(10)
  49613. #define BIT_WMAC_MU_BFEE4_EN BIT(9)
  49614. #define BIT_SHIFT_WMAC_MU_BFEE4_AID 0
  49615. #define BIT_MASK_WMAC_MU_BFEE4_AID 0x1ff
  49616. #define BIT_WMAC_MU_BFEE4_AID(x) \
  49617. (((x) & BIT_MASK_WMAC_MU_BFEE4_AID) << BIT_SHIFT_WMAC_MU_BFEE4_AID)
  49618. #define BITS_WMAC_MU_BFEE4_AID \
  49619. (BIT_MASK_WMAC_MU_BFEE4_AID << BIT_SHIFT_WMAC_MU_BFEE4_AID)
  49620. #define BIT_CLEAR_WMAC_MU_BFEE4_AID(x) ((x) & (~BITS_WMAC_MU_BFEE4_AID))
  49621. #define BIT_GET_WMAC_MU_BFEE4_AID(x) \
  49622. (((x) >> BIT_SHIFT_WMAC_MU_BFEE4_AID) & BIT_MASK_WMAC_MU_BFEE4_AID)
  49623. #define BIT_SET_WMAC_MU_BFEE4_AID(x, v) \
  49624. (BIT_CLEAR_WMAC_MU_BFEE4_AID(x) | BIT_WMAC_MU_BFEE4_AID(v))
  49625. #endif
  49626. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49627. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5 (Offset 0x168A) */
  49628. #define BIT_STATUS_BFEE5 BIT(10)
  49629. #endif
  49630. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49631. HALMAC_8822C_SUPPORT)
  49632. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5 (Offset 0x168A) */
  49633. #define BIT_BIT_STATUS_BFEE5 BIT(10)
  49634. #endif
  49635. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49636. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49637. HALMAC_8822C_SUPPORT)
  49638. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5 (Offset 0x168A) */
  49639. #define BIT_WMAC_MU_BFEE5_EN BIT(9)
  49640. #define BIT_SHIFT_WMAC_MU_BFEE5_AID 0
  49641. #define BIT_MASK_WMAC_MU_BFEE5_AID 0x1ff
  49642. #define BIT_WMAC_MU_BFEE5_AID(x) \
  49643. (((x) & BIT_MASK_WMAC_MU_BFEE5_AID) << BIT_SHIFT_WMAC_MU_BFEE5_AID)
  49644. #define BITS_WMAC_MU_BFEE5_AID \
  49645. (BIT_MASK_WMAC_MU_BFEE5_AID << BIT_SHIFT_WMAC_MU_BFEE5_AID)
  49646. #define BIT_CLEAR_WMAC_MU_BFEE5_AID(x) ((x) & (~BITS_WMAC_MU_BFEE5_AID))
  49647. #define BIT_GET_WMAC_MU_BFEE5_AID(x) \
  49648. (((x) >> BIT_SHIFT_WMAC_MU_BFEE5_AID) & BIT_MASK_WMAC_MU_BFEE5_AID)
  49649. #define BIT_SET_WMAC_MU_BFEE5_AID(x, v) \
  49650. (BIT_CLEAR_WMAC_MU_BFEE5_AID(x) | BIT_WMAC_MU_BFEE5_AID(v))
  49651. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE6 (Offset 0x168C) */
  49652. #define BIT_STATUS_BFEE6 BIT(10)
  49653. #define BIT_WMAC_MU_BFEE6_EN BIT(9)
  49654. #define BIT_SHIFT_WMAC_MU_BFEE6_AID 0
  49655. #define BIT_MASK_WMAC_MU_BFEE6_AID 0x1ff
  49656. #define BIT_WMAC_MU_BFEE6_AID(x) \
  49657. (((x) & BIT_MASK_WMAC_MU_BFEE6_AID) << BIT_SHIFT_WMAC_MU_BFEE6_AID)
  49658. #define BITS_WMAC_MU_BFEE6_AID \
  49659. (BIT_MASK_WMAC_MU_BFEE6_AID << BIT_SHIFT_WMAC_MU_BFEE6_AID)
  49660. #define BIT_CLEAR_WMAC_MU_BFEE6_AID(x) ((x) & (~BITS_WMAC_MU_BFEE6_AID))
  49661. #define BIT_GET_WMAC_MU_BFEE6_AID(x) \
  49662. (((x) >> BIT_SHIFT_WMAC_MU_BFEE6_AID) & BIT_MASK_WMAC_MU_BFEE6_AID)
  49663. #define BIT_SET_WMAC_MU_BFEE6_AID(x, v) \
  49664. (BIT_CLEAR_WMAC_MU_BFEE6_AID(x) | BIT_WMAC_MU_BFEE6_AID(v))
  49665. #endif
  49666. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
  49667. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7 (Offset 0x168E) */
  49668. #define BIT_BIT_STATUS_BFEE4 BIT(10)
  49669. #endif
  49670. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49671. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  49672. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7 (Offset 0x168E) */
  49673. #define BIT_STATUS_BFEE7 BIT(10)
  49674. #endif
  49675. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  49676. HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49677. HALMAC_8822C_SUPPORT)
  49678. /* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7 (Offset 0x168E) */
  49679. #define BIT_WMAC_MU_BFEE7_EN BIT(9)
  49680. #define BIT_SHIFT_WMAC_MU_BFEE7_AID 0
  49681. #define BIT_MASK_WMAC_MU_BFEE7_AID 0x1ff
  49682. #define BIT_WMAC_MU_BFEE7_AID(x) \
  49683. (((x) & BIT_MASK_WMAC_MU_BFEE7_AID) << BIT_SHIFT_WMAC_MU_BFEE7_AID)
  49684. #define BITS_WMAC_MU_BFEE7_AID \
  49685. (BIT_MASK_WMAC_MU_BFEE7_AID << BIT_SHIFT_WMAC_MU_BFEE7_AID)
  49686. #define BIT_CLEAR_WMAC_MU_BFEE7_AID(x) ((x) & (~BITS_WMAC_MU_BFEE7_AID))
  49687. #define BIT_GET_WMAC_MU_BFEE7_AID(x) \
  49688. (((x) >> BIT_SHIFT_WMAC_MU_BFEE7_AID) & BIT_MASK_WMAC_MU_BFEE7_AID)
  49689. #define BIT_SET_WMAC_MU_BFEE7_AID(x, v) \
  49690. (BIT_CLEAR_WMAC_MU_BFEE7_AID(x) | BIT_WMAC_MU_BFEE7_AID(v))
  49691. /* 2 REG_WMAC_BB_STOP_RX_COUNTER (Offset 0x1690) */
  49692. #define BIT_RST_ALL_COUNTER BIT(31)
  49693. #define BIT_SHIFT_ABORT_RX_VBON_COUNTER 16
  49694. #define BIT_MASK_ABORT_RX_VBON_COUNTER 0xff
  49695. #define BIT_ABORT_RX_VBON_COUNTER(x) \
  49696. (((x) & BIT_MASK_ABORT_RX_VBON_COUNTER) \
  49697. << BIT_SHIFT_ABORT_RX_VBON_COUNTER)
  49698. #define BITS_ABORT_RX_VBON_COUNTER \
  49699. (BIT_MASK_ABORT_RX_VBON_COUNTER << BIT_SHIFT_ABORT_RX_VBON_COUNTER)
  49700. #define BIT_CLEAR_ABORT_RX_VBON_COUNTER(x) ((x) & (~BITS_ABORT_RX_VBON_COUNTER))
  49701. #define BIT_GET_ABORT_RX_VBON_COUNTER(x) \
  49702. (((x) >> BIT_SHIFT_ABORT_RX_VBON_COUNTER) & \
  49703. BIT_MASK_ABORT_RX_VBON_COUNTER)
  49704. #define BIT_SET_ABORT_RX_VBON_COUNTER(x, v) \
  49705. (BIT_CLEAR_ABORT_RX_VBON_COUNTER(x) | BIT_ABORT_RX_VBON_COUNTER(v))
  49706. #define BIT_SHIFT_ABORT_RX_RDRDY_COUNTER 8
  49707. #define BIT_MASK_ABORT_RX_RDRDY_COUNTER 0xff
  49708. #define BIT_ABORT_RX_RDRDY_COUNTER(x) \
  49709. (((x) & BIT_MASK_ABORT_RX_RDRDY_COUNTER) \
  49710. << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER)
  49711. #define BITS_ABORT_RX_RDRDY_COUNTER \
  49712. (BIT_MASK_ABORT_RX_RDRDY_COUNTER << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER)
  49713. #define BIT_CLEAR_ABORT_RX_RDRDY_COUNTER(x) \
  49714. ((x) & (~BITS_ABORT_RX_RDRDY_COUNTER))
  49715. #define BIT_GET_ABORT_RX_RDRDY_COUNTER(x) \
  49716. (((x) >> BIT_SHIFT_ABORT_RX_RDRDY_COUNTER) & \
  49717. BIT_MASK_ABORT_RX_RDRDY_COUNTER)
  49718. #define BIT_SET_ABORT_RX_RDRDY_COUNTER(x, v) \
  49719. (BIT_CLEAR_ABORT_RX_RDRDY_COUNTER(x) | BIT_ABORT_RX_RDRDY_COUNTER(v))
  49720. #define BIT_SHIFT_VBON_EARLY_FALLING_COUNTER 0
  49721. #define BIT_MASK_VBON_EARLY_FALLING_COUNTER 0xff
  49722. #define BIT_VBON_EARLY_FALLING_COUNTER(x) \
  49723. (((x) & BIT_MASK_VBON_EARLY_FALLING_COUNTER) \
  49724. << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER)
  49725. #define BITS_VBON_EARLY_FALLING_COUNTER \
  49726. (BIT_MASK_VBON_EARLY_FALLING_COUNTER \
  49727. << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER)
  49728. #define BIT_CLEAR_VBON_EARLY_FALLING_COUNTER(x) \
  49729. ((x) & (~BITS_VBON_EARLY_FALLING_COUNTER))
  49730. #define BIT_GET_VBON_EARLY_FALLING_COUNTER(x) \
  49731. (((x) >> BIT_SHIFT_VBON_EARLY_FALLING_COUNTER) & \
  49732. BIT_MASK_VBON_EARLY_FALLING_COUNTER)
  49733. #define BIT_SET_VBON_EARLY_FALLING_COUNTER(x, v) \
  49734. (BIT_CLEAR_VBON_EARLY_FALLING_COUNTER(x) | \
  49735. BIT_VBON_EARLY_FALLING_COUNTER(v))
  49736. /* 2 REG_WMAC_PLCP_MONITOR (Offset 0x1694) */
  49737. #define BIT_WMAC_PLCP_TRX_SEL BIT(31)
  49738. #define BIT_SHIFT_WMAC_PLCP_RDSIG_SEL 28
  49739. #define BIT_MASK_WMAC_PLCP_RDSIG_SEL 0x7
  49740. #define BIT_WMAC_PLCP_RDSIG_SEL(x) \
  49741. (((x) & BIT_MASK_WMAC_PLCP_RDSIG_SEL) << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL)
  49742. #define BITS_WMAC_PLCP_RDSIG_SEL \
  49743. (BIT_MASK_WMAC_PLCP_RDSIG_SEL << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL)
  49744. #define BIT_CLEAR_WMAC_PLCP_RDSIG_SEL(x) ((x) & (~BITS_WMAC_PLCP_RDSIG_SEL))
  49745. #define BIT_GET_WMAC_PLCP_RDSIG_SEL(x) \
  49746. (((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_SEL) & BIT_MASK_WMAC_PLCP_RDSIG_SEL)
  49747. #define BIT_SET_WMAC_PLCP_RDSIG_SEL(x, v) \
  49748. (BIT_CLEAR_WMAC_PLCP_RDSIG_SEL(x) | BIT_WMAC_PLCP_RDSIG_SEL(v))
  49749. #define BIT_SHIFT_WMAC_RATE_IDX 24
  49750. #define BIT_MASK_WMAC_RATE_IDX 0xf
  49751. #define BIT_WMAC_RATE_IDX(x) \
  49752. (((x) & BIT_MASK_WMAC_RATE_IDX) << BIT_SHIFT_WMAC_RATE_IDX)
  49753. #define BITS_WMAC_RATE_IDX (BIT_MASK_WMAC_RATE_IDX << BIT_SHIFT_WMAC_RATE_IDX)
  49754. #define BIT_CLEAR_WMAC_RATE_IDX(x) ((x) & (~BITS_WMAC_RATE_IDX))
  49755. #define BIT_GET_WMAC_RATE_IDX(x) \
  49756. (((x) >> BIT_SHIFT_WMAC_RATE_IDX) & BIT_MASK_WMAC_RATE_IDX)
  49757. #define BIT_SET_WMAC_RATE_IDX(x, v) \
  49758. (BIT_CLEAR_WMAC_RATE_IDX(x) | BIT_WMAC_RATE_IDX(v))
  49759. #define BIT_SHIFT_WMAC_PLCP_RDSIG 0
  49760. #define BIT_MASK_WMAC_PLCP_RDSIG 0xffffff
  49761. #define BIT_WMAC_PLCP_RDSIG(x) \
  49762. (((x) & BIT_MASK_WMAC_PLCP_RDSIG) << BIT_SHIFT_WMAC_PLCP_RDSIG)
  49763. #define BITS_WMAC_PLCP_RDSIG \
  49764. (BIT_MASK_WMAC_PLCP_RDSIG << BIT_SHIFT_WMAC_PLCP_RDSIG)
  49765. #define BIT_CLEAR_WMAC_PLCP_RDSIG(x) ((x) & (~BITS_WMAC_PLCP_RDSIG))
  49766. #define BIT_GET_WMAC_PLCP_RDSIG(x) \
  49767. (((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG) & BIT_MASK_WMAC_PLCP_RDSIG)
  49768. #define BIT_SET_WMAC_PLCP_RDSIG(x, v) \
  49769. (BIT_CLEAR_WMAC_PLCP_RDSIG(x) | BIT_WMAC_PLCP_RDSIG(v))
  49770. #endif
  49771. #if (HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  49772. HALMAC_8822C_SUPPORT)
  49773. /* 2 REG_WMAC_PLCP_MONITOR_MUTX (Offset 0x1698) */
  49774. #define BIT_WMAC_MUTX_IDX BIT(24)
  49775. #endif
  49776. #if (HALMAC_8814B_SUPPORT)
  49777. /* 2 REG_WMAC_DEBUG_PORT (Offset 0x1698) */
  49778. #define BIT_SHIFT_WMAC_DEBUG_PORT 0
  49779. #define BIT_MASK_WMAC_DEBUG_PORT 0xffffffffL
  49780. #define BIT_WMAC_DEBUG_PORT(x) \
  49781. (((x) & BIT_MASK_WMAC_DEBUG_PORT) << BIT_SHIFT_WMAC_DEBUG_PORT)
  49782. #define BITS_WMAC_DEBUG_PORT \
  49783. (BIT_MASK_WMAC_DEBUG_PORT << BIT_SHIFT_WMAC_DEBUG_PORT)
  49784. #define BIT_CLEAR_WMAC_DEBUG_PORT(x) ((x) & (~BITS_WMAC_DEBUG_PORT))
  49785. #define BIT_GET_WMAC_DEBUG_PORT(x) \
  49786. (((x) >> BIT_SHIFT_WMAC_DEBUG_PORT) & BIT_MASK_WMAC_DEBUG_PORT)
  49787. #define BIT_SET_WMAC_DEBUG_PORT(x, v) \
  49788. (BIT_CLEAR_WMAC_DEBUG_PORT(x) | BIT_WMAC_DEBUG_PORT(v))
  49789. #endif
  49790. #if (HALMAC_8812F_SUPPORT || HALMAC_8822C_SUPPORT)
  49791. /* 2 REG_WMAC_CSIDMA_CFG (Offset 0x169C) */
  49792. #define BIT_SHIFT_CSI_SEG_SIZE 16
  49793. #define BIT_MASK_CSI_SEG_SIZE 0xfff
  49794. #define BIT_CSI_SEG_SIZE(x) \
  49795. (((x) & BIT_MASK_CSI_SEG_SIZE) << BIT_SHIFT_CSI_SEG_SIZE)
  49796. #define BITS_CSI_SEG_SIZE (BIT_MASK_CSI_SEG_SIZE << BIT_SHIFT_CSI_SEG_SIZE)
  49797. #define BIT_CLEAR_CSI_SEG_SIZE(x) ((x) & (~BITS_CSI_SEG_SIZE))
  49798. #define BIT_GET_CSI_SEG_SIZE(x) \
  49799. (((x) >> BIT_SHIFT_CSI_SEG_SIZE) & BIT_MASK_CSI_SEG_SIZE)
  49800. #define BIT_SET_CSI_SEG_SIZE(x, v) \
  49801. (BIT_CLEAR_CSI_SEG_SIZE(x) | BIT_CSI_SEG_SIZE(v))
  49802. #define BIT_SHIFT_CSI_START_PAGE 0
  49803. #define BIT_MASK_CSI_START_PAGE 0xfff
  49804. #define BIT_CSI_START_PAGE(x) \
  49805. (((x) & BIT_MASK_CSI_START_PAGE) << BIT_SHIFT_CSI_START_PAGE)
  49806. #define BITS_CSI_START_PAGE \
  49807. (BIT_MASK_CSI_START_PAGE << BIT_SHIFT_CSI_START_PAGE)
  49808. #define BIT_CLEAR_CSI_START_PAGE(x) ((x) & (~BITS_CSI_START_PAGE))
  49809. #define BIT_GET_CSI_START_PAGE(x) \
  49810. (((x) >> BIT_SHIFT_CSI_START_PAGE) & BIT_MASK_CSI_START_PAGE)
  49811. #define BIT_SET_CSI_START_PAGE(x, v) \
  49812. (BIT_CLEAR_CSI_START_PAGE(x) | BIT_CSI_START_PAGE(v))
  49813. #endif
  49814. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49815. /* 2 REG_TRANSMIT_ADDRSS_0 (Offset 0x16A0) */
  49816. #define BIT_SHIFT_TA0 0
  49817. #define BIT_MASK_TA0 0xffffffffffffL
  49818. #define BIT_TA0(x) (((x) & BIT_MASK_TA0) << BIT_SHIFT_TA0)
  49819. #define BITS_TA0 (BIT_MASK_TA0 << BIT_SHIFT_TA0)
  49820. #define BIT_CLEAR_TA0(x) ((x) & (~BITS_TA0))
  49821. #define BIT_GET_TA0(x) (((x) >> BIT_SHIFT_TA0) & BIT_MASK_TA0)
  49822. #define BIT_SET_TA0(x, v) (BIT_CLEAR_TA0(x) | BIT_TA0(v))
  49823. #endif
  49824. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49825. HALMAC_8822C_SUPPORT)
  49826. /* 2 REG_TRANSMIT_ADDRSS_0 (Offset 0x16A0) */
  49827. #define BIT_SHIFT_TA0_V1 0
  49828. #define BIT_MASK_TA0_V1 0xffffffffL
  49829. #define BIT_TA0_V1(x) (((x) & BIT_MASK_TA0_V1) << BIT_SHIFT_TA0_V1)
  49830. #define BITS_TA0_V1 (BIT_MASK_TA0_V1 << BIT_SHIFT_TA0_V1)
  49831. #define BIT_CLEAR_TA0_V1(x) ((x) & (~BITS_TA0_V1))
  49832. #define BIT_GET_TA0_V1(x) (((x) >> BIT_SHIFT_TA0_V1) & BIT_MASK_TA0_V1)
  49833. #define BIT_SET_TA0_V1(x, v) (BIT_CLEAR_TA0_V1(x) | BIT_TA0_V1(v))
  49834. /* 2 REG_TRANSMIT_ADDRSS_0_H (Offset 0x16A4) */
  49835. #define BIT_SHIFT_TA0_H_V1 0
  49836. #define BIT_MASK_TA0_H_V1 0xffff
  49837. #define BIT_TA0_H_V1(x) (((x) & BIT_MASK_TA0_H_V1) << BIT_SHIFT_TA0_H_V1)
  49838. #define BITS_TA0_H_V1 (BIT_MASK_TA0_H_V1 << BIT_SHIFT_TA0_H_V1)
  49839. #define BIT_CLEAR_TA0_H_V1(x) ((x) & (~BITS_TA0_H_V1))
  49840. #define BIT_GET_TA0_H_V1(x) (((x) >> BIT_SHIFT_TA0_H_V1) & BIT_MASK_TA0_H_V1)
  49841. #define BIT_SET_TA0_H_V1(x, v) (BIT_CLEAR_TA0_H_V1(x) | BIT_TA0_H_V1(v))
  49842. #endif
  49843. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49844. /* 2 REG_TRANSMIT_ADDRSS_1 (Offset 0x16A8) */
  49845. #define BIT_SHIFT_TA1 0
  49846. #define BIT_MASK_TA1 0xffffffffffffL
  49847. #define BIT_TA1(x) (((x) & BIT_MASK_TA1) << BIT_SHIFT_TA1)
  49848. #define BITS_TA1 (BIT_MASK_TA1 << BIT_SHIFT_TA1)
  49849. #define BIT_CLEAR_TA1(x) ((x) & (~BITS_TA1))
  49850. #define BIT_GET_TA1(x) (((x) >> BIT_SHIFT_TA1) & BIT_MASK_TA1)
  49851. #define BIT_SET_TA1(x, v) (BIT_CLEAR_TA1(x) | BIT_TA1(v))
  49852. #endif
  49853. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49854. HALMAC_8822C_SUPPORT)
  49855. /* 2 REG_TRANSMIT_ADDRSS_1 (Offset 0x16A8) */
  49856. #define BIT_SHIFT_TA1_V1 0
  49857. #define BIT_MASK_TA1_V1 0xffffffffL
  49858. #define BIT_TA1_V1(x) (((x) & BIT_MASK_TA1_V1) << BIT_SHIFT_TA1_V1)
  49859. #define BITS_TA1_V1 (BIT_MASK_TA1_V1 << BIT_SHIFT_TA1_V1)
  49860. #define BIT_CLEAR_TA1_V1(x) ((x) & (~BITS_TA1_V1))
  49861. #define BIT_GET_TA1_V1(x) (((x) >> BIT_SHIFT_TA1_V1) & BIT_MASK_TA1_V1)
  49862. #define BIT_SET_TA1_V1(x, v) (BIT_CLEAR_TA1_V1(x) | BIT_TA1_V1(v))
  49863. /* 2 REG_TRANSMIT_ADDRSS_1_H (Offset 0x16AC) */
  49864. #define BIT_SHIFT_TA1_H_V1 0
  49865. #define BIT_MASK_TA1_H_V1 0xffff
  49866. #define BIT_TA1_H_V1(x) (((x) & BIT_MASK_TA1_H_V1) << BIT_SHIFT_TA1_H_V1)
  49867. #define BITS_TA1_H_V1 (BIT_MASK_TA1_H_V1 << BIT_SHIFT_TA1_H_V1)
  49868. #define BIT_CLEAR_TA1_H_V1(x) ((x) & (~BITS_TA1_H_V1))
  49869. #define BIT_GET_TA1_H_V1(x) (((x) >> BIT_SHIFT_TA1_H_V1) & BIT_MASK_TA1_H_V1)
  49870. #define BIT_SET_TA1_H_V1(x, v) (BIT_CLEAR_TA1_H_V1(x) | BIT_TA1_H_V1(v))
  49871. #define BIT_SHIFT_TA2_V1 0
  49872. #define BIT_MASK_TA2_V1 0xffffffffL
  49873. #define BIT_TA2_V1(x) (((x) & BIT_MASK_TA2_V1) << BIT_SHIFT_TA2_V1)
  49874. #define BITS_TA2_V1 (BIT_MASK_TA2_V1 << BIT_SHIFT_TA2_V1)
  49875. #define BIT_CLEAR_TA2_V1(x) ((x) & (~BITS_TA2_V1))
  49876. #define BIT_GET_TA2_V1(x) (((x) >> BIT_SHIFT_TA2_V1) & BIT_MASK_TA2_V1)
  49877. #define BIT_SET_TA2_V1(x, v) (BIT_CLEAR_TA2_V1(x) | BIT_TA2_V1(v))
  49878. #endif
  49879. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49880. /* 2 REG_TRANSMIT_ADDRSS_2 (Offset 0x16B0) */
  49881. #define BIT_SHIFT_TA2 0
  49882. #define BIT_MASK_TA2 0xffffffffffffL
  49883. #define BIT_TA2(x) (((x) & BIT_MASK_TA2) << BIT_SHIFT_TA2)
  49884. #define BITS_TA2 (BIT_MASK_TA2 << BIT_SHIFT_TA2)
  49885. #define BIT_CLEAR_TA2(x) ((x) & (~BITS_TA2))
  49886. #define BIT_GET_TA2(x) (((x) >> BIT_SHIFT_TA2) & BIT_MASK_TA2)
  49887. #define BIT_SET_TA2(x, v) (BIT_CLEAR_TA2(x) | BIT_TA2(v))
  49888. #endif
  49889. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49890. HALMAC_8822C_SUPPORT)
  49891. /* 2 REG_TRANSMIT_ADDRSS_2_H (Offset 0x16B4) */
  49892. #define BIT_SHIFT_TA2_H_V1 0
  49893. #define BIT_MASK_TA2_H_V1 0xffff
  49894. #define BIT_TA2_H_V1(x) (((x) & BIT_MASK_TA2_H_V1) << BIT_SHIFT_TA2_H_V1)
  49895. #define BITS_TA2_H_V1 (BIT_MASK_TA2_H_V1 << BIT_SHIFT_TA2_H_V1)
  49896. #define BIT_CLEAR_TA2_H_V1(x) ((x) & (~BITS_TA2_H_V1))
  49897. #define BIT_GET_TA2_H_V1(x) (((x) >> BIT_SHIFT_TA2_H_V1) & BIT_MASK_TA2_H_V1)
  49898. #define BIT_SET_TA2_H_V1(x, v) (BIT_CLEAR_TA2_H_V1(x) | BIT_TA2_H_V1(v))
  49899. #endif
  49900. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49901. /* 2 REG_TRANSMIT_ADDRSS_3 (Offset 0x16B8) */
  49902. #define BIT_SHIFT_TA3 0
  49903. #define BIT_MASK_TA3 0xffffffffffffL
  49904. #define BIT_TA3(x) (((x) & BIT_MASK_TA3) << BIT_SHIFT_TA3)
  49905. #define BITS_TA3 (BIT_MASK_TA3 << BIT_SHIFT_TA3)
  49906. #define BIT_CLEAR_TA3(x) ((x) & (~BITS_TA3))
  49907. #define BIT_GET_TA3(x) (((x) >> BIT_SHIFT_TA3) & BIT_MASK_TA3)
  49908. #define BIT_SET_TA3(x, v) (BIT_CLEAR_TA3(x) | BIT_TA3(v))
  49909. #endif
  49910. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49911. HALMAC_8822C_SUPPORT)
  49912. /* 2 REG_TRANSMIT_ADDRSS_3_H (Offset 0x16BC) */
  49913. #define BIT_SHIFT_TA3_H_V1 0
  49914. #define BIT_MASK_TA3_H_V1 0xffff
  49915. #define BIT_TA3_H_V1(x) (((x) & BIT_MASK_TA3_H_V1) << BIT_SHIFT_TA3_H_V1)
  49916. #define BITS_TA3_H_V1 (BIT_MASK_TA3_H_V1 << BIT_SHIFT_TA3_H_V1)
  49917. #define BIT_CLEAR_TA3_H_V1(x) ((x) & (~BITS_TA3_H_V1))
  49918. #define BIT_GET_TA3_H_V1(x) (((x) >> BIT_SHIFT_TA3_H_V1) & BIT_MASK_TA3_H_V1)
  49919. #define BIT_SET_TA3_H_V1(x, v) (BIT_CLEAR_TA3_H_V1(x) | BIT_TA3_H_V1(v))
  49920. #endif
  49921. #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)
  49922. /* 2 REG_TRANSMIT_ADDRSS_4 (Offset 0x16C0) */
  49923. #define BIT_R_WMAC_RX_SYNCFIFO_SYNC BIT(55)
  49924. #define BIT_R_WMAC_RXRST_DLY BIT(54)
  49925. #define BIT_R_WMAC_SRCH_TXRPT_REF_DROP BIT(53)
  49926. #define BIT_R_WMAC_SRCH_TXRPT_UA1 BIT(52)
  49927. #define BIT_SHIFT_TA4 0
  49928. #define BIT_MASK_TA4 0xffffffffffffL
  49929. #define BIT_TA4(x) (((x) & BIT_MASK_TA4) << BIT_SHIFT_TA4)
  49930. #define BITS_TA4 (BIT_MASK_TA4 << BIT_SHIFT_TA4)
  49931. #define BIT_CLEAR_TA4(x) ((x) & (~BITS_TA4))
  49932. #define BIT_GET_TA4(x) (((x) >> BIT_SHIFT_TA4) & BIT_MASK_TA4)
  49933. #define BIT_SET_TA4(x, v) (BIT_CLEAR_TA4(x) | BIT_TA4(v))
  49934. #endif
  49935. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49936. HALMAC_8822C_SUPPORT)
  49937. /* 2 REG_TRANSMIT_ADDRSS_4 (Offset 0x16C0) */
  49938. #define BIT_SHIFT_TA4_V1 0
  49939. #define BIT_MASK_TA4_V1 0xffffffffL
  49940. #define BIT_TA4_V1(x) (((x) & BIT_MASK_TA4_V1) << BIT_SHIFT_TA4_V1)
  49941. #define BITS_TA4_V1 (BIT_MASK_TA4_V1 << BIT_SHIFT_TA4_V1)
  49942. #define BIT_CLEAR_TA4_V1(x) ((x) & (~BITS_TA4_V1))
  49943. #define BIT_GET_TA4_V1(x) (((x) >> BIT_SHIFT_TA4_V1) & BIT_MASK_TA4_V1)
  49944. #define BIT_SET_TA4_V1(x, v) (BIT_CLEAR_TA4_V1(x) | BIT_TA4_V1(v))
  49945. /* 2 REG_TRANSMIT_ADDRSS_4_H (Offset 0x16C4) */
  49946. #define BIT_SHIFT_TA4_H_V1 0
  49947. #define BIT_MASK_TA4_H_V1 0xffff
  49948. #define BIT_TA4_H_V1(x) (((x) & BIT_MASK_TA4_H_V1) << BIT_SHIFT_TA4_H_V1)
  49949. #define BITS_TA4_H_V1 (BIT_MASK_TA4_H_V1 << BIT_SHIFT_TA4_H_V1)
  49950. #define BIT_CLEAR_TA4_H_V1(x) ((x) & (~BITS_TA4_H_V1))
  49951. #define BIT_GET_TA4_H_V1(x) (((x) >> BIT_SHIFT_TA4_H_V1) & BIT_MASK_TA4_H_V1)
  49952. #define BIT_SET_TA4_H_V1(x, v) (BIT_CLEAR_TA4_H_V1(x) | BIT_TA4_H_V1(v))
  49953. #endif
  49954. #if (HALMAC_8812F_SUPPORT)
  49955. /* 2 REG_SND_AID12 (Offset 0x16D0) */
  49956. #define BIT_SHIFT_USERID_SEL 12
  49957. #define BIT_MASK_USERID_SEL 0x7
  49958. #define BIT_USERID_SEL(x) (((x) & BIT_MASK_USERID_SEL) << BIT_SHIFT_USERID_SEL)
  49959. #define BITS_USERID_SEL (BIT_MASK_USERID_SEL << BIT_SHIFT_USERID_SEL)
  49960. #define BIT_CLEAR_USERID_SEL(x) ((x) & (~BITS_USERID_SEL))
  49961. #define BIT_GET_USERID_SEL(x) \
  49962. (((x) >> BIT_SHIFT_USERID_SEL) & BIT_MASK_USERID_SEL)
  49963. #define BIT_SET_USERID_SEL(x, v) (BIT_CLEAR_USERID_SEL(x) | BIT_USERID_SEL(v))
  49964. #define BIT_SHIFT_USERID_AID12 0
  49965. #define BIT_MASK_USERID_AID12 0xfff
  49966. #define BIT_USERID_AID12(x) \
  49967. (((x) & BIT_MASK_USERID_AID12) << BIT_SHIFT_USERID_AID12)
  49968. #define BITS_USERID_AID12 (BIT_MASK_USERID_AID12 << BIT_SHIFT_USERID_AID12)
  49969. #define BIT_CLEAR_USERID_AID12(x) ((x) & (~BITS_USERID_AID12))
  49970. #define BIT_GET_USERID_AID12(x) \
  49971. (((x) >> BIT_SHIFT_USERID_AID12) & BIT_MASK_USERID_AID12)
  49972. #define BIT_SET_USERID_AID12(x, v) \
  49973. (BIT_CLEAR_USERID_AID12(x) | BIT_USERID_AID12(v))
  49974. /* 2 REG_SND_PKT_INFO (Offset 0x16D2) */
  49975. #define BIT_SND_FROM_DS BIT(7)
  49976. #define BIT_SND_TO_DS BIT(6)
  49977. #define BIT_SHIFT_SND_TOKEN 0
  49978. #define BIT_MASK_SND_TOKEN 0x3f
  49979. #define BIT_SND_TOKEN(x) (((x) & BIT_MASK_SND_TOKEN) << BIT_SHIFT_SND_TOKEN)
  49980. #define BITS_SND_TOKEN (BIT_MASK_SND_TOKEN << BIT_SHIFT_SND_TOKEN)
  49981. #define BIT_CLEAR_SND_TOKEN(x) ((x) & (~BITS_SND_TOKEN))
  49982. #define BIT_GET_SND_TOKEN(x) (((x) >> BIT_SHIFT_SND_TOKEN) & BIT_MASK_SND_TOKEN)
  49983. #define BIT_SET_SND_TOKEN(x, v) (BIT_CLEAR_SND_TOKEN(x) | BIT_SND_TOKEN(v))
  49984. #endif
  49985. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || \
  49986. HALMAC_8822B_SUPPORT || HALMAC_8822C_SUPPORT)
  49987. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1 (Offset 0x1700) */
  49988. #define BIT_LTECOEX_ACCESS_START_V1 BIT(31)
  49989. #define BIT_LTECOEX_WRITE_MODE_V1 BIT(30)
  49990. #define BIT_LTECOEX_READY_BIT_V1 BIT(29)
  49991. #define BIT_SHIFT_WRITE_BYTE_EN_V1 16
  49992. #define BIT_MASK_WRITE_BYTE_EN_V1 0xf
  49993. #define BIT_WRITE_BYTE_EN_V1(x) \
  49994. (((x) & BIT_MASK_WRITE_BYTE_EN_V1) << BIT_SHIFT_WRITE_BYTE_EN_V1)
  49995. #define BITS_WRITE_BYTE_EN_V1 \
  49996. (BIT_MASK_WRITE_BYTE_EN_V1 << BIT_SHIFT_WRITE_BYTE_EN_V1)
  49997. #define BIT_CLEAR_WRITE_BYTE_EN_V1(x) ((x) & (~BITS_WRITE_BYTE_EN_V1))
  49998. #define BIT_GET_WRITE_BYTE_EN_V1(x) \
  49999. (((x) >> BIT_SHIFT_WRITE_BYTE_EN_V1) & BIT_MASK_WRITE_BYTE_EN_V1)
  50000. #define BIT_SET_WRITE_BYTE_EN_V1(x, v) \
  50001. (BIT_CLEAR_WRITE_BYTE_EN_V1(x) | BIT_WRITE_BYTE_EN_V1(v))
  50002. #define BIT_SHIFT_LTECOEX_REG_ADDR_V1 0
  50003. #define BIT_MASK_LTECOEX_REG_ADDR_V1 0xffff
  50004. #define BIT_LTECOEX_REG_ADDR_V1(x) \
  50005. (((x) & BIT_MASK_LTECOEX_REG_ADDR_V1) << BIT_SHIFT_LTECOEX_REG_ADDR_V1)
  50006. #define BITS_LTECOEX_REG_ADDR_V1 \
  50007. (BIT_MASK_LTECOEX_REG_ADDR_V1 << BIT_SHIFT_LTECOEX_REG_ADDR_V1)
  50008. #define BIT_CLEAR_LTECOEX_REG_ADDR_V1(x) ((x) & (~BITS_LTECOEX_REG_ADDR_V1))
  50009. #define BIT_GET_LTECOEX_REG_ADDR_V1(x) \
  50010. (((x) >> BIT_SHIFT_LTECOEX_REG_ADDR_V1) & BIT_MASK_LTECOEX_REG_ADDR_V1)
  50011. #define BIT_SET_LTECOEX_REG_ADDR_V1(x, v) \
  50012. (BIT_CLEAR_LTECOEX_REG_ADDR_V1(x) | BIT_LTECOEX_REG_ADDR_V1(v))
  50013. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1 (Offset 0x1704) */
  50014. #define BIT_SHIFT_LTECOEX_W_DATA_V1 0
  50015. #define BIT_MASK_LTECOEX_W_DATA_V1 0xffffffffL
  50016. #define BIT_LTECOEX_W_DATA_V1(x) \
  50017. (((x) & BIT_MASK_LTECOEX_W_DATA_V1) << BIT_SHIFT_LTECOEX_W_DATA_V1)
  50018. #define BITS_LTECOEX_W_DATA_V1 \
  50019. (BIT_MASK_LTECOEX_W_DATA_V1 << BIT_SHIFT_LTECOEX_W_DATA_V1)
  50020. #define BIT_CLEAR_LTECOEX_W_DATA_V1(x) ((x) & (~BITS_LTECOEX_W_DATA_V1))
  50021. #define BIT_GET_LTECOEX_W_DATA_V1(x) \
  50022. (((x) >> BIT_SHIFT_LTECOEX_W_DATA_V1) & BIT_MASK_LTECOEX_W_DATA_V1)
  50023. #define BIT_SET_LTECOEX_W_DATA_V1(x, v) \
  50024. (BIT_CLEAR_LTECOEX_W_DATA_V1(x) | BIT_LTECOEX_W_DATA_V1(v))
  50025. /* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1 (Offset 0x1708) */
  50026. #define BIT_SHIFT_LTECOEX_R_DATA_V1 0
  50027. #define BIT_MASK_LTECOEX_R_DATA_V1 0xffffffffL
  50028. #define BIT_LTECOEX_R_DATA_V1(x) \
  50029. (((x) & BIT_MASK_LTECOEX_R_DATA_V1) << BIT_SHIFT_LTECOEX_R_DATA_V1)
  50030. #define BITS_LTECOEX_R_DATA_V1 \
  50031. (BIT_MASK_LTECOEX_R_DATA_V1 << BIT_SHIFT_LTECOEX_R_DATA_V1)
  50032. #define BIT_CLEAR_LTECOEX_R_DATA_V1(x) ((x) & (~BITS_LTECOEX_R_DATA_V1))
  50033. #define BIT_GET_LTECOEX_R_DATA_V1(x) \
  50034. (((x) >> BIT_SHIFT_LTECOEX_R_DATA_V1) & BIT_MASK_LTECOEX_R_DATA_V1)
  50035. #define BIT_SET_LTECOEX_R_DATA_V1(x, v) \
  50036. (BIT_CLEAR_LTECOEX_R_DATA_V1(x) | BIT_LTECOEX_R_DATA_V1(v))
  50037. #endif
  50038. #if (HALMAC_8814B_SUPPORT)
  50039. /* 2 REG_DMA_RQPN_INFO_0 (Offset 0x2200) */
  50040. #define BIT_SHIFT_CH0_AVAL_PG 16
  50041. #define BIT_MASK_CH0_AVAL_PG 0xfff
  50042. #define BIT_CH0_AVAL_PG(x) \
  50043. (((x) & BIT_MASK_CH0_AVAL_PG) << BIT_SHIFT_CH0_AVAL_PG)
  50044. #define BITS_CH0_AVAL_PG (BIT_MASK_CH0_AVAL_PG << BIT_SHIFT_CH0_AVAL_PG)
  50045. #define BIT_CLEAR_CH0_AVAL_PG(x) ((x) & (~BITS_CH0_AVAL_PG))
  50046. #define BIT_GET_CH0_AVAL_PG(x) \
  50047. (((x) >> BIT_SHIFT_CH0_AVAL_PG) & BIT_MASK_CH0_AVAL_PG)
  50048. #define BIT_SET_CH0_AVAL_PG(x, v) \
  50049. (BIT_CLEAR_CH0_AVAL_PG(x) | BIT_CH0_AVAL_PG(v))
  50050. #define BIT_SHIFT_CH0_RSVD_PG 0
  50051. #define BIT_MASK_CH0_RSVD_PG 0xfff
  50052. #define BIT_CH0_RSVD_PG(x) \
  50053. (((x) & BIT_MASK_CH0_RSVD_PG) << BIT_SHIFT_CH0_RSVD_PG)
  50054. #define BITS_CH0_RSVD_PG (BIT_MASK_CH0_RSVD_PG << BIT_SHIFT_CH0_RSVD_PG)
  50055. #define BIT_CLEAR_CH0_RSVD_PG(x) ((x) & (~BITS_CH0_RSVD_PG))
  50056. #define BIT_GET_CH0_RSVD_PG(x) \
  50057. (((x) >> BIT_SHIFT_CH0_RSVD_PG) & BIT_MASK_CH0_RSVD_PG)
  50058. #define BIT_SET_CH0_RSVD_PG(x, v) \
  50059. (BIT_CLEAR_CH0_RSVD_PG(x) | BIT_CH0_RSVD_PG(v))
  50060. /* 2 REG_DMA_RQPN_INFO_1 (Offset 0x2204) */
  50061. #define BIT_SHIFT_CH1_AVAL_PG 16
  50062. #define BIT_MASK_CH1_AVAL_PG 0xfff
  50063. #define BIT_CH1_AVAL_PG(x) \
  50064. (((x) & BIT_MASK_CH1_AVAL_PG) << BIT_SHIFT_CH1_AVAL_PG)
  50065. #define BITS_CH1_AVAL_PG (BIT_MASK_CH1_AVAL_PG << BIT_SHIFT_CH1_AVAL_PG)
  50066. #define BIT_CLEAR_CH1_AVAL_PG(x) ((x) & (~BITS_CH1_AVAL_PG))
  50067. #define BIT_GET_CH1_AVAL_PG(x) \
  50068. (((x) >> BIT_SHIFT_CH1_AVAL_PG) & BIT_MASK_CH1_AVAL_PG)
  50069. #define BIT_SET_CH1_AVAL_PG(x, v) \
  50070. (BIT_CLEAR_CH1_AVAL_PG(x) | BIT_CH1_AVAL_PG(v))
  50071. #define BIT_SHIFT_CH1_RSVD_PG 0
  50072. #define BIT_MASK_CH1_RSVD_PG 0xfff
  50073. #define BIT_CH1_RSVD_PG(x) \
  50074. (((x) & BIT_MASK_CH1_RSVD_PG) << BIT_SHIFT_CH1_RSVD_PG)
  50075. #define BITS_CH1_RSVD_PG (BIT_MASK_CH1_RSVD_PG << BIT_SHIFT_CH1_RSVD_PG)
  50076. #define BIT_CLEAR_CH1_RSVD_PG(x) ((x) & (~BITS_CH1_RSVD_PG))
  50077. #define BIT_GET_CH1_RSVD_PG(x) \
  50078. (((x) >> BIT_SHIFT_CH1_RSVD_PG) & BIT_MASK_CH1_RSVD_PG)
  50079. #define BIT_SET_CH1_RSVD_PG(x, v) \
  50080. (BIT_CLEAR_CH1_RSVD_PG(x) | BIT_CH1_RSVD_PG(v))
  50081. /* 2 REG_DMA_RQPN_INFO_2 (Offset 0x2208) */
  50082. #define BIT_SHIFT_CH2_AVAL_PG 16
  50083. #define BIT_MASK_CH2_AVAL_PG 0xfff
  50084. #define BIT_CH2_AVAL_PG(x) \
  50085. (((x) & BIT_MASK_CH2_AVAL_PG) << BIT_SHIFT_CH2_AVAL_PG)
  50086. #define BITS_CH2_AVAL_PG (BIT_MASK_CH2_AVAL_PG << BIT_SHIFT_CH2_AVAL_PG)
  50087. #define BIT_CLEAR_CH2_AVAL_PG(x) ((x) & (~BITS_CH2_AVAL_PG))
  50088. #define BIT_GET_CH2_AVAL_PG(x) \
  50089. (((x) >> BIT_SHIFT_CH2_AVAL_PG) & BIT_MASK_CH2_AVAL_PG)
  50090. #define BIT_SET_CH2_AVAL_PG(x, v) \
  50091. (BIT_CLEAR_CH2_AVAL_PG(x) | BIT_CH2_AVAL_PG(v))
  50092. #define BIT_SHIFT_CH2_RSVD_PG 0
  50093. #define BIT_MASK_CH2_RSVD_PG 0xfff
  50094. #define BIT_CH2_RSVD_PG(x) \
  50095. (((x) & BIT_MASK_CH2_RSVD_PG) << BIT_SHIFT_CH2_RSVD_PG)
  50096. #define BITS_CH2_RSVD_PG (BIT_MASK_CH2_RSVD_PG << BIT_SHIFT_CH2_RSVD_PG)
  50097. #define BIT_CLEAR_CH2_RSVD_PG(x) ((x) & (~BITS_CH2_RSVD_PG))
  50098. #define BIT_GET_CH2_RSVD_PG(x) \
  50099. (((x) >> BIT_SHIFT_CH2_RSVD_PG) & BIT_MASK_CH2_RSVD_PG)
  50100. #define BIT_SET_CH2_RSVD_PG(x, v) \
  50101. (BIT_CLEAR_CH2_RSVD_PG(x) | BIT_CH2_RSVD_PG(v))
  50102. /* 2 REG_DMA_RQPN_INFO_3 (Offset 0x220C) */
  50103. #define BIT_SHIFT_CH3_AVAL_PG 16
  50104. #define BIT_MASK_CH3_AVAL_PG 0xfff
  50105. #define BIT_CH3_AVAL_PG(x) \
  50106. (((x) & BIT_MASK_CH3_AVAL_PG) << BIT_SHIFT_CH3_AVAL_PG)
  50107. #define BITS_CH3_AVAL_PG (BIT_MASK_CH3_AVAL_PG << BIT_SHIFT_CH3_AVAL_PG)
  50108. #define BIT_CLEAR_CH3_AVAL_PG(x) ((x) & (~BITS_CH3_AVAL_PG))
  50109. #define BIT_GET_CH3_AVAL_PG(x) \
  50110. (((x) >> BIT_SHIFT_CH3_AVAL_PG) & BIT_MASK_CH3_AVAL_PG)
  50111. #define BIT_SET_CH3_AVAL_PG(x, v) \
  50112. (BIT_CLEAR_CH3_AVAL_PG(x) | BIT_CH3_AVAL_PG(v))
  50113. #define BIT_SHIFT_CH3_RSVD_PG 0
  50114. #define BIT_MASK_CH3_RSVD_PG 0xfff
  50115. #define BIT_CH3_RSVD_PG(x) \
  50116. (((x) & BIT_MASK_CH3_RSVD_PG) << BIT_SHIFT_CH3_RSVD_PG)
  50117. #define BITS_CH3_RSVD_PG (BIT_MASK_CH3_RSVD_PG << BIT_SHIFT_CH3_RSVD_PG)
  50118. #define BIT_CLEAR_CH3_RSVD_PG(x) ((x) & (~BITS_CH3_RSVD_PG))
  50119. #define BIT_GET_CH3_RSVD_PG(x) \
  50120. (((x) >> BIT_SHIFT_CH3_RSVD_PG) & BIT_MASK_CH3_RSVD_PG)
  50121. #define BIT_SET_CH3_RSVD_PG(x, v) \
  50122. (BIT_CLEAR_CH3_RSVD_PG(x) | BIT_CH3_RSVD_PG(v))
  50123. /* 2 REG_DMA_RQPN_INFO_4 (Offset 0x2210) */
  50124. #define BIT_SHIFT_CH4_AVAL_PG 16
  50125. #define BIT_MASK_CH4_AVAL_PG 0xfff
  50126. #define BIT_CH4_AVAL_PG(x) \
  50127. (((x) & BIT_MASK_CH4_AVAL_PG) << BIT_SHIFT_CH4_AVAL_PG)
  50128. #define BITS_CH4_AVAL_PG (BIT_MASK_CH4_AVAL_PG << BIT_SHIFT_CH4_AVAL_PG)
  50129. #define BIT_CLEAR_CH4_AVAL_PG(x) ((x) & (~BITS_CH4_AVAL_PG))
  50130. #define BIT_GET_CH4_AVAL_PG(x) \
  50131. (((x) >> BIT_SHIFT_CH4_AVAL_PG) & BIT_MASK_CH4_AVAL_PG)
  50132. #define BIT_SET_CH4_AVAL_PG(x, v) \
  50133. (BIT_CLEAR_CH4_AVAL_PG(x) | BIT_CH4_AVAL_PG(v))
  50134. #define BIT_SHIFT_CH4_RSVD_PG 0
  50135. #define BIT_MASK_CH4_RSVD_PG 0xfff
  50136. #define BIT_CH4_RSVD_PG(x) \
  50137. (((x) & BIT_MASK_CH4_RSVD_PG) << BIT_SHIFT_CH4_RSVD_PG)
  50138. #define BITS_CH4_RSVD_PG (BIT_MASK_CH4_RSVD_PG << BIT_SHIFT_CH4_RSVD_PG)
  50139. #define BIT_CLEAR_CH4_RSVD_PG(x) ((x) & (~BITS_CH4_RSVD_PG))
  50140. #define BIT_GET_CH4_RSVD_PG(x) \
  50141. (((x) >> BIT_SHIFT_CH4_RSVD_PG) & BIT_MASK_CH4_RSVD_PG)
  50142. #define BIT_SET_CH4_RSVD_PG(x, v) \
  50143. (BIT_CLEAR_CH4_RSVD_PG(x) | BIT_CH4_RSVD_PG(v))
  50144. /* 2 REG_DMA_RQPN_INFO_5 (Offset 0x2214) */
  50145. #define BIT_SHIFT_CH5_AVAL_PG 16
  50146. #define BIT_MASK_CH5_AVAL_PG 0xfff
  50147. #define BIT_CH5_AVAL_PG(x) \
  50148. (((x) & BIT_MASK_CH5_AVAL_PG) << BIT_SHIFT_CH5_AVAL_PG)
  50149. #define BITS_CH5_AVAL_PG (BIT_MASK_CH5_AVAL_PG << BIT_SHIFT_CH5_AVAL_PG)
  50150. #define BIT_CLEAR_CH5_AVAL_PG(x) ((x) & (~BITS_CH5_AVAL_PG))
  50151. #define BIT_GET_CH5_AVAL_PG(x) \
  50152. (((x) >> BIT_SHIFT_CH5_AVAL_PG) & BIT_MASK_CH5_AVAL_PG)
  50153. #define BIT_SET_CH5_AVAL_PG(x, v) \
  50154. (BIT_CLEAR_CH5_AVAL_PG(x) | BIT_CH5_AVAL_PG(v))
  50155. #define BIT_SHIFT_CH5_RSVD_PG 0
  50156. #define BIT_MASK_CH5_RSVD_PG 0xfff
  50157. #define BIT_CH5_RSVD_PG(x) \
  50158. (((x) & BIT_MASK_CH5_RSVD_PG) << BIT_SHIFT_CH5_RSVD_PG)
  50159. #define BITS_CH5_RSVD_PG (BIT_MASK_CH5_RSVD_PG << BIT_SHIFT_CH5_RSVD_PG)
  50160. #define BIT_CLEAR_CH5_RSVD_PG(x) ((x) & (~BITS_CH5_RSVD_PG))
  50161. #define BIT_GET_CH5_RSVD_PG(x) \
  50162. (((x) >> BIT_SHIFT_CH5_RSVD_PG) & BIT_MASK_CH5_RSVD_PG)
  50163. #define BIT_SET_CH5_RSVD_PG(x, v) \
  50164. (BIT_CLEAR_CH5_RSVD_PG(x) | BIT_CH5_RSVD_PG(v))
  50165. /* 2 REG_DMA_RQPN_INFO_6 (Offset 0x2218) */
  50166. #define BIT_SHIFT_CH6_AVAL_PG 16
  50167. #define BIT_MASK_CH6_AVAL_PG 0xfff
  50168. #define BIT_CH6_AVAL_PG(x) \
  50169. (((x) & BIT_MASK_CH6_AVAL_PG) << BIT_SHIFT_CH6_AVAL_PG)
  50170. #define BITS_CH6_AVAL_PG (BIT_MASK_CH6_AVAL_PG << BIT_SHIFT_CH6_AVAL_PG)
  50171. #define BIT_CLEAR_CH6_AVAL_PG(x) ((x) & (~BITS_CH6_AVAL_PG))
  50172. #define BIT_GET_CH6_AVAL_PG(x) \
  50173. (((x) >> BIT_SHIFT_CH6_AVAL_PG) & BIT_MASK_CH6_AVAL_PG)
  50174. #define BIT_SET_CH6_AVAL_PG(x, v) \
  50175. (BIT_CLEAR_CH6_AVAL_PG(x) | BIT_CH6_AVAL_PG(v))
  50176. #define BIT_SHIFT_CH6_RSVD_PG 0
  50177. #define BIT_MASK_CH6_RSVD_PG 0xfff
  50178. #define BIT_CH6_RSVD_PG(x) \
  50179. (((x) & BIT_MASK_CH6_RSVD_PG) << BIT_SHIFT_CH6_RSVD_PG)
  50180. #define BITS_CH6_RSVD_PG (BIT_MASK_CH6_RSVD_PG << BIT_SHIFT_CH6_RSVD_PG)
  50181. #define BIT_CLEAR_CH6_RSVD_PG(x) ((x) & (~BITS_CH6_RSVD_PG))
  50182. #define BIT_GET_CH6_RSVD_PG(x) \
  50183. (((x) >> BIT_SHIFT_CH6_RSVD_PG) & BIT_MASK_CH6_RSVD_PG)
  50184. #define BIT_SET_CH6_RSVD_PG(x, v) \
  50185. (BIT_CLEAR_CH6_RSVD_PG(x) | BIT_CH6_RSVD_PG(v))
  50186. /* 2 REG_DMA_RQPN_INFO_7 (Offset 0x221C) */
  50187. #define BIT_SHIFT_CH7_AVAL_PG 16
  50188. #define BIT_MASK_CH7_AVAL_PG 0xfff
  50189. #define BIT_CH7_AVAL_PG(x) \
  50190. (((x) & BIT_MASK_CH7_AVAL_PG) << BIT_SHIFT_CH7_AVAL_PG)
  50191. #define BITS_CH7_AVAL_PG (BIT_MASK_CH7_AVAL_PG << BIT_SHIFT_CH7_AVAL_PG)
  50192. #define BIT_CLEAR_CH7_AVAL_PG(x) ((x) & (~BITS_CH7_AVAL_PG))
  50193. #define BIT_GET_CH7_AVAL_PG(x) \
  50194. (((x) >> BIT_SHIFT_CH7_AVAL_PG) & BIT_MASK_CH7_AVAL_PG)
  50195. #define BIT_SET_CH7_AVAL_PG(x, v) \
  50196. (BIT_CLEAR_CH7_AVAL_PG(x) | BIT_CH7_AVAL_PG(v))
  50197. #define BIT_SHIFT_CH7_RSVD_PG 0
  50198. #define BIT_MASK_CH7_RSVD_PG 0xfff
  50199. #define BIT_CH7_RSVD_PG(x) \
  50200. (((x) & BIT_MASK_CH7_RSVD_PG) << BIT_SHIFT_CH7_RSVD_PG)
  50201. #define BITS_CH7_RSVD_PG (BIT_MASK_CH7_RSVD_PG << BIT_SHIFT_CH7_RSVD_PG)
  50202. #define BIT_CLEAR_CH7_RSVD_PG(x) ((x) & (~BITS_CH7_RSVD_PG))
  50203. #define BIT_GET_CH7_RSVD_PG(x) \
  50204. (((x) >> BIT_SHIFT_CH7_RSVD_PG) & BIT_MASK_CH7_RSVD_PG)
  50205. #define BIT_SET_CH7_RSVD_PG(x, v) \
  50206. (BIT_CLEAR_CH7_RSVD_PG(x) | BIT_CH7_RSVD_PG(v))
  50207. /* 2 REG_DMA_RQPN_INFO_8 (Offset 0x2220) */
  50208. #define BIT_SHIFT_CH8_AVAL_PG 16
  50209. #define BIT_MASK_CH8_AVAL_PG 0xfff
  50210. #define BIT_CH8_AVAL_PG(x) \
  50211. (((x) & BIT_MASK_CH8_AVAL_PG) << BIT_SHIFT_CH8_AVAL_PG)
  50212. #define BITS_CH8_AVAL_PG (BIT_MASK_CH8_AVAL_PG << BIT_SHIFT_CH8_AVAL_PG)
  50213. #define BIT_CLEAR_CH8_AVAL_PG(x) ((x) & (~BITS_CH8_AVAL_PG))
  50214. #define BIT_GET_CH8_AVAL_PG(x) \
  50215. (((x) >> BIT_SHIFT_CH8_AVAL_PG) & BIT_MASK_CH8_AVAL_PG)
  50216. #define BIT_SET_CH8_AVAL_PG(x, v) \
  50217. (BIT_CLEAR_CH8_AVAL_PG(x) | BIT_CH8_AVAL_PG(v))
  50218. #define BIT_SHIFT_CH8_RSVD_PG 0
  50219. #define BIT_MASK_CH8_RSVD_PG 0xfff
  50220. #define BIT_CH8_RSVD_PG(x) \
  50221. (((x) & BIT_MASK_CH8_RSVD_PG) << BIT_SHIFT_CH8_RSVD_PG)
  50222. #define BITS_CH8_RSVD_PG (BIT_MASK_CH8_RSVD_PG << BIT_SHIFT_CH8_RSVD_PG)
  50223. #define BIT_CLEAR_CH8_RSVD_PG(x) ((x) & (~BITS_CH8_RSVD_PG))
  50224. #define BIT_GET_CH8_RSVD_PG(x) \
  50225. (((x) >> BIT_SHIFT_CH8_RSVD_PG) & BIT_MASK_CH8_RSVD_PG)
  50226. #define BIT_SET_CH8_RSVD_PG(x, v) \
  50227. (BIT_CLEAR_CH8_RSVD_PG(x) | BIT_CH8_RSVD_PG(v))
  50228. /* 2 REG_DMA_RQPN_INFO_9 (Offset 0x2224) */
  50229. #define BIT_SHIFT_CH9_AVAL_PG 16
  50230. #define BIT_MASK_CH9_AVAL_PG 0xfff
  50231. #define BIT_CH9_AVAL_PG(x) \
  50232. (((x) & BIT_MASK_CH9_AVAL_PG) << BIT_SHIFT_CH9_AVAL_PG)
  50233. #define BITS_CH9_AVAL_PG (BIT_MASK_CH9_AVAL_PG << BIT_SHIFT_CH9_AVAL_PG)
  50234. #define BIT_CLEAR_CH9_AVAL_PG(x) ((x) & (~BITS_CH9_AVAL_PG))
  50235. #define BIT_GET_CH9_AVAL_PG(x) \
  50236. (((x) >> BIT_SHIFT_CH9_AVAL_PG) & BIT_MASK_CH9_AVAL_PG)
  50237. #define BIT_SET_CH9_AVAL_PG(x, v) \
  50238. (BIT_CLEAR_CH9_AVAL_PG(x) | BIT_CH9_AVAL_PG(v))
  50239. #define BIT_SHIFT_CH9_RSVD_PG 0
  50240. #define BIT_MASK_CH9_RSVD_PG 0xfff
  50241. #define BIT_CH9_RSVD_PG(x) \
  50242. (((x) & BIT_MASK_CH9_RSVD_PG) << BIT_SHIFT_CH9_RSVD_PG)
  50243. #define BITS_CH9_RSVD_PG (BIT_MASK_CH9_RSVD_PG << BIT_SHIFT_CH9_RSVD_PG)
  50244. #define BIT_CLEAR_CH9_RSVD_PG(x) ((x) & (~BITS_CH9_RSVD_PG))
  50245. #define BIT_GET_CH9_RSVD_PG(x) \
  50246. (((x) >> BIT_SHIFT_CH9_RSVD_PG) & BIT_MASK_CH9_RSVD_PG)
  50247. #define BIT_SET_CH9_RSVD_PG(x, v) \
  50248. (BIT_CLEAR_CH9_RSVD_PG(x) | BIT_CH9_RSVD_PG(v))
  50249. /* 2 REG_DMA_RQPN_INFO_10 (Offset 0x2228) */
  50250. #define BIT_SHIFT_CH10_AVAL_PG 16
  50251. #define BIT_MASK_CH10_AVAL_PG 0xfff
  50252. #define BIT_CH10_AVAL_PG(x) \
  50253. (((x) & BIT_MASK_CH10_AVAL_PG) << BIT_SHIFT_CH10_AVAL_PG)
  50254. #define BITS_CH10_AVAL_PG (BIT_MASK_CH10_AVAL_PG << BIT_SHIFT_CH10_AVAL_PG)
  50255. #define BIT_CLEAR_CH10_AVAL_PG(x) ((x) & (~BITS_CH10_AVAL_PG))
  50256. #define BIT_GET_CH10_AVAL_PG(x) \
  50257. (((x) >> BIT_SHIFT_CH10_AVAL_PG) & BIT_MASK_CH10_AVAL_PG)
  50258. #define BIT_SET_CH10_AVAL_PG(x, v) \
  50259. (BIT_CLEAR_CH10_AVAL_PG(x) | BIT_CH10_AVAL_PG(v))
  50260. #define BIT_SHIFT_CH10_RSVD_PG 0
  50261. #define BIT_MASK_CH10_RSVD_PG 0xfff
  50262. #define BIT_CH10_RSVD_PG(x) \
  50263. (((x) & BIT_MASK_CH10_RSVD_PG) << BIT_SHIFT_CH10_RSVD_PG)
  50264. #define BITS_CH10_RSVD_PG (BIT_MASK_CH10_RSVD_PG << BIT_SHIFT_CH10_RSVD_PG)
  50265. #define BIT_CLEAR_CH10_RSVD_PG(x) ((x) & (~BITS_CH10_RSVD_PG))
  50266. #define BIT_GET_CH10_RSVD_PG(x) \
  50267. (((x) >> BIT_SHIFT_CH10_RSVD_PG) & BIT_MASK_CH10_RSVD_PG)
  50268. #define BIT_SET_CH10_RSVD_PG(x, v) \
  50269. (BIT_CLEAR_CH10_RSVD_PG(x) | BIT_CH10_RSVD_PG(v))
  50270. /* 2 REG_DMA_RQPN_INFO_11 (Offset 0x222C) */
  50271. #define BIT_SHIFT_CH11_AVAL_PG 16
  50272. #define BIT_MASK_CH11_AVAL_PG 0xfff
  50273. #define BIT_CH11_AVAL_PG(x) \
  50274. (((x) & BIT_MASK_CH11_AVAL_PG) << BIT_SHIFT_CH11_AVAL_PG)
  50275. #define BITS_CH11_AVAL_PG (BIT_MASK_CH11_AVAL_PG << BIT_SHIFT_CH11_AVAL_PG)
  50276. #define BIT_CLEAR_CH11_AVAL_PG(x) ((x) & (~BITS_CH11_AVAL_PG))
  50277. #define BIT_GET_CH11_AVAL_PG(x) \
  50278. (((x) >> BIT_SHIFT_CH11_AVAL_PG) & BIT_MASK_CH11_AVAL_PG)
  50279. #define BIT_SET_CH11_AVAL_PG(x, v) \
  50280. (BIT_CLEAR_CH11_AVAL_PG(x) | BIT_CH11_AVAL_PG(v))
  50281. #define BIT_SHIFT_CH11_RSVD_PG 0
  50282. #define BIT_MASK_CH11_RSVD_PG 0xfff
  50283. #define BIT_CH11_RSVD_PG(x) \
  50284. (((x) & BIT_MASK_CH11_RSVD_PG) << BIT_SHIFT_CH11_RSVD_PG)
  50285. #define BITS_CH11_RSVD_PG (BIT_MASK_CH11_RSVD_PG << BIT_SHIFT_CH11_RSVD_PG)
  50286. #define BIT_CLEAR_CH11_RSVD_PG(x) ((x) & (~BITS_CH11_RSVD_PG))
  50287. #define BIT_GET_CH11_RSVD_PG(x) \
  50288. (((x) >> BIT_SHIFT_CH11_RSVD_PG) & BIT_MASK_CH11_RSVD_PG)
  50289. #define BIT_SET_CH11_RSVD_PG(x, v) \
  50290. (BIT_CLEAR_CH11_RSVD_PG(x) | BIT_CH11_RSVD_PG(v))
  50291. /* 2 REG_DMA_RQPN_INFO_12 (Offset 0x2230) */
  50292. #define BIT_SHIFT_CH12_AVAL_PG 16
  50293. #define BIT_MASK_CH12_AVAL_PG 0xfff
  50294. #define BIT_CH12_AVAL_PG(x) \
  50295. (((x) & BIT_MASK_CH12_AVAL_PG) << BIT_SHIFT_CH12_AVAL_PG)
  50296. #define BITS_CH12_AVAL_PG (BIT_MASK_CH12_AVAL_PG << BIT_SHIFT_CH12_AVAL_PG)
  50297. #define BIT_CLEAR_CH12_AVAL_PG(x) ((x) & (~BITS_CH12_AVAL_PG))
  50298. #define BIT_GET_CH12_AVAL_PG(x) \
  50299. (((x) >> BIT_SHIFT_CH12_AVAL_PG) & BIT_MASK_CH12_AVAL_PG)
  50300. #define BIT_SET_CH12_AVAL_PG(x, v) \
  50301. (BIT_CLEAR_CH12_AVAL_PG(x) | BIT_CH12_AVAL_PG(v))
  50302. #define BIT_SHIFT_CH12_RSVD_PG 0
  50303. #define BIT_MASK_CH12_RSVD_PG 0xfff
  50304. #define BIT_CH12_RSVD_PG(x) \
  50305. (((x) & BIT_MASK_CH12_RSVD_PG) << BIT_SHIFT_CH12_RSVD_PG)
  50306. #define BITS_CH12_RSVD_PG (BIT_MASK_CH12_RSVD_PG << BIT_SHIFT_CH12_RSVD_PG)
  50307. #define BIT_CLEAR_CH12_RSVD_PG(x) ((x) & (~BITS_CH12_RSVD_PG))
  50308. #define BIT_GET_CH12_RSVD_PG(x) \
  50309. (((x) >> BIT_SHIFT_CH12_RSVD_PG) & BIT_MASK_CH12_RSVD_PG)
  50310. #define BIT_SET_CH12_RSVD_PG(x, v) \
  50311. (BIT_CLEAR_CH12_RSVD_PG(x) | BIT_CH12_RSVD_PG(v))
  50312. /* 2 REG_DMA_RQPN_INFO_13 (Offset 0x2234) */
  50313. #define BIT_SHIFT_CH13_AVAL_PG 16
  50314. #define BIT_MASK_CH13_AVAL_PG 0xfff
  50315. #define BIT_CH13_AVAL_PG(x) \
  50316. (((x) & BIT_MASK_CH13_AVAL_PG) << BIT_SHIFT_CH13_AVAL_PG)
  50317. #define BITS_CH13_AVAL_PG (BIT_MASK_CH13_AVAL_PG << BIT_SHIFT_CH13_AVAL_PG)
  50318. #define BIT_CLEAR_CH13_AVAL_PG(x) ((x) & (~BITS_CH13_AVAL_PG))
  50319. #define BIT_GET_CH13_AVAL_PG(x) \
  50320. (((x) >> BIT_SHIFT_CH13_AVAL_PG) & BIT_MASK_CH13_AVAL_PG)
  50321. #define BIT_SET_CH13_AVAL_PG(x, v) \
  50322. (BIT_CLEAR_CH13_AVAL_PG(x) | BIT_CH13_AVAL_PG(v))
  50323. #define BIT_SHIFT_CH13_RSVD_PG 0
  50324. #define BIT_MASK_CH13_RSVD_PG 0xfff
  50325. #define BIT_CH13_RSVD_PG(x) \
  50326. (((x) & BIT_MASK_CH13_RSVD_PG) << BIT_SHIFT_CH13_RSVD_PG)
  50327. #define BITS_CH13_RSVD_PG (BIT_MASK_CH13_RSVD_PG << BIT_SHIFT_CH13_RSVD_PG)
  50328. #define BIT_CLEAR_CH13_RSVD_PG(x) ((x) & (~BITS_CH13_RSVD_PG))
  50329. #define BIT_GET_CH13_RSVD_PG(x) \
  50330. (((x) >> BIT_SHIFT_CH13_RSVD_PG) & BIT_MASK_CH13_RSVD_PG)
  50331. #define BIT_SET_CH13_RSVD_PG(x, v) \
  50332. (BIT_CLEAR_CH13_RSVD_PG(x) | BIT_CH13_RSVD_PG(v))
  50333. /* 2 REG_DMA_RQPN_INFO_14 (Offset 0x2238) */
  50334. #define BIT_SHIFT_CH14_AVAL_PG 16
  50335. #define BIT_MASK_CH14_AVAL_PG 0xfff
  50336. #define BIT_CH14_AVAL_PG(x) \
  50337. (((x) & BIT_MASK_CH14_AVAL_PG) << BIT_SHIFT_CH14_AVAL_PG)
  50338. #define BITS_CH14_AVAL_PG (BIT_MASK_CH14_AVAL_PG << BIT_SHIFT_CH14_AVAL_PG)
  50339. #define BIT_CLEAR_CH14_AVAL_PG(x) ((x) & (~BITS_CH14_AVAL_PG))
  50340. #define BIT_GET_CH14_AVAL_PG(x) \
  50341. (((x) >> BIT_SHIFT_CH14_AVAL_PG) & BIT_MASK_CH14_AVAL_PG)
  50342. #define BIT_SET_CH14_AVAL_PG(x, v) \
  50343. (BIT_CLEAR_CH14_AVAL_PG(x) | BIT_CH14_AVAL_PG(v))
  50344. #define BIT_SHIFT_CH14_RSVD_PG 0
  50345. #define BIT_MASK_CH14_RSVD_PG 0xfff
  50346. #define BIT_CH14_RSVD_PG(x) \
  50347. (((x) & BIT_MASK_CH14_RSVD_PG) << BIT_SHIFT_CH14_RSVD_PG)
  50348. #define BITS_CH14_RSVD_PG (BIT_MASK_CH14_RSVD_PG << BIT_SHIFT_CH14_RSVD_PG)
  50349. #define BIT_CLEAR_CH14_RSVD_PG(x) ((x) & (~BITS_CH14_RSVD_PG))
  50350. #define BIT_GET_CH14_RSVD_PG(x) \
  50351. (((x) >> BIT_SHIFT_CH14_RSVD_PG) & BIT_MASK_CH14_RSVD_PG)
  50352. #define BIT_SET_CH14_RSVD_PG(x, v) \
  50353. (BIT_CLEAR_CH14_RSVD_PG(x) | BIT_CH14_RSVD_PG(v))
  50354. /* 2 REG_DMA_RQPN_INFO_15 (Offset 0x223C) */
  50355. #define BIT_SHIFT_CH15_AVAL_PG 16
  50356. #define BIT_MASK_CH15_AVAL_PG 0xfff
  50357. #define BIT_CH15_AVAL_PG(x) \
  50358. (((x) & BIT_MASK_CH15_AVAL_PG) << BIT_SHIFT_CH15_AVAL_PG)
  50359. #define BITS_CH15_AVAL_PG (BIT_MASK_CH15_AVAL_PG << BIT_SHIFT_CH15_AVAL_PG)
  50360. #define BIT_CLEAR_CH15_AVAL_PG(x) ((x) & (~BITS_CH15_AVAL_PG))
  50361. #define BIT_GET_CH15_AVAL_PG(x) \
  50362. (((x) >> BIT_SHIFT_CH15_AVAL_PG) & BIT_MASK_CH15_AVAL_PG)
  50363. #define BIT_SET_CH15_AVAL_PG(x, v) \
  50364. (BIT_CLEAR_CH15_AVAL_PG(x) | BIT_CH15_AVAL_PG(v))
  50365. #define BIT_SHIFT_CH15_RSVD_PG 0
  50366. #define BIT_MASK_CH15_RSVD_PG 0xfff
  50367. #define BIT_CH15_RSVD_PG(x) \
  50368. (((x) & BIT_MASK_CH15_RSVD_PG) << BIT_SHIFT_CH15_RSVD_PG)
  50369. #define BITS_CH15_RSVD_PG (BIT_MASK_CH15_RSVD_PG << BIT_SHIFT_CH15_RSVD_PG)
  50370. #define BIT_CLEAR_CH15_RSVD_PG(x) ((x) & (~BITS_CH15_RSVD_PG))
  50371. #define BIT_GET_CH15_RSVD_PG(x) \
  50372. (((x) >> BIT_SHIFT_CH15_RSVD_PG) & BIT_MASK_CH15_RSVD_PG)
  50373. #define BIT_SET_CH15_RSVD_PG(x, v) \
  50374. (BIT_CLEAR_CH15_RSVD_PG(x) | BIT_CH15_RSVD_PG(v))
  50375. /* 2 REG_DMA_RQPN_INFO_16 (Offset 0x2240) */
  50376. #define BIT_SHIFT_CH16_AVAL_PG 16
  50377. #define BIT_MASK_CH16_AVAL_PG 0xfff
  50378. #define BIT_CH16_AVAL_PG(x) \
  50379. (((x) & BIT_MASK_CH16_AVAL_PG) << BIT_SHIFT_CH16_AVAL_PG)
  50380. #define BITS_CH16_AVAL_PG (BIT_MASK_CH16_AVAL_PG << BIT_SHIFT_CH16_AVAL_PG)
  50381. #define BIT_CLEAR_CH16_AVAL_PG(x) ((x) & (~BITS_CH16_AVAL_PG))
  50382. #define BIT_GET_CH16_AVAL_PG(x) \
  50383. (((x) >> BIT_SHIFT_CH16_AVAL_PG) & BIT_MASK_CH16_AVAL_PG)
  50384. #define BIT_SET_CH16_AVAL_PG(x, v) \
  50385. (BIT_CLEAR_CH16_AVAL_PG(x) | BIT_CH16_AVAL_PG(v))
  50386. #define BIT_SHIFT_CH16_RSVD_PG 0
  50387. #define BIT_MASK_CH16_RSVD_PG 0xfff
  50388. #define BIT_CH16_RSVD_PG(x) \
  50389. (((x) & BIT_MASK_CH16_RSVD_PG) << BIT_SHIFT_CH16_RSVD_PG)
  50390. #define BITS_CH16_RSVD_PG (BIT_MASK_CH16_RSVD_PG << BIT_SHIFT_CH16_RSVD_PG)
  50391. #define BIT_CLEAR_CH16_RSVD_PG(x) ((x) & (~BITS_CH16_RSVD_PG))
  50392. #define BIT_GET_CH16_RSVD_PG(x) \
  50393. (((x) >> BIT_SHIFT_CH16_RSVD_PG) & BIT_MASK_CH16_RSVD_PG)
  50394. #define BIT_SET_CH16_RSVD_PG(x, v) \
  50395. (BIT_CLEAR_CH16_RSVD_PG(x) | BIT_CH16_RSVD_PG(v))
  50396. /* 2 REG_HWAMSDU_CTL1 (Offset 0x2250) */
  50397. #define BIT_SHIFT_HWAMSDU_PKTNUM 8
  50398. #define BIT_MASK_HWAMSDU_PKTNUM 0x3f
  50399. #define BIT_HWAMSDU_PKTNUM(x) \
  50400. (((x) & BIT_MASK_HWAMSDU_PKTNUM) << BIT_SHIFT_HWAMSDU_PKTNUM)
  50401. #define BITS_HWAMSDU_PKTNUM \
  50402. (BIT_MASK_HWAMSDU_PKTNUM << BIT_SHIFT_HWAMSDU_PKTNUM)
  50403. #define BIT_CLEAR_HWAMSDU_PKTNUM(x) ((x) & (~BITS_HWAMSDU_PKTNUM))
  50404. #define BIT_GET_HWAMSDU_PKTNUM(x) \
  50405. (((x) >> BIT_SHIFT_HWAMSDU_PKTNUM) & BIT_MASK_HWAMSDU_PKTNUM)
  50406. #define BIT_SET_HWAMSDU_PKTNUM(x, v) \
  50407. (BIT_CLEAR_HWAMSDU_PKTNUM(x) | BIT_HWAMSDU_PKTNUM(v))
  50408. #define BIT_HWAMSDU_BUSY BIT(7)
  50409. #define BIT_SINGLE_AMSDU BIT(2)
  50410. #define BIT_HWAMSDU_PADDING_MODE BIT(1)
  50411. #define BIT_HWAMSDU_EN BIT(0)
  50412. /* 2 REG_HWAMSDU_CTL2 (Offset 0x2254) */
  50413. #define BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT 16
  50414. #define BIT_MASK_HWAMSDU_AMSDU_TIMEOUT 0xffff
  50415. #define BIT_HWAMSDU_AMSDU_TIMEOUT(x) \
  50416. (((x) & BIT_MASK_HWAMSDU_AMSDU_TIMEOUT) \
  50417. << BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT)
  50418. #define BITS_HWAMSDU_AMSDU_TIMEOUT \
  50419. (BIT_MASK_HWAMSDU_AMSDU_TIMEOUT << BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT)
  50420. #define BIT_CLEAR_HWAMSDU_AMSDU_TIMEOUT(x) ((x) & (~BITS_HWAMSDU_AMSDU_TIMEOUT))
  50421. #define BIT_GET_HWAMSDU_AMSDU_TIMEOUT(x) \
  50422. (((x) >> BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT) & \
  50423. BIT_MASK_HWAMSDU_AMSDU_TIMEOUT)
  50424. #define BIT_SET_HWAMSDU_AMSDU_TIMEOUT(x, v) \
  50425. (BIT_CLEAR_HWAMSDU_AMSDU_TIMEOUT(x) | BIT_HWAMSDU_AMSDU_TIMEOUT(v))
  50426. #define BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT 0
  50427. #define BIT_MASK_HWAMSDU_MSDU_TIMEOUT 0xffff
  50428. #define BIT_HWAMSDU_MSDU_TIMEOUT(x) \
  50429. (((x) & BIT_MASK_HWAMSDU_MSDU_TIMEOUT) \
  50430. << BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT)
  50431. #define BITS_HWAMSDU_MSDU_TIMEOUT \
  50432. (BIT_MASK_HWAMSDU_MSDU_TIMEOUT << BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT)
  50433. #define BIT_CLEAR_HWAMSDU_MSDU_TIMEOUT(x) ((x) & (~BITS_HWAMSDU_MSDU_TIMEOUT))
  50434. #define BIT_GET_HWAMSDU_MSDU_TIMEOUT(x) \
  50435. (((x) >> BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT) & \
  50436. BIT_MASK_HWAMSDU_MSDU_TIMEOUT)
  50437. #define BIT_SET_HWAMSDU_MSDU_TIMEOUT(x, v) \
  50438. (BIT_CLEAR_HWAMSDU_MSDU_TIMEOUT(x) | BIT_HWAMSDU_MSDU_TIMEOUT(v))
  50439. /* 2 REG_HI8Q_TXBD_DESA_L (Offset 0x2300) */
  50440. #define BIT_SHIFT_HI8Q_TXBD_DESA_L 0
  50441. #define BIT_MASK_HI8Q_TXBD_DESA_L 0xffffffffL
  50442. #define BIT_HI8Q_TXBD_DESA_L(x) \
  50443. (((x) & BIT_MASK_HI8Q_TXBD_DESA_L) << BIT_SHIFT_HI8Q_TXBD_DESA_L)
  50444. #define BITS_HI8Q_TXBD_DESA_L \
  50445. (BIT_MASK_HI8Q_TXBD_DESA_L << BIT_SHIFT_HI8Q_TXBD_DESA_L)
  50446. #define BIT_CLEAR_HI8Q_TXBD_DESA_L(x) ((x) & (~BITS_HI8Q_TXBD_DESA_L))
  50447. #define BIT_GET_HI8Q_TXBD_DESA_L(x) \
  50448. (((x) >> BIT_SHIFT_HI8Q_TXBD_DESA_L) & BIT_MASK_HI8Q_TXBD_DESA_L)
  50449. #define BIT_SET_HI8Q_TXBD_DESA_L(x, v) \
  50450. (BIT_CLEAR_HI8Q_TXBD_DESA_L(x) | BIT_HI8Q_TXBD_DESA_L(v))
  50451. /* 2 REG_HI8Q_TXBD_DESA_H (Offset 0x2304) */
  50452. #define BIT_SHIFT_HI8Q_TXBD_DESA_H 0
  50453. #define BIT_MASK_HI8Q_TXBD_DESA_H 0xffffffffL
  50454. #define BIT_HI8Q_TXBD_DESA_H(x) \
  50455. (((x) & BIT_MASK_HI8Q_TXBD_DESA_H) << BIT_SHIFT_HI8Q_TXBD_DESA_H)
  50456. #define BITS_HI8Q_TXBD_DESA_H \
  50457. (BIT_MASK_HI8Q_TXBD_DESA_H << BIT_SHIFT_HI8Q_TXBD_DESA_H)
  50458. #define BIT_CLEAR_HI8Q_TXBD_DESA_H(x) ((x) & (~BITS_HI8Q_TXBD_DESA_H))
  50459. #define BIT_GET_HI8Q_TXBD_DESA_H(x) \
  50460. (((x) >> BIT_SHIFT_HI8Q_TXBD_DESA_H) & BIT_MASK_HI8Q_TXBD_DESA_H)
  50461. #define BIT_SET_HI8Q_TXBD_DESA_H(x, v) \
  50462. (BIT_CLEAR_HI8Q_TXBD_DESA_H(x) | BIT_HI8Q_TXBD_DESA_H(v))
  50463. /* 2 REG_HI9Q_TXBD_DESA_L (Offset 0x2308) */
  50464. #define BIT_SHIFT_HI9Q_TXBD_DESA_L 0
  50465. #define BIT_MASK_HI9Q_TXBD_DESA_L 0xffffffffL
  50466. #define BIT_HI9Q_TXBD_DESA_L(x) \
  50467. (((x) & BIT_MASK_HI9Q_TXBD_DESA_L) << BIT_SHIFT_HI9Q_TXBD_DESA_L)
  50468. #define BITS_HI9Q_TXBD_DESA_L \
  50469. (BIT_MASK_HI9Q_TXBD_DESA_L << BIT_SHIFT_HI9Q_TXBD_DESA_L)
  50470. #define BIT_CLEAR_HI9Q_TXBD_DESA_L(x) ((x) & (~BITS_HI9Q_TXBD_DESA_L))
  50471. #define BIT_GET_HI9Q_TXBD_DESA_L(x) \
  50472. (((x) >> BIT_SHIFT_HI9Q_TXBD_DESA_L) & BIT_MASK_HI9Q_TXBD_DESA_L)
  50473. #define BIT_SET_HI9Q_TXBD_DESA_L(x, v) \
  50474. (BIT_CLEAR_HI9Q_TXBD_DESA_L(x) | BIT_HI9Q_TXBD_DESA_L(v))
  50475. /* 2 REG_HI9Q_TXBD_DESA_H (Offset 0x230C) */
  50476. #define BIT_SHIFT_HI9Q_TXBD_DESA_H 0
  50477. #define BIT_MASK_HI9Q_TXBD_DESA_H 0xffffffffL
  50478. #define BIT_HI9Q_TXBD_DESA_H(x) \
  50479. (((x) & BIT_MASK_HI9Q_TXBD_DESA_H) << BIT_SHIFT_HI9Q_TXBD_DESA_H)
  50480. #define BITS_HI9Q_TXBD_DESA_H \
  50481. (BIT_MASK_HI9Q_TXBD_DESA_H << BIT_SHIFT_HI9Q_TXBD_DESA_H)
  50482. #define BIT_CLEAR_HI9Q_TXBD_DESA_H(x) ((x) & (~BITS_HI9Q_TXBD_DESA_H))
  50483. #define BIT_GET_HI9Q_TXBD_DESA_H(x) \
  50484. (((x) >> BIT_SHIFT_HI9Q_TXBD_DESA_H) & BIT_MASK_HI9Q_TXBD_DESA_H)
  50485. #define BIT_SET_HI9Q_TXBD_DESA_H(x, v) \
  50486. (BIT_CLEAR_HI9Q_TXBD_DESA_H(x) | BIT_HI9Q_TXBD_DESA_H(v))
  50487. /* 2 REG_HI10Q_TXBD_DESA_L (Offset 0x2310) */
  50488. #define BIT_SHIFT_HI10Q_TXBD_DESA_L 0
  50489. #define BIT_MASK_HI10Q_TXBD_DESA_L 0xffffffffL
  50490. #define BIT_HI10Q_TXBD_DESA_L(x) \
  50491. (((x) & BIT_MASK_HI10Q_TXBD_DESA_L) << BIT_SHIFT_HI10Q_TXBD_DESA_L)
  50492. #define BITS_HI10Q_TXBD_DESA_L \
  50493. (BIT_MASK_HI10Q_TXBD_DESA_L << BIT_SHIFT_HI10Q_TXBD_DESA_L)
  50494. #define BIT_CLEAR_HI10Q_TXBD_DESA_L(x) ((x) & (~BITS_HI10Q_TXBD_DESA_L))
  50495. #define BIT_GET_HI10Q_TXBD_DESA_L(x) \
  50496. (((x) >> BIT_SHIFT_HI10Q_TXBD_DESA_L) & BIT_MASK_HI10Q_TXBD_DESA_L)
  50497. #define BIT_SET_HI10Q_TXBD_DESA_L(x, v) \
  50498. (BIT_CLEAR_HI10Q_TXBD_DESA_L(x) | BIT_HI10Q_TXBD_DESA_L(v))
  50499. /* 2 REG_HI10Q_TXBD_DESA_H (Offset 0x2314) */
  50500. #define BIT_SHIFT_HI10Q_TXBD_DESA_H 0
  50501. #define BIT_MASK_HI10Q_TXBD_DESA_H 0xffffffffL
  50502. #define BIT_HI10Q_TXBD_DESA_H(x) \
  50503. (((x) & BIT_MASK_HI10Q_TXBD_DESA_H) << BIT_SHIFT_HI10Q_TXBD_DESA_H)
  50504. #define BITS_HI10Q_TXBD_DESA_H \
  50505. (BIT_MASK_HI10Q_TXBD_DESA_H << BIT_SHIFT_HI10Q_TXBD_DESA_H)
  50506. #define BIT_CLEAR_HI10Q_TXBD_DESA_H(x) ((x) & (~BITS_HI10Q_TXBD_DESA_H))
  50507. #define BIT_GET_HI10Q_TXBD_DESA_H(x) \
  50508. (((x) >> BIT_SHIFT_HI10Q_TXBD_DESA_H) & BIT_MASK_HI10Q_TXBD_DESA_H)
  50509. #define BIT_SET_HI10Q_TXBD_DESA_H(x, v) \
  50510. (BIT_CLEAR_HI10Q_TXBD_DESA_H(x) | BIT_HI10Q_TXBD_DESA_H(v))
  50511. /* 2 REG_HI11Q_TXBD_DESA_L (Offset 0x2318) */
  50512. #define BIT_SHIFT_HI11Q_TXBD_DESA_L 0
  50513. #define BIT_MASK_HI11Q_TXBD_DESA_L 0xffffffffL
  50514. #define BIT_HI11Q_TXBD_DESA_L(x) \
  50515. (((x) & BIT_MASK_HI11Q_TXBD_DESA_L) << BIT_SHIFT_HI11Q_TXBD_DESA_L)
  50516. #define BITS_HI11Q_TXBD_DESA_L \
  50517. (BIT_MASK_HI11Q_TXBD_DESA_L << BIT_SHIFT_HI11Q_TXBD_DESA_L)
  50518. #define BIT_CLEAR_HI11Q_TXBD_DESA_L(x) ((x) & (~BITS_HI11Q_TXBD_DESA_L))
  50519. #define BIT_GET_HI11Q_TXBD_DESA_L(x) \
  50520. (((x) >> BIT_SHIFT_HI11Q_TXBD_DESA_L) & BIT_MASK_HI11Q_TXBD_DESA_L)
  50521. #define BIT_SET_HI11Q_TXBD_DESA_L(x, v) \
  50522. (BIT_CLEAR_HI11Q_TXBD_DESA_L(x) | BIT_HI11Q_TXBD_DESA_L(v))
  50523. /* 2 REG_HI11Q_TXBD_DESA_H (Offset 0x231C) */
  50524. #define BIT_SHIFT_HI11Q_TXBD_DESA_H 0
  50525. #define BIT_MASK_HI11Q_TXBD_DESA_H 0xffffffffL
  50526. #define BIT_HI11Q_TXBD_DESA_H(x) \
  50527. (((x) & BIT_MASK_HI11Q_TXBD_DESA_H) << BIT_SHIFT_HI11Q_TXBD_DESA_H)
  50528. #define BITS_HI11Q_TXBD_DESA_H \
  50529. (BIT_MASK_HI11Q_TXBD_DESA_H << BIT_SHIFT_HI11Q_TXBD_DESA_H)
  50530. #define BIT_CLEAR_HI11Q_TXBD_DESA_H(x) ((x) & (~BITS_HI11Q_TXBD_DESA_H))
  50531. #define BIT_GET_HI11Q_TXBD_DESA_H(x) \
  50532. (((x) >> BIT_SHIFT_HI11Q_TXBD_DESA_H) & BIT_MASK_HI11Q_TXBD_DESA_H)
  50533. #define BIT_SET_HI11Q_TXBD_DESA_H(x, v) \
  50534. (BIT_CLEAR_HI11Q_TXBD_DESA_H(x) | BIT_HI11Q_TXBD_DESA_H(v))
  50535. /* 2 REG_HI12Q_TXBD_DESA_L (Offset 0x2320) */
  50536. #define BIT_SHIFT_HI12Q_TXBD_DESA_L 0
  50537. #define BIT_MASK_HI12Q_TXBD_DESA_L 0xffffffffL
  50538. #define BIT_HI12Q_TXBD_DESA_L(x) \
  50539. (((x) & BIT_MASK_HI12Q_TXBD_DESA_L) << BIT_SHIFT_HI12Q_TXBD_DESA_L)
  50540. #define BITS_HI12Q_TXBD_DESA_L \
  50541. (BIT_MASK_HI12Q_TXBD_DESA_L << BIT_SHIFT_HI12Q_TXBD_DESA_L)
  50542. #define BIT_CLEAR_HI12Q_TXBD_DESA_L(x) ((x) & (~BITS_HI12Q_TXBD_DESA_L))
  50543. #define BIT_GET_HI12Q_TXBD_DESA_L(x) \
  50544. (((x) >> BIT_SHIFT_HI12Q_TXBD_DESA_L) & BIT_MASK_HI12Q_TXBD_DESA_L)
  50545. #define BIT_SET_HI12Q_TXBD_DESA_L(x, v) \
  50546. (BIT_CLEAR_HI12Q_TXBD_DESA_L(x) | BIT_HI12Q_TXBD_DESA_L(v))
  50547. /* 2 REG_HI12Q_TXBD_DESA_H (Offset 0x2324) */
  50548. #define BIT_SHIFT_HI12Q_TXBD_DESA_H 0
  50549. #define BIT_MASK_HI12Q_TXBD_DESA_H 0xffffffffL
  50550. #define BIT_HI12Q_TXBD_DESA_H(x) \
  50551. (((x) & BIT_MASK_HI12Q_TXBD_DESA_H) << BIT_SHIFT_HI12Q_TXBD_DESA_H)
  50552. #define BITS_HI12Q_TXBD_DESA_H \
  50553. (BIT_MASK_HI12Q_TXBD_DESA_H << BIT_SHIFT_HI12Q_TXBD_DESA_H)
  50554. #define BIT_CLEAR_HI12Q_TXBD_DESA_H(x) ((x) & (~BITS_HI12Q_TXBD_DESA_H))
  50555. #define BIT_GET_HI12Q_TXBD_DESA_H(x) \
  50556. (((x) >> BIT_SHIFT_HI12Q_TXBD_DESA_H) & BIT_MASK_HI12Q_TXBD_DESA_H)
  50557. #define BIT_SET_HI12Q_TXBD_DESA_H(x, v) \
  50558. (BIT_CLEAR_HI12Q_TXBD_DESA_H(x) | BIT_HI12Q_TXBD_DESA_H(v))
  50559. /* 2 REG_HI13Q_TXBD_DESA_L (Offset 0x2328) */
  50560. #define BIT_SHIFT_HI13Q_TXBD_DESA_L 0
  50561. #define BIT_MASK_HI13Q_TXBD_DESA_L 0xffffffffL
  50562. #define BIT_HI13Q_TXBD_DESA_L(x) \
  50563. (((x) & BIT_MASK_HI13Q_TXBD_DESA_L) << BIT_SHIFT_HI13Q_TXBD_DESA_L)
  50564. #define BITS_HI13Q_TXBD_DESA_L \
  50565. (BIT_MASK_HI13Q_TXBD_DESA_L << BIT_SHIFT_HI13Q_TXBD_DESA_L)
  50566. #define BIT_CLEAR_HI13Q_TXBD_DESA_L(x) ((x) & (~BITS_HI13Q_TXBD_DESA_L))
  50567. #define BIT_GET_HI13Q_TXBD_DESA_L(x) \
  50568. (((x) >> BIT_SHIFT_HI13Q_TXBD_DESA_L) & BIT_MASK_HI13Q_TXBD_DESA_L)
  50569. #define BIT_SET_HI13Q_TXBD_DESA_L(x, v) \
  50570. (BIT_CLEAR_HI13Q_TXBD_DESA_L(x) | BIT_HI13Q_TXBD_DESA_L(v))
  50571. /* 2 REG_HI13Q_TXBD_DESA_H (Offset 0x232C) */
  50572. #define BIT_SHIFT_HI13Q_TXBD_DESA_H 0
  50573. #define BIT_MASK_HI13Q_TXBD_DESA_H 0xffffffffL
  50574. #define BIT_HI13Q_TXBD_DESA_H(x) \
  50575. (((x) & BIT_MASK_HI13Q_TXBD_DESA_H) << BIT_SHIFT_HI13Q_TXBD_DESA_H)
  50576. #define BITS_HI13Q_TXBD_DESA_H \
  50577. (BIT_MASK_HI13Q_TXBD_DESA_H << BIT_SHIFT_HI13Q_TXBD_DESA_H)
  50578. #define BIT_CLEAR_HI13Q_TXBD_DESA_H(x) ((x) & (~BITS_HI13Q_TXBD_DESA_H))
  50579. #define BIT_GET_HI13Q_TXBD_DESA_H(x) \
  50580. (((x) >> BIT_SHIFT_HI13Q_TXBD_DESA_H) & BIT_MASK_HI13Q_TXBD_DESA_H)
  50581. #define BIT_SET_HI13Q_TXBD_DESA_H(x, v) \
  50582. (BIT_CLEAR_HI13Q_TXBD_DESA_H(x) | BIT_HI13Q_TXBD_DESA_H(v))
  50583. /* 2 REG_HI14Q_TXBD_DESA_L (Offset 0x2330) */
  50584. #define BIT_SHIFT_HI14Q_TXBD_DESA_L 0
  50585. #define BIT_MASK_HI14Q_TXBD_DESA_L 0xffffffffL
  50586. #define BIT_HI14Q_TXBD_DESA_L(x) \
  50587. (((x) & BIT_MASK_HI14Q_TXBD_DESA_L) << BIT_SHIFT_HI14Q_TXBD_DESA_L)
  50588. #define BITS_HI14Q_TXBD_DESA_L \
  50589. (BIT_MASK_HI14Q_TXBD_DESA_L << BIT_SHIFT_HI14Q_TXBD_DESA_L)
  50590. #define BIT_CLEAR_HI14Q_TXBD_DESA_L(x) ((x) & (~BITS_HI14Q_TXBD_DESA_L))
  50591. #define BIT_GET_HI14Q_TXBD_DESA_L(x) \
  50592. (((x) >> BIT_SHIFT_HI14Q_TXBD_DESA_L) & BIT_MASK_HI14Q_TXBD_DESA_L)
  50593. #define BIT_SET_HI14Q_TXBD_DESA_L(x, v) \
  50594. (BIT_CLEAR_HI14Q_TXBD_DESA_L(x) | BIT_HI14Q_TXBD_DESA_L(v))
  50595. /* 2 REG_HI14Q_TXBD_DESA_H (Offset 0x2334) */
  50596. #define BIT_SHIFT_HI14Q_TXBD_DESA_H 0
  50597. #define BIT_MASK_HI14Q_TXBD_DESA_H 0xffffffffL
  50598. #define BIT_HI14Q_TXBD_DESA_H(x) \
  50599. (((x) & BIT_MASK_HI14Q_TXBD_DESA_H) << BIT_SHIFT_HI14Q_TXBD_DESA_H)
  50600. #define BITS_HI14Q_TXBD_DESA_H \
  50601. (BIT_MASK_HI14Q_TXBD_DESA_H << BIT_SHIFT_HI14Q_TXBD_DESA_H)
  50602. #define BIT_CLEAR_HI14Q_TXBD_DESA_H(x) ((x) & (~BITS_HI14Q_TXBD_DESA_H))
  50603. #define BIT_GET_HI14Q_TXBD_DESA_H(x) \
  50604. (((x) >> BIT_SHIFT_HI14Q_TXBD_DESA_H) & BIT_MASK_HI14Q_TXBD_DESA_H)
  50605. #define BIT_SET_HI14Q_TXBD_DESA_H(x, v) \
  50606. (BIT_CLEAR_HI14Q_TXBD_DESA_H(x) | BIT_HI14Q_TXBD_DESA_H(v))
  50607. /* 2 REG_HI15Q_TXBD_DESA_L (Offset 0x2338) */
  50608. #define BIT_SHIFT_HI15Q_TXBD_DESA_L 0
  50609. #define BIT_MASK_HI15Q_TXBD_DESA_L 0xffffffffL
  50610. #define BIT_HI15Q_TXBD_DESA_L(x) \
  50611. (((x) & BIT_MASK_HI15Q_TXBD_DESA_L) << BIT_SHIFT_HI15Q_TXBD_DESA_L)
  50612. #define BITS_HI15Q_TXBD_DESA_L \
  50613. (BIT_MASK_HI15Q_TXBD_DESA_L << BIT_SHIFT_HI15Q_TXBD_DESA_L)
  50614. #define BIT_CLEAR_HI15Q_TXBD_DESA_L(x) ((x) & (~BITS_HI15Q_TXBD_DESA_L))
  50615. #define BIT_GET_HI15Q_TXBD_DESA_L(x) \
  50616. (((x) >> BIT_SHIFT_HI15Q_TXBD_DESA_L) & BIT_MASK_HI15Q_TXBD_DESA_L)
  50617. #define BIT_SET_HI15Q_TXBD_DESA_L(x, v) \
  50618. (BIT_CLEAR_HI15Q_TXBD_DESA_L(x) | BIT_HI15Q_TXBD_DESA_L(v))
  50619. /* 2 REG_HI15Q_TXBD_DESA_H (Offset 0x233C) */
  50620. #define BIT_SHIFT_HI15Q_TXBD_DESA_H 0
  50621. #define BIT_MASK_HI15Q_TXBD_DESA_H 0xffffffffL
  50622. #define BIT_HI15Q_TXBD_DESA_H(x) \
  50623. (((x) & BIT_MASK_HI15Q_TXBD_DESA_H) << BIT_SHIFT_HI15Q_TXBD_DESA_H)
  50624. #define BITS_HI15Q_TXBD_DESA_H \
  50625. (BIT_MASK_HI15Q_TXBD_DESA_H << BIT_SHIFT_HI15Q_TXBD_DESA_H)
  50626. #define BIT_CLEAR_HI15Q_TXBD_DESA_H(x) ((x) & (~BITS_HI15Q_TXBD_DESA_H))
  50627. #define BIT_GET_HI15Q_TXBD_DESA_H(x) \
  50628. (((x) >> BIT_SHIFT_HI15Q_TXBD_DESA_H) & BIT_MASK_HI15Q_TXBD_DESA_H)
  50629. #define BIT_SET_HI15Q_TXBD_DESA_H(x, v) \
  50630. (BIT_CLEAR_HI15Q_TXBD_DESA_H(x) | BIT_HI15Q_TXBD_DESA_H(v))
  50631. /* 2 REG_HI16Q_TXBD_DESA_L (Offset 0x2340) */
  50632. #define BIT_SHIFT_HI16Q_TXBD_DESA_L 0
  50633. #define BIT_MASK_HI16Q_TXBD_DESA_L 0xffffffffL
  50634. #define BIT_HI16Q_TXBD_DESA_L(x) \
  50635. (((x) & BIT_MASK_HI16Q_TXBD_DESA_L) << BIT_SHIFT_HI16Q_TXBD_DESA_L)
  50636. #define BITS_HI16Q_TXBD_DESA_L \
  50637. (BIT_MASK_HI16Q_TXBD_DESA_L << BIT_SHIFT_HI16Q_TXBD_DESA_L)
  50638. #define BIT_CLEAR_HI16Q_TXBD_DESA_L(x) ((x) & (~BITS_HI16Q_TXBD_DESA_L))
  50639. #define BIT_GET_HI16Q_TXBD_DESA_L(x) \
  50640. (((x) >> BIT_SHIFT_HI16Q_TXBD_DESA_L) & BIT_MASK_HI16Q_TXBD_DESA_L)
  50641. #define BIT_SET_HI16Q_TXBD_DESA_L(x, v) \
  50642. (BIT_CLEAR_HI16Q_TXBD_DESA_L(x) | BIT_HI16Q_TXBD_DESA_L(v))
  50643. /* 2 REG_HI16Q_TXBD_DESA_H (Offset 0x2344) */
  50644. #define BIT_SHIFT_HI16Q_TXBD_DESA_H 0
  50645. #define BIT_MASK_HI16Q_TXBD_DESA_H 0xffffffffL
  50646. #define BIT_HI16Q_TXBD_DESA_H(x) \
  50647. (((x) & BIT_MASK_HI16Q_TXBD_DESA_H) << BIT_SHIFT_HI16Q_TXBD_DESA_H)
  50648. #define BITS_HI16Q_TXBD_DESA_H \
  50649. (BIT_MASK_HI16Q_TXBD_DESA_H << BIT_SHIFT_HI16Q_TXBD_DESA_H)
  50650. #define BIT_CLEAR_HI16Q_TXBD_DESA_H(x) ((x) & (~BITS_HI16Q_TXBD_DESA_H))
  50651. #define BIT_GET_HI16Q_TXBD_DESA_H(x) \
  50652. (((x) >> BIT_SHIFT_HI16Q_TXBD_DESA_H) & BIT_MASK_HI16Q_TXBD_DESA_H)
  50653. #define BIT_SET_HI16Q_TXBD_DESA_H(x, v) \
  50654. (BIT_CLEAR_HI16Q_TXBD_DESA_H(x) | BIT_HI16Q_TXBD_DESA_H(v))
  50655. /* 2 REG_HI17Q_TXBD_DESA_L (Offset 0x2348) */
  50656. #define BIT_SHIFT_HI17Q_TXBD_DESA_L 0
  50657. #define BIT_MASK_HI17Q_TXBD_DESA_L 0xffffffffL
  50658. #define BIT_HI17Q_TXBD_DESA_L(x) \
  50659. (((x) & BIT_MASK_HI17Q_TXBD_DESA_L) << BIT_SHIFT_HI17Q_TXBD_DESA_L)
  50660. #define BITS_HI17Q_TXBD_DESA_L \
  50661. (BIT_MASK_HI17Q_TXBD_DESA_L << BIT_SHIFT_HI17Q_TXBD_DESA_L)
  50662. #define BIT_CLEAR_HI17Q_TXBD_DESA_L(x) ((x) & (~BITS_HI17Q_TXBD_DESA_L))
  50663. #define BIT_GET_HI17Q_TXBD_DESA_L(x) \
  50664. (((x) >> BIT_SHIFT_HI17Q_TXBD_DESA_L) & BIT_MASK_HI17Q_TXBD_DESA_L)
  50665. #define BIT_SET_HI17Q_TXBD_DESA_L(x, v) \
  50666. (BIT_CLEAR_HI17Q_TXBD_DESA_L(x) | BIT_HI17Q_TXBD_DESA_L(v))
  50667. /* 2 REG_HI17Q_TXBD_DESA_H (Offset 0x234C) */
  50668. #define BIT_SHIFT_HI17Q_TXBD_DESA_H 0
  50669. #define BIT_MASK_HI17Q_TXBD_DESA_H 0xffffffffL
  50670. #define BIT_HI17Q_TXBD_DESA_H(x) \
  50671. (((x) & BIT_MASK_HI17Q_TXBD_DESA_H) << BIT_SHIFT_HI17Q_TXBD_DESA_H)
  50672. #define BITS_HI17Q_TXBD_DESA_H \
  50673. (BIT_MASK_HI17Q_TXBD_DESA_H << BIT_SHIFT_HI17Q_TXBD_DESA_H)
  50674. #define BIT_CLEAR_HI17Q_TXBD_DESA_H(x) ((x) & (~BITS_HI17Q_TXBD_DESA_H))
  50675. #define BIT_GET_HI17Q_TXBD_DESA_H(x) \
  50676. (((x) >> BIT_SHIFT_HI17Q_TXBD_DESA_H) & BIT_MASK_HI17Q_TXBD_DESA_H)
  50677. #define BIT_SET_HI17Q_TXBD_DESA_H(x, v) \
  50678. (BIT_CLEAR_HI17Q_TXBD_DESA_H(x) | BIT_HI17Q_TXBD_DESA_H(v))
  50679. /* 2 REG_HI18Q_TXBD_DESA_L (Offset 0x2350) */
  50680. #define BIT_SHIFT_HI18Q_TXBD_DESA_L 0
  50681. #define BIT_MASK_HI18Q_TXBD_DESA_L 0xffffffffL
  50682. #define BIT_HI18Q_TXBD_DESA_L(x) \
  50683. (((x) & BIT_MASK_HI18Q_TXBD_DESA_L) << BIT_SHIFT_HI18Q_TXBD_DESA_L)
  50684. #define BITS_HI18Q_TXBD_DESA_L \
  50685. (BIT_MASK_HI18Q_TXBD_DESA_L << BIT_SHIFT_HI18Q_TXBD_DESA_L)
  50686. #define BIT_CLEAR_HI18Q_TXBD_DESA_L(x) ((x) & (~BITS_HI18Q_TXBD_DESA_L))
  50687. #define BIT_GET_HI18Q_TXBD_DESA_L(x) \
  50688. (((x) >> BIT_SHIFT_HI18Q_TXBD_DESA_L) & BIT_MASK_HI18Q_TXBD_DESA_L)
  50689. #define BIT_SET_HI18Q_TXBD_DESA_L(x, v) \
  50690. (BIT_CLEAR_HI18Q_TXBD_DESA_L(x) | BIT_HI18Q_TXBD_DESA_L(v))
  50691. /* 2 REG_HI18Q_TXBD_DESA_H (Offset 0x2354) */
  50692. #define BIT_SHIFT_HI18Q_TXBD_DESA_H 0
  50693. #define BIT_MASK_HI18Q_TXBD_DESA_H 0xffffffffL
  50694. #define BIT_HI18Q_TXBD_DESA_H(x) \
  50695. (((x) & BIT_MASK_HI18Q_TXBD_DESA_H) << BIT_SHIFT_HI18Q_TXBD_DESA_H)
  50696. #define BITS_HI18Q_TXBD_DESA_H \
  50697. (BIT_MASK_HI18Q_TXBD_DESA_H << BIT_SHIFT_HI18Q_TXBD_DESA_H)
  50698. #define BIT_CLEAR_HI18Q_TXBD_DESA_H(x) ((x) & (~BITS_HI18Q_TXBD_DESA_H))
  50699. #define BIT_GET_HI18Q_TXBD_DESA_H(x) \
  50700. (((x) >> BIT_SHIFT_HI18Q_TXBD_DESA_H) & BIT_MASK_HI18Q_TXBD_DESA_H)
  50701. #define BIT_SET_HI18Q_TXBD_DESA_H(x, v) \
  50702. (BIT_CLEAR_HI18Q_TXBD_DESA_H(x) | BIT_HI18Q_TXBD_DESA_H(v))
  50703. /* 2 REG_HI19Q_TXBD_DESA_L (Offset 0x2358) */
  50704. #define BIT_SHIFT_HI19Q_TXBD_DESA_L 0
  50705. #define BIT_MASK_HI19Q_TXBD_DESA_L 0xffffffffL
  50706. #define BIT_HI19Q_TXBD_DESA_L(x) \
  50707. (((x) & BIT_MASK_HI19Q_TXBD_DESA_L) << BIT_SHIFT_HI19Q_TXBD_DESA_L)
  50708. #define BITS_HI19Q_TXBD_DESA_L \
  50709. (BIT_MASK_HI19Q_TXBD_DESA_L << BIT_SHIFT_HI19Q_TXBD_DESA_L)
  50710. #define BIT_CLEAR_HI19Q_TXBD_DESA_L(x) ((x) & (~BITS_HI19Q_TXBD_DESA_L))
  50711. #define BIT_GET_HI19Q_TXBD_DESA_L(x) \
  50712. (((x) >> BIT_SHIFT_HI19Q_TXBD_DESA_L) & BIT_MASK_HI19Q_TXBD_DESA_L)
  50713. #define BIT_SET_HI19Q_TXBD_DESA_L(x, v) \
  50714. (BIT_CLEAR_HI19Q_TXBD_DESA_L(x) | BIT_HI19Q_TXBD_DESA_L(v))
  50715. /* 2 REG_HI19Q_TXBD_DESA_H (Offset 0x235C) */
  50716. #define BIT_CLR_P0HI19Q_HW_IDX BIT(25)
  50717. #define BIT_CLR_P0HI18Q_HW_IDX BIT(24)
  50718. #define BIT_CLR_P0HI17Q_HW_IDX BIT(23)
  50719. #define BIT_CLR_P0HI16Q_HW_IDX BIT(22)
  50720. #define BIT_CLR_P0HI19Q_HOST_IDX BIT(9)
  50721. #define BIT_CLR_P0HI18Q_HOST_IDX BIT(8)
  50722. #define BIT_CLR_P0HI17Q_HOST_IDX BIT(7)
  50723. #define BIT_CLR_P0HI16Q_HOST_IDX BIT(6)
  50724. #define BIT_SHIFT_HI19Q_TXBD_DESA_H 0
  50725. #define BIT_MASK_HI19Q_TXBD_DESA_H 0xffffffffL
  50726. #define BIT_HI19Q_TXBD_DESA_H(x) \
  50727. (((x) & BIT_MASK_HI19Q_TXBD_DESA_H) << BIT_SHIFT_HI19Q_TXBD_DESA_H)
  50728. #define BITS_HI19Q_TXBD_DESA_H \
  50729. (BIT_MASK_HI19Q_TXBD_DESA_H << BIT_SHIFT_HI19Q_TXBD_DESA_H)
  50730. #define BIT_CLEAR_HI19Q_TXBD_DESA_H(x) ((x) & (~BITS_HI19Q_TXBD_DESA_H))
  50731. #define BIT_GET_HI19Q_TXBD_DESA_H(x) \
  50732. (((x) >> BIT_SHIFT_HI19Q_TXBD_DESA_H) & BIT_MASK_HI19Q_TXBD_DESA_H)
  50733. #define BIT_SET_HI19Q_TXBD_DESA_H(x, v) \
  50734. (BIT_CLEAR_HI19Q_TXBD_DESA_H(x) | BIT_HI19Q_TXBD_DESA_H(v))
  50735. /* 2 REG_P0HI16Q_TXBD_IDX (Offset 0x2370) */
  50736. #define BIT_SHIFT_P0HI16Q_HW_IDX 16
  50737. #define BIT_MASK_P0HI16Q_HW_IDX 0xfff
  50738. #define BIT_P0HI16Q_HW_IDX(x) \
  50739. (((x) & BIT_MASK_P0HI16Q_HW_IDX) << BIT_SHIFT_P0HI16Q_HW_IDX)
  50740. #define BITS_P0HI16Q_HW_IDX \
  50741. (BIT_MASK_P0HI16Q_HW_IDX << BIT_SHIFT_P0HI16Q_HW_IDX)
  50742. #define BIT_CLEAR_P0HI16Q_HW_IDX(x) ((x) & (~BITS_P0HI16Q_HW_IDX))
  50743. #define BIT_GET_P0HI16Q_HW_IDX(x) \
  50744. (((x) >> BIT_SHIFT_P0HI16Q_HW_IDX) & BIT_MASK_P0HI16Q_HW_IDX)
  50745. #define BIT_SET_P0HI16Q_HW_IDX(x, v) \
  50746. (BIT_CLEAR_P0HI16Q_HW_IDX(x) | BIT_P0HI16Q_HW_IDX(v))
  50747. #define BIT_SHIFT_P0HI16Q_HOST_IDX 0
  50748. #define BIT_MASK_P0HI16Q_HOST_IDX 0xfff
  50749. #define BIT_P0HI16Q_HOST_IDX(x) \
  50750. (((x) & BIT_MASK_P0HI16Q_HOST_IDX) << BIT_SHIFT_P0HI16Q_HOST_IDX)
  50751. #define BITS_P0HI16Q_HOST_IDX \
  50752. (BIT_MASK_P0HI16Q_HOST_IDX << BIT_SHIFT_P0HI16Q_HOST_IDX)
  50753. #define BIT_CLEAR_P0HI16Q_HOST_IDX(x) ((x) & (~BITS_P0HI16Q_HOST_IDX))
  50754. #define BIT_GET_P0HI16Q_HOST_IDX(x) \
  50755. (((x) >> BIT_SHIFT_P0HI16Q_HOST_IDX) & BIT_MASK_P0HI16Q_HOST_IDX)
  50756. #define BIT_SET_P0HI16Q_HOST_IDX(x, v) \
  50757. (BIT_CLEAR_P0HI16Q_HOST_IDX(x) | BIT_P0HI16Q_HOST_IDX(v))
  50758. /* 2 REG_P0HI17Q_TXBD_IDX (Offset 0x2374) */
  50759. #define BIT_SHIFT_P0HI17Q_HW_IDX 16
  50760. #define BIT_MASK_P0HI17Q_HW_IDX 0xfff
  50761. #define BIT_P0HI17Q_HW_IDX(x) \
  50762. (((x) & BIT_MASK_P0HI17Q_HW_IDX) << BIT_SHIFT_P0HI17Q_HW_IDX)
  50763. #define BITS_P0HI17Q_HW_IDX \
  50764. (BIT_MASK_P0HI17Q_HW_IDX << BIT_SHIFT_P0HI17Q_HW_IDX)
  50765. #define BIT_CLEAR_P0HI17Q_HW_IDX(x) ((x) & (~BITS_P0HI17Q_HW_IDX))
  50766. #define BIT_GET_P0HI17Q_HW_IDX(x) \
  50767. (((x) >> BIT_SHIFT_P0HI17Q_HW_IDX) & BIT_MASK_P0HI17Q_HW_IDX)
  50768. #define BIT_SET_P0HI17Q_HW_IDX(x, v) \
  50769. (BIT_CLEAR_P0HI17Q_HW_IDX(x) | BIT_P0HI17Q_HW_IDX(v))
  50770. #define BIT_SHIFT_P0HI17Q_HOST_IDX 0
  50771. #define BIT_MASK_P0HI17Q_HOST_IDX 0xfff
  50772. #define BIT_P0HI17Q_HOST_IDX(x) \
  50773. (((x) & BIT_MASK_P0HI17Q_HOST_IDX) << BIT_SHIFT_P0HI17Q_HOST_IDX)
  50774. #define BITS_P0HI17Q_HOST_IDX \
  50775. (BIT_MASK_P0HI17Q_HOST_IDX << BIT_SHIFT_P0HI17Q_HOST_IDX)
  50776. #define BIT_CLEAR_P0HI17Q_HOST_IDX(x) ((x) & (~BITS_P0HI17Q_HOST_IDX))
  50777. #define BIT_GET_P0HI17Q_HOST_IDX(x) \
  50778. (((x) >> BIT_SHIFT_P0HI17Q_HOST_IDX) & BIT_MASK_P0HI17Q_HOST_IDX)
  50779. #define BIT_SET_P0HI17Q_HOST_IDX(x, v) \
  50780. (BIT_CLEAR_P0HI17Q_HOST_IDX(x) | BIT_P0HI17Q_HOST_IDX(v))
  50781. /* 2 REG_P0HI18Q_TXBD_IDX (Offset 0x2378) */
  50782. #define BIT_SHIFT_P0HI18Q_HW_IDX 16
  50783. #define BIT_MASK_P0HI18Q_HW_IDX 0xfff
  50784. #define BIT_P0HI18Q_HW_IDX(x) \
  50785. (((x) & BIT_MASK_P0HI18Q_HW_IDX) << BIT_SHIFT_P0HI18Q_HW_IDX)
  50786. #define BITS_P0HI18Q_HW_IDX \
  50787. (BIT_MASK_P0HI18Q_HW_IDX << BIT_SHIFT_P0HI18Q_HW_IDX)
  50788. #define BIT_CLEAR_P0HI18Q_HW_IDX(x) ((x) & (~BITS_P0HI18Q_HW_IDX))
  50789. #define BIT_GET_P0HI18Q_HW_IDX(x) \
  50790. (((x) >> BIT_SHIFT_P0HI18Q_HW_IDX) & BIT_MASK_P0HI18Q_HW_IDX)
  50791. #define BIT_SET_P0HI18Q_HW_IDX(x, v) \
  50792. (BIT_CLEAR_P0HI18Q_HW_IDX(x) | BIT_P0HI18Q_HW_IDX(v))
  50793. #define BIT_SHIFT_P0HI18Q_HOST_IDX 0
  50794. #define BIT_MASK_P0HI18Q_HOST_IDX 0xfff
  50795. #define BIT_P0HI18Q_HOST_IDX(x) \
  50796. (((x) & BIT_MASK_P0HI18Q_HOST_IDX) << BIT_SHIFT_P0HI18Q_HOST_IDX)
  50797. #define BITS_P0HI18Q_HOST_IDX \
  50798. (BIT_MASK_P0HI18Q_HOST_IDX << BIT_SHIFT_P0HI18Q_HOST_IDX)
  50799. #define BIT_CLEAR_P0HI18Q_HOST_IDX(x) ((x) & (~BITS_P0HI18Q_HOST_IDX))
  50800. #define BIT_GET_P0HI18Q_HOST_IDX(x) \
  50801. (((x) >> BIT_SHIFT_P0HI18Q_HOST_IDX) & BIT_MASK_P0HI18Q_HOST_IDX)
  50802. #define BIT_SET_P0HI18Q_HOST_IDX(x, v) \
  50803. (BIT_CLEAR_P0HI18Q_HOST_IDX(x) | BIT_P0HI18Q_HOST_IDX(v))
  50804. /* 2 REG_P0HI19Q_TXBD_IDX (Offset 0x237C) */
  50805. #define BIT_SHIFT_P0HI19Q_HW_IDX 16
  50806. #define BIT_MASK_P0HI19Q_HW_IDX 0xfff
  50807. #define BIT_P0HI19Q_HW_IDX(x) \
  50808. (((x) & BIT_MASK_P0HI19Q_HW_IDX) << BIT_SHIFT_P0HI19Q_HW_IDX)
  50809. #define BITS_P0HI19Q_HW_IDX \
  50810. (BIT_MASK_P0HI19Q_HW_IDX << BIT_SHIFT_P0HI19Q_HW_IDX)
  50811. #define BIT_CLEAR_P0HI19Q_HW_IDX(x) ((x) & (~BITS_P0HI19Q_HW_IDX))
  50812. #define BIT_GET_P0HI19Q_HW_IDX(x) \
  50813. (((x) >> BIT_SHIFT_P0HI19Q_HW_IDX) & BIT_MASK_P0HI19Q_HW_IDX)
  50814. #define BIT_SET_P0HI19Q_HW_IDX(x, v) \
  50815. (BIT_CLEAR_P0HI19Q_HW_IDX(x) | BIT_P0HI19Q_HW_IDX(v))
  50816. #define BIT_SHIFT_P0HI19Q_HOST_IDX 0
  50817. #define BIT_MASK_P0HI19Q_HOST_IDX 0xfff
  50818. #define BIT_P0HI19Q_HOST_IDX(x) \
  50819. (((x) & BIT_MASK_P0HI19Q_HOST_IDX) << BIT_SHIFT_P0HI19Q_HOST_IDX)
  50820. #define BITS_P0HI19Q_HOST_IDX \
  50821. (BIT_MASK_P0HI19Q_HOST_IDX << BIT_SHIFT_P0HI19Q_HOST_IDX)
  50822. #define BIT_CLEAR_P0HI19Q_HOST_IDX(x) ((x) & (~BITS_P0HI19Q_HOST_IDX))
  50823. #define BIT_GET_P0HI19Q_HOST_IDX(x) \
  50824. (((x) >> BIT_SHIFT_P0HI19Q_HOST_IDX) & BIT_MASK_P0HI19Q_HOST_IDX)
  50825. #define BIT_SET_P0HI19Q_HOST_IDX(x, v) \
  50826. (BIT_CLEAR_P0HI19Q_HOST_IDX(x) | BIT_P0HI19Q_HOST_IDX(v))
  50827. /* 2 REG_P0HI16Q_HI17Q_TXBD_NUM (Offset 0x2380) */
  50828. #define BIT_P0HI17Q_FLAG BIT(30)
  50829. #define BIT_SHIFT_P0HI17Q_DESC_MODE 28
  50830. #define BIT_MASK_P0HI17Q_DESC_MODE 0x3
  50831. #define BIT_P0HI17Q_DESC_MODE(x) \
  50832. (((x) & BIT_MASK_P0HI17Q_DESC_MODE) << BIT_SHIFT_P0HI17Q_DESC_MODE)
  50833. #define BITS_P0HI17Q_DESC_MODE \
  50834. (BIT_MASK_P0HI17Q_DESC_MODE << BIT_SHIFT_P0HI17Q_DESC_MODE)
  50835. #define BIT_CLEAR_P0HI17Q_DESC_MODE(x) ((x) & (~BITS_P0HI17Q_DESC_MODE))
  50836. #define BIT_GET_P0HI17Q_DESC_MODE(x) \
  50837. (((x) >> BIT_SHIFT_P0HI17Q_DESC_MODE) & BIT_MASK_P0HI17Q_DESC_MODE)
  50838. #define BIT_SET_P0HI17Q_DESC_MODE(x, v) \
  50839. (BIT_CLEAR_P0HI17Q_DESC_MODE(x) | BIT_P0HI17Q_DESC_MODE(v))
  50840. #define BIT_SHIFT_P0HI17Q_DESC_NUM 16
  50841. #define BIT_MASK_P0HI17Q_DESC_NUM 0xfff
  50842. #define BIT_P0HI17Q_DESC_NUM(x) \
  50843. (((x) & BIT_MASK_P0HI17Q_DESC_NUM) << BIT_SHIFT_P0HI17Q_DESC_NUM)
  50844. #define BITS_P0HI17Q_DESC_NUM \
  50845. (BIT_MASK_P0HI17Q_DESC_NUM << BIT_SHIFT_P0HI17Q_DESC_NUM)
  50846. #define BIT_CLEAR_P0HI17Q_DESC_NUM(x) ((x) & (~BITS_P0HI17Q_DESC_NUM))
  50847. #define BIT_GET_P0HI17Q_DESC_NUM(x) \
  50848. (((x) >> BIT_SHIFT_P0HI17Q_DESC_NUM) & BIT_MASK_P0HI17Q_DESC_NUM)
  50849. #define BIT_SET_P0HI17Q_DESC_NUM(x, v) \
  50850. (BIT_CLEAR_P0HI17Q_DESC_NUM(x) | BIT_P0HI17Q_DESC_NUM(v))
  50851. #define BIT_P0HI16Q_FLAG BIT(14)
  50852. #define BIT_SHIFT_P0HI16Q_DESC_MODE 12
  50853. #define BIT_MASK_P0HI16Q_DESC_MODE 0x3
  50854. #define BIT_P0HI16Q_DESC_MODE(x) \
  50855. (((x) & BIT_MASK_P0HI16Q_DESC_MODE) << BIT_SHIFT_P0HI16Q_DESC_MODE)
  50856. #define BITS_P0HI16Q_DESC_MODE \
  50857. (BIT_MASK_P0HI16Q_DESC_MODE << BIT_SHIFT_P0HI16Q_DESC_MODE)
  50858. #define BIT_CLEAR_P0HI16Q_DESC_MODE(x) ((x) & (~BITS_P0HI16Q_DESC_MODE))
  50859. #define BIT_GET_P0HI16Q_DESC_MODE(x) \
  50860. (((x) >> BIT_SHIFT_P0HI16Q_DESC_MODE) & BIT_MASK_P0HI16Q_DESC_MODE)
  50861. #define BIT_SET_P0HI16Q_DESC_MODE(x, v) \
  50862. (BIT_CLEAR_P0HI16Q_DESC_MODE(x) | BIT_P0HI16Q_DESC_MODE(v))
  50863. #define BIT_SHIFT_P0HI16Q_DESC_NUM 0
  50864. #define BIT_MASK_P0HI16Q_DESC_NUM 0xfff
  50865. #define BIT_P0HI16Q_DESC_NUM(x) \
  50866. (((x) & BIT_MASK_P0HI16Q_DESC_NUM) << BIT_SHIFT_P0HI16Q_DESC_NUM)
  50867. #define BITS_P0HI16Q_DESC_NUM \
  50868. (BIT_MASK_P0HI16Q_DESC_NUM << BIT_SHIFT_P0HI16Q_DESC_NUM)
  50869. #define BIT_CLEAR_P0HI16Q_DESC_NUM(x) ((x) & (~BITS_P0HI16Q_DESC_NUM))
  50870. #define BIT_GET_P0HI16Q_DESC_NUM(x) \
  50871. (((x) >> BIT_SHIFT_P0HI16Q_DESC_NUM) & BIT_MASK_P0HI16Q_DESC_NUM)
  50872. #define BIT_SET_P0HI16Q_DESC_NUM(x, v) \
  50873. (BIT_CLEAR_P0HI16Q_DESC_NUM(x) | BIT_P0HI16Q_DESC_NUM(v))
  50874. /* 2 REG_P0HI18Q_HI19Q_TXBD_NUM (Offset 0x2384) */
  50875. #define BIT_P0HI19Q_FLAG BIT(30)
  50876. #define BIT_SHIFT_P0HI19Q_DESC_MODE 28
  50877. #define BIT_MASK_P0HI19Q_DESC_MODE 0x3
  50878. #define BIT_P0HI19Q_DESC_MODE(x) \
  50879. (((x) & BIT_MASK_P0HI19Q_DESC_MODE) << BIT_SHIFT_P0HI19Q_DESC_MODE)
  50880. #define BITS_P0HI19Q_DESC_MODE \
  50881. (BIT_MASK_P0HI19Q_DESC_MODE << BIT_SHIFT_P0HI19Q_DESC_MODE)
  50882. #define BIT_CLEAR_P0HI19Q_DESC_MODE(x) ((x) & (~BITS_P0HI19Q_DESC_MODE))
  50883. #define BIT_GET_P0HI19Q_DESC_MODE(x) \
  50884. (((x) >> BIT_SHIFT_P0HI19Q_DESC_MODE) & BIT_MASK_P0HI19Q_DESC_MODE)
  50885. #define BIT_SET_P0HI19Q_DESC_MODE(x, v) \
  50886. (BIT_CLEAR_P0HI19Q_DESC_MODE(x) | BIT_P0HI19Q_DESC_MODE(v))
  50887. #define BIT_SHIFT_P0HI19Q_DESC_NUM 16
  50888. #define BIT_MASK_P0HI19Q_DESC_NUM 0xfff
  50889. #define BIT_P0HI19Q_DESC_NUM(x) \
  50890. (((x) & BIT_MASK_P0HI19Q_DESC_NUM) << BIT_SHIFT_P0HI19Q_DESC_NUM)
  50891. #define BITS_P0HI19Q_DESC_NUM \
  50892. (BIT_MASK_P0HI19Q_DESC_NUM << BIT_SHIFT_P0HI19Q_DESC_NUM)
  50893. #define BIT_CLEAR_P0HI19Q_DESC_NUM(x) ((x) & (~BITS_P0HI19Q_DESC_NUM))
  50894. #define BIT_GET_P0HI19Q_DESC_NUM(x) \
  50895. (((x) >> BIT_SHIFT_P0HI19Q_DESC_NUM) & BIT_MASK_P0HI19Q_DESC_NUM)
  50896. #define BIT_SET_P0HI19Q_DESC_NUM(x, v) \
  50897. (BIT_CLEAR_P0HI19Q_DESC_NUM(x) | BIT_P0HI19Q_DESC_NUM(v))
  50898. #define BIT_P0HI18Q_FLAG BIT(14)
  50899. #define BIT_SHIFT_P0HI18Q_DESC_MODE 12
  50900. #define BIT_MASK_P0HI18Q_DESC_MODE 0x3
  50901. #define BIT_P0HI18Q_DESC_MODE(x) \
  50902. (((x) & BIT_MASK_P0HI18Q_DESC_MODE) << BIT_SHIFT_P0HI18Q_DESC_MODE)
  50903. #define BITS_P0HI18Q_DESC_MODE \
  50904. (BIT_MASK_P0HI18Q_DESC_MODE << BIT_SHIFT_P0HI18Q_DESC_MODE)
  50905. #define BIT_CLEAR_P0HI18Q_DESC_MODE(x) ((x) & (~BITS_P0HI18Q_DESC_MODE))
  50906. #define BIT_GET_P0HI18Q_DESC_MODE(x) \
  50907. (((x) >> BIT_SHIFT_P0HI18Q_DESC_MODE) & BIT_MASK_P0HI18Q_DESC_MODE)
  50908. #define BIT_SET_P0HI18Q_DESC_MODE(x, v) \
  50909. (BIT_CLEAR_P0HI18Q_DESC_MODE(x) | BIT_P0HI18Q_DESC_MODE(v))
  50910. #define BIT_SHIFT_P0HI18Q_DESC_NUM 0
  50911. #define BIT_MASK_P0HI18Q_DESC_NUM 0xfff
  50912. #define BIT_P0HI18Q_DESC_NUM(x) \
  50913. (((x) & BIT_MASK_P0HI18Q_DESC_NUM) << BIT_SHIFT_P0HI18Q_DESC_NUM)
  50914. #define BITS_P0HI18Q_DESC_NUM \
  50915. (BIT_MASK_P0HI18Q_DESC_NUM << BIT_SHIFT_P0HI18Q_DESC_NUM)
  50916. #define BIT_CLEAR_P0HI18Q_DESC_NUM(x) ((x) & (~BITS_P0HI18Q_DESC_NUM))
  50917. #define BIT_GET_P0HI18Q_DESC_NUM(x) \
  50918. (((x) >> BIT_SHIFT_P0HI18Q_DESC_NUM) & BIT_MASK_P0HI18Q_DESC_NUM)
  50919. #define BIT_SET_P0HI18Q_DESC_NUM(x, v) \
  50920. (BIT_CLEAR_P0HI18Q_DESC_NUM(x) | BIT_P0HI18Q_DESC_NUM(v))
  50921. #endif
  50922. #if (HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  50923. /* 2 REG_PCIE_HISR1 (Offset 0x23BC) */
  50924. #define BIT_CPU_MGQ_EARLY_INT BIT(6)
  50925. #define BIT_PSTIMER_5 BIT(4)
  50926. #define BIT_PSTIMER_4 BIT(3)
  50927. #define BIT_PSTIMER_3 BIT(2)
  50928. #define BIT_BB_STOPRX_INT BIT(0)
  50929. #endif
  50930. #if (HALMAC_8814B_SUPPORT)
  50931. /* 2 REG_P0HI8Q_HI9Q_TXBD_NUM (Offset 0x23C0) */
  50932. #define BIT_P0HI9Q_FLAG BIT(30)
  50933. #define BIT_SHIFT_P0HI9Q_DESC_MODE 28
  50934. #define BIT_MASK_P0HI9Q_DESC_MODE 0x3
  50935. #define BIT_P0HI9Q_DESC_MODE(x) \
  50936. (((x) & BIT_MASK_P0HI9Q_DESC_MODE) << BIT_SHIFT_P0HI9Q_DESC_MODE)
  50937. #define BITS_P0HI9Q_DESC_MODE \
  50938. (BIT_MASK_P0HI9Q_DESC_MODE << BIT_SHIFT_P0HI9Q_DESC_MODE)
  50939. #define BIT_CLEAR_P0HI9Q_DESC_MODE(x) ((x) & (~BITS_P0HI9Q_DESC_MODE))
  50940. #define BIT_GET_P0HI9Q_DESC_MODE(x) \
  50941. (((x) >> BIT_SHIFT_P0HI9Q_DESC_MODE) & BIT_MASK_P0HI9Q_DESC_MODE)
  50942. #define BIT_SET_P0HI9Q_DESC_MODE(x, v) \
  50943. (BIT_CLEAR_P0HI9Q_DESC_MODE(x) | BIT_P0HI9Q_DESC_MODE(v))
  50944. #define BIT_SHIFT_P0HI9Q_DESC_NUM 16
  50945. #define BIT_MASK_P0HI9Q_DESC_NUM 0xfff
  50946. #define BIT_P0HI9Q_DESC_NUM(x) \
  50947. (((x) & BIT_MASK_P0HI9Q_DESC_NUM) << BIT_SHIFT_P0HI9Q_DESC_NUM)
  50948. #define BITS_P0HI9Q_DESC_NUM \
  50949. (BIT_MASK_P0HI9Q_DESC_NUM << BIT_SHIFT_P0HI9Q_DESC_NUM)
  50950. #define BIT_CLEAR_P0HI9Q_DESC_NUM(x) ((x) & (~BITS_P0HI9Q_DESC_NUM))
  50951. #define BIT_GET_P0HI9Q_DESC_NUM(x) \
  50952. (((x) >> BIT_SHIFT_P0HI9Q_DESC_NUM) & BIT_MASK_P0HI9Q_DESC_NUM)
  50953. #define BIT_SET_P0HI9Q_DESC_NUM(x, v) \
  50954. (BIT_CLEAR_P0HI9Q_DESC_NUM(x) | BIT_P0HI9Q_DESC_NUM(v))
  50955. #define BIT_P0HI8Q_FLAG BIT(14)
  50956. #define BIT_SHIFT_P0HI8Q_DESC_MODE 12
  50957. #define BIT_MASK_P0HI8Q_DESC_MODE 0x3
  50958. #define BIT_P0HI8Q_DESC_MODE(x) \
  50959. (((x) & BIT_MASK_P0HI8Q_DESC_MODE) << BIT_SHIFT_P0HI8Q_DESC_MODE)
  50960. #define BITS_P0HI8Q_DESC_MODE \
  50961. (BIT_MASK_P0HI8Q_DESC_MODE << BIT_SHIFT_P0HI8Q_DESC_MODE)
  50962. #define BIT_CLEAR_P0HI8Q_DESC_MODE(x) ((x) & (~BITS_P0HI8Q_DESC_MODE))
  50963. #define BIT_GET_P0HI8Q_DESC_MODE(x) \
  50964. (((x) >> BIT_SHIFT_P0HI8Q_DESC_MODE) & BIT_MASK_P0HI8Q_DESC_MODE)
  50965. #define BIT_SET_P0HI8Q_DESC_MODE(x, v) \
  50966. (BIT_CLEAR_P0HI8Q_DESC_MODE(x) | BIT_P0HI8Q_DESC_MODE(v))
  50967. #define BIT_SHIFT_P0HI8Q_DESC_NUM 0
  50968. #define BIT_MASK_P0HI8Q_DESC_NUM 0xfff
  50969. #define BIT_P0HI8Q_DESC_NUM(x) \
  50970. (((x) & BIT_MASK_P0HI8Q_DESC_NUM) << BIT_SHIFT_P0HI8Q_DESC_NUM)
  50971. #define BITS_P0HI8Q_DESC_NUM \
  50972. (BIT_MASK_P0HI8Q_DESC_NUM << BIT_SHIFT_P0HI8Q_DESC_NUM)
  50973. #define BIT_CLEAR_P0HI8Q_DESC_NUM(x) ((x) & (~BITS_P0HI8Q_DESC_NUM))
  50974. #define BIT_GET_P0HI8Q_DESC_NUM(x) \
  50975. (((x) >> BIT_SHIFT_P0HI8Q_DESC_NUM) & BIT_MASK_P0HI8Q_DESC_NUM)
  50976. #define BIT_SET_P0HI8Q_DESC_NUM(x, v) \
  50977. (BIT_CLEAR_P0HI8Q_DESC_NUM(x) | BIT_P0HI8Q_DESC_NUM(v))
  50978. /* 2 REG_P0HI10Q_HI11Q_TXBD_NUM (Offset 0x23C4) */
  50979. #define BIT_P0HI11Q_FLAG BIT(30)
  50980. #define BIT_SHIFT_P0HI11Q_DESC_MODE 28
  50981. #define BIT_MASK_P0HI11Q_DESC_MODE 0x3
  50982. #define BIT_P0HI11Q_DESC_MODE(x) \
  50983. (((x) & BIT_MASK_P0HI11Q_DESC_MODE) << BIT_SHIFT_P0HI11Q_DESC_MODE)
  50984. #define BITS_P0HI11Q_DESC_MODE \
  50985. (BIT_MASK_P0HI11Q_DESC_MODE << BIT_SHIFT_P0HI11Q_DESC_MODE)
  50986. #define BIT_CLEAR_P0HI11Q_DESC_MODE(x) ((x) & (~BITS_P0HI11Q_DESC_MODE))
  50987. #define BIT_GET_P0HI11Q_DESC_MODE(x) \
  50988. (((x) >> BIT_SHIFT_P0HI11Q_DESC_MODE) & BIT_MASK_P0HI11Q_DESC_MODE)
  50989. #define BIT_SET_P0HI11Q_DESC_MODE(x, v) \
  50990. (BIT_CLEAR_P0HI11Q_DESC_MODE(x) | BIT_P0HI11Q_DESC_MODE(v))
  50991. #define BIT_SHIFT_P0HI11Q_DESC_NUM 16
  50992. #define BIT_MASK_P0HI11Q_DESC_NUM 0xfff
  50993. #define BIT_P0HI11Q_DESC_NUM(x) \
  50994. (((x) & BIT_MASK_P0HI11Q_DESC_NUM) << BIT_SHIFT_P0HI11Q_DESC_NUM)
  50995. #define BITS_P0HI11Q_DESC_NUM \
  50996. (BIT_MASK_P0HI11Q_DESC_NUM << BIT_SHIFT_P0HI11Q_DESC_NUM)
  50997. #define BIT_CLEAR_P0HI11Q_DESC_NUM(x) ((x) & (~BITS_P0HI11Q_DESC_NUM))
  50998. #define BIT_GET_P0HI11Q_DESC_NUM(x) \
  50999. (((x) >> BIT_SHIFT_P0HI11Q_DESC_NUM) & BIT_MASK_P0HI11Q_DESC_NUM)
  51000. #define BIT_SET_P0HI11Q_DESC_NUM(x, v) \
  51001. (BIT_CLEAR_P0HI11Q_DESC_NUM(x) | BIT_P0HI11Q_DESC_NUM(v))
  51002. #define BIT_P0HI10Q_FLAG BIT(14)
  51003. #define BIT_SHIFT_P0HI10Q_DESC_MODE 12
  51004. #define BIT_MASK_P0HI10Q_DESC_MODE 0x3
  51005. #define BIT_P0HI10Q_DESC_MODE(x) \
  51006. (((x) & BIT_MASK_P0HI10Q_DESC_MODE) << BIT_SHIFT_P0HI10Q_DESC_MODE)
  51007. #define BITS_P0HI10Q_DESC_MODE \
  51008. (BIT_MASK_P0HI10Q_DESC_MODE << BIT_SHIFT_P0HI10Q_DESC_MODE)
  51009. #define BIT_CLEAR_P0HI10Q_DESC_MODE(x) ((x) & (~BITS_P0HI10Q_DESC_MODE))
  51010. #define BIT_GET_P0HI10Q_DESC_MODE(x) \
  51011. (((x) >> BIT_SHIFT_P0HI10Q_DESC_MODE) & BIT_MASK_P0HI10Q_DESC_MODE)
  51012. #define BIT_SET_P0HI10Q_DESC_MODE(x, v) \
  51013. (BIT_CLEAR_P0HI10Q_DESC_MODE(x) | BIT_P0HI10Q_DESC_MODE(v))
  51014. #define BIT_SHIFT_P0HI10Q_DESC_NUM 0
  51015. #define BIT_MASK_P0HI10Q_DESC_NUM 0xfff
  51016. #define BIT_P0HI10Q_DESC_NUM(x) \
  51017. (((x) & BIT_MASK_P0HI10Q_DESC_NUM) << BIT_SHIFT_P0HI10Q_DESC_NUM)
  51018. #define BITS_P0HI10Q_DESC_NUM \
  51019. (BIT_MASK_P0HI10Q_DESC_NUM << BIT_SHIFT_P0HI10Q_DESC_NUM)
  51020. #define BIT_CLEAR_P0HI10Q_DESC_NUM(x) ((x) & (~BITS_P0HI10Q_DESC_NUM))
  51021. #define BIT_GET_P0HI10Q_DESC_NUM(x) \
  51022. (((x) >> BIT_SHIFT_P0HI10Q_DESC_NUM) & BIT_MASK_P0HI10Q_DESC_NUM)
  51023. #define BIT_SET_P0HI10Q_DESC_NUM(x, v) \
  51024. (BIT_CLEAR_P0HI10Q_DESC_NUM(x) | BIT_P0HI10Q_DESC_NUM(v))
  51025. /* 2 REG_P0HI12Q_HI13Q_TXBD_NUM (Offset 0x23C8) */
  51026. #define BIT_P0HI13Q_FLAG BIT(30)
  51027. #define BIT_SHIFT_P0HI13Q_DESC_MODE 28
  51028. #define BIT_MASK_P0HI13Q_DESC_MODE 0x3
  51029. #define BIT_P0HI13Q_DESC_MODE(x) \
  51030. (((x) & BIT_MASK_P0HI13Q_DESC_MODE) << BIT_SHIFT_P0HI13Q_DESC_MODE)
  51031. #define BITS_P0HI13Q_DESC_MODE \
  51032. (BIT_MASK_P0HI13Q_DESC_MODE << BIT_SHIFT_P0HI13Q_DESC_MODE)
  51033. #define BIT_CLEAR_P0HI13Q_DESC_MODE(x) ((x) & (~BITS_P0HI13Q_DESC_MODE))
  51034. #define BIT_GET_P0HI13Q_DESC_MODE(x) \
  51035. (((x) >> BIT_SHIFT_P0HI13Q_DESC_MODE) & BIT_MASK_P0HI13Q_DESC_MODE)
  51036. #define BIT_SET_P0HI13Q_DESC_MODE(x, v) \
  51037. (BIT_CLEAR_P0HI13Q_DESC_MODE(x) | BIT_P0HI13Q_DESC_MODE(v))
  51038. #define BIT_SHIFT_P0HI13Q_DESC_NUM 16
  51039. #define BIT_MASK_P0HI13Q_DESC_NUM 0xfff
  51040. #define BIT_P0HI13Q_DESC_NUM(x) \
  51041. (((x) & BIT_MASK_P0HI13Q_DESC_NUM) << BIT_SHIFT_P0HI13Q_DESC_NUM)
  51042. #define BITS_P0HI13Q_DESC_NUM \
  51043. (BIT_MASK_P0HI13Q_DESC_NUM << BIT_SHIFT_P0HI13Q_DESC_NUM)
  51044. #define BIT_CLEAR_P0HI13Q_DESC_NUM(x) ((x) & (~BITS_P0HI13Q_DESC_NUM))
  51045. #define BIT_GET_P0HI13Q_DESC_NUM(x) \
  51046. (((x) >> BIT_SHIFT_P0HI13Q_DESC_NUM) & BIT_MASK_P0HI13Q_DESC_NUM)
  51047. #define BIT_SET_P0HI13Q_DESC_NUM(x, v) \
  51048. (BIT_CLEAR_P0HI13Q_DESC_NUM(x) | BIT_P0HI13Q_DESC_NUM(v))
  51049. #define BIT_P0HI12Q_FLAG BIT(14)
  51050. #define BIT_SHIFT_P0HI12Q_DESC_MODE 12
  51051. #define BIT_MASK_P0HI12Q_DESC_MODE 0x3
  51052. #define BIT_P0HI12Q_DESC_MODE(x) \
  51053. (((x) & BIT_MASK_P0HI12Q_DESC_MODE) << BIT_SHIFT_P0HI12Q_DESC_MODE)
  51054. #define BITS_P0HI12Q_DESC_MODE \
  51055. (BIT_MASK_P0HI12Q_DESC_MODE << BIT_SHIFT_P0HI12Q_DESC_MODE)
  51056. #define BIT_CLEAR_P0HI12Q_DESC_MODE(x) ((x) & (~BITS_P0HI12Q_DESC_MODE))
  51057. #define BIT_GET_P0HI12Q_DESC_MODE(x) \
  51058. (((x) >> BIT_SHIFT_P0HI12Q_DESC_MODE) & BIT_MASK_P0HI12Q_DESC_MODE)
  51059. #define BIT_SET_P0HI12Q_DESC_MODE(x, v) \
  51060. (BIT_CLEAR_P0HI12Q_DESC_MODE(x) | BIT_P0HI12Q_DESC_MODE(v))
  51061. #define BIT_SHIFT_P0HI12Q_DESC_NUM 0
  51062. #define BIT_MASK_P0HI12Q_DESC_NUM 0xfff
  51063. #define BIT_P0HI12Q_DESC_NUM(x) \
  51064. (((x) & BIT_MASK_P0HI12Q_DESC_NUM) << BIT_SHIFT_P0HI12Q_DESC_NUM)
  51065. #define BITS_P0HI12Q_DESC_NUM \
  51066. (BIT_MASK_P0HI12Q_DESC_NUM << BIT_SHIFT_P0HI12Q_DESC_NUM)
  51067. #define BIT_CLEAR_P0HI12Q_DESC_NUM(x) ((x) & (~BITS_P0HI12Q_DESC_NUM))
  51068. #define BIT_GET_P0HI12Q_DESC_NUM(x) \
  51069. (((x) >> BIT_SHIFT_P0HI12Q_DESC_NUM) & BIT_MASK_P0HI12Q_DESC_NUM)
  51070. #define BIT_SET_P0HI12Q_DESC_NUM(x, v) \
  51071. (BIT_CLEAR_P0HI12Q_DESC_NUM(x) | BIT_P0HI12Q_DESC_NUM(v))
  51072. /* 2 REG_P0HI14Q_HI15Q_TXBD_NUM (Offset 0x23CC) */
  51073. #define BIT_P0HI15Q_FLAG BIT(30)
  51074. #define BIT_SHIFT_P0HI15Q_DESC_MODE 28
  51075. #define BIT_MASK_P0HI15Q_DESC_MODE 0x3
  51076. #define BIT_P0HI15Q_DESC_MODE(x) \
  51077. (((x) & BIT_MASK_P0HI15Q_DESC_MODE) << BIT_SHIFT_P0HI15Q_DESC_MODE)
  51078. #define BITS_P0HI15Q_DESC_MODE \
  51079. (BIT_MASK_P0HI15Q_DESC_MODE << BIT_SHIFT_P0HI15Q_DESC_MODE)
  51080. #define BIT_CLEAR_P0HI15Q_DESC_MODE(x) ((x) & (~BITS_P0HI15Q_DESC_MODE))
  51081. #define BIT_GET_P0HI15Q_DESC_MODE(x) \
  51082. (((x) >> BIT_SHIFT_P0HI15Q_DESC_MODE) & BIT_MASK_P0HI15Q_DESC_MODE)
  51083. #define BIT_SET_P0HI15Q_DESC_MODE(x, v) \
  51084. (BIT_CLEAR_P0HI15Q_DESC_MODE(x) | BIT_P0HI15Q_DESC_MODE(v))
  51085. #define BIT_SHIFT_P0HI15Q_DESC_NUM 16
  51086. #define BIT_MASK_P0HI15Q_DESC_NUM 0xfff
  51087. #define BIT_P0HI15Q_DESC_NUM(x) \
  51088. (((x) & BIT_MASK_P0HI15Q_DESC_NUM) << BIT_SHIFT_P0HI15Q_DESC_NUM)
  51089. #define BITS_P0HI15Q_DESC_NUM \
  51090. (BIT_MASK_P0HI15Q_DESC_NUM << BIT_SHIFT_P0HI15Q_DESC_NUM)
  51091. #define BIT_CLEAR_P0HI15Q_DESC_NUM(x) ((x) & (~BITS_P0HI15Q_DESC_NUM))
  51092. #define BIT_GET_P0HI15Q_DESC_NUM(x) \
  51093. (((x) >> BIT_SHIFT_P0HI15Q_DESC_NUM) & BIT_MASK_P0HI15Q_DESC_NUM)
  51094. #define BIT_SET_P0HI15Q_DESC_NUM(x, v) \
  51095. (BIT_CLEAR_P0HI15Q_DESC_NUM(x) | BIT_P0HI15Q_DESC_NUM(v))
  51096. #define BIT_P0HI14Q_FLAG BIT(14)
  51097. #define BIT_SHIFT_P0HI14Q_DESC_MODE 12
  51098. #define BIT_MASK_P0HI14Q_DESC_MODE 0x3
  51099. #define BIT_P0HI14Q_DESC_MODE(x) \
  51100. (((x) & BIT_MASK_P0HI14Q_DESC_MODE) << BIT_SHIFT_P0HI14Q_DESC_MODE)
  51101. #define BITS_P0HI14Q_DESC_MODE \
  51102. (BIT_MASK_P0HI14Q_DESC_MODE << BIT_SHIFT_P0HI14Q_DESC_MODE)
  51103. #define BIT_CLEAR_P0HI14Q_DESC_MODE(x) ((x) & (~BITS_P0HI14Q_DESC_MODE))
  51104. #define BIT_GET_P0HI14Q_DESC_MODE(x) \
  51105. (((x) >> BIT_SHIFT_P0HI14Q_DESC_MODE) & BIT_MASK_P0HI14Q_DESC_MODE)
  51106. #define BIT_SET_P0HI14Q_DESC_MODE(x, v) \
  51107. (BIT_CLEAR_P0HI14Q_DESC_MODE(x) | BIT_P0HI14Q_DESC_MODE(v))
  51108. #define BIT_SHIFT_P0HI14Q_DESC_NUM 0
  51109. #define BIT_MASK_P0HI14Q_DESC_NUM 0xfff
  51110. #define BIT_P0HI14Q_DESC_NUM(x) \
  51111. (((x) & BIT_MASK_P0HI14Q_DESC_NUM) << BIT_SHIFT_P0HI14Q_DESC_NUM)
  51112. #define BITS_P0HI14Q_DESC_NUM \
  51113. (BIT_MASK_P0HI14Q_DESC_NUM << BIT_SHIFT_P0HI14Q_DESC_NUM)
  51114. #define BIT_CLEAR_P0HI14Q_DESC_NUM(x) ((x) & (~BITS_P0HI14Q_DESC_NUM))
  51115. #define BIT_GET_P0HI14Q_DESC_NUM(x) \
  51116. (((x) >> BIT_SHIFT_P0HI14Q_DESC_NUM) & BIT_MASK_P0HI14Q_DESC_NUM)
  51117. #define BIT_SET_P0HI14Q_DESC_NUM(x, v) \
  51118. (BIT_CLEAR_P0HI14Q_DESC_NUM(x) | BIT_P0HI14Q_DESC_NUM(v))
  51119. /* 2 REG_ACH6_ACH7_TXBD_NUM (Offset 0x23F0) */
  51120. #define BIT_PCIE_ACH7_FLAG BIT(30)
  51121. #define BIT_SHIFT_ACH7_DESC_MODE 28
  51122. #define BIT_MASK_ACH7_DESC_MODE 0x3
  51123. #define BIT_ACH7_DESC_MODE(x) \
  51124. (((x) & BIT_MASK_ACH7_DESC_MODE) << BIT_SHIFT_ACH7_DESC_MODE)
  51125. #define BITS_ACH7_DESC_MODE \
  51126. (BIT_MASK_ACH7_DESC_MODE << BIT_SHIFT_ACH7_DESC_MODE)
  51127. #define BIT_CLEAR_ACH7_DESC_MODE(x) ((x) & (~BITS_ACH7_DESC_MODE))
  51128. #define BIT_GET_ACH7_DESC_MODE(x) \
  51129. (((x) >> BIT_SHIFT_ACH7_DESC_MODE) & BIT_MASK_ACH7_DESC_MODE)
  51130. #define BIT_SET_ACH7_DESC_MODE(x, v) \
  51131. (BIT_CLEAR_ACH7_DESC_MODE(x) | BIT_ACH7_DESC_MODE(v))
  51132. #define BIT_SHIFT_ACH7_DESC_NUM 16
  51133. #define BIT_MASK_ACH7_DESC_NUM 0xfff
  51134. #define BIT_ACH7_DESC_NUM(x) \
  51135. (((x) & BIT_MASK_ACH7_DESC_NUM) << BIT_SHIFT_ACH7_DESC_NUM)
  51136. #define BITS_ACH7_DESC_NUM (BIT_MASK_ACH7_DESC_NUM << BIT_SHIFT_ACH7_DESC_NUM)
  51137. #define BIT_CLEAR_ACH7_DESC_NUM(x) ((x) & (~BITS_ACH7_DESC_NUM))
  51138. #define BIT_GET_ACH7_DESC_NUM(x) \
  51139. (((x) >> BIT_SHIFT_ACH7_DESC_NUM) & BIT_MASK_ACH7_DESC_NUM)
  51140. #define BIT_SET_ACH7_DESC_NUM(x, v) \
  51141. (BIT_CLEAR_ACH7_DESC_NUM(x) | BIT_ACH7_DESC_NUM(v))
  51142. #define BIT_PCIE_ACH6_FLAG BIT(14)
  51143. #define BIT_SHIFT_ACH6_DESC_MODE 12
  51144. #define BIT_MASK_ACH6_DESC_MODE 0x3
  51145. #define BIT_ACH6_DESC_MODE(x) \
  51146. (((x) & BIT_MASK_ACH6_DESC_MODE) << BIT_SHIFT_ACH6_DESC_MODE)
  51147. #define BITS_ACH6_DESC_MODE \
  51148. (BIT_MASK_ACH6_DESC_MODE << BIT_SHIFT_ACH6_DESC_MODE)
  51149. #define BIT_CLEAR_ACH6_DESC_MODE(x) ((x) & (~BITS_ACH6_DESC_MODE))
  51150. #define BIT_GET_ACH6_DESC_MODE(x) \
  51151. (((x) >> BIT_SHIFT_ACH6_DESC_MODE) & BIT_MASK_ACH6_DESC_MODE)
  51152. #define BIT_SET_ACH6_DESC_MODE(x, v) \
  51153. (BIT_CLEAR_ACH6_DESC_MODE(x) | BIT_ACH6_DESC_MODE(v))
  51154. #define BIT_SHIFT_ACH6_DESC_NUM 0
  51155. #define BIT_MASK_ACH6_DESC_NUM 0xfff
  51156. #define BIT_ACH6_DESC_NUM(x) \
  51157. (((x) & BIT_MASK_ACH6_DESC_NUM) << BIT_SHIFT_ACH6_DESC_NUM)
  51158. #define BITS_ACH6_DESC_NUM (BIT_MASK_ACH6_DESC_NUM << BIT_SHIFT_ACH6_DESC_NUM)
  51159. #define BIT_CLEAR_ACH6_DESC_NUM(x) ((x) & (~BITS_ACH6_DESC_NUM))
  51160. #define BIT_GET_ACH6_DESC_NUM(x) \
  51161. (((x) >> BIT_SHIFT_ACH6_DESC_NUM) & BIT_MASK_ACH6_DESC_NUM)
  51162. #define BIT_SET_ACH6_DESC_NUM(x, v) \
  51163. (BIT_CLEAR_ACH6_DESC_NUM(x) | BIT_ACH6_DESC_NUM(v))
  51164. #endif
  51165. #if (HALMAC_8192F_SUPPORT)
  51166. /* 2 REG_FAST_EDCA_VOVI_SETTING_V1 (Offset 0x2448) */
  51167. #define BIT_SHIFT_VO_FAST_EDCA_TO_V1 0
  51168. #define BIT_MASK_VO_FAST_EDCA_TO_V1 0xffff
  51169. #define BIT_VO_FAST_EDCA_TO_V1(x) \
  51170. (((x) & BIT_MASK_VO_FAST_EDCA_TO_V1) << BIT_SHIFT_VO_FAST_EDCA_TO_V1)
  51171. #define BITS_VO_FAST_EDCA_TO_V1 \
  51172. (BIT_MASK_VO_FAST_EDCA_TO_V1 << BIT_SHIFT_VO_FAST_EDCA_TO_V1)
  51173. #define BIT_CLEAR_VO_FAST_EDCA_TO_V1(x) ((x) & (~BITS_VO_FAST_EDCA_TO_V1))
  51174. #define BIT_GET_VO_FAST_EDCA_TO_V1(x) \
  51175. (((x) >> BIT_SHIFT_VO_FAST_EDCA_TO_V1) & BIT_MASK_VO_FAST_EDCA_TO_V1)
  51176. #define BIT_SET_VO_FAST_EDCA_TO_V1(x, v) \
  51177. (BIT_CLEAR_VO_FAST_EDCA_TO_V1(x) | BIT_VO_FAST_EDCA_TO_V1(v))
  51178. /* 2 REG_FAST_EDCA_BEBK_SETTING_V1 (Offset 0x244C) */
  51179. #define BIT_SHIFT_BE_FAST_EDCA_TO_V1 0
  51180. #define BIT_MASK_BE_FAST_EDCA_TO_V1 0xffff
  51181. #define BIT_BE_FAST_EDCA_TO_V1(x) \
  51182. (((x) & BIT_MASK_BE_FAST_EDCA_TO_V1) << BIT_SHIFT_BE_FAST_EDCA_TO_V1)
  51183. #define BITS_BE_FAST_EDCA_TO_V1 \
  51184. (BIT_MASK_BE_FAST_EDCA_TO_V1 << BIT_SHIFT_BE_FAST_EDCA_TO_V1)
  51185. #define BIT_CLEAR_BE_FAST_EDCA_TO_V1(x) ((x) & (~BITS_BE_FAST_EDCA_TO_V1))
  51186. #define BIT_GET_BE_FAST_EDCA_TO_V1(x) \
  51187. (((x) >> BIT_SHIFT_BE_FAST_EDCA_TO_V1) & BIT_MASK_BE_FAST_EDCA_TO_V1)
  51188. #define BIT_SET_BE_FAST_EDCA_TO_V1(x, v) \
  51189. (BIT_CLEAR_BE_FAST_EDCA_TO_V1(x) | BIT_BE_FAST_EDCA_TO_V1(v))
  51190. #endif
  51191. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  51192. HALMAC_8812F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || \
  51193. HALMAC_8822C_SUPPORT)
  51194. /* 2 REG_R_MACID_RELEASE_SUCCESS_0_V1 (Offset 0x2460) */
  51195. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0 0
  51196. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_0 0xffffffffL
  51197. #define BIT_R_MACID_RELEASE_SUCCESS_0(x) \
  51198. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0) \
  51199. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0)
  51200. #define BITS_R_MACID_RELEASE_SUCCESS_0 \
  51201. (BIT_MASK_R_MACID_RELEASE_SUCCESS_0 \
  51202. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0)
  51203. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0(x) \
  51204. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_0))
  51205. #define BIT_GET_R_MACID_RELEASE_SUCCESS_0(x) \
  51206. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0) & \
  51207. BIT_MASK_R_MACID_RELEASE_SUCCESS_0)
  51208. #define BIT_SET_R_MACID_RELEASE_SUCCESS_0(x, v) \
  51209. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0(x) | \
  51210. BIT_R_MACID_RELEASE_SUCCESS_0(v))
  51211. /* 2 REG_R_MACID_RELEASE_SUCCESS_2_V1 (Offset 0x2468) */
  51212. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2 0
  51213. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_2 0xffffffffL
  51214. #define BIT_R_MACID_RELEASE_SUCCESS_2(x) \
  51215. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2) \
  51216. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2)
  51217. #define BITS_R_MACID_RELEASE_SUCCESS_2 \
  51218. (BIT_MASK_R_MACID_RELEASE_SUCCESS_2 \
  51219. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2)
  51220. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2(x) \
  51221. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_2))
  51222. #define BIT_GET_R_MACID_RELEASE_SUCCESS_2(x) \
  51223. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2) & \
  51224. BIT_MASK_R_MACID_RELEASE_SUCCESS_2)
  51225. #define BIT_SET_R_MACID_RELEASE_SUCCESS_2(x, v) \
  51226. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2(x) | \
  51227. BIT_R_MACID_RELEASE_SUCCESS_2(v))
  51228. /* 2 REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_V1 (Offset 0x247C) */
  51229. #define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET 0
  51230. #define BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET 0x7f
  51231. #define BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x) \
  51232. (((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET) \
  51233. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
  51234. #define BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET \
  51235. (BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET \
  51236. << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
  51237. #define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x) \
  51238. ((x) & (~BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET))
  51239. #define BIT_GET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x) \
  51240. (((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET) & \
  51241. BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
  51242. #define BIT_SET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x, v) \
  51243. (BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x) | \
  51244. BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(v))
  51245. #endif
  51246. #if (HALMAC_8192F_SUPPORT)
  51247. /* 2 REG_NAN_INFO0 (Offset 0x2480) */
  51248. #define BIT_SHIFT_NAN_INFO0 0
  51249. #define BIT_MASK_NAN_INFO0 0xffffffffL
  51250. #define BIT_NAN_INFO0(x) (((x) & BIT_MASK_NAN_INFO0) << BIT_SHIFT_NAN_INFO0)
  51251. #define BITS_NAN_INFO0 (BIT_MASK_NAN_INFO0 << BIT_SHIFT_NAN_INFO0)
  51252. #define BIT_CLEAR_NAN_INFO0(x) ((x) & (~BITS_NAN_INFO0))
  51253. #define BIT_GET_NAN_INFO0(x) (((x) >> BIT_SHIFT_NAN_INFO0) & BIT_MASK_NAN_INFO0)
  51254. #define BIT_SET_NAN_INFO0(x, v) (BIT_CLEAR_NAN_INFO0(x) | BIT_NAN_INFO0(v))
  51255. /* 2 REG_NAN_INFO1 (Offset 0x2484) */
  51256. #define BIT_SHIFT_NAN_INFO1 0
  51257. #define BIT_MASK_NAN_INFO1 0xffffffffL
  51258. #define BIT_NAN_INFO1(x) (((x) & BIT_MASK_NAN_INFO1) << BIT_SHIFT_NAN_INFO1)
  51259. #define BITS_NAN_INFO1 (BIT_MASK_NAN_INFO1 << BIT_SHIFT_NAN_INFO1)
  51260. #define BIT_CLEAR_NAN_INFO1(x) ((x) & (~BITS_NAN_INFO1))
  51261. #define BIT_GET_NAN_INFO1(x) (((x) >> BIT_SHIFT_NAN_INFO1) & BIT_MASK_NAN_INFO1)
  51262. #define BIT_SET_NAN_INFO1(x, v) (BIT_CLEAR_NAN_INFO1(x) | BIT_NAN_INFO1(v))
  51263. /* 2 REG_NAN_INFO2 (Offset 0x2488) */
  51264. #define BIT_SHIFT_NAN_INFO2 0
  51265. #define BIT_MASK_NAN_INFO2 0xffffffffL
  51266. #define BIT_NAN_INFO2(x) (((x) & BIT_MASK_NAN_INFO2) << BIT_SHIFT_NAN_INFO2)
  51267. #define BITS_NAN_INFO2 (BIT_MASK_NAN_INFO2 << BIT_SHIFT_NAN_INFO2)
  51268. #define BIT_CLEAR_NAN_INFO2(x) ((x) & (~BITS_NAN_INFO2))
  51269. #define BIT_GET_NAN_INFO2(x) (((x) >> BIT_SHIFT_NAN_INFO2) & BIT_MASK_NAN_INFO2)
  51270. #define BIT_SET_NAN_INFO2(x, v) (BIT_CLEAR_NAN_INFO2(x) | BIT_NAN_INFO2(v))
  51271. /* 2 REG_NAN_INFO3 (Offset 0x248C) */
  51272. #define BIT_SHIFT_NAN_INFO3 0
  51273. #define BIT_MASK_NAN_INFO3 0xffffffffL
  51274. #define BIT_NAN_INFO3(x) (((x) & BIT_MASK_NAN_INFO3) << BIT_SHIFT_NAN_INFO3)
  51275. #define BITS_NAN_INFO3 (BIT_MASK_NAN_INFO3 << BIT_SHIFT_NAN_INFO3)
  51276. #define BIT_CLEAR_NAN_INFO3(x) ((x) & (~BITS_NAN_INFO3))
  51277. #define BIT_GET_NAN_INFO3(x) (((x) >> BIT_SHIFT_NAN_INFO3) & BIT_MASK_NAN_INFO3)
  51278. #define BIT_SET_NAN_INFO3(x, v) (BIT_CLEAR_NAN_INFO3(x) | BIT_NAN_INFO3(v))
  51279. /* 2 REG_NAN_INFO4 (Offset 0x2490) */
  51280. #define BIT_SHIFT_NAN_INFO4 0
  51281. #define BIT_MASK_NAN_INFO4 0xffffffffL
  51282. #define BIT_NAN_INFO4(x) (((x) & BIT_MASK_NAN_INFO4) << BIT_SHIFT_NAN_INFO4)
  51283. #define BITS_NAN_INFO4 (BIT_MASK_NAN_INFO4 << BIT_SHIFT_NAN_INFO4)
  51284. #define BIT_CLEAR_NAN_INFO4(x) ((x) & (~BITS_NAN_INFO4))
  51285. #define BIT_GET_NAN_INFO4(x) (((x) >> BIT_SHIFT_NAN_INFO4) & BIT_MASK_NAN_INFO4)
  51286. #define BIT_SET_NAN_INFO4(x, v) (BIT_CLEAR_NAN_INFO4(x) | BIT_NAN_INFO4(v))
  51287. /* 2 REG_NAN_INFO5 (Offset 0x2494) */
  51288. #define BIT_SHIFT_NAN_INFO5 0
  51289. #define BIT_MASK_NAN_INFO5 0xffffffffL
  51290. #define BIT_NAN_INFO5(x) (((x) & BIT_MASK_NAN_INFO5) << BIT_SHIFT_NAN_INFO5)
  51291. #define BITS_NAN_INFO5 (BIT_MASK_NAN_INFO5 << BIT_SHIFT_NAN_INFO5)
  51292. #define BIT_CLEAR_NAN_INFO5(x) ((x) & (~BITS_NAN_INFO5))
  51293. #define BIT_GET_NAN_INFO5(x) (((x) >> BIT_SHIFT_NAN_INFO5) & BIT_MASK_NAN_INFO5)
  51294. #define BIT_SET_NAN_INFO5(x, v) (BIT_CLEAR_NAN_INFO5(x) | BIT_NAN_INFO5(v))
  51295. /* 2 REG_NAN_INFO6 (Offset 0x2498) */
  51296. #define BIT_SHIFT_NAN_INFO6 0
  51297. #define BIT_MASK_NAN_INFO6 0xffffffffL
  51298. #define BIT_NAN_INFO6(x) (((x) & BIT_MASK_NAN_INFO6) << BIT_SHIFT_NAN_INFO6)
  51299. #define BITS_NAN_INFO6 (BIT_MASK_NAN_INFO6 << BIT_SHIFT_NAN_INFO6)
  51300. #define BIT_CLEAR_NAN_INFO6(x) ((x) & (~BITS_NAN_INFO6))
  51301. #define BIT_GET_NAN_INFO6(x) (((x) >> BIT_SHIFT_NAN_INFO6) & BIT_MASK_NAN_INFO6)
  51302. #define BIT_SET_NAN_INFO6(x, v) (BIT_CLEAR_NAN_INFO6(x) | BIT_NAN_INFO6(v))
  51303. /* 2 REG_NAN_INFO7 (Offset 0x249C) */
  51304. #define BIT_SHIFT_NAN_INFO7 0
  51305. #define BIT_MASK_NAN_INFO7 0xffffffffL
  51306. #define BIT_NAN_INFO7(x) (((x) & BIT_MASK_NAN_INFO7) << BIT_SHIFT_NAN_INFO7)
  51307. #define BITS_NAN_INFO7 (BIT_MASK_NAN_INFO7 << BIT_SHIFT_NAN_INFO7)
  51308. #define BIT_CLEAR_NAN_INFO7(x) ((x) & (~BITS_NAN_INFO7))
  51309. #define BIT_GET_NAN_INFO7(x) (((x) >> BIT_SHIFT_NAN_INFO7) & BIT_MASK_NAN_INFO7)
  51310. #define BIT_SET_NAN_INFO7(x, v) (BIT_CLEAR_NAN_INFO7(x) | BIT_NAN_INFO7(v))
  51311. /* 2 REG_NAN_INFO8 (Offset 0x24A0) */
  51312. #define BIT_SHIFT_NAN_INFO8 0
  51313. #define BIT_MASK_NAN_INFO8 0xffffffffL
  51314. #define BIT_NAN_INFO8(x) (((x) & BIT_MASK_NAN_INFO8) << BIT_SHIFT_NAN_INFO8)
  51315. #define BITS_NAN_INFO8 (BIT_MASK_NAN_INFO8 << BIT_SHIFT_NAN_INFO8)
  51316. #define BIT_CLEAR_NAN_INFO8(x) ((x) & (~BITS_NAN_INFO8))
  51317. #define BIT_GET_NAN_INFO8(x) (((x) >> BIT_SHIFT_NAN_INFO8) & BIT_MASK_NAN_INFO8)
  51318. #define BIT_SET_NAN_INFO8(x, v) (BIT_CLEAR_NAN_INFO8(x) | BIT_NAN_INFO8(v))
  51319. /* 2 REG_NAN_INFO9 (Offset 0x24A4) */
  51320. #define BIT_SHIFT_NAN_INFO9 0
  51321. #define BIT_MASK_NAN_INFO9 0xffffffffL
  51322. #define BIT_NAN_INFO9(x) (((x) & BIT_MASK_NAN_INFO9) << BIT_SHIFT_NAN_INFO9)
  51323. #define BITS_NAN_INFO9 (BIT_MASK_NAN_INFO9 << BIT_SHIFT_NAN_INFO9)
  51324. #define BIT_CLEAR_NAN_INFO9(x) ((x) & (~BITS_NAN_INFO9))
  51325. #define BIT_GET_NAN_INFO9(x) (((x) >> BIT_SHIFT_NAN_INFO9) & BIT_MASK_NAN_INFO9)
  51326. #define BIT_SET_NAN_INFO9(x, v) (BIT_CLEAR_NAN_INFO9(x) | BIT_NAN_INFO9(v))
  51327. #endif
  51328. #if (HALMAC_8192F_SUPPORT || HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || \
  51329. HALMAC_8822C_SUPPORT)
  51330. /* 2 REG_CHNL_INFO_CTRL_V1 (Offset 0x24D0) */
  51331. #define BIT_CHNL_REF_EDCA BIT(5)
  51332. #endif
  51333. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8812F_SUPPORT || \
  51334. HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  51335. /* 2 REG_CHNL_INFO_CTRL_V1 (Offset 0x24D0) */
  51336. #define BIT_CHNL_REF_CCA BIT(4)
  51337. #define BIT_MACTX_ERR_4 BIT(4)
  51338. #define BIT_SHIFT_VHTHT_MIMO_CTRL_FIELD 1
  51339. #define BIT_MASK_VHTHT_MIMO_CTRL_FIELD 0xffffff
  51340. #define BIT_VHTHT_MIMO_CTRL_FIELD(x) \
  51341. (((x) & BIT_MASK_VHTHT_MIMO_CTRL_FIELD) \
  51342. << BIT_SHIFT_VHTHT_MIMO_CTRL_FIELD)
  51343. #define BITS_VHTHT_MIMO_CTRL_FIELD \
  51344. (BIT_MASK_VHTHT_MIMO_CTRL_FIELD << BIT_SHIFT_VHTHT_MIMO_CTRL_FIELD)
  51345. #define BIT_CLEAR_VHTHT_MIMO_CTRL_FIELD(x) ((x) & (~BITS_VHTHT_MIMO_CTRL_FIELD))
  51346. #define BIT_GET_VHTHT_MIMO_CTRL_FIELD(x) \
  51347. (((x) >> BIT_SHIFT_VHTHT_MIMO_CTRL_FIELD) & \
  51348. BIT_MASK_VHTHT_MIMO_CTRL_FIELD)
  51349. #define BIT_SET_VHTHT_MIMO_CTRL_FIELD(x, v) \
  51350. (BIT_CLEAR_VHTHT_MIMO_CTRL_FIELD(x) | BIT_VHTHT_MIMO_CTRL_FIELD(v))
  51351. #define BIT_CSI_INTERRUPT_STATUS BIT(0)
  51352. #endif
  51353. #if (HALMAC_8192F_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || \
  51354. HALMAC_8812F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822C_SUPPORT)
  51355. /* 2 REG_CHNL_IDLE_TIME_V1 (Offset 0x24D4) */
  51356. #define BIT_SHIFT_CHNL_IDLE_TIME 0
  51357. #define BIT_MASK_CHNL_IDLE_TIME 0xffffffffL
  51358. #define BIT_CHNL_IDLE_TIME(x) \
  51359. (((x) & BIT_MASK_CHNL_IDLE_TIME) << BIT_SHIFT_CHNL_IDLE_TIME)
  51360. #define BITS_CHNL_IDLE_TIME \
  51361. (BIT_MASK_CHNL_IDLE_TIME << BIT_SHIFT_CHNL_IDLE_TIME)
  51362. #define BIT_CLEAR_CHNL_IDLE_TIME(x) ((x) & (~BITS_CHNL_IDLE_TIME))
  51363. #define BIT_GET_CHNL_IDLE_TIME(x) \
  51364. (((x) >> BIT_SHIFT_CHNL_IDLE_TIME) & BIT_MASK_CHNL_IDLE_TIME)
  51365. #define BIT_SET_CHNL_IDLE_TIME(x, v) \
  51366. (BIT_CLEAR_CHNL_IDLE_TIME(x) | BIT_CHNL_IDLE_TIME(v))
  51367. #endif
  51368. #if (HALMAC_8192F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)
  51369. /* 2 REG_SWPS_PKT_TH_V1 (Offset 0x24F6) */
  51370. #define BIT_SHIFT_SWPS_PKT_TH 0
  51371. #define BIT_MASK_SWPS_PKT_TH 0xffff
  51372. #define BIT_SWPS_PKT_TH(x) \
  51373. (((x) & BIT_MASK_SWPS_PKT_TH) << BIT_SHIFT_SWPS_PKT_TH)
  51374. #define BITS_SWPS_PKT_TH (BIT_MASK_SWPS_PKT_TH << BIT_SHIFT_SWPS_PKT_TH)
  51375. #define BIT_CLEAR_SWPS_PKT_TH(x) ((x) & (~BITS_SWPS_PKT_TH))
  51376. #define BIT_GET_SWPS_PKT_TH(x) \
  51377. (((x) >> BIT_SHIFT_SWPS_PKT_TH) & BIT_MASK_SWPS_PKT_TH)
  51378. #define BIT_SET_SWPS_PKT_TH(x, v) \
  51379. (BIT_CLEAR_SWPS_PKT_TH(x) | BIT_SWPS_PKT_TH(v))
  51380. /* 2 REG_SWPS_TIME_TH_V1 (Offset 0x24F8) */
  51381. #define BIT_SHIFT_SWPS_PSTIME_TH 16
  51382. #define BIT_MASK_SWPS_PSTIME_TH 0xffff
  51383. #define BIT_SWPS_PSTIME_TH(x) \
  51384. (((x) & BIT_MASK_SWPS_PSTIME_TH) << BIT_SHIFT_SWPS_PSTIME_TH)
  51385. #define BITS_SWPS_PSTIME_TH \
  51386. (BIT_MASK_SWPS_PSTIME_TH << BIT_SHIFT_SWPS_PSTIME_TH)
  51387. #define BIT_CLEAR_SWPS_PSTIME_TH(x) ((x) & (~BITS_SWPS_PSTIME_TH))
  51388. #define BIT_GET_SWPS_PSTIME_TH(x) \
  51389. (((x) >> BIT_SHIFT_SWPS_PSTIME_TH) & BIT_MASK_SWPS_PSTIME_TH)
  51390. #define BIT_SET_SWPS_PSTIME_TH(x, v) \
  51391. (BIT_CLEAR_SWPS_PSTIME_TH(x) | BIT_SWPS_PSTIME_TH(v))
  51392. #define BIT_SHIFT_SWPS_TIME_TH 0
  51393. #define BIT_MASK_SWPS_TIME_TH 0xffff
  51394. #define BIT_SWPS_TIME_TH(x) \
  51395. (((x) & BIT_MASK_SWPS_TIME_TH) << BIT_SHIFT_SWPS_TIME_TH)
  51396. #define BITS_SWPS_TIME_TH (BIT_MASK_SWPS_TIME_TH << BIT_SHIFT_SWPS_TIME_TH)
  51397. #define BIT_CLEAR_SWPS_TIME_TH(x) ((x) & (~BITS_SWPS_TIME_TH))
  51398. #define BIT_GET_SWPS_TIME_TH(x) \
  51399. (((x) >> BIT_SHIFT_SWPS_TIME_TH) & BIT_MASK_SWPS_TIME_TH)
  51400. #define BIT_SET_SWPS_TIME_TH(x, v) \
  51401. (BIT_CLEAR_SWPS_TIME_TH(x) | BIT_SWPS_TIME_TH(v))
  51402. #endif
  51403. #if (HALMAC_8814B_SUPPORT)
  51404. /* 2 REG_TXPAGE_INT_CTRL_0 (Offset 0x3200) */
  51405. #define BIT_CH0_INT_EN BIT(31)
  51406. #define BIT_SHIFT_CH0_HIGH_TH 16
  51407. #define BIT_MASK_CH0_HIGH_TH 0xfff
  51408. #define BIT_CH0_HIGH_TH(x) \
  51409. (((x) & BIT_MASK_CH0_HIGH_TH) << BIT_SHIFT_CH0_HIGH_TH)
  51410. #define BITS_CH0_HIGH_TH (BIT_MASK_CH0_HIGH_TH << BIT_SHIFT_CH0_HIGH_TH)
  51411. #define BIT_CLEAR_CH0_HIGH_TH(x) ((x) & (~BITS_CH0_HIGH_TH))
  51412. #define BIT_GET_CH0_HIGH_TH(x) \
  51413. (((x) >> BIT_SHIFT_CH0_HIGH_TH) & BIT_MASK_CH0_HIGH_TH)
  51414. #define BIT_SET_CH0_HIGH_TH(x, v) \
  51415. (BIT_CLEAR_CH0_HIGH_TH(x) | BIT_CH0_HIGH_TH(v))
  51416. #define BIT_SHIFT_CH0_LOW_TH 0
  51417. #define BIT_MASK_CH0_LOW_TH 0xfff
  51418. #define BIT_CH0_LOW_TH(x) (((x) & BIT_MASK_CH0_LOW_TH) << BIT_SHIFT_CH0_LOW_TH)
  51419. #define BITS_CH0_LOW_TH (BIT_MASK_CH0_LOW_TH << BIT_SHIFT_CH0_LOW_TH)
  51420. #define BIT_CLEAR_CH0_LOW_TH(x) ((x) & (~BITS_CH0_LOW_TH))
  51421. #define BIT_GET_CH0_LOW_TH(x) \
  51422. (((x) >> BIT_SHIFT_CH0_LOW_TH) & BIT_MASK_CH0_LOW_TH)
  51423. #define BIT_SET_CH0_LOW_TH(x, v) (BIT_CLEAR_CH0_LOW_TH(x) | BIT_CH0_LOW_TH(v))
  51424. /* 2 REG_TXPAGE_INT_CTRL_1 (Offset 0x3204) */
  51425. #define BIT_CH1_INT_EN BIT(31)
  51426. #define BIT_SHIFT_CH1_HIGH_TH 16
  51427. #define BIT_MASK_CH1_HIGH_TH 0xfff
  51428. #define BIT_CH1_HIGH_TH(x) \
  51429. (((x) & BIT_MASK_CH1_HIGH_TH) << BIT_SHIFT_CH1_HIGH_TH)
  51430. #define BITS_CH1_HIGH_TH (BIT_MASK_CH1_HIGH_TH << BIT_SHIFT_CH1_HIGH_TH)
  51431. #define BIT_CLEAR_CH1_HIGH_TH(x) ((x) & (~BITS_CH1_HIGH_TH))
  51432. #define BIT_GET_CH1_HIGH_TH(x) \
  51433. (((x) >> BIT_SHIFT_CH1_HIGH_TH) & BIT_MASK_CH1_HIGH_TH)
  51434. #define BIT_SET_CH1_HIGH_TH(x, v) \
  51435. (BIT_CLEAR_CH1_HIGH_TH(x) | BIT_CH1_HIGH_TH(v))
  51436. #define BIT_SHIFT_CH1_LOW_TH 0
  51437. #define BIT_MASK_CH1_LOW_TH 0xfff
  51438. #define BIT_CH1_LOW_TH(x) (((x) & BIT_MASK_CH1_LOW_TH) << BIT_SHIFT_CH1_LOW_TH)
  51439. #define BITS_CH1_LOW_TH (BIT_MASK_CH1_LOW_TH << BIT_SHIFT_CH1_LOW_TH)
  51440. #define BIT_CLEAR_CH1_LOW_TH(x) ((x) & (~BITS_CH1_LOW_TH))
  51441. #define BIT_GET_CH1_LOW_TH(x) \
  51442. (((x) >> BIT_SHIFT_CH1_LOW_TH) & BIT_MASK_CH1_LOW_TH)
  51443. #define BIT_SET_CH1_LOW_TH(x, v) (BIT_CLEAR_CH1_LOW_TH(x) | BIT_CH1_LOW_TH(v))
  51444. /* 2 REG_TXPAGE_INT_CTRL_2 (Offset 0x3208) */
  51445. #define BIT_CH2_INT_EN BIT(31)
  51446. #define BIT_SHIFT_CH2_HIGH_TH 16
  51447. #define BIT_MASK_CH2_HIGH_TH 0xfff
  51448. #define BIT_CH2_HIGH_TH(x) \
  51449. (((x) & BIT_MASK_CH2_HIGH_TH) << BIT_SHIFT_CH2_HIGH_TH)
  51450. #define BITS_CH2_HIGH_TH (BIT_MASK_CH2_HIGH_TH << BIT_SHIFT_CH2_HIGH_TH)
  51451. #define BIT_CLEAR_CH2_HIGH_TH(x) ((x) & (~BITS_CH2_HIGH_TH))
  51452. #define BIT_GET_CH2_HIGH_TH(x) \
  51453. (((x) >> BIT_SHIFT_CH2_HIGH_TH) & BIT_MASK_CH2_HIGH_TH)
  51454. #define BIT_SET_CH2_HIGH_TH(x, v) \
  51455. (BIT_CLEAR_CH2_HIGH_TH(x) | BIT_CH2_HIGH_TH(v))
  51456. #define BIT_SHIFT_CH2_LOW_TH 0
  51457. #define BIT_MASK_CH2_LOW_TH 0xfff
  51458. #define BIT_CH2_LOW_TH(x) (((x) & BIT_MASK_CH2_LOW_TH) << BIT_SHIFT_CH2_LOW_TH)
  51459. #define BITS_CH2_LOW_TH (BIT_MASK_CH2_LOW_TH << BIT_SHIFT_CH2_LOW_TH)
  51460. #define BIT_CLEAR_CH2_LOW_TH(x) ((x) & (~BITS_CH2_LOW_TH))
  51461. #define BIT_GET_CH2_LOW_TH(x) \
  51462. (((x) >> BIT_SHIFT_CH2_LOW_TH) & BIT_MASK_CH2_LOW_TH)
  51463. #define BIT_SET_CH2_LOW_TH(x, v) (BIT_CLEAR_CH2_LOW_TH(x) | BIT_CH2_LOW_TH(v))
  51464. /* 2 REG_TXPAGE_INT_CTRL_3 (Offset 0x320C) */
  51465. #define BIT_CH3_INT_EN BIT(31)
  51466. #define BIT_SHIFT_CH3_HIGH_TH 16
  51467. #define BIT_MASK_CH3_HIGH_TH 0xfff
  51468. #define BIT_CH3_HIGH_TH(x) \
  51469. (((x) & BIT_MASK_CH3_HIGH_TH) << BIT_SHIFT_CH3_HIGH_TH)
  51470. #define BITS_CH3_HIGH_TH (BIT_MASK_CH3_HIGH_TH << BIT_SHIFT_CH3_HIGH_TH)
  51471. #define BIT_CLEAR_CH3_HIGH_TH(x) ((x) & (~BITS_CH3_HIGH_TH))
  51472. #define BIT_GET_CH3_HIGH_TH(x) \
  51473. (((x) >> BIT_SHIFT_CH3_HIGH_TH) & BIT_MASK_CH3_HIGH_TH)
  51474. #define BIT_SET_CH3_HIGH_TH(x, v) \
  51475. (BIT_CLEAR_CH3_HIGH_TH(x) | BIT_CH3_HIGH_TH(v))
  51476. #define BIT_SHIFT_CH3_LOW_TH 0
  51477. #define BIT_MASK_CH3_LOW_TH 0xfff
  51478. #define BIT_CH3_LOW_TH(x) (((x) & BIT_MASK_CH3_LOW_TH) << BIT_SHIFT_CH3_LOW_TH)
  51479. #define BITS_CH3_LOW_TH (BIT_MASK_CH3_LOW_TH << BIT_SHIFT_CH3_LOW_TH)
  51480. #define BIT_CLEAR_CH3_LOW_TH(x) ((x) & (~BITS_CH3_LOW_TH))
  51481. #define BIT_GET_CH3_LOW_TH(x) \
  51482. (((x) >> BIT_SHIFT_CH3_LOW_TH) & BIT_MASK_CH3_LOW_TH)
  51483. #define BIT_SET_CH3_LOW_TH(x, v) (BIT_CLEAR_CH3_LOW_TH(x) | BIT_CH3_LOW_TH(v))
  51484. /* 2 REG_TXPAGE_INT_CTRL_4 (Offset 0x3210) */
  51485. #define BIT_CH4_INT_EN BIT(31)
  51486. #define BIT_SHIFT_CH4_HIGH_TH 16
  51487. #define BIT_MASK_CH4_HIGH_TH 0xfff
  51488. #define BIT_CH4_HIGH_TH(x) \
  51489. (((x) & BIT_MASK_CH4_HIGH_TH) << BIT_SHIFT_CH4_HIGH_TH)
  51490. #define BITS_CH4_HIGH_TH (BIT_MASK_CH4_HIGH_TH << BIT_SHIFT_CH4_HIGH_TH)
  51491. #define BIT_CLEAR_CH4_HIGH_TH(x) ((x) & (~BITS_CH4_HIGH_TH))
  51492. #define BIT_GET_CH4_HIGH_TH(x) \
  51493. (((x) >> BIT_SHIFT_CH4_HIGH_TH) & BIT_MASK_CH4_HIGH_TH)
  51494. #define BIT_SET_CH4_HIGH_TH(x, v) \
  51495. (BIT_CLEAR_CH4_HIGH_TH(x) | BIT_CH4_HIGH_TH(v))
  51496. #define BIT_SHIFT_CH4_LOW_TH 0
  51497. #define BIT_MASK_CH4_LOW_TH 0xfff
  51498. #define BIT_CH4_LOW_TH(x) (((x) & BIT_MASK_CH4_LOW_TH) << BIT_SHIFT_CH4_LOW_TH)
  51499. #define BITS_CH4_LOW_TH (BIT_MASK_CH4_LOW_TH << BIT_SHIFT_CH4_LOW_TH)
  51500. #define BIT_CLEAR_CH4_LOW_TH(x) ((x) & (~BITS_CH4_LOW_TH))
  51501. #define BIT_GET_CH4_LOW_TH(x) \
  51502. (((x) >> BIT_SHIFT_CH4_LOW_TH) & BIT_MASK_CH4_LOW_TH)
  51503. #define BIT_SET_CH4_LOW_TH(x, v) (BIT_CLEAR_CH4_LOW_TH(x) | BIT_CH4_LOW_TH(v))
  51504. /* 2 REG_TXPAGE_INT_CTRL_5 (Offset 0x3214) */
  51505. #define BIT_CH5_INT_EN BIT(31)
  51506. #define BIT_SHIFT_CH5_HIGH_TH 16
  51507. #define BIT_MASK_CH5_HIGH_TH 0xfff
  51508. #define BIT_CH5_HIGH_TH(x) \
  51509. (((x) & BIT_MASK_CH5_HIGH_TH) << BIT_SHIFT_CH5_HIGH_TH)
  51510. #define BITS_CH5_HIGH_TH (BIT_MASK_CH5_HIGH_TH << BIT_SHIFT_CH5_HIGH_TH)
  51511. #define BIT_CLEAR_CH5_HIGH_TH(x) ((x) & (~BITS_CH5_HIGH_TH))
  51512. #define BIT_GET_CH5_HIGH_TH(x) \
  51513. (((x) >> BIT_SHIFT_CH5_HIGH_TH) & BIT_MASK_CH5_HIGH_TH)
  51514. #define BIT_SET_CH5_HIGH_TH(x, v) \
  51515. (BIT_CLEAR_CH5_HIGH_TH(x) | BIT_CH5_HIGH_TH(v))
  51516. #define BIT_SHIFT_CH5_LOW_TH 0
  51517. #define BIT_MASK_CH5_LOW_TH 0xfff
  51518. #define BIT_CH5_LOW_TH(x) (((x) & BIT_MASK_CH5_LOW_TH) << BIT_SHIFT_CH5_LOW_TH)
  51519. #define BITS_CH5_LOW_TH (BIT_MASK_CH5_LOW_TH << BIT_SHIFT_CH5_LOW_TH)
  51520. #define BIT_CLEAR_CH5_LOW_TH(x) ((x) & (~BITS_CH5_LOW_TH))
  51521. #define BIT_GET_CH5_LOW_TH(x) \
  51522. (((x) >> BIT_SHIFT_CH5_LOW_TH) & BIT_MASK_CH5_LOW_TH)
  51523. #define BIT_SET_CH5_LOW_TH(x, v) (BIT_CLEAR_CH5_LOW_TH(x) | BIT_CH5_LOW_TH(v))
  51524. /* 2 REG_TXPAGE_INT_CTRL_6 (Offset 0x3218) */
  51525. #define BIT_CH6_INT_EN BIT(31)
  51526. #define BIT_SHIFT_CH6_HIGH_TH 16
  51527. #define BIT_MASK_CH6_HIGH_TH 0xfff
  51528. #define BIT_CH6_HIGH_TH(x) \
  51529. (((x) & BIT_MASK_CH6_HIGH_TH) << BIT_SHIFT_CH6_HIGH_TH)
  51530. #define BITS_CH6_HIGH_TH (BIT_MASK_CH6_HIGH_TH << BIT_SHIFT_CH6_HIGH_TH)
  51531. #define BIT_CLEAR_CH6_HIGH_TH(x) ((x) & (~BITS_CH6_HIGH_TH))
  51532. #define BIT_GET_CH6_HIGH_TH(x) \
  51533. (((x) >> BIT_SHIFT_CH6_HIGH_TH) & BIT_MASK_CH6_HIGH_TH)
  51534. #define BIT_SET_CH6_HIGH_TH(x, v) \
  51535. (BIT_CLEAR_CH6_HIGH_TH(x) | BIT_CH6_HIGH_TH(v))
  51536. #define BIT_SHIFT_CH6_LOW_TH 0
  51537. #define BIT_MASK_CH6_LOW_TH 0xfff
  51538. #define BIT_CH6_LOW_TH(x) (((x) & BIT_MASK_CH6_LOW_TH) << BIT_SHIFT_CH6_LOW_TH)
  51539. #define BITS_CH6_LOW_TH (BIT_MASK_CH6_LOW_TH << BIT_SHIFT_CH6_LOW_TH)
  51540. #define BIT_CLEAR_CH6_LOW_TH(x) ((x) & (~BITS_CH6_LOW_TH))
  51541. #define BIT_GET_CH6_LOW_TH(x) \
  51542. (((x) >> BIT_SHIFT_CH6_LOW_TH) & BIT_MASK_CH6_LOW_TH)
  51543. #define BIT_SET_CH6_LOW_TH(x, v) (BIT_CLEAR_CH6_LOW_TH(x) | BIT_CH6_LOW_TH(v))
  51544. /* 2 REG_TXPAGE_INT_CTRL_7 (Offset 0x321C) */
  51545. #define BIT_CH7_INT_EN BIT(31)
  51546. #define BIT_SHIFT_CH7_HIGH_TH 16
  51547. #define BIT_MASK_CH7_HIGH_TH 0xfff
  51548. #define BIT_CH7_HIGH_TH(x) \
  51549. (((x) & BIT_MASK_CH7_HIGH_TH) << BIT_SHIFT_CH7_HIGH_TH)
  51550. #define BITS_CH7_HIGH_TH (BIT_MASK_CH7_HIGH_TH << BIT_SHIFT_CH7_HIGH_TH)
  51551. #define BIT_CLEAR_CH7_HIGH_TH(x) ((x) & (~BITS_CH7_HIGH_TH))
  51552. #define BIT_GET_CH7_HIGH_TH(x) \
  51553. (((x) >> BIT_SHIFT_CH7_HIGH_TH) & BIT_MASK_CH7_HIGH_TH)
  51554. #define BIT_SET_CH7_HIGH_TH(x, v) \
  51555. (BIT_CLEAR_CH7_HIGH_TH(x) | BIT_CH7_HIGH_TH(v))
  51556. #define BIT_SHIFT_CH7_LOW_TH 0
  51557. #define BIT_MASK_CH7_LOW_TH 0xfff
  51558. #define BIT_CH7_LOW_TH(x) (((x) & BIT_MASK_CH7_LOW_TH) << BIT_SHIFT_CH7_LOW_TH)
  51559. #define BITS_CH7_LOW_TH (BIT_MASK_CH7_LOW_TH << BIT_SHIFT_CH7_LOW_TH)
  51560. #define BIT_CLEAR_CH7_LOW_TH(x) ((x) & (~BITS_CH7_LOW_TH))
  51561. #define BIT_GET_CH7_LOW_TH(x) \
  51562. (((x) >> BIT_SHIFT_CH7_LOW_TH) & BIT_MASK_CH7_LOW_TH)
  51563. #define BIT_SET_CH7_LOW_TH(x, v) (BIT_CLEAR_CH7_LOW_TH(x) | BIT_CH7_LOW_TH(v))
  51564. /* 2 REG_TXPAGE_INT_CTRL_8 (Offset 0x3220) */
  51565. #define BIT_CH8_INT_EN BIT(31)
  51566. #define BIT_SHIFT_CH8_HIGH_TH 16
  51567. #define BIT_MASK_CH8_HIGH_TH 0xfff
  51568. #define BIT_CH8_HIGH_TH(x) \
  51569. (((x) & BIT_MASK_CH8_HIGH_TH) << BIT_SHIFT_CH8_HIGH_TH)
  51570. #define BITS_CH8_HIGH_TH (BIT_MASK_CH8_HIGH_TH << BIT_SHIFT_CH8_HIGH_TH)
  51571. #define BIT_CLEAR_CH8_HIGH_TH(x) ((x) & (~BITS_CH8_HIGH_TH))
  51572. #define BIT_GET_CH8_HIGH_TH(x) \
  51573. (((x) >> BIT_SHIFT_CH8_HIGH_TH) & BIT_MASK_CH8_HIGH_TH)
  51574. #define BIT_SET_CH8_HIGH_TH(x, v) \
  51575. (BIT_CLEAR_CH8_HIGH_TH(x) | BIT_CH8_HIGH_TH(v))
  51576. #define BIT_SHIFT_CH8_LOW_TH 0
  51577. #define BIT_MASK_CH8_LOW_TH 0xfff
  51578. #define BIT_CH8_LOW_TH(x) (((x) & BIT_MASK_CH8_LOW_TH) << BIT_SHIFT_CH8_LOW_TH)
  51579. #define BITS_CH8_LOW_TH (BIT_MASK_CH8_LOW_TH << BIT_SHIFT_CH8_LOW_TH)
  51580. #define BIT_CLEAR_CH8_LOW_TH(x) ((x) & (~BITS_CH8_LOW_TH))
  51581. #define BIT_GET_CH8_LOW_TH(x) \
  51582. (((x) >> BIT_SHIFT_CH8_LOW_TH) & BIT_MASK_CH8_LOW_TH)
  51583. #define BIT_SET_CH8_LOW_TH(x, v) (BIT_CLEAR_CH8_LOW_TH(x) | BIT_CH8_LOW_TH(v))
  51584. /* 2 REG_TXPAGE_INT_CTRL_9 (Offset 0x3224) */
  51585. #define BIT_CH9_INT_EN BIT(31)
  51586. #define BIT_SHIFT_CH9_HIGH_TH 16
  51587. #define BIT_MASK_CH9_HIGH_TH 0xfff
  51588. #define BIT_CH9_HIGH_TH(x) \
  51589. (((x) & BIT_MASK_CH9_HIGH_TH) << BIT_SHIFT_CH9_HIGH_TH)
  51590. #define BITS_CH9_HIGH_TH (BIT_MASK_CH9_HIGH_TH << BIT_SHIFT_CH9_HIGH_TH)
  51591. #define BIT_CLEAR_CH9_HIGH_TH(x) ((x) & (~BITS_CH9_HIGH_TH))
  51592. #define BIT_GET_CH9_HIGH_TH(x) \
  51593. (((x) >> BIT_SHIFT_CH9_HIGH_TH) & BIT_MASK_CH9_HIGH_TH)
  51594. #define BIT_SET_CH9_HIGH_TH(x, v) \
  51595. (BIT_CLEAR_CH9_HIGH_TH(x) | BIT_CH9_HIGH_TH(v))
  51596. #define BIT_SHIFT_CH9_LOW_TH 0
  51597. #define BIT_MASK_CH9_LOW_TH 0xfff
  51598. #define BIT_CH9_LOW_TH(x) (((x) & BIT_MASK_CH9_LOW_TH) << BIT_SHIFT_CH9_LOW_TH)
  51599. #define BITS_CH9_LOW_TH (BIT_MASK_CH9_LOW_TH << BIT_SHIFT_CH9_LOW_TH)
  51600. #define BIT_CLEAR_CH9_LOW_TH(x) ((x) & (~BITS_CH9_LOW_TH))
  51601. #define BIT_GET_CH9_LOW_TH(x) \
  51602. (((x) >> BIT_SHIFT_CH9_LOW_TH) & BIT_MASK_CH9_LOW_TH)
  51603. #define BIT_SET_CH9_LOW_TH(x, v) (BIT_CLEAR_CH9_LOW_TH(x) | BIT_CH9_LOW_TH(v))
  51604. /* 2 REG_TXPAGE_INT_CTRL_10 (Offset 0x3228) */
  51605. #define BIT_CH10_INT_EN BIT(31)
  51606. #define BIT_SHIFT_CH10_HIGH_TH 16
  51607. #define BIT_MASK_CH10_HIGH_TH 0xfff
  51608. #define BIT_CH10_HIGH_TH(x) \
  51609. (((x) & BIT_MASK_CH10_HIGH_TH) << BIT_SHIFT_CH10_HIGH_TH)
  51610. #define BITS_CH10_HIGH_TH (BIT_MASK_CH10_HIGH_TH << BIT_SHIFT_CH10_HIGH_TH)
  51611. #define BIT_CLEAR_CH10_HIGH_TH(x) ((x) & (~BITS_CH10_HIGH_TH))
  51612. #define BIT_GET_CH10_HIGH_TH(x) \
  51613. (((x) >> BIT_SHIFT_CH10_HIGH_TH) & BIT_MASK_CH10_HIGH_TH)
  51614. #define BIT_SET_CH10_HIGH_TH(x, v) \
  51615. (BIT_CLEAR_CH10_HIGH_TH(x) | BIT_CH10_HIGH_TH(v))
  51616. #define BIT_SHIFT_CH10_LOW_TH 0
  51617. #define BIT_MASK_CH10_LOW_TH 0xfff
  51618. #define BIT_CH10_LOW_TH(x) \
  51619. (((x) & BIT_MASK_CH10_LOW_TH) << BIT_SHIFT_CH10_LOW_TH)
  51620. #define BITS_CH10_LOW_TH (BIT_MASK_CH10_LOW_TH << BIT_SHIFT_CH10_LOW_TH)
  51621. #define BIT_CLEAR_CH10_LOW_TH(x) ((x) & (~BITS_CH10_LOW_TH))
  51622. #define BIT_GET_CH10_LOW_TH(x) \
  51623. (((x) >> BIT_SHIFT_CH10_LOW_TH) & BIT_MASK_CH10_LOW_TH)
  51624. #define BIT_SET_CH10_LOW_TH(x, v) \
  51625. (BIT_CLEAR_CH10_LOW_TH(x) | BIT_CH10_LOW_TH(v))
  51626. /* 2 REG_TXPAGE_INT_CTRL_11 (Offset 0x322C) */
  51627. #define BIT_CH11_INT_EN BIT(31)
  51628. #define BIT_SHIFT_CH11_HIGH_TH 16
  51629. #define BIT_MASK_CH11_HIGH_TH 0xfff
  51630. #define BIT_CH11_HIGH_TH(x) \
  51631. (((x) & BIT_MASK_CH11_HIGH_TH) << BIT_SHIFT_CH11_HIGH_TH)
  51632. #define BITS_CH11_HIGH_TH (BIT_MASK_CH11_HIGH_TH << BIT_SHIFT_CH11_HIGH_TH)
  51633. #define BIT_CLEAR_CH11_HIGH_TH(x) ((x) & (~BITS_CH11_HIGH_TH))
  51634. #define BIT_GET_CH11_HIGH_TH(x) \
  51635. (((x) >> BIT_SHIFT_CH11_HIGH_TH) & BIT_MASK_CH11_HIGH_TH)
  51636. #define BIT_SET_CH11_HIGH_TH(x, v) \
  51637. (BIT_CLEAR_CH11_HIGH_TH(x) | BIT_CH11_HIGH_TH(v))
  51638. #define BIT_SHIFT_CH11_LOW_TH 0
  51639. #define BIT_MASK_CH11_LOW_TH 0xfff
  51640. #define BIT_CH11_LOW_TH(x) \
  51641. (((x) & BIT_MASK_CH11_LOW_TH) << BIT_SHIFT_CH11_LOW_TH)
  51642. #define BITS_CH11_LOW_TH (BIT_MASK_CH11_LOW_TH << BIT_SHIFT_CH11_LOW_TH)
  51643. #define BIT_CLEAR_CH11_LOW_TH(x) ((x) & (~BITS_CH11_LOW_TH))
  51644. #define BIT_GET_CH11_LOW_TH(x) \
  51645. (((x) >> BIT_SHIFT_CH11_LOW_TH) & BIT_MASK_CH11_LOW_TH)
  51646. #define BIT_SET_CH11_LOW_TH(x, v) \
  51647. (BIT_CLEAR_CH11_LOW_TH(x) | BIT_CH11_LOW_TH(v))
  51648. /* 2 REG_TXPAGE_INT_CTRL_12 (Offset 0x3230) */
  51649. #define BIT_CH12_INT_EN BIT(31)
  51650. #define BIT_SHIFT_CH12_HIGH_TH 16
  51651. #define BIT_MASK_CH12_HIGH_TH 0xfff
  51652. #define BIT_CH12_HIGH_TH(x) \
  51653. (((x) & BIT_MASK_CH12_HIGH_TH) << BIT_SHIFT_CH12_HIGH_TH)
  51654. #define BITS_CH12_HIGH_TH (BIT_MASK_CH12_HIGH_TH << BIT_SHIFT_CH12_HIGH_TH)
  51655. #define BIT_CLEAR_CH12_HIGH_TH(x) ((x) & (~BITS_CH12_HIGH_TH))
  51656. #define BIT_GET_CH12_HIGH_TH(x) \
  51657. (((x) >> BIT_SHIFT_CH12_HIGH_TH) & BIT_MASK_CH12_HIGH_TH)
  51658. #define BIT_SET_CH12_HIGH_TH(x, v) \
  51659. (BIT_CLEAR_CH12_HIGH_TH(x) | BIT_CH12_HIGH_TH(v))
  51660. #define BIT_SHIFT_CH12_LOW_TH 0
  51661. #define BIT_MASK_CH12_LOW_TH 0xfff
  51662. #define BIT_CH12_LOW_TH(x) \
  51663. (((x) & BIT_MASK_CH12_LOW_TH) << BIT_SHIFT_CH12_LOW_TH)
  51664. #define BITS_CH12_LOW_TH (BIT_MASK_CH12_LOW_TH << BIT_SHIFT_CH12_LOW_TH)
  51665. #define BIT_CLEAR_CH12_LOW_TH(x) ((x) & (~BITS_CH12_LOW_TH))
  51666. #define BIT_GET_CH12_LOW_TH(x) \
  51667. (((x) >> BIT_SHIFT_CH12_LOW_TH) & BIT_MASK_CH12_LOW_TH)
  51668. #define BIT_SET_CH12_LOW_TH(x, v) \
  51669. (BIT_CLEAR_CH12_LOW_TH(x) | BIT_CH12_LOW_TH(v))
  51670. /* 2 REG_TXPAGE_INT_CTRL_13 (Offset 0x3234) */
  51671. #define BIT_CH13_INT_EN BIT(31)
  51672. #define BIT_SHIFT_CH13_HIGH_TH 16
  51673. #define BIT_MASK_CH13_HIGH_TH 0xfff
  51674. #define BIT_CH13_HIGH_TH(x) \
  51675. (((x) & BIT_MASK_CH13_HIGH_TH) << BIT_SHIFT_CH13_HIGH_TH)
  51676. #define BITS_CH13_HIGH_TH (BIT_MASK_CH13_HIGH_TH << BIT_SHIFT_CH13_HIGH_TH)
  51677. #define BIT_CLEAR_CH13_HIGH_TH(x) ((x) & (~BITS_CH13_HIGH_TH))
  51678. #define BIT_GET_CH13_HIGH_TH(x) \
  51679. (((x) >> BIT_SHIFT_CH13_HIGH_TH) & BIT_MASK_CH13_HIGH_TH)
  51680. #define BIT_SET_CH13_HIGH_TH(x, v) \
  51681. (BIT_CLEAR_CH13_HIGH_TH(x) | BIT_CH13_HIGH_TH(v))
  51682. #define BIT_SHIFT_CH13_LOW_TH 0
  51683. #define BIT_MASK_CH13_LOW_TH 0xfff
  51684. #define BIT_CH13_LOW_TH(x) \
  51685. (((x) & BIT_MASK_CH13_LOW_TH) << BIT_SHIFT_CH13_LOW_TH)
  51686. #define BITS_CH13_LOW_TH (BIT_MASK_CH13_LOW_TH << BIT_SHIFT_CH13_LOW_TH)
  51687. #define BIT_CLEAR_CH13_LOW_TH(x) ((x) & (~BITS_CH13_LOW_TH))
  51688. #define BIT_GET_CH13_LOW_TH(x) \
  51689. (((x) >> BIT_SHIFT_CH13_LOW_TH) & BIT_MASK_CH13_LOW_TH)
  51690. #define BIT_SET_CH13_LOW_TH(x, v) \
  51691. (BIT_CLEAR_CH13_LOW_TH(x) | BIT_CH13_LOW_TH(v))
  51692. /* 2 REG_TXPAGE_INT_CTRL_14 (Offset 0x3238) */
  51693. #define BIT_CH14_INT_EN BIT(31)
  51694. #define BIT_SHIFT_CH14_HIGH_TH 16
  51695. #define BIT_MASK_CH14_HIGH_TH 0xfff
  51696. #define BIT_CH14_HIGH_TH(x) \
  51697. (((x) & BIT_MASK_CH14_HIGH_TH) << BIT_SHIFT_CH14_HIGH_TH)
  51698. #define BITS_CH14_HIGH_TH (BIT_MASK_CH14_HIGH_TH << BIT_SHIFT_CH14_HIGH_TH)
  51699. #define BIT_CLEAR_CH14_HIGH_TH(x) ((x) & (~BITS_CH14_HIGH_TH))
  51700. #define BIT_GET_CH14_HIGH_TH(x) \
  51701. (((x) >> BIT_SHIFT_CH14_HIGH_TH) & BIT_MASK_CH14_HIGH_TH)
  51702. #define BIT_SET_CH14_HIGH_TH(x, v) \
  51703. (BIT_CLEAR_CH14_HIGH_TH(x) | BIT_CH14_HIGH_TH(v))
  51704. #define BIT_SHIFT_CH14_LOW_TH 0
  51705. #define BIT_MASK_CH14_LOW_TH 0xfff
  51706. #define BIT_CH14_LOW_TH(x) \
  51707. (((x) & BIT_MASK_CH14_LOW_TH) << BIT_SHIFT_CH14_LOW_TH)
  51708. #define BITS_CH14_LOW_TH (BIT_MASK_CH14_LOW_TH << BIT_SHIFT_CH14_LOW_TH)
  51709. #define BIT_CLEAR_CH14_LOW_TH(x) ((x) & (~BITS_CH14_LOW_TH))
  51710. #define BIT_GET_CH14_LOW_TH(x) \
  51711. (((x) >> BIT_SHIFT_CH14_LOW_TH) & BIT_MASK_CH14_LOW_TH)
  51712. #define BIT_SET_CH14_LOW_TH(x, v) \
  51713. (BIT_CLEAR_CH14_LOW_TH(x) | BIT_CH14_LOW_TH(v))
  51714. /* 2 REG_TXPAGE_INT_CTRL_15 (Offset 0x323C) */
  51715. #define BIT_CH15_INT_EN BIT(31)
  51716. #define BIT_SHIFT_CH15_HIGH_TH 16
  51717. #define BIT_MASK_CH15_HIGH_TH 0xfff
  51718. #define BIT_CH15_HIGH_TH(x) \
  51719. (((x) & BIT_MASK_CH15_HIGH_TH) << BIT_SHIFT_CH15_HIGH_TH)
  51720. #define BITS_CH15_HIGH_TH (BIT_MASK_CH15_HIGH_TH << BIT_SHIFT_CH15_HIGH_TH)
  51721. #define BIT_CLEAR_CH15_HIGH_TH(x) ((x) & (~BITS_CH15_HIGH_TH))
  51722. #define BIT_GET_CH15_HIGH_TH(x) \
  51723. (((x) >> BIT_SHIFT_CH15_HIGH_TH) & BIT_MASK_CH15_HIGH_TH)
  51724. #define BIT_SET_CH15_HIGH_TH(x, v) \
  51725. (BIT_CLEAR_CH15_HIGH_TH(x) | BIT_CH15_HIGH_TH(v))
  51726. #define BIT_SHIFT_CH15_LOW_TH 0
  51727. #define BIT_MASK_CH15_LOW_TH 0xfff
  51728. #define BIT_CH15_LOW_TH(x) \
  51729. (((x) & BIT_MASK_CH15_LOW_TH) << BIT_SHIFT_CH15_LOW_TH)
  51730. #define BITS_CH15_LOW_TH (BIT_MASK_CH15_LOW_TH << BIT_SHIFT_CH15_LOW_TH)
  51731. #define BIT_CLEAR_CH15_LOW_TH(x) ((x) & (~BITS_CH15_LOW_TH))
  51732. #define BIT_GET_CH15_LOW_TH(x) \
  51733. (((x) >> BIT_SHIFT_CH15_LOW_TH) & BIT_MASK_CH15_LOW_TH)
  51734. #define BIT_SET_CH15_LOW_TH(x, v) \
  51735. (BIT_CLEAR_CH15_LOW_TH(x) | BIT_CH15_LOW_TH(v))
  51736. /* 2 REG_TXPAGE_INT_CTRL_16 (Offset 0x3240) */
  51737. #define BIT_CH16_INT_EN BIT(31)
  51738. #define BIT_SHIFT_CH16_HIGH_TH 16
  51739. #define BIT_MASK_CH16_HIGH_TH 0xfff
  51740. #define BIT_CH16_HIGH_TH(x) \
  51741. (((x) & BIT_MASK_CH16_HIGH_TH) << BIT_SHIFT_CH16_HIGH_TH)
  51742. #define BITS_CH16_HIGH_TH (BIT_MASK_CH16_HIGH_TH << BIT_SHIFT_CH16_HIGH_TH)
  51743. #define BIT_CLEAR_CH16_HIGH_TH(x) ((x) & (~BITS_CH16_HIGH_TH))
  51744. #define BIT_GET_CH16_HIGH_TH(x) \
  51745. (((x) >> BIT_SHIFT_CH16_HIGH_TH) & BIT_MASK_CH16_HIGH_TH)
  51746. #define BIT_SET_CH16_HIGH_TH(x, v) \
  51747. (BIT_CLEAR_CH16_HIGH_TH(x) | BIT_CH16_HIGH_TH(v))
  51748. #define BIT_SHIFT_CH16_LOW_TH 0
  51749. #define BIT_MASK_CH16_LOW_TH 0xfff
  51750. #define BIT_CH16_LOW_TH(x) \
  51751. (((x) & BIT_MASK_CH16_LOW_TH) << BIT_SHIFT_CH16_LOW_TH)
  51752. #define BITS_CH16_LOW_TH (BIT_MASK_CH16_LOW_TH << BIT_SHIFT_CH16_LOW_TH)
  51753. #define BIT_CLEAR_CH16_LOW_TH(x) ((x) & (~BITS_CH16_LOW_TH))
  51754. #define BIT_GET_CH16_LOW_TH(x) \
  51755. (((x) >> BIT_SHIFT_CH16_LOW_TH) & BIT_MASK_CH16_LOW_TH)
  51756. #define BIT_SET_CH16_LOW_TH(x, v) \
  51757. (BIT_CLEAR_CH16_LOW_TH(x) | BIT_CH16_LOW_TH(v))
  51758. /* 2 REG_ACH4_TXBD_IDX (Offset 0x3340) */
  51759. #define BIT_SHIFT_ACH4_HW_IDX 16
  51760. #define BIT_MASK_ACH4_HW_IDX 0xfff
  51761. #define BIT_ACH4_HW_IDX(x) \
  51762. (((x) & BIT_MASK_ACH4_HW_IDX) << BIT_SHIFT_ACH4_HW_IDX)
  51763. #define BITS_ACH4_HW_IDX (BIT_MASK_ACH4_HW_IDX << BIT_SHIFT_ACH4_HW_IDX)
  51764. #define BIT_CLEAR_ACH4_HW_IDX(x) ((x) & (~BITS_ACH4_HW_IDX))
  51765. #define BIT_GET_ACH4_HW_IDX(x) \
  51766. (((x) >> BIT_SHIFT_ACH4_HW_IDX) & BIT_MASK_ACH4_HW_IDX)
  51767. #define BIT_SET_ACH4_HW_IDX(x, v) \
  51768. (BIT_CLEAR_ACH4_HW_IDX(x) | BIT_ACH4_HW_IDX(v))
  51769. #define BIT_SHIFT_ACH4_HOST_IDX 0
  51770. #define BIT_MASK_ACH4_HOST_IDX 0xfff
  51771. #define BIT_ACH4_HOST_IDX(x) \
  51772. (((x) & BIT_MASK_ACH4_HOST_IDX) << BIT_SHIFT_ACH4_HOST_IDX)
  51773. #define BITS_ACH4_HOST_IDX (BIT_MASK_ACH4_HOST_IDX << BIT_SHIFT_ACH4_HOST_IDX)
  51774. #define BIT_CLEAR_ACH4_HOST_IDX(x) ((x) & (~BITS_ACH4_HOST_IDX))
  51775. #define BIT_GET_ACH4_HOST_IDX(x) \
  51776. (((x) >> BIT_SHIFT_ACH4_HOST_IDX) & BIT_MASK_ACH4_HOST_IDX)
  51777. #define BIT_SET_ACH4_HOST_IDX(x, v) \
  51778. (BIT_CLEAR_ACH4_HOST_IDX(x) | BIT_ACH4_HOST_IDX(v))
  51779. /* 2 REG_ACH5_TXBD_IDX (Offset 0x3344) */
  51780. #define BIT_SHIFT_ACH5_HW_IDX 16
  51781. #define BIT_MASK_ACH5_HW_IDX 0xfff
  51782. #define BIT_ACH5_HW_IDX(x) \
  51783. (((x) & BIT_MASK_ACH5_HW_IDX) << BIT_SHIFT_ACH5_HW_IDX)
  51784. #define BITS_ACH5_HW_IDX (BIT_MASK_ACH5_HW_IDX << BIT_SHIFT_ACH5_HW_IDX)
  51785. #define BIT_CLEAR_ACH5_HW_IDX(x) ((x) & (~BITS_ACH5_HW_IDX))
  51786. #define BIT_GET_ACH5_HW_IDX(x) \
  51787. (((x) >> BIT_SHIFT_ACH5_HW_IDX) & BIT_MASK_ACH5_HW_IDX)
  51788. #define BIT_SET_ACH5_HW_IDX(x, v) \
  51789. (BIT_CLEAR_ACH5_HW_IDX(x) | BIT_ACH5_HW_IDX(v))
  51790. #define BIT_SHIFT_ACH5_HOST_IDX 0
  51791. #define BIT_MASK_ACH5_HOST_IDX 0xfff
  51792. #define BIT_ACH5_HOST_IDX(x) \
  51793. (((x) & BIT_MASK_ACH5_HOST_IDX) << BIT_SHIFT_ACH5_HOST_IDX)
  51794. #define BITS_ACH5_HOST_IDX (BIT_MASK_ACH5_HOST_IDX << BIT_SHIFT_ACH5_HOST_IDX)
  51795. #define BIT_CLEAR_ACH5_HOST_IDX(x) ((x) & (~BITS_ACH5_HOST_IDX))
  51796. #define BIT_GET_ACH5_HOST_IDX(x) \
  51797. (((x) >> BIT_SHIFT_ACH5_HOST_IDX) & BIT_MASK_ACH5_HOST_IDX)
  51798. #define BIT_SET_ACH5_HOST_IDX(x, v) \
  51799. (BIT_CLEAR_ACH5_HOST_IDX(x) | BIT_ACH5_HOST_IDX(v))
  51800. /* 2 REG_ACH6_TXBD_IDX (Offset 0x3348) */
  51801. #define BIT_SHIFT_ACH6_HW_IDX 16
  51802. #define BIT_MASK_ACH6_HW_IDX 0xfff
  51803. #define BIT_ACH6_HW_IDX(x) \
  51804. (((x) & BIT_MASK_ACH6_HW_IDX) << BIT_SHIFT_ACH6_HW_IDX)
  51805. #define BITS_ACH6_HW_IDX (BIT_MASK_ACH6_HW_IDX << BIT_SHIFT_ACH6_HW_IDX)
  51806. #define BIT_CLEAR_ACH6_HW_IDX(x) ((x) & (~BITS_ACH6_HW_IDX))
  51807. #define BIT_GET_ACH6_HW_IDX(x) \
  51808. (((x) >> BIT_SHIFT_ACH6_HW_IDX) & BIT_MASK_ACH6_HW_IDX)
  51809. #define BIT_SET_ACH6_HW_IDX(x, v) \
  51810. (BIT_CLEAR_ACH6_HW_IDX(x) | BIT_ACH6_HW_IDX(v))
  51811. #define BIT_SHIFT_ACH6_HOST_IDX 0
  51812. #define BIT_MASK_ACH6_HOST_IDX 0xfff
  51813. #define BIT_ACH6_HOST_IDX(x) \
  51814. (((x) & BIT_MASK_ACH6_HOST_IDX) << BIT_SHIFT_ACH6_HOST_IDX)
  51815. #define BITS_ACH6_HOST_IDX (BIT_MASK_ACH6_HOST_IDX << BIT_SHIFT_ACH6_HOST_IDX)
  51816. #define BIT_CLEAR_ACH6_HOST_IDX(x) ((x) & (~BITS_ACH6_HOST_IDX))
  51817. #define BIT_GET_ACH6_HOST_IDX(x) \
  51818. (((x) >> BIT_SHIFT_ACH6_HOST_IDX) & BIT_MASK_ACH6_HOST_IDX)
  51819. #define BIT_SET_ACH6_HOST_IDX(x, v) \
  51820. (BIT_CLEAR_ACH6_HOST_IDX(x) | BIT_ACH6_HOST_IDX(v))
  51821. /* 2 REG_ACH7_TXBD_IDX (Offset 0x334C) */
  51822. #define BIT_SHIFT_ACH7_HW_IDX 16
  51823. #define BIT_MASK_ACH7_HW_IDX 0xfff
  51824. #define BIT_ACH7_HW_IDX(x) \
  51825. (((x) & BIT_MASK_ACH7_HW_IDX) << BIT_SHIFT_ACH7_HW_IDX)
  51826. #define BITS_ACH7_HW_IDX (BIT_MASK_ACH7_HW_IDX << BIT_SHIFT_ACH7_HW_IDX)
  51827. #define BIT_CLEAR_ACH7_HW_IDX(x) ((x) & (~BITS_ACH7_HW_IDX))
  51828. #define BIT_GET_ACH7_HW_IDX(x) \
  51829. (((x) >> BIT_SHIFT_ACH7_HW_IDX) & BIT_MASK_ACH7_HW_IDX)
  51830. #define BIT_SET_ACH7_HW_IDX(x, v) \
  51831. (BIT_CLEAR_ACH7_HW_IDX(x) | BIT_ACH7_HW_IDX(v))
  51832. #define BIT_SHIFT_ACH7_HOST_IDX 0
  51833. #define BIT_MASK_ACH7_HOST_IDX 0xfff
  51834. #define BIT_ACH7_HOST_IDX(x) \
  51835. (((x) & BIT_MASK_ACH7_HOST_IDX) << BIT_SHIFT_ACH7_HOST_IDX)
  51836. #define BITS_ACH7_HOST_IDX (BIT_MASK_ACH7_HOST_IDX << BIT_SHIFT_ACH7_HOST_IDX)
  51837. #define BIT_CLEAR_ACH7_HOST_IDX(x) ((x) & (~BITS_ACH7_HOST_IDX))
  51838. #define BIT_GET_ACH7_HOST_IDX(x) \
  51839. (((x) >> BIT_SHIFT_ACH7_HOST_IDX) & BIT_MASK_ACH7_HOST_IDX)
  51840. #define BIT_SET_ACH7_HOST_IDX(x, v) \
  51841. (BIT_CLEAR_ACH7_HOST_IDX(x) | BIT_ACH7_HOST_IDX(v))
  51842. /* 2 REG_ACH8_TXBD_IDX (Offset 0x3350) */
  51843. #define BIT_SHIFT_ACH8_HW_IDX 16
  51844. #define BIT_MASK_ACH8_HW_IDX 0xfff
  51845. #define BIT_ACH8_HW_IDX(x) \
  51846. (((x) & BIT_MASK_ACH8_HW_IDX) << BIT_SHIFT_ACH8_HW_IDX)
  51847. #define BITS_ACH8_HW_IDX (BIT_MASK_ACH8_HW_IDX << BIT_SHIFT_ACH8_HW_IDX)
  51848. #define BIT_CLEAR_ACH8_HW_IDX(x) ((x) & (~BITS_ACH8_HW_IDX))
  51849. #define BIT_GET_ACH8_HW_IDX(x) \
  51850. (((x) >> BIT_SHIFT_ACH8_HW_IDX) & BIT_MASK_ACH8_HW_IDX)
  51851. #define BIT_SET_ACH8_HW_IDX(x, v) \
  51852. (BIT_CLEAR_ACH8_HW_IDX(x) | BIT_ACH8_HW_IDX(v))
  51853. #define BIT_SHIFT_ACH8_HOST_IDX 0
  51854. #define BIT_MASK_ACH8_HOST_IDX 0xfff
  51855. #define BIT_ACH8_HOST_IDX(x) \
  51856. (((x) & BIT_MASK_ACH8_HOST_IDX) << BIT_SHIFT_ACH8_HOST_IDX)
  51857. #define BITS_ACH8_HOST_IDX (BIT_MASK_ACH8_HOST_IDX << BIT_SHIFT_ACH8_HOST_IDX)
  51858. #define BIT_CLEAR_ACH8_HOST_IDX(x) ((x) & (~BITS_ACH8_HOST_IDX))
  51859. #define BIT_GET_ACH8_HOST_IDX(x) \
  51860. (((x) >> BIT_SHIFT_ACH8_HOST_IDX) & BIT_MASK_ACH8_HOST_IDX)
  51861. #define BIT_SET_ACH8_HOST_IDX(x, v) \
  51862. (BIT_CLEAR_ACH8_HOST_IDX(x) | BIT_ACH8_HOST_IDX(v))
  51863. /* 2 REG_ACH9_TXBD_IDX (Offset 0x3354) */
  51864. #define BIT_SHIFT_ACH9_HW_IDX 16
  51865. #define BIT_MASK_ACH9_HW_IDX 0xfff
  51866. #define BIT_ACH9_HW_IDX(x) \
  51867. (((x) & BIT_MASK_ACH9_HW_IDX) << BIT_SHIFT_ACH9_HW_IDX)
  51868. #define BITS_ACH9_HW_IDX (BIT_MASK_ACH9_HW_IDX << BIT_SHIFT_ACH9_HW_IDX)
  51869. #define BIT_CLEAR_ACH9_HW_IDX(x) ((x) & (~BITS_ACH9_HW_IDX))
  51870. #define BIT_GET_ACH9_HW_IDX(x) \
  51871. (((x) >> BIT_SHIFT_ACH9_HW_IDX) & BIT_MASK_ACH9_HW_IDX)
  51872. #define BIT_SET_ACH9_HW_IDX(x, v) \
  51873. (BIT_CLEAR_ACH9_HW_IDX(x) | BIT_ACH9_HW_IDX(v))
  51874. #define BIT_SHIFT_ACH9_HOST_IDX 0
  51875. #define BIT_MASK_ACH9_HOST_IDX 0xfff
  51876. #define BIT_ACH9_HOST_IDX(x) \
  51877. (((x) & BIT_MASK_ACH9_HOST_IDX) << BIT_SHIFT_ACH9_HOST_IDX)
  51878. #define BITS_ACH9_HOST_IDX (BIT_MASK_ACH9_HOST_IDX << BIT_SHIFT_ACH9_HOST_IDX)
  51879. #define BIT_CLEAR_ACH9_HOST_IDX(x) ((x) & (~BITS_ACH9_HOST_IDX))
  51880. #define BIT_GET_ACH9_HOST_IDX(x) \
  51881. (((x) >> BIT_SHIFT_ACH9_HOST_IDX) & BIT_MASK_ACH9_HOST_IDX)
  51882. #define BIT_SET_ACH9_HOST_IDX(x, v) \
  51883. (BIT_CLEAR_ACH9_HOST_IDX(x) | BIT_ACH9_HOST_IDX(v))
  51884. /* 2 REG_ACH10_TXBD_IDX (Offset 0x3358) */
  51885. #define BIT_SHIFT_ACH10_HW_IDX 16
  51886. #define BIT_MASK_ACH10_HW_IDX 0xfff
  51887. #define BIT_ACH10_HW_IDX(x) \
  51888. (((x) & BIT_MASK_ACH10_HW_IDX) << BIT_SHIFT_ACH10_HW_IDX)
  51889. #define BITS_ACH10_HW_IDX (BIT_MASK_ACH10_HW_IDX << BIT_SHIFT_ACH10_HW_IDX)
  51890. #define BIT_CLEAR_ACH10_HW_IDX(x) ((x) & (~BITS_ACH10_HW_IDX))
  51891. #define BIT_GET_ACH10_HW_IDX(x) \
  51892. (((x) >> BIT_SHIFT_ACH10_HW_IDX) & BIT_MASK_ACH10_HW_IDX)
  51893. #define BIT_SET_ACH10_HW_IDX(x, v) \
  51894. (BIT_CLEAR_ACH10_HW_IDX(x) | BIT_ACH10_HW_IDX(v))
  51895. #define BIT_SHIFT_ACH10_HOST_IDX 0
  51896. #define BIT_MASK_ACH10_HOST_IDX 0xfff
  51897. #define BIT_ACH10_HOST_IDX(x) \
  51898. (((x) & BIT_MASK_ACH10_HOST_IDX) << BIT_SHIFT_ACH10_HOST_IDX)
  51899. #define BITS_ACH10_HOST_IDX \
  51900. (BIT_MASK_ACH10_HOST_IDX << BIT_SHIFT_ACH10_HOST_IDX)
  51901. #define BIT_CLEAR_ACH10_HOST_IDX(x) ((x) & (~BITS_ACH10_HOST_IDX))
  51902. #define BIT_GET_ACH10_HOST_IDX(x) \
  51903. (((x) >> BIT_SHIFT_ACH10_HOST_IDX) & BIT_MASK_ACH10_HOST_IDX)
  51904. #define BIT_SET_ACH10_HOST_IDX(x, v) \
  51905. (BIT_CLEAR_ACH10_HOST_IDX(x) | BIT_ACH10_HOST_IDX(v))
  51906. /* 2 REG_ACH11_TXBD_IDX (Offset 0x335C) */
  51907. #define BIT_SHIFT_ACH11_HW_IDX 16
  51908. #define BIT_MASK_ACH11_HW_IDX 0xfff
  51909. #define BIT_ACH11_HW_IDX(x) \
  51910. (((x) & BIT_MASK_ACH11_HW_IDX) << BIT_SHIFT_ACH11_HW_IDX)
  51911. #define BITS_ACH11_HW_IDX (BIT_MASK_ACH11_HW_IDX << BIT_SHIFT_ACH11_HW_IDX)
  51912. #define BIT_CLEAR_ACH11_HW_IDX(x) ((x) & (~BITS_ACH11_HW_IDX))
  51913. #define BIT_GET_ACH11_HW_IDX(x) \
  51914. (((x) >> BIT_SHIFT_ACH11_HW_IDX) & BIT_MASK_ACH11_HW_IDX)
  51915. #define BIT_SET_ACH11_HW_IDX(x, v) \
  51916. (BIT_CLEAR_ACH11_HW_IDX(x) | BIT_ACH11_HW_IDX(v))
  51917. #define BIT_SHIFT_ACH11_HOST_IDX 0
  51918. #define BIT_MASK_ACH11_HOST_IDX 0xfff
  51919. #define BIT_ACH11_HOST_IDX(x) \
  51920. (((x) & BIT_MASK_ACH11_HOST_IDX) << BIT_SHIFT_ACH11_HOST_IDX)
  51921. #define BITS_ACH11_HOST_IDX \
  51922. (BIT_MASK_ACH11_HOST_IDX << BIT_SHIFT_ACH11_HOST_IDX)
  51923. #define BIT_CLEAR_ACH11_HOST_IDX(x) ((x) & (~BITS_ACH11_HOST_IDX))
  51924. #define BIT_GET_ACH11_HOST_IDX(x) \
  51925. (((x) >> BIT_SHIFT_ACH11_HOST_IDX) & BIT_MASK_ACH11_HOST_IDX)
  51926. #define BIT_SET_ACH11_HOST_IDX(x, v) \
  51927. (BIT_CLEAR_ACH11_HOST_IDX(x) | BIT_ACH11_HOST_IDX(v))
  51928. /* 2 REG_ACH12_TXBD_IDX (Offset 0x3360) */
  51929. #define BIT_SHIFT_ACH12_HW_IDX 16
  51930. #define BIT_MASK_ACH12_HW_IDX 0xfff
  51931. #define BIT_ACH12_HW_IDX(x) \
  51932. (((x) & BIT_MASK_ACH12_HW_IDX) << BIT_SHIFT_ACH12_HW_IDX)
  51933. #define BITS_ACH12_HW_IDX (BIT_MASK_ACH12_HW_IDX << BIT_SHIFT_ACH12_HW_IDX)
  51934. #define BIT_CLEAR_ACH12_HW_IDX(x) ((x) & (~BITS_ACH12_HW_IDX))
  51935. #define BIT_GET_ACH12_HW_IDX(x) \
  51936. (((x) >> BIT_SHIFT_ACH12_HW_IDX) & BIT_MASK_ACH12_HW_IDX)
  51937. #define BIT_SET_ACH12_HW_IDX(x, v) \
  51938. (BIT_CLEAR_ACH12_HW_IDX(x) | BIT_ACH12_HW_IDX(v))
  51939. #define BIT_SHIFT_ACH12_HOST_IDX 0
  51940. #define BIT_MASK_ACH12_HOST_IDX 0xfff
  51941. #define BIT_ACH12_HOST_IDX(x) \
  51942. (((x) & BIT_MASK_ACH12_HOST_IDX) << BIT_SHIFT_ACH12_HOST_IDX)
  51943. #define BITS_ACH12_HOST_IDX \
  51944. (BIT_MASK_ACH12_HOST_IDX << BIT_SHIFT_ACH12_HOST_IDX)
  51945. #define BIT_CLEAR_ACH12_HOST_IDX(x) ((x) & (~BITS_ACH12_HOST_IDX))
  51946. #define BIT_GET_ACH12_HOST_IDX(x) \
  51947. (((x) >> BIT_SHIFT_ACH12_HOST_IDX) & BIT_MASK_ACH12_HOST_IDX)
  51948. #define BIT_SET_ACH12_HOST_IDX(x, v) \
  51949. (BIT_CLEAR_ACH12_HOST_IDX(x) | BIT_ACH12_HOST_IDX(v))
  51950. /* 2 REG_ACH13_TXBD_IDX (Offset 0x3364) */
  51951. #define BIT_SHIFT_ACH13_HW_IDX 16
  51952. #define BIT_MASK_ACH13_HW_IDX 0xfff
  51953. #define BIT_ACH13_HW_IDX(x) \
  51954. (((x) & BIT_MASK_ACH13_HW_IDX) << BIT_SHIFT_ACH13_HW_IDX)
  51955. #define BITS_ACH13_HW_IDX (BIT_MASK_ACH13_HW_IDX << BIT_SHIFT_ACH13_HW_IDX)
  51956. #define BIT_CLEAR_ACH13_HW_IDX(x) ((x) & (~BITS_ACH13_HW_IDX))
  51957. #define BIT_GET_ACH13_HW_IDX(x) \
  51958. (((x) >> BIT_SHIFT_ACH13_HW_IDX) & BIT_MASK_ACH13_HW_IDX)
  51959. #define BIT_SET_ACH13_HW_IDX(x, v) \
  51960. (BIT_CLEAR_ACH13_HW_IDX(x) | BIT_ACH13_HW_IDX(v))
  51961. #define BIT_SHIFT_ACH13_HOST_IDX 0
  51962. #define BIT_MASK_ACH13_HOST_IDX 0xfff
  51963. #define BIT_ACH13_HOST_IDX(x) \
  51964. (((x) & BIT_MASK_ACH13_HOST_IDX) << BIT_SHIFT_ACH13_HOST_IDX)
  51965. #define BITS_ACH13_HOST_IDX \
  51966. (BIT_MASK_ACH13_HOST_IDX << BIT_SHIFT_ACH13_HOST_IDX)
  51967. #define BIT_CLEAR_ACH13_HOST_IDX(x) ((x) & (~BITS_ACH13_HOST_IDX))
  51968. #define BIT_GET_ACH13_HOST_IDX(x) \
  51969. (((x) >> BIT_SHIFT_ACH13_HOST_IDX) & BIT_MASK_ACH13_HOST_IDX)
  51970. #define BIT_SET_ACH13_HOST_IDX(x, v) \
  51971. (BIT_CLEAR_ACH13_HOST_IDX(x) | BIT_ACH13_HOST_IDX(v))
  51972. /* 2 REG_AC_CHANNEL0_WEIGHT (Offset 0x3368) */
  51973. #define BIT_SHIFT_AC_CHANNEL0_WEIGHT 0
  51974. #define BIT_MASK_AC_CHANNEL0_WEIGHT 0xff
  51975. #define BIT_AC_CHANNEL0_WEIGHT(x) \
  51976. (((x) & BIT_MASK_AC_CHANNEL0_WEIGHT) << BIT_SHIFT_AC_CHANNEL0_WEIGHT)
  51977. #define BITS_AC_CHANNEL0_WEIGHT \
  51978. (BIT_MASK_AC_CHANNEL0_WEIGHT << BIT_SHIFT_AC_CHANNEL0_WEIGHT)
  51979. #define BIT_CLEAR_AC_CHANNEL0_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL0_WEIGHT))
  51980. #define BIT_GET_AC_CHANNEL0_WEIGHT(x) \
  51981. (((x) >> BIT_SHIFT_AC_CHANNEL0_WEIGHT) & BIT_MASK_AC_CHANNEL0_WEIGHT)
  51982. #define BIT_SET_AC_CHANNEL0_WEIGHT(x, v) \
  51983. (BIT_CLEAR_AC_CHANNEL0_WEIGHT(x) | BIT_AC_CHANNEL0_WEIGHT(v))
  51984. /* 2 REG_AC_CHANNEL1_WEIGHT (Offset 0x3369) */
  51985. #define BIT_SHIFT_AC_CHANNEL1_WEIGHT 0
  51986. #define BIT_MASK_AC_CHANNEL1_WEIGHT 0xff
  51987. #define BIT_AC_CHANNEL1_WEIGHT(x) \
  51988. (((x) & BIT_MASK_AC_CHANNEL1_WEIGHT) << BIT_SHIFT_AC_CHANNEL1_WEIGHT)
  51989. #define BITS_AC_CHANNEL1_WEIGHT \
  51990. (BIT_MASK_AC_CHANNEL1_WEIGHT << BIT_SHIFT_AC_CHANNEL1_WEIGHT)
  51991. #define BIT_CLEAR_AC_CHANNEL1_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL1_WEIGHT))
  51992. #define BIT_GET_AC_CHANNEL1_WEIGHT(x) \
  51993. (((x) >> BIT_SHIFT_AC_CHANNEL1_WEIGHT) & BIT_MASK_AC_CHANNEL1_WEIGHT)
  51994. #define BIT_SET_AC_CHANNEL1_WEIGHT(x, v) \
  51995. (BIT_CLEAR_AC_CHANNEL1_WEIGHT(x) | BIT_AC_CHANNEL1_WEIGHT(v))
  51996. /* 2 REG_AC_CHANNEL2_WEIGHT (Offset 0x336A) */
  51997. #define BIT_SHIFT_AC_CHANNEL2_WEIGHT 0
  51998. #define BIT_MASK_AC_CHANNEL2_WEIGHT 0xff
  51999. #define BIT_AC_CHANNEL2_WEIGHT(x) \
  52000. (((x) & BIT_MASK_AC_CHANNEL2_WEIGHT) << BIT_SHIFT_AC_CHANNEL2_WEIGHT)
  52001. #define BITS_AC_CHANNEL2_WEIGHT \
  52002. (BIT_MASK_AC_CHANNEL2_WEIGHT << BIT_SHIFT_AC_CHANNEL2_WEIGHT)
  52003. #define BIT_CLEAR_AC_CHANNEL2_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL2_WEIGHT))
  52004. #define BIT_GET_AC_CHANNEL2_WEIGHT(x) \
  52005. (((x) >> BIT_SHIFT_AC_CHANNEL2_WEIGHT) & BIT_MASK_AC_CHANNEL2_WEIGHT)
  52006. #define BIT_SET_AC_CHANNEL2_WEIGHT(x, v) \
  52007. (BIT_CLEAR_AC_CHANNEL2_WEIGHT(x) | BIT_AC_CHANNEL2_WEIGHT(v))
  52008. /* 2 REG_AC_CHANNEL3_WEIGHT (Offset 0x336B) */
  52009. #define BIT_SHIFT_AC_CHANNEL3_WEIGHT 0
  52010. #define BIT_MASK_AC_CHANNEL3_WEIGHT 0xff
  52011. #define BIT_AC_CHANNEL3_WEIGHT(x) \
  52012. (((x) & BIT_MASK_AC_CHANNEL3_WEIGHT) << BIT_SHIFT_AC_CHANNEL3_WEIGHT)
  52013. #define BITS_AC_CHANNEL3_WEIGHT \
  52014. (BIT_MASK_AC_CHANNEL3_WEIGHT << BIT_SHIFT_AC_CHANNEL3_WEIGHT)
  52015. #define BIT_CLEAR_AC_CHANNEL3_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL3_WEIGHT))
  52016. #define BIT_GET_AC_CHANNEL3_WEIGHT(x) \
  52017. (((x) >> BIT_SHIFT_AC_CHANNEL3_WEIGHT) & BIT_MASK_AC_CHANNEL3_WEIGHT)
  52018. #define BIT_SET_AC_CHANNEL3_WEIGHT(x, v) \
  52019. (BIT_CLEAR_AC_CHANNEL3_WEIGHT(x) | BIT_AC_CHANNEL3_WEIGHT(v))
  52020. /* 2 REG_AC_CHANNEL4_WEIGHT (Offset 0x336C) */
  52021. #define BIT_SHIFT_AC_CHANNEL4_WEIGHT 0
  52022. #define BIT_MASK_AC_CHANNEL4_WEIGHT 0xff
  52023. #define BIT_AC_CHANNEL4_WEIGHT(x) \
  52024. (((x) & BIT_MASK_AC_CHANNEL4_WEIGHT) << BIT_SHIFT_AC_CHANNEL4_WEIGHT)
  52025. #define BITS_AC_CHANNEL4_WEIGHT \
  52026. (BIT_MASK_AC_CHANNEL4_WEIGHT << BIT_SHIFT_AC_CHANNEL4_WEIGHT)
  52027. #define BIT_CLEAR_AC_CHANNEL4_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL4_WEIGHT))
  52028. #define BIT_GET_AC_CHANNEL4_WEIGHT(x) \
  52029. (((x) >> BIT_SHIFT_AC_CHANNEL4_WEIGHT) & BIT_MASK_AC_CHANNEL4_WEIGHT)
  52030. #define BIT_SET_AC_CHANNEL4_WEIGHT(x, v) \
  52031. (BIT_CLEAR_AC_CHANNEL4_WEIGHT(x) | BIT_AC_CHANNEL4_WEIGHT(v))
  52032. /* 2 REG_AC_CHANNEL5_WEIGHT (Offset 0x336D) */
  52033. #define BIT_SHIFT_AC_CHANNEL5_WEIGHT 0
  52034. #define BIT_MASK_AC_CHANNEL5_WEIGHT 0xff
  52035. #define BIT_AC_CHANNEL5_WEIGHT(x) \
  52036. (((x) & BIT_MASK_AC_CHANNEL5_WEIGHT) << BIT_SHIFT_AC_CHANNEL5_WEIGHT)
  52037. #define BITS_AC_CHANNEL5_WEIGHT \
  52038. (BIT_MASK_AC_CHANNEL5_WEIGHT << BIT_SHIFT_AC_CHANNEL5_WEIGHT)
  52039. #define BIT_CLEAR_AC_CHANNEL5_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL5_WEIGHT))
  52040. #define BIT_GET_AC_CHANNEL5_WEIGHT(x) \
  52041. (((x) >> BIT_SHIFT_AC_CHANNEL5_WEIGHT) & BIT_MASK_AC_CHANNEL5_WEIGHT)
  52042. #define BIT_SET_AC_CHANNEL5_WEIGHT(x, v) \
  52043. (BIT_CLEAR_AC_CHANNEL5_WEIGHT(x) | BIT_AC_CHANNEL5_WEIGHT(v))
  52044. /* 2 REG_AC_CHANNEL6_WEIGHT (Offset 0x336E) */
  52045. #define BIT_SHIFT_AC_CHANNEL6_WEIGHT 0
  52046. #define BIT_MASK_AC_CHANNEL6_WEIGHT 0xff
  52047. #define BIT_AC_CHANNEL6_WEIGHT(x) \
  52048. (((x) & BIT_MASK_AC_CHANNEL6_WEIGHT) << BIT_SHIFT_AC_CHANNEL6_WEIGHT)
  52049. #define BITS_AC_CHANNEL6_WEIGHT \
  52050. (BIT_MASK_AC_CHANNEL6_WEIGHT << BIT_SHIFT_AC_CHANNEL6_WEIGHT)
  52051. #define BIT_CLEAR_AC_CHANNEL6_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL6_WEIGHT))
  52052. #define BIT_GET_AC_CHANNEL6_WEIGHT(x) \
  52053. (((x) >> BIT_SHIFT_AC_CHANNEL6_WEIGHT) & BIT_MASK_AC_CHANNEL6_WEIGHT)
  52054. #define BIT_SET_AC_CHANNEL6_WEIGHT(x, v) \
  52055. (BIT_CLEAR_AC_CHANNEL6_WEIGHT(x) | BIT_AC_CHANNEL6_WEIGHT(v))
  52056. /* 2 REG_AC_CHANNEL7_WEIGHT (Offset 0x336F) */
  52057. #define BIT_SHIFT_AC_CHANNEL7_WEIGHT 0
  52058. #define BIT_MASK_AC_CHANNEL7_WEIGHT 0xff
  52059. #define BIT_AC_CHANNEL7_WEIGHT(x) \
  52060. (((x) & BIT_MASK_AC_CHANNEL7_WEIGHT) << BIT_SHIFT_AC_CHANNEL7_WEIGHT)
  52061. #define BITS_AC_CHANNEL7_WEIGHT \
  52062. (BIT_MASK_AC_CHANNEL7_WEIGHT << BIT_SHIFT_AC_CHANNEL7_WEIGHT)
  52063. #define BIT_CLEAR_AC_CHANNEL7_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL7_WEIGHT))
  52064. #define BIT_GET_AC_CHANNEL7_WEIGHT(x) \
  52065. (((x) >> BIT_SHIFT_AC_CHANNEL7_WEIGHT) & BIT_MASK_AC_CHANNEL7_WEIGHT)
  52066. #define BIT_SET_AC_CHANNEL7_WEIGHT(x, v) \
  52067. (BIT_CLEAR_AC_CHANNEL7_WEIGHT(x) | BIT_AC_CHANNEL7_WEIGHT(v))
  52068. /* 2 REG_AC_CHANNEL8_WEIGHT (Offset 0x3370) */
  52069. #define BIT_SHIFT_AC_CHANNEL8_WEIGHT 0
  52070. #define BIT_MASK_AC_CHANNEL8_WEIGHT 0xff
  52071. #define BIT_AC_CHANNEL8_WEIGHT(x) \
  52072. (((x) & BIT_MASK_AC_CHANNEL8_WEIGHT) << BIT_SHIFT_AC_CHANNEL8_WEIGHT)
  52073. #define BITS_AC_CHANNEL8_WEIGHT \
  52074. (BIT_MASK_AC_CHANNEL8_WEIGHT << BIT_SHIFT_AC_CHANNEL8_WEIGHT)
  52075. #define BIT_CLEAR_AC_CHANNEL8_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL8_WEIGHT))
  52076. #define BIT_GET_AC_CHANNEL8_WEIGHT(x) \
  52077. (((x) >> BIT_SHIFT_AC_CHANNEL8_WEIGHT) & BIT_MASK_AC_CHANNEL8_WEIGHT)
  52078. #define BIT_SET_AC_CHANNEL8_WEIGHT(x, v) \
  52079. (BIT_CLEAR_AC_CHANNEL8_WEIGHT(x) | BIT_AC_CHANNEL8_WEIGHT(v))
  52080. /* 2 REG_AC_CHANNEL9_WEIGHT (Offset 0x3371) */
  52081. #define BIT_SHIFT_AC_CHANNEL9_WEIGHT 0
  52082. #define BIT_MASK_AC_CHANNEL9_WEIGHT 0xff
  52083. #define BIT_AC_CHANNEL9_WEIGHT(x) \
  52084. (((x) & BIT_MASK_AC_CHANNEL9_WEIGHT) << BIT_SHIFT_AC_CHANNEL9_WEIGHT)
  52085. #define BITS_AC_CHANNEL9_WEIGHT \
  52086. (BIT_MASK_AC_CHANNEL9_WEIGHT << BIT_SHIFT_AC_CHANNEL9_WEIGHT)
  52087. #define BIT_CLEAR_AC_CHANNEL9_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL9_WEIGHT))
  52088. #define BIT_GET_AC_CHANNEL9_WEIGHT(x) \
  52089. (((x) >> BIT_SHIFT_AC_CHANNEL9_WEIGHT) & BIT_MASK_AC_CHANNEL9_WEIGHT)
  52090. #define BIT_SET_AC_CHANNEL9_WEIGHT(x, v) \
  52091. (BIT_CLEAR_AC_CHANNEL9_WEIGHT(x) | BIT_AC_CHANNEL9_WEIGHT(v))
  52092. /* 2 REG_AC_CHANNEL10_WEIGHT (Offset 0x3372) */
  52093. #define BIT_SHIFT_AC_CHANNEL10_WEIGHT 0
  52094. #define BIT_MASK_AC_CHANNEL10_WEIGHT 0xff
  52095. #define BIT_AC_CHANNEL10_WEIGHT(x) \
  52096. (((x) & BIT_MASK_AC_CHANNEL10_WEIGHT) << BIT_SHIFT_AC_CHANNEL10_WEIGHT)
  52097. #define BITS_AC_CHANNEL10_WEIGHT \
  52098. (BIT_MASK_AC_CHANNEL10_WEIGHT << BIT_SHIFT_AC_CHANNEL10_WEIGHT)
  52099. #define BIT_CLEAR_AC_CHANNEL10_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL10_WEIGHT))
  52100. #define BIT_GET_AC_CHANNEL10_WEIGHT(x) \
  52101. (((x) >> BIT_SHIFT_AC_CHANNEL10_WEIGHT) & BIT_MASK_AC_CHANNEL10_WEIGHT)
  52102. #define BIT_SET_AC_CHANNEL10_WEIGHT(x, v) \
  52103. (BIT_CLEAR_AC_CHANNEL10_WEIGHT(x) | BIT_AC_CHANNEL10_WEIGHT(v))
  52104. /* 2 REG_AC_CHANNEL11_WEIGHT (Offset 0x3373) */
  52105. #define BIT_SHIFT_AC_CHANNEL11_WEIGHT 0
  52106. #define BIT_MASK_AC_CHANNEL11_WEIGHT 0xff
  52107. #define BIT_AC_CHANNEL11_WEIGHT(x) \
  52108. (((x) & BIT_MASK_AC_CHANNEL11_WEIGHT) << BIT_SHIFT_AC_CHANNEL11_WEIGHT)
  52109. #define BITS_AC_CHANNEL11_WEIGHT \
  52110. (BIT_MASK_AC_CHANNEL11_WEIGHT << BIT_SHIFT_AC_CHANNEL11_WEIGHT)
  52111. #define BIT_CLEAR_AC_CHANNEL11_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL11_WEIGHT))
  52112. #define BIT_GET_AC_CHANNEL11_WEIGHT(x) \
  52113. (((x) >> BIT_SHIFT_AC_CHANNEL11_WEIGHT) & BIT_MASK_AC_CHANNEL11_WEIGHT)
  52114. #define BIT_SET_AC_CHANNEL11_WEIGHT(x, v) \
  52115. (BIT_CLEAR_AC_CHANNEL11_WEIGHT(x) | BIT_AC_CHANNEL11_WEIGHT(v))
  52116. /* 2 REG_AC_CHANNEL12_WEIGHT (Offset 0x3374) */
  52117. #define BIT_SHIFT_AC_CHANNEL12_WEIGHT 0
  52118. #define BIT_MASK_AC_CHANNEL12_WEIGHT 0xff
  52119. #define BIT_AC_CHANNEL12_WEIGHT(x) \
  52120. (((x) & BIT_MASK_AC_CHANNEL12_WEIGHT) << BIT_SHIFT_AC_CHANNEL12_WEIGHT)
  52121. #define BITS_AC_CHANNEL12_WEIGHT \
  52122. (BIT_MASK_AC_CHANNEL12_WEIGHT << BIT_SHIFT_AC_CHANNEL12_WEIGHT)
  52123. #define BIT_CLEAR_AC_CHANNEL12_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL12_WEIGHT))
  52124. #define BIT_GET_AC_CHANNEL12_WEIGHT(x) \
  52125. (((x) >> BIT_SHIFT_AC_CHANNEL12_WEIGHT) & BIT_MASK_AC_CHANNEL12_WEIGHT)
  52126. #define BIT_SET_AC_CHANNEL12_WEIGHT(x, v) \
  52127. (BIT_CLEAR_AC_CHANNEL12_WEIGHT(x) | BIT_AC_CHANNEL12_WEIGHT(v))
  52128. /* 2 REG_AC_CHANNEL13_WEIGHT (Offset 0x3375) */
  52129. #define BIT_SHIFT_AC_CHANNEL13_WEIGHT 0
  52130. #define BIT_MASK_AC_CHANNEL13_WEIGHT 0xff
  52131. #define BIT_AC_CHANNEL13_WEIGHT(x) \
  52132. (((x) & BIT_MASK_AC_CHANNEL13_WEIGHT) << BIT_SHIFT_AC_CHANNEL13_WEIGHT)
  52133. #define BITS_AC_CHANNEL13_WEIGHT \
  52134. (BIT_MASK_AC_CHANNEL13_WEIGHT << BIT_SHIFT_AC_CHANNEL13_WEIGHT)
  52135. #define BIT_CLEAR_AC_CHANNEL13_WEIGHT(x) ((x) & (~BITS_AC_CHANNEL13_WEIGHT))
  52136. #define BIT_GET_AC_CHANNEL13_WEIGHT(x) \
  52137. (((x) >> BIT_SHIFT_AC_CHANNEL13_WEIGHT) & BIT_MASK_AC_CHANNEL13_WEIGHT)
  52138. #define BIT_SET_AC_CHANNEL13_WEIGHT(x, v) \
  52139. (BIT_CLEAR_AC_CHANNEL13_WEIGHT(x) | BIT_AC_CHANNEL13_WEIGHT(v))
  52140. #endif
  52141. #endif /* __RTL_WLAN_BITDEF_H__ */